78 Commits
Author SHA1 Message Date
such-gitea 4050d51760 ci: keep GitHub source checks separate from private release builds 2026-10-17 05:15:39 -04:00
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 e57e0651fa guix: drop support for arm-linux-gnueabihf 2025-11-01 15:58:31 +01: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 2b347c3ef2 ci: add signpath 2025-03-25 18:05:40 +01:00
tobtoht 673b511a99 ci: disable guix commit authentication 2025-02-22 08:38:51 +01:00
tobtoht e6967fa9d2 ci: inline guix apparmor workaround 2025-02-21 20:13:00 +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 03dbd9628c Revert "ci: integrate signpath"
This reverts commit c033718956.

Revert until the SignPath GitHub app does not require admin
permissions.
2024-12-18 02:19:52 +01:00
tobtoht c033718956 ci: integrate signpath 2024-11-04 14:35:48 +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 fe6cdf8d63 build: drop i686-linux-gnu target 2024-11-02 23:31:21 +01:00
tobtoht 9d9413c4cc ci: fix ref_name 2024-10-17 21:32:34 +02:00
tobtoht 9fde18717d ci: get tag for tag build 2024-10-17 20:59:19 +02:00
tobtoht 534649a0af ci: don't run virustotal scan if key is missing [2] 2024-10-17 14:01:00 +02:00
tobtoht 4330a18464 ci: don't run virustotal scan if key is missing 2024-10-17 13:38:58 +02:00
tobtoht 70402bb55e ci: properly format hashes 2024-09-29 12:53:32 +02:00
tobtoht f9c55f82aa ci: print hashes, draft release 2024-09-17 16:11:01 +02:00
tobtoht ba6113d9c0 ci: add virustotal scan for windows exe 2024-08-16 14:01:58 +02:00
tobtoht 3a5630d3ff ci: remove ci.guix.gnu.org substitute
Causes 403 forbidden errors on GitHub CI.
2024-08-09 15:44:22 +02:00
tobtoht 719e328a14 ci: purge apparmor 2024-08-09 13:24:47 +02:00
tobtoht e06e8aaf9b ci: install apparmor-utils 2024-08-09 13:15:12 +02:00
tobtoht 02ce121029 ci: fix apparmor for 24.04 2024-08-09 13:10:26 +02:00
tobtoht 6a1d5f05c3 ci: bump ubuntu to 24.04 2024-08-09 11:16:23 +02:00
tobtoht fc30f71170 ci: add substitute server 2024-08-09 10:03:03 +02:00
tobtoht fcf5ab2bd1 actions: fix workflow 2024-03-13 12:14:37 +01:00