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:

    9bbbec69cc56255fbe0dd6f63d26b6d76ebc071275cd603a2388baf028a2e5fe  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/SHA256SUMS.part
    57aee87dedbf3c41e52e7bb18cb52e96a656696699ce0663a35cf6c030ca048a  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/bitcoin-c0a1c3ca0894-aarch64-linux-gnu-debug.tar.gz
    8d2842ff0995bf53f4ed6f67e3db3d33f4cd1d117b15122d750875a3681dba21  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/bitcoin-c0a1c3ca0894-aarch64-linux-gnu.tar.gz
    67b342e95d8fa5d897d84e53f5bb5cc8323921d31c51497196b54d2c2d62e915  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/SHA256SUMS.part
    f52e8b2e28236a7fb0dd26989c39ef18472161a892f90e62cea26ae7c2daadaf  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/bitcoin-c0a1c3ca0894-arm-linux-gnueabihf-debug.tar.gz
    1dce8e6953e52874b98a0f5dafaebf068584984e2c3cd40d3110dd3c5c0d2f8d  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/bitcoin-c0a1c3ca0894-arm-linux-gnueabihf.tar.gz
    f8328d777b0f1be68408c2df5907c4dd890dd0617b1aa747b3bf140f84c0f61d  guix-build-c0a1c3ca0894/output/dist-archive/bitcoin-c0a1c3ca0894.tar.gz
    b3e71decb914c3be9c88586084853ab086d77929707c1a7649991b75c734f3e2  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/SHA256SUMS.part
    30a8ad718f848297ac1dc8f48eadb37b983d5837f807ecfedb6723932cb5e84a  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64-linux-gnu-debug.tar.gz
    111444d627aa837e8a7f450dfe304ff20139ca018a293c9a5e8c5aec33ab75a9  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64-linux-gnu.tar.gz
    ef815b019722b774995e2a999cdbd79b34b8636f92f62b2f8e6b99b294ad1bc5  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/SHA256SUMS.part
    5521bf88d0febd79301dbed30205c1bef6257eb03ae5d4a5227bac3b66b0b427  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64le-linux-gnu-debug.tar.gz
    6d2ae36ec34e7b5d3d84d6a50595c39c1d89b2659ed9eba5e7c8b21a9cbb8f04  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64le-linux-gnu.tar.gz
    8aa9cb8a5585d8b27feafa8403fcba803152fb154d7c308f6759670c11107cfa  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/SHA256SUMS.part
    7abbf8efdc91399ab0d2dde18b3be19734f956a07ed1cc19f8f5178647f9ac94  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/bitcoin-c0a1c3ca0894-riscv64-linux-gnu-debug.tar.gz
    1dfd20f75feb316882043dd081f0ee4bd2032481e17d40f7ae9f2b430c316754  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/bitcoin-c0a1c3ca0894-riscv64-linux-gnu.tar.gz
    1949530e8e68b68c72f627296995b93e9ec048c2740274a8874fe9565eca4a46  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/SHA256SUMS.part
    ab2e63f9f58834ddc0fc5f83a2a7938ffcf8057392f0c5ce92a8d456e9b8e4af  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx-unsigned.dmg
    38958a096117542cde4dcac318d116fdeec3237c95ebf88fff0e76570002109e  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx-unsigned.tar.gz
    8841df372ef1ea670dc8d4f82b007420140a39454371be47193e484a4f95fd76  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx64.tar.gz
    4e0d6b6a715d987ff025e45782dd6a47cfdac904a26d932c9c84de7eb8b699d4  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/SHA256SUMS.part
    3ac4c326313650c0d0a35560c4073f0c3fcbf7002c5b5c918e7186627c8ed392  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/bitcoin-c0a1c3ca0894-x86_64-linux-gnu-debug.tar.gz
    fcd45fe54cb86a7e9240a6bbe2170926e6db32ee55b821af332348d4c4e1d3a4  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/bitcoin-c0a1c3ca0894-x86_64-linux-gnu.tar.gz
    72deb4fc1c5b70ae329ab04862e822911708f3c4a4d8a0bbb5796d9a64985414  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/SHA256SUMS.part
    78ae8f495bfb02198b00b7fc72b67fb0595f81dd9e3aef45e5103efea90451d9  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win-unsigned.tar.gz
    962fcf4ce63e5a89fb1e74e19dbc1aeffc4d5b753ab8e19fcf2249ce21766c5b  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64-debug.zip
    3929916755d599b133304acd94462afad1ba73d5516f6f9786aff565c6ac8818  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64-setup-unsigned.exe
    66e2030476de85437e1593b7d2f4efd4a8837de8b2479217f9246d8028256e08  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:

    --- 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.

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

    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
     ])
     
    
  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

    <!--e57a25ab6845829454e8d69fc972939a-->

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

    <!--174a7506f384e20aa4161008e828411d-->

    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:

    <details><summary>patch</summary> <p>

    diff --git a/depends/packages/qt.mk b/depends/packages/qt.mk
    index 2235e6ec8..9ff6d8794 100644
    --- a/depends/packages/qt.mk
    +++ b/depends/packages/qt.mk
    @@ -12,6 +12,7 @@ $(package)_patches += fix_qt_pkgconfig.patch mac-qmake.conf fix_no_printer.patch
     $(package)_patches += fix_android_jni_static.patch dont_hardcode_pwd.patch
     $(package)_patches += no_sdk_version_check.patch fix_cgcolorspace_include.patch
     $(package)_patches += qtbase-moc-ignore-gcc-macro.patch fix_limits_header.patch
    +$(package)_patches += glibc_2_17_compatibility.patch
     
     $(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
     $(package)_qttranslations_sha256_hash=d5788e86257b21d5323f1efd94376a213e091d1e5e03b45a95dd052b5f570db8
    @@ -233,6 +234,7 @@ define $(package)_preprocess_cmds
       patch -p1 -i $($(package)_patch_dir)/qtbase-moc-ignore-gcc-macro.patch && \
       patch -p1 -i $($(package)_patch_dir)/fix_limits_header.patch && \
       patch -p1 -i $($(package)_patch_dir)/fix_cgcolorspace_include.patch && \
    +  patch -p1 -i $($(package)_patch_dir)/glibc_2_17_compatibility.patch && \
       mkdir -p qtbase/mkspecs/macx-clang-linux &&\
       cp -f qtbase/mkspecs/macx-clang/qplatformdefs.h qtbase/mkspecs/macx-clang-linux/ &&\
       cp -f $($(package)_patch_dir)/mac-qmake.conf qtbase/mkspecs/macx-clang-linux/qmake.conf && \
    diff --git a/depends/patches/qt/glibc_2_17_compatibility.patch b/depends/patches/qt/glibc_2_17_compatibility.patch
    new file mode 100644
    index 000000000..e509ce3ce
    --- /dev/null
    +++ b/depends/patches/qt/glibc_2_17_compatibility.patch
    @@ -0,0 +1,259 @@
    +Provide compatibility with glibc 2.17.
    +
    +Revert "Cache system zone ID when fetched from the file-system"
    +
    +This reverts commit c70ce3d042025c858faffe661f85d2482a2a0d8c.
    +
    +--- old/qtbase/src/corelib/time/qtimezoneprivate_tz.cpp
    ++++ new/qtbase/src/corelib/time/qtimezoneprivate_tz.cpp
    +@@ -1,6 +1,5 @@
    + /****************************************************************************
    + **
    +-** Copyright (C) 2020 The Qt Company Ltd.
    + ** Copyright (C) 2019 Crimson AS <info@crimson.no>
    + ** Copyright (C) 2013 John Layt <jlayt@kde.org>
    + ** Contact: https://www.qt.io/licensing/
    +@@ -43,19 +42,18 @@
    + #include "qtimezoneprivate_p.h"
    + #include "private/qlocale_tools_p.h"
    + 
    +-#include <QtCore/QDataStream>
    +-#include <QtCore/QDateTime>
    + #include <QtCore/QFile>
    +-#include <QtCore/QHash>
    + #include <QtCore/QMutex>
    ++#include <QtCore/QHash>
    ++#include <QtCore/QDataStream>
    ++#include <QtCore/QDateTime>
    + 
    + #include <qdebug.h>
    +-#include <qplatformdefs.h>
    + 
    + #include <algorithm>
    + #include <errno.h>
    + #include <limits.h>
    +-#ifndef Q_OS_INTEGRITY
    ++#if !defined(Q_OS_INTEGRITY)
    + #include <sys/param.h> // to use MAXSYMLINKS constant
    + #endif
    + #include <unistd.h>    // to use _SC_SYMLOOP_MAX constant
    +@@ -1108,146 +1106,28 @@ QTimeZonePrivate::Data QTzTimeZonePrivate::previousTransition(qint64 beforeMSecs
    +     return last > tranCache().cbegin() ? dataForTzTransition(*--last) : invalidData();
    + }
    + 
    +-bool QTzTimeZonePrivate::isTimeZoneIdAvailable(const QByteArray &ianaId) const
    +-{
    +-    return tzZones->contains(ianaId);
    +-}
    +-
    +-QList<QByteArray> QTzTimeZonePrivate::availableTimeZoneIds() const
    +-{
    +-    QList<QByteArray> result = tzZones->keys();
    +-    std::sort(result.begin(), result.end());
    +-    return result;
    +-}
    +-
    +-QList<QByteArray> QTzTimeZonePrivate::availableTimeZoneIds(QLocale::Country country) const
    ++static long getSymloopMax()
    + {
    +-    // TODO AnyCountry
    +-    QList<QByteArray> result;
    +-    for (auto it = tzZones->cbegin(), end = tzZones->cend(); it != end; ++it) {
    +-        if (it.value().country == country)
    +-            result << it.key();
    +-    }
    +-    std::sort(result.begin(), result.end());
    +-    return result;
    +-}
    +-
    +-// Getting the system zone's ID:
    +-
    +-namespace {
    +-class ZoneNameReader : public QObject
    +-{
    +-public:
    +-    QByteArray name()
    +-    {
    +-        /* Assumptions:
    +-           a) Systems don't change which of localtime and TZ they use without a
    +-              reboot.
    +-           b) When they change, they use atomic renames, hence a new device and
    +-              inode for the new file.
    +-           c) If we change which *name* is used for a zone, while referencing
    +-              the same final zoneinfo file, we don't care about the change of
    +-              name (e.g. if Europe/Oslo and Europe/Berlin are both symlinks to
    +-              the same CET file, continuing to use the old name, after
    +-              /etc/localtime changes which of the two it points to, is
    +-              harmless).
    +-
    +-           The alternative would be to use a file-system watcher, but they are a
    +-           scarce resource.
    +-         */
    +-        const StatIdent local = identify("/etc/localtime");
    +-        const StatIdent tz = identify("/etc/TZ");
    +-        if (!m_name.isEmpty() && m_last.isValid() && (m_last == local || m_last == tz))
    +-            return m_name;
    +-
    +-        m_name = etcLocalTime();
    +-        if (!m_name.isEmpty()) {
    +-            m_last = local;
    +-            return m_name;
    +-        }
    +-
    +-        m_name = etcTZ();
    +-        m_last = m_name.isEmpty() ? StatIdent() : tz;
    +-        return m_name;
    +-    }
    +-
    +-
    +-private:
    +-    QByteArray m_name;
    +-    struct StatIdent
    +-    {
    +-        static constexpr unsigned long bad = ~0ul;
    +-        unsigned long m_dev, m_ino;
    +-        StatIdent() : m_dev(bad), m_ino(bad) {}
    +-        StatIdent(const QT_STATBUF &data) : m_dev(data.st_dev), m_ino(data.st_ino) {}
    +-        bool isValid() { return m_dev != bad || m_ino != bad; }
    +-        bool operator==(const StatIdent &other)
    +-        { return other.m_dev == m_dev && other.m_ino == m_ino; }
    +-    };
    +-    StatIdent m_last;
    +-
    +-    static StatIdent identify(const char *path)
    +-    {
    +-        QT_STATBUF data;
    +-        return QT_STAT(path, &data) == -1 ? StatIdent() : StatIdent(data);
    +-    }
    +-
    +-    static QByteArray etcLocalTime()
    +-    {
    +-        // On most distros /etc/localtime is a symlink to a real file so extract
    +-        // name from the path
    +-        const QLatin1String zoneinfo("/zoneinfo/");
    +-        QString path = QStringLiteral("/etc/localtime");
    +-        long iteration = getSymloopMax();
    +-        // Symlink may point to another symlink etc. before being under zoneinfo/
    +-        // We stop on the first path under /zoneinfo/, even if it is itself a
    +-        // symlink, like America/Montreal pointing to America/Toronto
    +-        do {
    +-            path = QFile::symLinkTarget(path);
    +-            int index = path.indexOf(zoneinfo);
    +-            if (index >= 0) // Found zoneinfo file; extract zone name from path:
    +-                return path.midRef(index + zoneinfo.size()).toUtf8();
    +-        } while (!path.isEmpty() && --iteration > 0);
    +-
    +-        return QByteArray();
    +-    }
    +-
    +-    static QByteArray etcTZ()
    +-    {
    +-        // Some systems (e.g. uClibc) have a default value for $TZ in /etc/TZ:
    +-        const QString path = QStringLiteral("/etc/TZ");
    +-        QFile zone(path);
    +-        if (zone.open(QIODevice::ReadOnly))
    +-            return zone.readAll().trimmed();
    +-
    +-        return QByteArray();
    +-    }
    +-
    +-    // Any chain of symlinks longer than this is assumed to be a loop:
    +-    static long getSymloopMax()
    +-    {
    +-#ifdef SYMLOOP_MAX
    +-        // If defined, at runtime it can only be greater than this, so this is a safe bet:
    +-        return SYMLOOP_MAX;
    ++#if defined(SYMLOOP_MAX)
    ++    return SYMLOOP_MAX; // if defined, at runtime it can only be greater than this, so this is a safe bet
    + #else
    +-        errno = 0;
    +-        long result = sysconf(_SC_SYMLOOP_MAX);
    +-        if (result >= 0)
    +-            return result;
    +-        // result is -1, meaning either error or no limit
    +-        Q_ASSERT(!errno); // ... but it can't be an error, POSIX mandates _SC_SYMLOOP_MAX
    +-
    +-        // therefore we can make up our own limit
    +-#  ifdef MAXSYMLINKS
    +-        return MAXSYMLINKS;
    ++    errno = 0;
    ++    long result = sysconf(_SC_SYMLOOP_MAX);
    ++    if (result >= 0)
    ++        return result;
    ++    // result is -1, meaning either error or no limit
    ++    Q_ASSERT(!errno); // ... but it can't be an error, POSIX mandates _SC_SYMLOOP_MAX
    ++
    ++    // therefore we can make up our own limit
    ++#  if defined(MAXSYMLINKS)
    ++    return MAXSYMLINKS;
    + #  else
    +-        return 8;
    ++    return 8;
    + #  endif
    + #endif
    +-    }
    +-};
    + }
    + 
    ++// TODO Could cache the value and monitor the required files for any changes
    + QByteArray QTzTimeZonePrivate::systemTimeZoneId() const
    + {
    +     // Check TZ env var first, if not populated try find it
    +@@ -1262,12 +1142,55 @@ QByteArray QTzTimeZonePrivate::systemTimeZoneId() const
    +     else if (ianaId.startsWith(':'))
    +         ianaId = ianaId.mid(1);
    + 
    ++    // On most distros /etc/localtime is a symlink to a real file so extract name from the path
    ++    if (ianaId.isEmpty()) {
    ++        const QLatin1String zoneinfo("/zoneinfo/");
    ++        QString path = QFile::symLinkTarget(QStringLiteral("/etc/localtime"));
    ++        int index = -1;
    ++        long iteration = getSymloopMax();
    ++        // Symlink may point to another symlink etc. before being under zoneinfo/
    ++        // We stop on the first path under /zoneinfo/, even if it is itself a
    ++        // symlink, like America/Montreal pointing to America/Toronto
    ++        while (iteration-- > 0 && !path.isEmpty() && (index = path.indexOf(zoneinfo)) < 0)
    ++            path = QFile::symLinkTarget(path);
    ++        if (index >= 0) {
    ++            // /etc/localtime is a symlink to the current TZ file, so extract from path
    ++            ianaId = path.midRef(index + zoneinfo.size()).toUtf8();
    ++        }
    ++    }
    ++
    ++    // Some systems (e.g. uClibc) have a default value for $TZ in /etc/TZ:
    +     if (ianaId.isEmpty()) {
    +-        thread_local static ZoneNameReader reader;
    +-        ianaId = reader.name();
    ++        QFile zone(QStringLiteral("/etc/TZ"));
    ++        if (zone.open(QIODevice::ReadOnly))
    ++            ianaId = zone.readAll().trimmed();
    +     }
    + 
    +     return ianaId;
    + }
    + 
    ++bool QTzTimeZonePrivate::isTimeZoneIdAvailable(const QByteArray &ianaId) const
    ++{
    ++    return tzZones->contains(ianaId);
    ++}
    ++
    ++QList<QByteArray> QTzTimeZonePrivate::availableTimeZoneIds() const
    ++{
    ++    QList<QByteArray> result = tzZones->keys();
    ++    std::sort(result.begin(), result.end());
    ++    return result;
    ++}
    ++
    ++QList<QByteArray> QTzTimeZonePrivate::availableTimeZoneIds(QLocale::Country country) const
    ++{
    ++    // TODO AnyCountry
    ++    QList<QByteArray> result;
    ++    for (auto it = tzZones->cbegin(), end = tzZones->cend(); it != end; ++it) {
    ++        if (it.value().country == country)
    ++            result << it.key();
    ++    }
    ++    std::sort(result.begin(), result.end());
    ++    return result;
    ++}
    ++
    + QT_END_NAMESPACE
    

    </p> </details>

    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 12: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:

    --- 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 @@
    
  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:

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

    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)
    
  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?

    <details><summary>diff</summary> <p>

    --- a/depends/packages/qt.mk
    +++ b/depends/packages/qt.mk
    @@ -34,7 +34,6 @@ $(package)_config_opts += -hostprefix $(build_prefix)
     $(package)_config_opts += -no-compile-examples
     $(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
    @@ -42,8 +41,6 @@ $(package)_config_opts += -no-glib
     $(package)_config_opts += -no-icu
     $(package)_config_opts += -no-ico
     $(package)_config_opts += -no-iconv
    -$(package)_config_opts += -no-kms
    -$(package)_config_opts += -no-linuxfb
     $(package)_config_opts += -no-libjpeg
     $(package)_config_opts += -no-libproxy
     $(package)_config_opts += -no-libudev
    @@ -115,7 +112,12 @@ $(package)_config_opts += -no-feature-vnc
     $(package)_config_opts += -no-feature-wizard
     $(package)_config_opts += -no-feature-xml
     
    -$(package)_config_opts_darwin = -no-dbus
    +
    +# macOS platform backends
    +$(package)_config_opts_darwin += -no-eglfs
    +$(package)_config_opts_darwin += -qpa cocoa
    +
    +$(package)_config_opts_darwin += -no-dbus
     $(package)_config_opts_darwin += -no-opengl
     $(package)_config_opts_darwin += -pch
     $(package)_config_opts_darwin += -no-feature-corewlan
    @@ -133,7 +135,14 @@ endif
     # for macOS on Apple Silicon (ARM) see https://bugreports.qt.io/browse/QTBUG-85279
     $(package)_config_opts_aarch64_darwin += -device-option QMAKE_APPLE_DEVICE_ARCHS=arm64
     
    -$(package)_config_opts_linux = -xcb
    +
    +# Linux platform backends
    +$(package)_config_opts_linux += -no-directfb
    +$(package)_config_opts_linux += -no-eglfs
    +$(package)_config_opts_linux += -no-linuxfb
    +$(package)_config_opts_linux += -xcb
    +$(package)_config_opts_linux += -qpa xcb
    +
     $(package)_config_opts_linux += -no-xcb-xlib
     $(package)_config_opts_linux += -no-feature-xlib
     $(package)_config_opts_linux += -system-freetype
    @@ -150,7 +159,12 @@ $(package)_config_opts_powerpc64le_linux = -platform linux-g++ -xplatform bitcoi
     $(package)_config_opts_riscv64_linux = -platform linux-g++ -xplatform bitcoin-linux-g++
     $(package)_config_opts_s390x_linux = -platform linux-g++ -xplatform bitcoin-linux-g++
     
    -$(package)_config_opts_mingw32 = -no-opengl
    +
    +# Window platform backends
    +$(package)_config_opts_mingw32 += -direct2d
    +$(package)_config_opts_mingw32 += -qpa windows
    +
    +$(package)_config_opts_mingw32 += -no-opengl
     $(package)_config_opts_mingw32 += -no-dbus
     $(package)_config_opts_mingw32 += -xplatform win32-g++
     $(package)_config_opts_mingw32 += "QMAKE_CFLAGS = '$($(package)_cflags) $($(package)_cppflags)'"
    @@ -159,14 +173,17 @@ $(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_android = -xplatform android-clang
    +
    +# Android platform backends
    +$(package)_config_opts_android += -no-eglfs
    +$(package)_config_opts_android += -qpa xcb
    +
    +$(package)_config_opts_android += -xplatform android-clang
     $(package)_config_opts_android += -android-sdk $(ANDROID_SDK)
     $(package)_config_opts_android += -android-ndk $(ANDROID_NDK)
     $(package)_config_opts_android += -android-ndk-platform android-$(ANDROID_API_LEVEL)
     $(package)_config_opts_android += -device-option CROSS_COMPILE="$(host)-"
     $(package)_config_opts_android += -egl
    -$(package)_config_opts_android += -qpa xcb
    -$(package)_config_opts_android += -no-eglfs
     $(package)_config_opts_android += -no-dbus
     $(package)_config_opts_android += -opengl es2
     $(package)_config_opts_android += -qt-freetype
    

    </p> </details>

  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:

      $(package)_config_opts += --disable-dependency-tracking --enable-option-checking
      $(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"

    --- a/depends/packages/expat.mk
    +++ b/depends/packages/expat.mk
    @@ -24,5 +24,5 @@ define $(package)_stage_cmds
     endef
     
     define $(package)_postprocess_cmds
    -  rm -rf share lib/*.la
    +  rm -rf share lib/cmake lib/*.la
     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 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 :)

  41. 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:

    $(package)_dependencies=libxcb xproto
    
  42. 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:

    $(package)_dependencies=libxcb
    
  43. 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:

    $(package)_dependencies=libxcb
    
  44. 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:

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

    fanquake commented at 2:16 AM on November 19, 2021:

    Done.

  45. 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.

  46. fanquake force-pushed on Nov 19, 2021
  47. 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.

  48. 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:
    | 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.

  49. hebasto commented at 9:31 AM on November 19, 2021: member

    Guix builds:

    $ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    125daa0d831ebc63ef5bce4c124b0e4c9e869de703c714f13accfa92eb76a5c3  guix-build-299b352ae658/output/aarch64-linux-gnu/SHA256SUMS.part
    2c6d25dae20cd8a0d43abe5577aea33e9eeb541226fc2cda10e705f8515b731a  guix-build-299b352ae658/output/aarch64-linux-gnu/bitcoin-299b352ae658-aarch64-linux-gnu-debug.tar.gz
    b2b875584f5fc8a5319a69d23b5f1ba4897a6037ac666b48a8ed70233965e692  guix-build-299b352ae658/output/aarch64-linux-gnu/bitcoin-299b352ae658-aarch64-linux-gnu.tar.gz
    104dfd872e4a90b3619af744bb812bb1d0461059fdcb5d7b131c6184fd5fb7f8  guix-build-299b352ae658/output/arm-linux-gnueabihf/SHA256SUMS.part
    93edbc3cd37dbca8aa8a871585a2d801a4982cdf79f0a35b1c6cc8387f4d5a17  guix-build-299b352ae658/output/arm-linux-gnueabihf/bitcoin-299b352ae658-arm-linux-gnueabihf-debug.tar.gz
    7830bce0bf5d1638e6653eb1d4025714cf6fbf170591bee83ed5eb71945a32d0  guix-build-299b352ae658/output/arm-linux-gnueabihf/bitcoin-299b352ae658-arm-linux-gnueabihf.tar.gz
    50dc60b16c7cb85ea3b60b84748ac382961b96fe7b34481e161353b89393707e  guix-build-299b352ae658/output/dist-archive/bitcoin-299b352ae658.tar.gz
    25ff76b215db7d345106654ca78102af7157fe77615504755289a1180009c469  guix-build-299b352ae658/output/powerpc64-linux-gnu/SHA256SUMS.part
    6cbbe039eb8584df774ee65346ab525f18001a6fb8dd982934911eaec20fb1bb  guix-build-299b352ae658/output/powerpc64-linux-gnu/bitcoin-299b352ae658-powerpc64-linux-gnu-debug.tar.gz
    e6e44fadbfd35efd0a142a0a3d8ba414d447bb0eb7a76b4e31f676819091f522  guix-build-299b352ae658/output/powerpc64-linux-gnu/bitcoin-299b352ae658-powerpc64-linux-gnu.tar.gz
    16a1e8c4df3cb790ed66de9a6019b8dc7af01c0dcccdeb786ccd9795d8035a26  guix-build-299b352ae658/output/powerpc64le-linux-gnu/SHA256SUMS.part
    73c6b9da24b5e76e392219e1718cbcede2803d2a100e25466d0d0743eba5fcf5  guix-build-299b352ae658/output/powerpc64le-linux-gnu/bitcoin-299b352ae658-powerpc64le-linux-gnu-debug.tar.gz
    e04d82f88131c8d6a2f14d7f1182de8cb29b264561e6ec4c89719f7ddd80c91b  guix-build-299b352ae658/output/powerpc64le-linux-gnu/bitcoin-299b352ae658-powerpc64le-linux-gnu.tar.gz
    50bb5959de5bc546fd881210daa0840f5acb451c396981ecfb158447026693a2  guix-build-299b352ae658/output/riscv64-linux-gnu/SHA256SUMS.part
    759ea21a8e1271af2acf8dc29d68392f2cece615da57e79b98d5059f03025f90  guix-build-299b352ae658/output/riscv64-linux-gnu/bitcoin-299b352ae658-riscv64-linux-gnu-debug.tar.gz
    18cc2cd53fb3ed608ba0cda37fd3b02d2e858ae674fa5d91ba5215ac0e425eb6  guix-build-299b352ae658/output/riscv64-linux-gnu/bitcoin-299b352ae658-riscv64-linux-gnu.tar.gz
    43928730610e13420d578da24a032a12386bc4b048d82f0a242a3b9d201607dd  guix-build-299b352ae658/output/x86_64-apple-darwin19/SHA256SUMS.part
    c302dc9746299619883d18e01e60e05ee681e5c0b2592589416312150330ed16  guix-build-299b352ae658/output/x86_64-apple-darwin19/bitcoin-299b352ae658-osx-unsigned.dmg
    318962c280ea9fd79fa2d98180ba0438611c93bc0be02488f54d08d1e108aafa  guix-build-299b352ae658/output/x86_64-apple-darwin19/bitcoin-299b352ae658-osx-unsigned.tar.gz
    556d7ab2ce10e2f8a539bd562a1437a41b42866d9069e13e017b891c17c75310  guix-build-299b352ae658/output/x86_64-apple-darwin19/bitcoin-299b352ae658-osx64.tar.gz
    64844f58651e0023becb1ec58e4ebb2e24acc8e5468c24896fa92a3deebb6c3d  guix-build-299b352ae658/output/x86_64-linux-gnu/SHA256SUMS.part
    b89c64730c68eabf5c92f242cbd848a4635149b0c00942e5f073b4a914785bbb  guix-build-299b352ae658/output/x86_64-linux-gnu/bitcoin-299b352ae658-x86_64-linux-gnu-debug.tar.gz
    c6b654cbcb6ae84f77ea59a1a11be34254821d852861636506742d5650f40367  guix-build-299b352ae658/output/x86_64-linux-gnu/bitcoin-299b352ae658-x86_64-linux-gnu.tar.gz
    ee16657439bbcfff74c50621da0dfec76a9e06f152365fdd7063693a0e47ac1c  guix-build-299b352ae658/output/x86_64-w64-mingw32/SHA256SUMS.part
    cfd96fbdef2d2672279ab719b24e1300b64441fef501116a5ca87affb6921c6d  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win-unsigned.tar.gz
    c09aa70226c9c621c18985b3233c99361c11c3978515bf603e432d5bd0fe6258  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win64-debug.zip
    aeb29161b37def07a29e3229d94273bb1432148a7121245852cbfa0ac6a8458a  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win64-setup-unsigned.exe
    118da095b89e566d26aea57e440b434306a10b25e45478cf6051f32469ed0b17  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win64.zip
    
  50. hebasto approved
  51. 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:

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

    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~
  52. 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

    find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    
    125daa0d831ebc63ef5bce4c124b0e4c9e869de703c714f13accfa92eb76a5c3  guix-build-299b352ae658/output/aarch64-linux-gnu/SHA256SUMS.part
    2c6d25dae20cd8a0d43abe5577aea33e9eeb541226fc2cda10e705f8515b731a  guix-build-299b352ae658/output/aarch64-linux-gnu/bitcoin-299b352ae658-aarch64-linux-gnu-debug.tar.gz
    b2b875584f5fc8a5319a69d23b5f1ba4897a6037ac666b48a8ed70233965e692  guix-build-299b352ae658/output/aarch64-linux-gnu/bitcoin-299b352ae658-aarch64-linux-gnu.tar.gz
    104dfd872e4a90b3619af744bb812bb1d0461059fdcb5d7b131c6184fd5fb7f8  guix-build-299b352ae658/output/arm-linux-gnueabihf/SHA256SUMS.part
    93edbc3cd37dbca8aa8a871585a2d801a4982cdf79f0a35b1c6cc8387f4d5a17  guix-build-299b352ae658/output/arm-linux-gnueabihf/bitcoin-299b352ae658-arm-linux-gnueabihf-debug.tar.gz
    7830bce0bf5d1638e6653eb1d4025714cf6fbf170591bee83ed5eb71945a32d0  guix-build-299b352ae658/output/arm-linux-gnueabihf/bitcoin-299b352ae658-arm-linux-gnueabihf.tar.gz
    50dc60b16c7cb85ea3b60b84748ac382961b96fe7b34481e161353b89393707e  guix-build-299b352ae658/output/dist-archive/bitcoin-299b352ae658.tar.gz
    25ff76b215db7d345106654ca78102af7157fe77615504755289a1180009c469  guix-build-299b352ae658/output/powerpc64-linux-gnu/SHA256SUMS.part
    6cbbe039eb8584df774ee65346ab525f18001a6fb8dd982934911eaec20fb1bb  guix-build-299b352ae658/output/powerpc64-linux-gnu/bitcoin-299b352ae658-powerpc64-linux-gnu-debug.tar.gz
    e6e44fadbfd35efd0a142a0a3d8ba414d447bb0eb7a76b4e31f676819091f522  guix-build-299b352ae658/output/powerpc64-linux-gnu/bitcoin-299b352ae658-powerpc64-linux-gnu.tar.gz
    16a1e8c4df3cb790ed66de9a6019b8dc7af01c0dcccdeb786ccd9795d8035a26  guix-build-299b352ae658/output/powerpc64le-linux-gnu/SHA256SUMS.part
    73c6b9da24b5e76e392219e1718cbcede2803d2a100e25466d0d0743eba5fcf5  guix-build-299b352ae658/output/powerpc64le-linux-gnu/bitcoin-299b352ae658-powerpc64le-linux-gnu-debug.tar.gz
    e04d82f88131c8d6a2f14d7f1182de8cb29b264561e6ec4c89719f7ddd80c91b  guix-build-299b352ae658/output/powerpc64le-linux-gnu/bitcoin-299b352ae658-powerpc64le-linux-gnu.tar.gz
    50bb5959de5bc546fd881210daa0840f5acb451c396981ecfb158447026693a2  guix-build-299b352ae658/output/riscv64-linux-gnu/SHA256SUMS.part
    759ea21a8e1271af2acf8dc29d68392f2cece615da57e79b98d5059f03025f90  guix-build-299b352ae658/output/riscv64-linux-gnu/bitcoin-299b352ae658-riscv64-linux-gnu-debug.tar.gz
    18cc2cd53fb3ed608ba0cda37fd3b02d2e858ae674fa5d91ba5215ac0e425eb6  guix-build-299b352ae658/output/riscv64-linux-gnu/bitcoin-299b352ae658-riscv64-linux-gnu.tar.gz
    43928730610e13420d578da24a032a12386bc4b048d82f0a242a3b9d201607dd  guix-build-299b352ae658/output/x86_64-apple-darwin19/SHA256SUMS.part
    c302dc9746299619883d18e01e60e05ee681e5c0b2592589416312150330ed16  guix-build-299b352ae658/output/x86_64-apple-darwin19/bitcoin-299b352ae658-osx-unsigned.dmg
    318962c280ea9fd79fa2d98180ba0438611c93bc0be02488f54d08d1e108aafa  guix-build-299b352ae658/output/x86_64-apple-darwin19/bitcoin-299b352ae658-osx-unsigned.tar.gz
    556d7ab2ce10e2f8a539bd562a1437a41b42866d9069e13e017b891c17c75310  guix-build-299b352ae658/output/x86_64-apple-darwin19/bitcoin-299b352ae658-osx64.tar.gz
    64844f58651e0023becb1ec58e4ebb2e24acc8e5468c24896fa92a3deebb6c3d  guix-build-299b352ae658/output/x86_64-linux-gnu/SHA256SUMS.part
    b89c64730c68eabf5c92f242cbd848a4635149b0c00942e5f073b4a914785bbb  guix-build-299b352ae658/output/x86_64-linux-gnu/bitcoin-299b352ae658-x86_64-linux-gnu-debug.tar.gz
    c6b654cbcb6ae84f77ea59a1a11be34254821d852861636506742d5650f40367  guix-build-299b352ae658/output/x86_64-linux-gnu/bitcoin-299b352ae658-x86_64-linux-gnu.tar.gz
    ee16657439bbcfff74c50621da0dfec76a9e06f152365fdd7063693a0e47ac1c  guix-build-299b352ae658/output/x86_64-w64-mingw32/SHA256SUMS.part
    cfd96fbdef2d2672279ab719b24e1300b64441fef501116a5ca87affb6921c6d  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win-unsigned.tar.gz
    c09aa70226c9c621c18985b3233c99361c11c3978515bf603e432d5bd0fe6258  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win64-debug.zip
    aeb29161b37def07a29e3229d94273bb1432148a7121245852cbfa0ac6a8458a  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win64-setup-unsigned.exe
    118da095b89e566d26aea57e440b434306a10b25e45478cf6051f32469ed0b17  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win64.zip
    
  53. fanquake force-pushed on Nov 21, 2021
  54. 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.

  55. hebasto approved
  56. 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.

  57. 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.

  58. MarcoFalke added the label DrahtBot Guix build requested on Nov 21, 2021
  59. 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.

  60. hebasto commented at 10:49 AM on November 21, 2021: member

    Gitian builds:

    $ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    b853740b1a80183d8ac18e0f8ecd1bf86c1d161bdc211ffcabd6a555bd3ae6fc  guix-build-be58159cd037/output/aarch64-linux-gnu/SHA256SUMS.part
    c705a6c4a6a28732fb751e8c766b69f902d3ea753647350cd5ae069b66570279  guix-build-be58159cd037/output/aarch64-linux-gnu/bitcoin-be58159cd037-aarch64-linux-gnu-debug.tar.gz
    7f6fa3ab6c74edb0156d33b1f0763b789eed610b6b09f7aed7fd92735769333a  guix-build-be58159cd037/output/aarch64-linux-gnu/bitcoin-be58159cd037-aarch64-linux-gnu.tar.gz
    29b4445b3443c7c82fc782ea2c14eef0aa65dd4659f7f8a9b25bf75229fac548  guix-build-be58159cd037/output/arm-linux-gnueabihf/SHA256SUMS.part
    83e9aaf572abbf585ba59a03b8b63aa6801ab574aa82694a8cbf431f2530d72c  guix-build-be58159cd037/output/arm-linux-gnueabihf/bitcoin-be58159cd037-arm-linux-gnueabihf-debug.tar.gz
    8fed46860ee814c9371a2533070d04f8604b3e8f573fcb8172a4d852dbf73885  guix-build-be58159cd037/output/arm-linux-gnueabihf/bitcoin-be58159cd037-arm-linux-gnueabihf.tar.gz
    bb7ddef9069c5ad4ecd2a08fa0dede9aedd978676c59a8f140facf38f637f73e  guix-build-be58159cd037/output/dist-archive/bitcoin-be58159cd037.tar.gz
    d4289de89c3e14784db67e89df48c1bffd722ccd7fb1c5831302d2c64cfc6684  guix-build-be58159cd037/output/powerpc64-linux-gnu/SHA256SUMS.part
    a814e8063bbb277b6ec1bc291433bf45edb60032de0b92917d2e287ac0aebb34  guix-build-be58159cd037/output/powerpc64-linux-gnu/bitcoin-be58159cd037-powerpc64-linux-gnu-debug.tar.gz
    7b34ccd0676e0ed9e4ac6c81ad8ddf600adf5d6be0703d0ea0245c4e6bf365b4  guix-build-be58159cd037/output/powerpc64-linux-gnu/bitcoin-be58159cd037-powerpc64-linux-gnu.tar.gz
    b50f7a98fdfdf97481be9525b08890571a7755bfd1e4cface18fed50e3313e85  guix-build-be58159cd037/output/powerpc64le-linux-gnu/SHA256SUMS.part
    d1bd77fdc335c3901196d223e4bf52a4828b49e945785da3c48d69d93ed88be6  guix-build-be58159cd037/output/powerpc64le-linux-gnu/bitcoin-be58159cd037-powerpc64le-linux-gnu-debug.tar.gz
    aed870a7ef742c19e08504f685b9708ad0292a7107d6e920e90afd35983a6bd5  guix-build-be58159cd037/output/powerpc64le-linux-gnu/bitcoin-be58159cd037-powerpc64le-linux-gnu.tar.gz
    313258054d52e40c6eb01205c5f71396066411198c3d640fd17e03e76e40750e  guix-build-be58159cd037/output/riscv64-linux-gnu/SHA256SUMS.part
    a1ba293760f6d92ba42ced87c0cfdfdc65bf699afada5d9218e5014c0256e028  guix-build-be58159cd037/output/riscv64-linux-gnu/bitcoin-be58159cd037-riscv64-linux-gnu-debug.tar.gz
    63bc6bb1fce34a0461c986f0cbba29d355439efe97bb6b66ff94823fc607fa7b  guix-build-be58159cd037/output/riscv64-linux-gnu/bitcoin-be58159cd037-riscv64-linux-gnu.tar.gz
    34d55e57aa5867b94101afdb137bdd154942b7420fdfbd4ca7dbe42ec8d7d7f2  guix-build-be58159cd037/output/x86_64-apple-darwin19/SHA256SUMS.part
    eb540cc53063ba68825e0894bde47ba424c9cde24469578363d024d8b6698016  guix-build-be58159cd037/output/x86_64-apple-darwin19/bitcoin-be58159cd037-osx-unsigned.dmg
    2dc98d61946b66e9d350305c815d0e861136c1dfce252ead6c2da60a975fd158  guix-build-be58159cd037/output/x86_64-apple-darwin19/bitcoin-be58159cd037-osx-unsigned.tar.gz
    98a097b3d8d7f782c3ad50e6f15894fb5107300f8c83efc9c3c5b4a41aa3b3ba  guix-build-be58159cd037/output/x86_64-apple-darwin19/bitcoin-be58159cd037-osx64.tar.gz
    e05f41c657664d6863c2d01d40a3f8a9985478ef8729b9ac9567666b3514a2e2  guix-build-be58159cd037/output/x86_64-linux-gnu/SHA256SUMS.part
    c213e8a72082c64ebfa5dda4adffc49b161d644f21047e23248944f311e9d0d3  guix-build-be58159cd037/output/x86_64-linux-gnu/bitcoin-be58159cd037-x86_64-linux-gnu-debug.tar.gz
    e219c857342314e793ca7942cf9cb943d10d2fadb3c54dc8be17b0bd8adeef17  guix-build-be58159cd037/output/x86_64-linux-gnu/bitcoin-be58159cd037-x86_64-linux-gnu.tar.gz
    6c961df1314e89fe71c62773239d796a1cdbaf204afa487583d6bf50f4e900b7  guix-build-be58159cd037/output/x86_64-w64-mingw32/SHA256SUMS.part
    295d938a3752b42d6f8bb5482fb966aaf18f0644c1de2be2fd065d15e48c833c  guix-build-be58159cd037/output/x86_64-w64-mingw32/bitcoin-be58159cd037-win-unsigned.tar.gz
    1e5a2945abb0b27c8f5be5be36b5b0dc37221dbe19a853e1037f7095eedac43e  guix-build-be58159cd037/output/x86_64-w64-mingw32/bitcoin-be58159cd037-win64-debug.zip
    0cc7b0e813a8dee82509aff7e5d4baa542d5700cde8a34248903e3a0aeed248e  guix-build-be58159cd037/output/x86_64-w64-mingw32/bitcoin-be58159cd037-win64-setup-unsigned.exe
    0b80e1aa02f859e3485220a1b8b80f3ace57072b8f8e881aee105dfb8685e253  guix-build-be58159cd037/output/x86_64-w64-mingw32/bitcoin-be58159cd037-win64.zip
    
  61. fanquake force-pushed on Nov 22, 2021
  62. 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.

  63. 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.

  64. hebasto commented at 8:00 AM on November 22, 2021: member

    Guix builds:

    $ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    aa5627b7e50c02f1b20ff8d895343e67c66521f4a862d68e9c5697810e828887  guix-build-4e9d9c4e459f/output/aarch64-linux-gnu/SHA256SUMS.part
    5c1b9707ff00b960f1b9e1e7333fa4111b023c45851dcfef08f3185abe0b7412  guix-build-4e9d9c4e459f/output/aarch64-linux-gnu/bitcoin-4e9d9c4e459f-aarch64-linux-gnu-debug.tar.gz
    350660780ab45c607ff7732e58654802ebb34025b81864cdb9274f37e21cfaca  guix-build-4e9d9c4e459f/output/aarch64-linux-gnu/bitcoin-4e9d9c4e459f-aarch64-linux-gnu.tar.gz
    89e783494029d7575cb4b446a5a6e61c5d931cff9acfe427da1f91de4d74734a  guix-build-4e9d9c4e459f/output/arm-linux-gnueabihf/SHA256SUMS.part
    516cbab3474fe495785a1d3ef79b29dc28450f965058ef6ad49f69f2dbe7c5d7  guix-build-4e9d9c4e459f/output/arm-linux-gnueabihf/bitcoin-4e9d9c4e459f-arm-linux-gnueabihf-debug.tar.gz
    edb6a7c3075af5ade168a2b05b77b3f237e14ebf9717264b462e8b03d932bac4  guix-build-4e9d9c4e459f/output/arm-linux-gnueabihf/bitcoin-4e9d9c4e459f-arm-linux-gnueabihf.tar.gz
    908b3341458f89b0d35cdf88b6be920471d12a66862f80583c4a9b4e14fb03ac  guix-build-4e9d9c4e459f/output/dist-archive/bitcoin-4e9d9c4e459f.tar.gz
    c1f3acbe08bded2ef4cb100aca808f764ad7ead7a767d01a66a982b7465ed614  guix-build-4e9d9c4e459f/output/powerpc64-linux-gnu/SHA256SUMS.part
    340daf7b22b16908175805a29a8bd95a8e7f44cc99cee5a535afce3838d4a946  guix-build-4e9d9c4e459f/output/powerpc64-linux-gnu/bitcoin-4e9d9c4e459f-powerpc64-linux-gnu-debug.tar.gz
    cbcfb4ecf604138da1e420a63fddd66bf9d43f4db916a5d2bfcb3acb918b710e  guix-build-4e9d9c4e459f/output/powerpc64-linux-gnu/bitcoin-4e9d9c4e459f-powerpc64-linux-gnu.tar.gz
    5ad09d0e506e183e1ef9df9d58b16c5a22639191491070a128c521d37bc703c0  guix-build-4e9d9c4e459f/output/powerpc64le-linux-gnu/SHA256SUMS.part
    4fb3793f78f867e7441891a13474e7920a1b24eab56a37eaf1d3c9575303f2f0  guix-build-4e9d9c4e459f/output/powerpc64le-linux-gnu/bitcoin-4e9d9c4e459f-powerpc64le-linux-gnu-debug.tar.gz
    3592d8004998af429fec0c07b7f267fbb0228303eea7481c0b6caa09b16f146a  guix-build-4e9d9c4e459f/output/powerpc64le-linux-gnu/bitcoin-4e9d9c4e459f-powerpc64le-linux-gnu.tar.gz
    a1436b91faa9c8a9573f80ceb3f77d2833211c138870c2210b2515ac3c883657  guix-build-4e9d9c4e459f/output/riscv64-linux-gnu/SHA256SUMS.part
    6d37c8cd3dbbc7017c3734121ea9173960cf71c92aee64d5c712a57da4fc6c14  guix-build-4e9d9c4e459f/output/riscv64-linux-gnu/bitcoin-4e9d9c4e459f-riscv64-linux-gnu-debug.tar.gz
    13ec4f1bcd9226a2939656e58313935a7f9930421d24a23648ab73bbf76eeb3f  guix-build-4e9d9c4e459f/output/riscv64-linux-gnu/bitcoin-4e9d9c4e459f-riscv64-linux-gnu.tar.gz
    532fabbc246a3dc043e53ad99c1d11b53d89212eeb81d81f437b35c8247df3b6  guix-build-4e9d9c4e459f/output/x86_64-apple-darwin19/SHA256SUMS.part
    578c524ac462146711168ad212bd834f8adc682a48d2400b7950f1f3ed34edf9  guix-build-4e9d9c4e459f/output/x86_64-apple-darwin19/bitcoin-4e9d9c4e459f-osx-unsigned.dmg
    9d6521818cf59e8fc64769843ee28d0a45c51fb0c5104e05a23fba5c1951ab57  guix-build-4e9d9c4e459f/output/x86_64-apple-darwin19/bitcoin-4e9d9c4e459f-osx-unsigned.tar.gz
    a2921a1cd5933a6b14272c973424b73bde72f25eefd5c4269e7910cb4ba83393  guix-build-4e9d9c4e459f/output/x86_64-apple-darwin19/bitcoin-4e9d9c4e459f-osx64.tar.gz
    ec42574368ab8071c7a58191630650b22886d425e0ae0f7830c2c02bad7f1605  guix-build-4e9d9c4e459f/output/x86_64-linux-gnu/SHA256SUMS.part
    4d2b1b2a02ab2fa6c5bc5c1d9ba60a36b96063f4b22f6328f0b7df3093767272  guix-build-4e9d9c4e459f/output/x86_64-linux-gnu/bitcoin-4e9d9c4e459f-x86_64-linux-gnu-debug.tar.gz
    18b28f3a2bd45e7a19d5293ee13be7499cc7d24d845df0a8b5b30de8b9242b65  guix-build-4e9d9c4e459f/output/x86_64-linux-gnu/bitcoin-4e9d9c4e459f-x86_64-linux-gnu.tar.gz
    88f331be774b0d3638d08741e173d41b024a62bc1ac5d35303662abd0eba0215  guix-build-4e9d9c4e459f/output/x86_64-w64-mingw32/SHA256SUMS.part
    e98101fcc068838e5d996d58466a6b841bce4738239e9bd7a89f0a79efb4c1ad  guix-build-4e9d9c4e459f/output/x86_64-w64-mingw32/bitcoin-4e9d9c4e459f-win-unsigned.tar.gz
    105aebefba872790e80c6018d03c5bb90706a4f595dff1c81a72a9b69604ae7e  guix-build-4e9d9c4e459f/output/x86_64-w64-mingw32/bitcoin-4e9d9c4e459f-win64-debug.zip
    02317c80923f6b7f8fe65ee78803f205462f92c4fbdac8b3709fe51bc35b1256  guix-build-4e9d9c4e459f/output/x86_64-w64-mingw32/bitcoin-4e9d9c4e459f-win64-setup-unsigned.exe
    66978e4431421712acf2bd7d7e34f315b5f3f8ac98a0e9b793cc74033f2115c5  guix-build-4e9d9c4e459f/output/x86_64-w64-mingw32/bitcoin-4e9d9c4e459f-win64.zip
    
  65. 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.

  66. 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.

  67. 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.

  68. 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.

  69. DrahtBot commented at 11:19 PM on November 22, 2021: member

    <!--9cd9c72976c961c55c7acef8f6ba82cd-->

    Guix builds

    File commit 368831371d97a642beb54b5c4eb6eb0fedaa16b4<br>(master) commit 73f5846f250b778f3159d1876584079526abaa1f<br>(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...
  70. DrahtBot removed the label DrahtBot Guix build requested on Nov 22, 2021
  71. 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.

  72. DrahtBot added the label Needs rebase on Nov 25, 2021
  73. fanquake force-pushed on Nov 25, 2021
  74. DrahtBot removed the label Needs rebase on Nov 25, 2021
  75. hebasto commented at 8:34 AM on November 30, 2021: member

    Guix builds:

    $ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    fa0409e491622514ad16d59a5ca45ca1fe15b76297a80c6b4ba71f76c7df7f12  guix-build-38c1d8322cb2/output/aarch64-linux-gnu/SHA256SUMS.part
    86aae68c498cb6b08e57d8c0e4a98e51d6306cd39bc0bf216c62075ce05f239d  guix-build-38c1d8322cb2/output/aarch64-linux-gnu/bitcoin-38c1d8322cb2-aarch64-linux-gnu-debug.tar.gz
    0595dc088e5161c44b0ee15cc3659f41f9bffaf8b0ac644df0774eac048fbdca  guix-build-38c1d8322cb2/output/aarch64-linux-gnu/bitcoin-38c1d8322cb2-aarch64-linux-gnu.tar.gz
    6e0cb8dd9e8783a7d1f52d03a61a58f2e458526e485ad36ca634573205da2325  guix-build-38c1d8322cb2/output/arm-linux-gnueabihf/SHA256SUMS.part
    0cc50d044ebe4299e869eb57ffa7477c594a4b7d9d6bbe757f293eaf684376c5  guix-build-38c1d8322cb2/output/arm-linux-gnueabihf/bitcoin-38c1d8322cb2-arm-linux-gnueabihf-debug.tar.gz
    19d34edfeca76b74297829fc37ef01ed27f4d5b447af1158bdf33460d603d410  guix-build-38c1d8322cb2/output/arm-linux-gnueabihf/bitcoin-38c1d8322cb2-arm-linux-gnueabihf.tar.gz
    2d280dbb1592a73be77b0f736203900d0c5f199f62c6db181b8325998475f984  guix-build-38c1d8322cb2/output/dist-archive/bitcoin-38c1d8322cb2.tar.gz
    ea1d956d787b1dbb6b66b6188de8bb459b936eb3013d6b3a81ae4c37d16f3d63  guix-build-38c1d8322cb2/output/powerpc64-linux-gnu/SHA256SUMS.part
    5786b9b43966cbf7d0141b76622e333b5e0aec3331ae7c710f6ce9b80b797620  guix-build-38c1d8322cb2/output/powerpc64-linux-gnu/bitcoin-38c1d8322cb2-powerpc64-linux-gnu-debug.tar.gz
    5030bf575bf755b6aa9ba877aa87c00e233ca48965a342cb00d0f5227044ab6f  guix-build-38c1d8322cb2/output/powerpc64-linux-gnu/bitcoin-38c1d8322cb2-powerpc64-linux-gnu.tar.gz
    63ca0c7858a09ca59ab17b5c21bea3ad27ca0e2b13b2cb689b62b85e685b3d0e  guix-build-38c1d8322cb2/output/powerpc64le-linux-gnu/SHA256SUMS.part
    928363eaa61f7d5a70097b808e16bd2b2229ee5ef3d68624803a62ef864fed7d  guix-build-38c1d8322cb2/output/powerpc64le-linux-gnu/bitcoin-38c1d8322cb2-powerpc64le-linux-gnu-debug.tar.gz
    ca3a723caa93d3bdbd61b3f5748817688b88af101299d1b3f2a6fba6ec9ddb44  guix-build-38c1d8322cb2/output/powerpc64le-linux-gnu/bitcoin-38c1d8322cb2-powerpc64le-linux-gnu.tar.gz
    9bb3ff443b3c1564faeace9092dd7cd29b812ceb19cf5eb323861c9479edf124  guix-build-38c1d8322cb2/output/riscv64-linux-gnu/SHA256SUMS.part
    f9076a6316d40c80d4566aad731a58501a991924ab17c76d0b586c905a98ab36  guix-build-38c1d8322cb2/output/riscv64-linux-gnu/bitcoin-38c1d8322cb2-riscv64-linux-gnu-debug.tar.gz
    08b4281d60644b06192a44acc80635836fced1c0c7f8ec5a08c388691cc18166  guix-build-38c1d8322cb2/output/riscv64-linux-gnu/bitcoin-38c1d8322cb2-riscv64-linux-gnu.tar.gz
    d7bf680a5f27f8b15c3ab9353c8565b393c72eefe66a96834dc82ac89f415630  guix-build-38c1d8322cb2/output/x86_64-apple-darwin19/SHA256SUMS.part
    dbd1721646e6181cbedaba2d0e69aa1d806fcf578163535c3c167b4fae939549  guix-build-38c1d8322cb2/output/x86_64-apple-darwin19/bitcoin-38c1d8322cb2-osx-unsigned.dmg
    98fe1827dd4583efe9a86fc683464d6c5245b1850189d609a1312ef0ec808082  guix-build-38c1d8322cb2/output/x86_64-apple-darwin19/bitcoin-38c1d8322cb2-osx-unsigned.tar.gz
    57238389e5f984d684ee197fe70bcf4506b20049e2a0cc20ff95c1c55610e127  guix-build-38c1d8322cb2/output/x86_64-apple-darwin19/bitcoin-38c1d8322cb2-osx64.tar.gz
    e41b2e3a1bcfa4780f54bf16b0cd1a672bd9a5e6421105fed4885b928067d876  guix-build-38c1d8322cb2/output/x86_64-linux-gnu/SHA256SUMS.part
    95b40196fc5ac399e80e75d135df2ac6c605a881a850dc6128f8b3c88fdff5e2  guix-build-38c1d8322cb2/output/x86_64-linux-gnu/bitcoin-38c1d8322cb2-x86_64-linux-gnu-debug.tar.gz
    6e6269c1a877302d6103c28addeeebc4b83c8c5cc3106e442a796a46a69fa8bd  guix-build-38c1d8322cb2/output/x86_64-linux-gnu/bitcoin-38c1d8322cb2-x86_64-linux-gnu.tar.gz
    7d3a0e3433d8dbc69320f4e2a7a4223df7c2e105be141e85a0e5440af5319e62  guix-build-38c1d8322cb2/output/x86_64-w64-mingw32/SHA256SUMS.part
    0ab5b615c1ebb7718960dc0a7259c9d208e9d6b8ce45bf47f9554d5e503086f6  guix-build-38c1d8322cb2/output/x86_64-w64-mingw32/bitcoin-38c1d8322cb2-win-unsigned.tar.gz
    f57477e78651c609242c7452f10aa1df2c8340752387633bc1b7b6f0ce724266  guix-build-38c1d8322cb2/output/x86_64-w64-mingw32/bitcoin-38c1d8322cb2-win64-debug.zip
    f19c8bba17b6f14a331464dcdf62e1370fd4ef745b0622a14236f29c7de47079  guix-build-38c1d8322cb2/output/x86_64-w64-mingw32/bitcoin-38c1d8322cb2-win64-setup-unsigned.exe
    a543b38b36de19843d6368c00a7dba6b0fe5b8cbfd3fa34445ca54bbef5ad7d7  guix-build-38c1d8322cb2/output/x86_64-w64-mingw32/bitcoin-38c1d8322cb2-win64.zip
    
  76. DrahtBot added the label Needs rebase on Nov 30, 2021
  77. 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:
    --- a/build-aux/m4/bitcoin_qt.m4
    +++ b/build-aux/m4/bitcoin_qt.m4
    @@ -352,6 +352,7 @@ AC_DEFUN([_BITCOIN_QT_CHECK_STATIC_LIBS], [
         PKG_CHECK_MODULES([QT_INPUT], [${qt_lib_prefix}InputSupport], [QT_LIBS="$QT_INPUT_LIBS $QT_LIBS"])
         PKG_CHECK_MODULES([QT_SERVICE], [${qt_lib_prefix}ServiceSupport], [QT_LIBS="$QT_SERVICE_LIBS $QT_LIBS"])
         PKG_CHECK_MODULES([QT_XCBQPA], [${qt_lib_prefix}XcbQpa], [QT_LIBS="$QT_XCBQPA_LIBS $QT_LIBS"])
    +    PKG_CHECK_MODULES([QT_XKBCOMMON], [${qt_lib_prefix}XkbCommonSupport], [QT_LIBS="$QT_XKBCOMMON_LIBS $QT_LIBS"])
       elif test "x$TARGET_OS" = xdarwin; then
         PKG_CHECK_MODULES([QT_CLIPBOARD], [${qt_lib_prefix}ClipboardSupport${qt_lib_suffix}], [QT_LIBS="$QT_CLIPBOARD_LIBS $QT_LIBS"])
         PKG_CHECK_MODULES([QT_GRAPHICS], [${qt_lib_prefix}GraphicsSupport${qt_lib_suffix}], [QT_LIBS="$QT_GRAPHICS_LIBS $QT_LIBS"])
    @@ -360,6 +361,7 @@ AC_DEFUN([_BITCOIN_QT_CHECK_STATIC_LIBS], [
         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_lib_suffix}], [QT_LIBS="$QT_EGL_LIBS $QT_LIBS"])
    +    PKG_CHECK_MODULES([QT_SERVICE], [${qt_lib_prefix}ServiceSupport${qt_lib_suffix}], [QT_LIBS="$QT_SERVICE_LIBS $QT_LIBS"])
       fi
     ])
     
    
    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:
    --- a/depends/packages/libxcb_util.mk
    +++ b/depends/packages/libxcb_util.mk
    @@ -6,7 +6,7 @@ $(package)_sha256_hash=46e49469cb3b594af1d33176cd7565def2be3fa8be4371d62271fabb5
     $(package)_dependencies=libxcb
     
     define $(package)_set_vars
    -$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen
    +$(package)_config_opts = --disable-shared --disable-devel-docs --without-doxygen
     $(package)_config_opts += --disable-dependency-tracking --enable-option-checking
     endef
     
    
  78. 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.

  79. fanquake force-pushed on Dec 2, 2021
  80. DrahtBot removed the label Needs rebase on Dec 2, 2021
  81. 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:

      CC       xcb_image.lo
      CCLD     libxcb-image.la
    riscv64-linux-gnu-ld: relocation R_RISCV_CALL against `xcb_get_geometry' can not be used when making a shared object; recompile with -fPIC
    collect2: error: ld returned 1 exit status
    
  82. 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:

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

    Sorry for missing this issue.

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

    Guix build:

    9bbbec69cc56255fbe0dd6f63d26b6d76ebc071275cd603a2388baf028a2e5fe  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/SHA256SUMS.part
    57aee87dedbf3c41e52e7bb18cb52e96a656696699ce0663a35cf6c030ca048a  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/bitcoin-c0a1c3ca0894-aarch64-linux-gnu-debug.tar.gz
    8d2842ff0995bf53f4ed6f67e3db3d33f4cd1d117b15122d750875a3681dba21  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/bitcoin-c0a1c3ca0894-aarch64-linux-gnu.tar.gz
    67b342e95d8fa5d897d84e53f5bb5cc8323921d31c51497196b54d2c2d62e915  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/SHA256SUMS.part
    f52e8b2e28236a7fb0dd26989c39ef18472161a892f90e62cea26ae7c2daadaf  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/bitcoin-c0a1c3ca0894-arm-linux-gnueabihf-debug.tar.gz
    1dce8e6953e52874b98a0f5dafaebf068584984e2c3cd40d3110dd3c5c0d2f8d  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/bitcoin-c0a1c3ca0894-arm-linux-gnueabihf.tar.gz
    f8328d777b0f1be68408c2df5907c4dd890dd0617b1aa747b3bf140f84c0f61d  guix-build-c0a1c3ca0894/output/dist-archive/bitcoin-c0a1c3ca0894.tar.gz
    b3e71decb914c3be9c88586084853ab086d77929707c1a7649991b75c734f3e2  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/SHA256SUMS.part
    30a8ad718f848297ac1dc8f48eadb37b983d5837f807ecfedb6723932cb5e84a  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64-linux-gnu-debug.tar.gz
    111444d627aa837e8a7f450dfe304ff20139ca018a293c9a5e8c5aec33ab75a9  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64-linux-gnu.tar.gz
    ef815b019722b774995e2a999cdbd79b34b8636f92f62b2f8e6b99b294ad1bc5  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/SHA256SUMS.part
    5521bf88d0febd79301dbed30205c1bef6257eb03ae5d4a5227bac3b66b0b427  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64le-linux-gnu-debug.tar.gz
    6d2ae36ec34e7b5d3d84d6a50595c39c1d89b2659ed9eba5e7c8b21a9cbb8f04  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64le-linux-gnu.tar.gz
    8aa9cb8a5585d8b27feafa8403fcba803152fb154d7c308f6759670c11107cfa  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/SHA256SUMS.part
    7abbf8efdc91399ab0d2dde18b3be19734f956a07ed1cc19f8f5178647f9ac94  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/bitcoin-c0a1c3ca0894-riscv64-linux-gnu-debug.tar.gz
    1dfd20f75feb316882043dd081f0ee4bd2032481e17d40f7ae9f2b430c316754  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/bitcoin-c0a1c3ca0894-riscv64-linux-gnu.tar.gz
    1949530e8e68b68c72f627296995b93e9ec048c2740274a8874fe9565eca4a46  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/SHA256SUMS.part
    ab2e63f9f58834ddc0fc5f83a2a7938ffcf8057392f0c5ce92a8d456e9b8e4af  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx-unsigned.dmg
    38958a096117542cde4dcac318d116fdeec3237c95ebf88fff0e76570002109e  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx-unsigned.tar.gz
    8841df372ef1ea670dc8d4f82b007420140a39454371be47193e484a4f95fd76  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx64.tar.gz
    4e0d6b6a715d987ff025e45782dd6a47cfdac904a26d932c9c84de7eb8b699d4  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/SHA256SUMS.part
    3ac4c326313650c0d0a35560c4073f0c3fcbf7002c5b5c918e7186627c8ed392  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/bitcoin-c0a1c3ca0894-x86_64-linux-gnu-debug.tar.gz
    fcd45fe54cb86a7e9240a6bbe2170926e6db32ee55b821af332348d4c4e1d3a4  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/bitcoin-c0a1c3ca0894-x86_64-linux-gnu.tar.gz
    72deb4fc1c5b70ae329ab04862e822911708f3c4a4d8a0bbb5796d9a64985414  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/SHA256SUMS.part
    78ae8f495bfb02198b00b7fc72b67fb0595f81dd9e3aef45e5103efea90451d9  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win-unsigned.tar.gz
    962fcf4ce63e5a89fb1e74e19dbc1aeffc4d5b753ab8e19fcf2249ce21766c5b  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64-debug.zip
    3929916755d599b133304acd94462afad1ba73d5516f6f9786aff565c6ac8818  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64-setup-unsigned.exe
    66e2030476de85437e1593b7d2f4efd4a8837de8b2479217f9246d8028256e08  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64.zip
    
  100. hebasto commented at 11:10 AM on December 3, 2021: member

    Guix builds:

    $ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    9bbbec69cc56255fbe0dd6f63d26b6d76ebc071275cd603a2388baf028a2e5fe  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/SHA256SUMS.part
    57aee87dedbf3c41e52e7bb18cb52e96a656696699ce0663a35cf6c030ca048a  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/bitcoin-c0a1c3ca0894-aarch64-linux-gnu-debug.tar.gz
    8d2842ff0995bf53f4ed6f67e3db3d33f4cd1d117b15122d750875a3681dba21  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/bitcoin-c0a1c3ca0894-aarch64-linux-gnu.tar.gz
    67b342e95d8fa5d897d84e53f5bb5cc8323921d31c51497196b54d2c2d62e915  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/SHA256SUMS.part
    f52e8b2e28236a7fb0dd26989c39ef18472161a892f90e62cea26ae7c2daadaf  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/bitcoin-c0a1c3ca0894-arm-linux-gnueabihf-debug.tar.gz
    1dce8e6953e52874b98a0f5dafaebf068584984e2c3cd40d3110dd3c5c0d2f8d  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/bitcoin-c0a1c3ca0894-arm-linux-gnueabihf.tar.gz
    f8328d777b0f1be68408c2df5907c4dd890dd0617b1aa747b3bf140f84c0f61d  guix-build-c0a1c3ca0894/output/dist-archive/bitcoin-c0a1c3ca0894.tar.gz
    b3e71decb914c3be9c88586084853ab086d77929707c1a7649991b75c734f3e2  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/SHA256SUMS.part
    30a8ad718f848297ac1dc8f48eadb37b983d5837f807ecfedb6723932cb5e84a  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64-linux-gnu-debug.tar.gz
    111444d627aa837e8a7f450dfe304ff20139ca018a293c9a5e8c5aec33ab75a9  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64-linux-gnu.tar.gz
    ef815b019722b774995e2a999cdbd79b34b8636f92f62b2f8e6b99b294ad1bc5  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/SHA256SUMS.part
    5521bf88d0febd79301dbed30205c1bef6257eb03ae5d4a5227bac3b66b0b427  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64le-linux-gnu-debug.tar.gz
    6d2ae36ec34e7b5d3d84d6a50595c39c1d89b2659ed9eba5e7c8b21a9cbb8f04  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64le-linux-gnu.tar.gz
    8aa9cb8a5585d8b27feafa8403fcba803152fb154d7c308f6759670c11107cfa  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/SHA256SUMS.part
    7abbf8efdc91399ab0d2dde18b3be19734f956a07ed1cc19f8f5178647f9ac94  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/bitcoin-c0a1c3ca0894-riscv64-linux-gnu-debug.tar.gz
    1dfd20f75feb316882043dd081f0ee4bd2032481e17d40f7ae9f2b430c316754  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/bitcoin-c0a1c3ca0894-riscv64-linux-gnu.tar.gz
    1949530e8e68b68c72f627296995b93e9ec048c2740274a8874fe9565eca4a46  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/SHA256SUMS.part
    ab2e63f9f58834ddc0fc5f83a2a7938ffcf8057392f0c5ce92a8d456e9b8e4af  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx-unsigned.dmg
    38958a096117542cde4dcac318d116fdeec3237c95ebf88fff0e76570002109e  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx-unsigned.tar.gz
    8841df372ef1ea670dc8d4f82b007420140a39454371be47193e484a4f95fd76  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx64.tar.gz
    4e0d6b6a715d987ff025e45782dd6a47cfdac904a26d932c9c84de7eb8b699d4  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/SHA256SUMS.part
    3ac4c326313650c0d0a35560c4073f0c3fcbf7002c5b5c918e7186627c8ed392  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/bitcoin-c0a1c3ca0894-x86_64-linux-gnu-debug.tar.gz
    fcd45fe54cb86a7e9240a6bbe2170926e6db32ee55b821af332348d4c4e1d3a4  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/bitcoin-c0a1c3ca0894-x86_64-linux-gnu.tar.gz
    72deb4fc1c5b70ae329ab04862e822911708f3c4a4d8a0bbb5796d9a64985414  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/SHA256SUMS.part
    78ae8f495bfb02198b00b7fc72b67fb0595f81dd9e3aef45e5103efea90451d9  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win-unsigned.tar.gz
    962fcf4ce63e5a89fb1e74e19dbc1aeffc4d5b753ab8e19fcf2249ce21766c5b  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64-debug.zip
    3929916755d599b133304acd94462afad1ba73d5516f6f9786aff565c6ac8818  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64-setup-unsigned.exe
    66e2030476de85437e1593b7d2f4efd4a8837de8b2479217f9246d8028256e08  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64.zip
    
  101. 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:
    $ make -C depends HOST=x86_64-w64-mingw32 DEBUG=1
    $ CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --disable-shared
    $ 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.

  102. fanquake referenced this in commit c9b63ab61e on Dec 3, 2021
  103. fanquake commented at 1:00 PM on December 3, 2021: member

    This has been merged.

  104. fanquake closed this on Dec 3, 2021

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

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