Draft
depends: set CMAKE_SYSTEM_NAME for Qt6 cross-compilation#8
Conversation
Co-authored-by: edtubbs <84785904+edtubbs@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Update Qt version to latest release
Upgrade Qt from 5.15.16 to 6.7.3
Feb 7, 2026
This commit implements the Qt 6 upgrade as documented in Qt6_Upgrade_Complete.md: Build System Changes: - Split Qt configuration into qt_details.mk, qt.mk, and native_qt.mk - Updated to Qt 6.7.3 (matches Bitcoin Core) - Qt 6 uses CMake instead of qmake for building Dependencies: - Added native_qt package for cross-compilation - Added 6 xcb utility libraries (cursor, render, keysyms, image, wm, util) - Updated packages.mk to include native_qt and additional xcb libs Patches: - Replaced 7 Qt 5 patches with 9 Qt 6-compatible patches from Bitcoin Core - Includes fixes for static linking, reproducible builds, and platform support Autotools Updates: - Updated configure.ac: changed qt5 → qt6, Qt5PlatformSupport → Qt6PlatformSupport - Updated bitcoin_qt.m4: changed version detection 0x050000 → 0x060000 - Updated module names (Qt5Core → Qt6Core, Qt5Gui → Qt6Gui, etc.) - Removed QtPrintSupport as separate module (integrated in Qt 6) SHA256 Hashes (Qt 6.7.3): - qtbase: 8ccbb9ab055205ac76632c9eeddd1ed6fc66936fc56afc2ed0fd5d9e23da3097 - qttranslations: dcc762acac043b9bb5e4d369b6d6f53e0ecfcf76a408fe0db5f7ef071c9d6dc8 - qttools: f03bb7df619cd9ac9dba110e30b7bcab5dd88eb8bdc9cc752563b4367233203f
- Removed Qt 5 patches that are no longer needed with Qt 6 - Updated .gitignore to exclude backup files
The CI workflow was still referencing Qt 5 (--with-gui=qt5 and --enable-gui=qt5) which is incompatible with the Qt 6.7.3 upgrade. Changes: - Replaced all --with-gui=qt5 with --with-gui=qt6 (5 occurrences) - Replaced all --enable-gui=qt5 with --enable-gui=qt6 (2 occurrences) This ensures CI builds will work correctly with the upgraded Qt 6.7.3. Fixes: CI check failures after Qt upgrade
Copilot
AI
changed the title
Upgrade Qt from 5.15.16 to 6.7.3
Fix CI: Update Qt 5 references to Qt 6 in workflow
Feb 7, 2026
Documentation .txt files (like PUSH_READY.txt, VERIFICATION_REPORT.txt) were triggering CI builds unnecessarily because they weren't in the paths-ignore list. Changes: - Added '**/*.txt' to paths-ignore in ci.yml (push and pull_request) - Added '**/*.txt' to paths-ignore in linter.yml (push and pull_request) This matches the configuration already present in codeql-analysis.yml and prevents documentation text files from triggering expensive CI builds. Fixes: GitHub Actions unnecessary triggers on documentation changes
Co-authored-by: edtubbs <84785904+edtubbs@users.noreply.github.com>
Copilot
AI
changed the title
Fix CI: Update Qt 5 references to Qt 6 in workflow
Fix CI: Add .txt files to workflow paths-ignore
Feb 7, 2026
Copilot stopped work on behalf of
edtubbs due to an error
February 7, 2026 05:31
In Qt 6, QtPlatformSupport library no longer exists as a standalone library. Its functionality has been merged into other Qt modules (mainly QtGui). Removing the AC_CHECK_LIB check that was causing configure to fail with "lib missing" error on Windows/MinGW builds. This fixes the CI build failure at step 11 (Build Dogecoin). Fixes: GitHub Actions run #21774899328 build error Co-authored-by: edtubbs <84785904+edtubbs@users.noreply.github.com>
openssl.org no longer serves 1.0.2 branch tarballs under /source/old/1.0.2 (404), and the FALLBACK_DOWNLOAD_PATH mirror currently presents an expired TLS certificate. This switches the primary download_path to the root openssl.org source directory, which serves an identical file (verified against the existing sha256_hash).
fukuchi.org has gone offline entirely (upstream homepage now points to GitHub for releases), and the FALLBACK_DOWNLOAD_PATH mirror presents an expired TLS certificate. This switches the source to Debian's snapshot archive, which serves a byte-identical copy of the original upstream tarball (verified against the existing sha256_hash, no hash change needed).
zlib.net moves previous releases into a /fossils subdirectory once a new version is published, and the zlib.net root no longer serves 1.3 directly. The FALLBACK_DOWNLOAD_PATH mirror also presents an expired TLS certificate. This switches the download_path to the official zlib.net fossils archive, which serves an identical file (verified against the existing sha256_hash).
downloads.sourceforge.net is unreliable/slow from CI runners and intermittently fails or times out. This switches the download_path to the official GitHub release asset for the same version, which serves an identical file (verified against the existing sha256_hash).
download.savannah.gnu.org can reset connections mid-transfer, causing CI failures. This switches to download-mirror.savannah.gnu.org, which the FreeType project explicitly recommends as the fallback for exactly this situation: https://www.mail-archive.com/freetype@nongnu.org/msg05856.html Serves an identical file (verified against the existing sha256_hash). Also switchted to HTTPS.
updated to github source Co-authored-by: xanimo <dakoda@xanimo.net>
updated to github source Co-authored-by: xanimo <dakoda@xanimo.net>
depends: fix broken package source downloads
…ck-4020 ci: try multiple SDK_URL mirrors when installing the macOS SDK
This version of GCC, shipped with newer Linux releases, is stricter so we need to patch some dependencies and relax some new compiler options for others. The approach here should preserve the same behavior. Note that the bdb change is scoped only to Linux, as the library uses Win32 mutexes on Windows.
…-builds-with-gcc-15 Fix `make -C depends` builds with GCC 15
…gcc-11 toolchain consistency
…-version # Conflicts: # .github/workflows/ci.yml # depends/packages/qrencode.mk # depends/packages/qt.mk
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
i686-winCI job (and itsx86_64-winsiblings) failed at link time with thousands ofundefined reference to QString::...,QWidget::...errors when linkingdogecoin-qt.exe.Root cause
depends/packages/qt.mkconfigures the target Qt6 build with:No host makefile ever defined
*_cmake_system_name, so the value was empty. CMake therefore stayed in native mode, defaultedCMAKE_SYSTEM_NAMEto the build host, and built Qt6 as x86_64 Linux ELF (Building for: linux-g++) instead of cross-compiling fori686-w64-mingw32. The MinGW PE linker silently ignores the wrong-archlibQt6*.a, leaving every app→Qt symbol unresolved (with zero Qt-internal undefined refs — the signature that this was an arch mismatch, not a link-order issue).Changes
depends/hosts/mingw32.mk— addmingw32_cmake_system_name=Windowsandmingw32_cmake_system_version=10.0. This is the fix for the reported failure and covers all three Windows GUI jobs (sharedhost_os=mingw32).depends/hosts/darwin.mk— adddarwin_cmake_system_name=Darwinanddarwin_cmake_system_version=12.0(Darwin 12 ↔OSX_MIN_VERSION=10.8), addressing the same latent bug for the macOS target.With these set, line 202 emits
-DCMAKE_SYSTEM_NAME=Windows, putting CMake into cross-compile mode so Qt produces i686 Windows PE archives the MinGW linker can consume.Notes
QConcatenable/boost date_time) not addressed here.💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.