Watch
1
0
Fork
You've already forked SouveraineOS
0
SouveraineOS/docs/tasks/71-qml-mobile-scanner-candidate.md

2.4 KiB

TASK 71 — QmlMobileScanner as a components app candidate

Status: recon 2026-08-11, verdict owed. Source reviewed: emericg/QmlMobileScanner (GPL-3.0, upstream clone for reference).

What it is

A demo barcode & QR scanner + writer in Qt Quick: live camera scanning, read-from-picture (WIP), barcode generation, and a SQLite history (DatabaseManager). Phone, tablet, and desktop UIs in one tree, plus a small ComponentLibrary. Backends: zxing-cpp v3.0.2, QZXing v3.3.0 (Qt6 port), and zint v2.16 for generation. Qt 6.8+, Qt Multimedia with ffmpeg backend, CMake.

Why it fits (and the caveats)

  • License: GPL-3.0 inside Souveraine's AGPL-3.0 is compatible — AGPL is a GPLv3 superset, vendoring is legal, but the component's provenance must be visible (thirdparty/ carries full zxing-cpp + zint trees already).
  • The phone-side gate is camera: TASK-46 has the front IMX355 streaming since 2026-07-29 with the rear IMX363 DT still unbuilt. Scanner can ship laptop-first with a webcam and land on glass when the rear camera does.
  • Qt Multimedia/ffmpeg is the heavyweight — check the ffmpeg backend actually binds freedreno's V4L2 before committing; the no-GNOME/no-KDE constraint doesn't bar Qt, but a second multimedia stack might be worth a fight.
  • fontawesome-qml (schnitzeltony/fontawesome-qml, LGPL-3.0): flagged as possibly needed. Verified: the scanner's QML has no FontLoader or ttf references — icons are its own MenuXxx components and logo images — so it may already work as-is; fontawesome would only matter if we re-skin. Marked unverified, not assumed.
  • souveraine-components/ is referenced in docs/README.md (authority binaries + audit ladder) but has no local repo — decide whether this candidate lives in a new components repo (TASK-25 packaging story) or stays an app package.

What's owed

  1. Verdict: adopt as component / adopt as app / archive the idea.
  2. If adopt: dependency pass (ffmpeg backend on freedreno), icon story (fontawesome verdict), and whether the demo-grade code (read-from-picture WIP, writer WIP) matches the acceptance bar.

Acceptance

One written verdict with the camera gate and multimedia stack named, and — if adopt — the component landed in the repo of record.

Connects to

TASK-46 (camera gate), TASK-25 (one repo, all packages), docs/README.md (components reference).