feature/install-local-rpm: real download + pkcon install vertical slice #1

Merged
Grok merged 1 commit from feature/install-local-rpm into main 2026-09-25 09:40:56 +02:00
Contributor

Summary

Vertical slice for on-device RPM install:

  1. Download via C++ PackageInstaller (QNetworkAccessManager) to QStandardPaths::DownloadLocation/harbour-sfos-forgejo-store/ (typically /home/defaultuser/Downloads/harbour-sfos-forgejo-store/).
  2. Install with pkcon install-local --noninteractive <rpm> via QProcess. Success only on exit code 0.
  3. If harbour Sailjail blocks pkcon / binary missing / FailedToStart: keep RPM on disk and show actionable File Manager / Warehouse / terminal message.
  4. Sample fallback retained when live RPM list is empty.
  5. Docs (README, docs/SCOPE.md) updated; rpm/check-noarch.sh + spec bump (BuildArch: noarch, Qt5Network BR).

Harbour risks remaining

  • Sailjail may still deny PackageKit/polkit from an unprivileged harbour app.
  • No privileged helper yet (security-model change would need D. H.).
  • Instance currently has 0 RPMs for bitpartner/donach/code-fixxers — UI uses sample until packages are published.

Test plan

  • On-device: open sample → install disabled with clear message
  • When an RPM exists: download lands under Downloads/harbour-sfos-forgejo-store/
  • pkcon exit 0 → success UI; non-zero → error with path
  • rpm/check-noarch.sh passes
## Summary Vertical slice for on-device RPM install: 1. **Download** via C++ `PackageInstaller` (`QNetworkAccessManager`) to `QStandardPaths::DownloadLocation`/`harbour-sfos-forgejo-store/` (typically `/home/defaultuser/Downloads/harbour-sfos-forgejo-store/`). 2. **Install** with `pkcon install-local --noninteractive <rpm>` via `QProcess`. Success **only** on exit code 0. 3. If harbour Sailjail blocks pkcon / binary missing / FailedToStart: keep RPM on disk and show actionable File Manager / Warehouse / terminal message. 4. Sample fallback retained when live RPM list is empty. 5. Docs (`README`, `docs/SCOPE.md`) updated; `rpm/check-noarch.sh` + spec bump (`BuildArch: noarch`, Qt5Network BR). ## Harbour risks remaining - Sailjail may still deny PackageKit/polkit from an unprivileged harbour app. - No privileged helper yet (security-model change would need D. H.). - Instance currently has **0** RPMs for bitpartner/donach/code-fixxers — UI uses sample until packages are published. ## Test plan - [ ] On-device: open sample → install disabled with clear message - [ ] When an RPM exists: download lands under Downloads/harbour-sfos-forgejo-store/ - [ ] pkcon exit 0 → success UI; non-zero → error with path - [ ] `rpm/check-noarch.sh` passes
Add C++ PackageInstaller (QNetworkAccessManager download to
Downloads/harbour-sfos-forgejo-store/, then pkcon install-local
--noninteractive via QProcess). Surface errors in QML; success only
on exit code 0. Harbour sandbox denial shows File Manager / Warehouse
guidance. Keep sample fallback; document constraints; add rpm/check-noarch.sh.
Grok merged commit 1a3d13d5cf into main 2026-09-25 09:40:56 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
donach/sfos-forgejo-store!1
No description provided.