Skip to content

feat(linux): add host-runtime distribution pipeline - #33

Merged
inayayousfi merged 9 commits into
mainfrom
feat/linux-distribution
Aug 23, 2026
Merged

feat(linux): add host-runtime distribution pipeline#33
inayayousfi merged 9 commits into
mainfrom
feat/linux-distribution

Conversation

@inayayousfi

@inayayousfi inayayousfi commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Build compact Linux payloads that use distribution Python, PySide6, Qt, Qt Wayland, and LayerShellQt packages.
  • Add a static launcher, runtime compatibility checks, lifecycle installation, rollback, uninstall, and release assembly with SHA-256 checksums.
  • Add disposable Hyprland, KDE, and GNOME QEMU profiles with real /opt installation, SSH diagnostics, permission setup, and desktop startup.
  • Include axidev-osk-windows-install.ps1 in the unified release assets and checksum manifest.
  • Update packaging workflows and documentation for the host-runtime distribution model.

Architecture

The payload contains Axidev OSK, axidev_io, the launcher, resources, metadata, and licenses. Desktop Qt libraries remain owned by each distribution.

VM provisioning uses the lifecycle installer. The temporary host source is unmounted before reboot, and the application runs from /opt/axidev-osk.

Hyprland starts the installed launcher through its compositor configuration. KDE and GNOME use the CLI-managed XDG autostart entry.

Test Credentials

The VM profiles use the public test account axidev with password axidev. The committed SSH key is deliberately public and only supports disposable local test machines.

Verification

  • 152 Python tests passed.
  • Flake8 passed with --select=F,E9,W6.
  • Shell syntax checks passed.
  • Rust formatting passed.
  • git diff --check passed.
  • The rebuilt Linux payload passed static verification.
  • Hyprland passed native LayerShellQt, input, installation, resolution, and startup checks.
  • KDE passed installation, input, runtime, and XDG autostart checks.
  • GNOME passed installation, input, runtime, and XDG autostart checks.

Build and verify compact host-runtime payloads with lifecycle installation and release signing support.

Add disposable Hyprland, KDE, and GNOME profiles that install into /opt and validate compositor startup.
Configure supervised greeter startup for Plasma Login Manager, greetd, and LightDM while keeping each greeter authoritative.

Add clean VM coverage, installer cleanup, and documentation for the validated managers.
Publish SHA256SUMS with release assets and verify downloads against it without managing signing keys.

Document that checksums detect corruption but do not authenticate the publisher.
Base automatically changed from feat/system-setup-cli to main August 22, 2026 21:41
Preserve the unified release builder while incorporating the Windows bootstrap and Linux setup fixes from main.
Move the distribution entry point under packaging and update its callers.
Prevent self-locking upgrades, reject unusable rollbacks and mismatched release tags, and centralize greeter adapter behavior.

Document manual visible-screen VM acceptance and known GNOME limitations, with regression coverage.
Reject non-regular archive members, preserve the source install user, and recreate writable VM state before provisioning.

Remove generated attribution headers and document the corrected workflows.
Describe setup and status as configuration operations, hide the internal greeter command from public help, and state what status does not test.
@inayayousfi
inayayousfi merged commit ccc6e52 into main Aug 23, 2026
5 checks passed
@inayayousfi
inayayousfi deleted the feat/linux-distribution branch August 23, 2026 17:31
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