Signed desktop installer for macOS and Linux

Abierto
#521 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
github-actions, linux, macos, rust

Línea de trabajo

Read the linked drafts Elacity/elastos-agent-host-spike#1386 and Elacity/elastos-launcher#46, then review the referenced issues #520, #518, #519, and #452. First determine which draft to ship and resolve the passkey and release requirements across macOS and Ubuntu x86-64/ARM64. Done means the published candidate meets the listed install, sign-in, update, service, and uninstall acceptance checks.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement
Problem

People install ElastOS 2.0.0 by pasting a command into a terminal. A signed app that installs ElastOS and keeps Home running would remove the main barrier for new users. Two drafts exist: the desktop app in Elacity/elastos-agent-host-spike#1386 and the Runtime-only launcher in Elacity/elastos-launcher#46. We ship one.

Expected behaviour
  • One app. Choose #1386 or launcher #46, close the other, and carry over what fits from both: the launcher's Developer ID signing and notarization setup; #1386's hash-pinned private Runtime copy, clean-environment install and existing-Home adoption. If #1386 is chosen, rebase it onto current spike/agent-host first.
  • Install: double-click, no terminal. The app installs ElastOS through #520, registers the background service (#518, #519) and opens Home.
  • Passkeys: #1386 makes passkeys work in the app window, with Touch ID on Mac and the TPM on Linux, where browsers often have no passkey store (#452). Today the window accepts only passkeys the app holds. Whichever way ships, a person who already has a passkey in their browser can sign in through the app, and a person who set up in the app can still sign in from a browser or another device.
  • Menu bar: Home status, Open Home, Stop, Start at login on or off.
  • Mac: a DMG signed with Elacity's Developer ID, hardened runtime, notarized and stapled. Minimum macOS matches the Runtime's.
  • Linux: a package for Ubuntu x86-64 and ARM64 (including Jetson) whose download can be checked against the release signature.
  • Release pipeline: built and signed from the same release as install.sh, which packaging verifies exactly as install.sh does before building. The app's own updates are signed and checked. No developer tools or lab settings in release builds.
  • Signing credentials: "Developer ID Application: Elacity LLC" already signs and notarizes elastos-launcher (checked on v1.4.0); reuse it. New certificates or paid signing services need Anders's approval.
  • Uninstall: removes the app and the service; keeps Home's data unless the person asks to delete it.
  • Size: the Browser image is not packed in; Home fetches it when needed.
Out of scope
  • Windows: #265.
Acceptance (on the published candidate)
  • Mac, new user: the downloaded DMG opens without warnings; install with no terminal; create a passkey; quit the app and Home keeps running; restart the Mac and Home comes back; update in System; uninstall keeps data.
  • Mac with an existing terminal-installed Home: adopted; its browser passkey signs in through the app, and the browser still works.
  • Ubuntu x86-64, Ubuntu ARM64 and Jetson: the same journeys. Linux passkey creation depends on #452; until it is fixed, the test uses a phone or security-key passkey and says so.
Links

Elacity/elastos-agent-host-spike#1386, Elacity/elastos-launcher#46, #520, #518, #519, #172, #265, #452.

Lenguaje dominante
Rust
Estrellas
6
Forks
2
Merge medio
1 d 3 h
PR fusionados (30 d)
42

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de elastos/elastos-runtime

Todos los issues de elastos/elastos-runtime

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.