Skip to content

feat(packaging): Fase 4 — Flatpak packaging + SPDX fix + metainfo (Charter-01)#48

Merged
montfort merged 1 commit into
mainfrom
feat/charter-01-fase-4-flatpak-packaging
Jun 4, 2026
Merged

feat(packaging): Fase 4 — Flatpak packaging + SPDX fix + metainfo (Charter-01)#48
montfort merged 1 commit into
mainfrom
feat/charter-01-fase-4-flatpak-packaging

Conversation

@montfort

@montfort montfort commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Charter-01 Fase 4 (scope item 5): Flatpak packaging + lnxdrive.spdx fix + metainfo completion.

Manifiesto Flatpak (lnxdrive-packaging/flatpak/com.strangedaystech.LNXDrive.yaml)

Reescritura completa — el esqueleto heredado no era completable incrementalmente:

  • ❌ Sources apuntaban a dos repos git separados con tag v0.1.0 que no existen (esto es un monorepo sin tags) → ✅ sources type: dir relativos al manifiesto, con skip: [target]
  • command: lnxdrive-gnome ejecutaba un stub ("Not yet implemented") → ✅ command: lnxdrive-preferences (la GUI real); el daemon vía flatpak run --command=lnxdrived
  • ❌ Runtime 45 (EOL) → ✅ org.gnome.Platform 49 — el "47" declarado en el Charter también estaba EOL (desde 2025, antes de la firma del Charter): drift R8, ver AIDEC-2026-06-04-001 + atomic update de la tabla Files-to-modify
  • ❌ Sin install stages → ✅ módulo gnome vía meson (-Denable_nautilus=false -Denable_shell=false): instala panel, iconos, .desktop, metainfo y schema GSettings con el build system existente. Nautilus/Shell/GOA son host-side y quedan fuera del sandbox (limitación a documentar en Fase 5)
  • 🔒 --socket=session-bus (bus sin restricción) → --own-name + --talk-name scoped, coherente con la postura RISK-002

lnxdrive.spdx

Describía StrayMark bajo MIT con versión 1.0.0. Ahora describe LNXDrive bajo GPL-3.0-or-later (la licencia real de LICENSE y todos los crates), versión 0.1.0 (la unificación a 0.1.0-alpha.1 es Fase 5).

Metainfo (…/preferences/data/com.strangedaystech.LNXDrive.Preferences.metainfo.xml.in)

Descripción completa (3 párrafos + features por página), URLs del monorepo, 3 screenshots con nombres canónicos que Fase 5 debe producir, release 0.1.0-alpha.1 type="development". Nota: la tabla del Charter ubicaba este archivo bajo lnxdrive-packaging/flatpak/ — ruta corregida (drift R8).

Verification

  • flatpak run org.flatpak.Builder --user --install --force-clean build-dir lnxdrive-packaging/flatpak/com.strangedaystech.LNXDrive.yamlconstruye e instala limpio (33.9 MB, runtime org.gnome.Platform//49)
  • ✅ Post-install en sandbox: /app/bin/{lnxdrived,lnxdrive,lnxdrive-preferences} presentes; lnxdrive --versionlnxdrive 0.1.0; .desktop, gschemas.compiled, icono y metainfo exportados
  • appstreamcli validate --no-net: pass (warnings con red = screenshots 404, esperado hasta Fase 5)
  • desktop-file-validate: limpio
  • straymark validate: 0 errores
  • ⚠️ check-charter-drift.sh: flags esperados/falsos positivos, documentados en el AILOG §Risk
  • 🔜 FUSE bajo sandbox: intencionalmente diferido al smoke-test R2 en VM (Fase 6)

Governanza

  • AILOG-2026-06-04-001 (agent-logs/packaging/, primer uso del subdirectorio, risk_level: medium según Charter)
  • AIDEC-2026-06-04-001 (runtime 49, sources dir, command, módulos host-side, bus scoped, red en build)
  • Registro de follow-ups: +3 entradas (vendoring Flathub, README de packaging desactualizado, nombres canónicos de screenshots) en el mismo commit (§13)
  • Atomic update del Charter (formato v4): filas Fase 4 + anotación scope item 5

🤖 Generated with Claude Code

…arter-01)

Rewrite the Flatpak manifest from a broken skeleton (non-existent split
git repos, EOL runtime 45, command pointing at a stub) into a working
one: builds lnxdrived + lnxdrive (cargo) and lnxdrive-preferences
(meson, host-side Nautilus/Shell/GOA modules excluded) from monorepo
dir sources, targets org.gnome.Platform 49, and replaces the
unrestricted session bus with scoped bus names per the RISK-002
posture. Fix lnxdrive.spdx (described StrayMark under MIT; now
describes LNXDrive under GPL-3.0-or-later). Complete the Preferences
metainfo (full description, monorepo URLs, screenshots, 0.1.0-alpha.1
development release).

Verified: bundle builds and installs cleanly via org.flatpak.Builder;
3 binaries + desktop/schema/icon/metainfo exported in the sandbox.

Drift R8 (runtime 47→49, metainfo path) documented in
AILOG-2026-06-04-001 + AIDEC-2026-06-04-001 with atomic Charter update.
Follow-ups registry extended in the same commit (3 entries).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@montfort montfort merged commit 4474a5c into main Jun 4, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant