Commit Graph
44 Commits
Author SHA1 Message Date
jwinterm 0d5d745311 v5.0.1: Windows QtQuick crash fix + node/Tor lifecycle overhaul
Windows crash chain (exposed by the embedded-node default):
- main.cpp: force the QtQuick software renderer. The Mining tab's QQuickWidget
  drove the default RHI/GL path and faulted (0xc0000005) on broken-GL hosts
  (VirtualBox VMSVGA), crashing the app and orphaning the embedded node.
  Real hardware was unaffected.
- ChildProcessGuard + DaemonManager/TorManager: kernel-level die-with-parent
  (Windows Job Object KILL_ON_JOB_CLOSE / Linux PR_SET_PDEATHSIG) so the
  embedded wownerod and bundled tor never survive a wowlet exit or crash.
- DaemonManager: verify-before-adopt via get_info (nettype/height) instead of
  trusting a bare open RPC port, so a stale/orphan node is never adopted.

Node/Tor lifecycle + remote-node connectivity:
- config: torPrivacyLevel default -> allTorExceptNode. NEVER sync blocks over
  Tor; the wallet's node connection is always clearnet. Tor is only for tx
  broadcast, so remote nodes work with or without Tor.
- nodes: add Nodes::reconnect() (clear failure blocklist + force reconnect);
  node/Tor toggle handlers use it so a transient outage no longer strands the
  wallet at "Disconnected".
- MainWindow/SettingsDialog: reconnect on node/Tor toggle and on the async
  daemonStateChanged (closes the start() race; a freshly-toggled local node
  connects immediately).
- TorManager: reset retry/unpack state in init() so a system<->bundled Tor
  re-toggle can start again; quiesce on stop(). Linux unpackBins() rework
  (mkpath + presence-based unpack + graceful return-false), getVersion() arg
  fix, and a missing-binary start guard.
- build.yml: derive TOR_VERSION from the embedded tor binary (a hardcoded
  bundle number made unpackBins rewrite Tor every launch).
- depends/funcs.mk: confine cross-cmake find_package to the depends sysroot so
  host -dev libraries don't leak into the build.
2026-06-23 17:45:39 -04:00
jwinterm a1ae9735d5 release: bump version to 5.0.0 + defer arm64/riscv64 (continue-on-error)
v5.0.0 ships Windows x86_64 + Linux x86_64. arm64/riscv64 (Qt static-link gap) and macOS deferred to v5.0.1. continue-on-error keeps the cross job from failing the release run while I keep iterating it.
2026-06-21 21:12:20 -04:00
jwinterm 57531a9d09 depends(libxkbcommon): explicit xkb extension paths for cross + cache restore-keys
libxkbcommon 1.13.1 meson.build adds empty pkgconfig vars when xkeyboard-config is absent from the cross sysroot (XKEYBOARD_CONFIG_ROOT='') while has_extensions_directories is true -> meson hard-errors at pkgconfig.generate. Pass non-empty -Dxkb-config-(un)versioned-extensions-path.

Add restore-keys to all 4 depends cache restores: a busted exact key (any packages/* edit) now falls back to the newest prefix match, so make resumes from the partial built tree instead of rebuilding the static-Qt6 toolchain from scratch.
2026-06-21 15:09:15 -04:00
jwinterm 97a4304add ci(linux-cross): add meson + ninja-build for native_wayland (wayland is linux-only) 2026-06-20 23:35:06 -04:00
jwinterm b353b08ba2 ci: add linux arm64 + riscv64 depends AppImage builds (matrix)
Cross-build wowlet via depends for aarch64/riscv64 (reusing the zeromq/ICU/qt/testlib fixes), embed the matching wownerod + depends-built tor, package an AppImage via contrib/AppImage/build-appimage.sh (its hardcoded /feather runtime path relativized to GITHUB_WORKSPACE). Cached per-host, save-always.
2026-06-20 23:22:59 -04:00
jwinterm f93b3f705e depends: add zeromq (wownero needs zmq.h) + cache depends save-always
wowlet.exe reached 27% then hit 'zmq.h: No such file' — feather strips zeromq from depends (its wallet does not use zmq) but wownero cryptonote_core/net does. Port the wownero zeromq.mk + patch, register it in packages. Also switch the depends caches to restore + save(if:always) so the completed toolchain banks even when the wowlet build fails (auto post-save is skipped on job failure).
2026-06-20 19:33:43 -04:00
jwinterm 6a1fc084c2 ci(windows): -j2 + 10G swap so the static Qt6 depends build fits 16G RAM
Disk fix let it run 50min (vs ~10min) before the runner lost communication again -> OOM during the parallel Qt6 compile, not disk. Drop both builds to -j2 and add a 10G swapfile for headroom. Slower but should complete + cache depends for fast future runs.
2026-06-20 15:11:26 -04:00
jwinterm 6cc92a5bc4 ci(windows): drop container + free disk so the depends build fits the runner
First run was killed mid depends build (runner lost communication = CPU/Memory/disk starvation). Inside a container we cannot reclaim the runner's pre-installed bloat, leaving the static-Qt6 build only ~14G. Run on ubuntu-latest directly, free ~25G (dotnet/android/ghc/CodeQL), sudo the apt steps.
2026-06-20 14:43:39 -04:00
jwinterm 626d1a6ab7 ci: add Windows x86_64 cross-build job (mingw depends)
Builds wowlet.exe via contrib/depends (static Qt6 + tor), embeds wownerod.exe from the wownero mingw release, packages a .zip. Caches the depends tree so only the first run pays the ~1h toolchain cost. Tor shipped loose next to the exe (TOR_INSTALLED).
2026-06-20 13:41:48 -04:00
jwinterm cae730ff27 ci: bundle Tor in the wowlet AppImage (embed tor binary + libs)
So wowlet works for users without a system Tor. The build fetches the
tor-expert-bundle (linux x86_64), patchelfs the tor binary + its libs to
$ORIGIN, and passes -DTOR_DIR/-DTOR_VERSION so cmake embeds them into
:/assets/tor and sets HAS_TOR_BIN=1. wowlet then extracts + manages its own
Tor daemon -> remote node connections route over Tor out of the box.
2026-06-20 06:23:04 -04:00
jwinterm 0544837cff fix: white mining tab — remove vestigial 'import QtQuick.Controls' (eagerly registers Calendar singleton → QtQuick.Templates plugin missing → whole QML fails to load). Also make QML bundling complete: blanket-copy QtQuick/QtQml trees + ldd-resolve plugin .so lib deps into usr/lib, guard against re-adding Controls 2026-06-19 07:41:03 -04:00
jwinterm be3de5a4ce fix: bundle QtQml.WorkerScript in AppImage — qmlimportscanner skips qmldir transitive 'depends', so copy QtQml tree in explicitly between linuxdeploy populate + appimagetool package 2026-06-19 07:04:38 -04:00
jwinterm 43f7cc4e7a fix: SIGILL on launch — pin -DARCH=x86-64 for the Linux build instead of wownero's default ARCH=native (CI runner CPU baked in instructions older user CPUs lack) 2026-06-18 20:50:18 -04:00
jwinterm bf2d4e39bf wowlet: fix white mining tab — AppImage now bundles QtQuick QML modules (apt qml6-module-*, QML_SOURCES_PATHS for linuxdeploy-plugin-qt) + tls backend for HTTPS prices; QML cleanup (variant→var, child-id ref) 2026-06-18 20:22:01 -04:00
jwinterm e0c06d6526 wowlet: pixel-art mining tab — port mining.qml (Qt6) + 25 assets, MiningWidget/MiningBackend hosting QQuickWidget, wired to embedded-node solo miner (hashrate/sync feedback); adds Qt6 Quick 2026-06-18 18:51:05 -04:00
jwinterm 5206dbdf8a ci: package wowlet as a portable Linux AppImage (linuxdeploy + qt; bundles Qt6, node already embedded) 2026-06-18 16:47:37 -04:00
jwinterm 28c04e8e6a ci: upload wowlet binary as artifact (downloadable from the run) 2026-06-18 16:43:02 -04:00
jwinterm 15a9a4ba20 ci: embed wownerod into wowlet (single-file build) — download release wownerod, pass WOWNEROD_DIR 2026-06-18 11:20:59 -04:00
jwinterm be653d70a9 wowlet: provide libzmq (wownero net links it) + revert zmq gate; bump submodule 2026-06-18 06:05:02 -04:00
jwinterm 5633f8a0f6 ci: add workflow_dispatch for manual iteration 2026-06-18 05:51:11 -04:00
jwinterm 49ce399264 ci: ubuntu-only build for wownero-rebase bring-up (restore full matrix when green) 2026-06-18 05:49:00 -04:00
tobtoht bb7715fdde ci: fix macos build [2] 2025-08-31 14:56:06 +02:00
tobtoht 12c1c7bb4f ci: fix macos build 2025-08-31 14:41:15 +02:00
tobtoht 1a402d2a05 ci: add macos build 2025-03-26 06:08:36 +01:00
tobtoht 1b8761f3cb ci: containerize ubuntu build 2025-02-21 20:11:24 +01:00
tobtoht a84c552d43 ci: add arch linux build 2025-02-21 20:09:05 +01:00
tobtoht 6fe43167a9 ci: use explicit ubuntu version 2024-11-03 19:55:34 +01:00
tobtoht a3d36c6122 ci: fix ubuntu dependencies 2024-11-03 19:49:48 +01:00
tobtoht a2a185b46c actions: add ubuntu without scanner build 2023-12-30 23:20:51 +01:00
tobtoht 68e3f3aecd remove broken github workflows 2022-12-27 15:16:19 +01:00
tobtoht cbc3fb1fdd Actions: macos-qt6 2022-05-27 15:02:21 +02:00
tobtoht 60bebab6f4 Actions: macos: update polyseed 2022-05-24 22:03:24 +02:00
tobtoht f4646980c7 Actions: fix polyseed portugese language encoding [2] 2022-05-24 10:54:19 +02:00
tobtoht eb98e2c200 Actions: fix polyseed portugese language encoding 2022-05-24 10:47:09 +02:00
tobtoht d660e1b66c Actions: add Polyseed dep for mac builds 2022-05-24 10:12:42 +02:00
tobtoht 6f19c108ef Actions: fix path 2022-05-23 19:55:19 +02:00
tobtoht 780e8a46e0 Actions: fixes 2022-05-23 19:18:57 +02:00
tobtoht b28c002eb9 Actions: fix CMAKE_PREFIX_PATH 2022-05-23 18:30:59 +02:00
tobtoht 39f5bc9e1d Actions: fix macOS deps 2022-05-23 18:19:55 +02:00
tobtoht aff13e6b79 Actions: add macos 2022-05-23 18:14:59 +02:00
tobtoht d80b7cba80 Actions: add Windows 2022-05-23 15:40:48 +02:00
tobtoht f0a5cd2ed5 Actions: add AppImage 2022-05-23 15:26:18 +02:00
tobtoht 5dcf49a8e1 Update Github actions 2022-05-23 14:10:07 +02:00
tobtoht 9f552603a7 Github actions 2022-05-23 12:10:41 +02:00