You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Mar 26, 2024. It is now read-only.
Hypergolix should be distributed as a standalone package with its own python interpreter for all supported platforms. Installation should be as simple as "download, install, done".
Some important bits to consider:
cross-platform install experience and app invocation
what's the update/upgrade story?
cross-platform code signing?
Current plan:
Frozen (PyInstaller) or compiled (Nuitka) bootstrap app. This is what gets signed, installed, and invoked.
Written in python 3.5 (for stability reasons, not 3.6)
Creates python root installations for each minor version, 3.5.X+ (eg py3k5, py3k6)
Handles updating each python root to newest patch version (be sure to checksum and checksig)
On startup, scans a directory for app config files specifying:
App python version
App installation entry point
App invocation entry point
App upgrade entry point
(After bootstrap is complete, also listens for some kind of "new app config available" notification)
Checks for env for each app; if none exists, creates one and installs the app
Invokes each app in its own child process
Listens for signals, including machine shutdown, and passes them to child processes
Normal, pure-python Hypergolix app, exactly as it currently works
Uses the bootstrap for updating
Uses pip for installation, potentially with a local wheelhouse distributed with the app
Unresolved questions:
How should this handle privilege deescalation for the headless daemon? The config file should only be readable by root, which would imply the bootstrap would need to run as root. But ideally it would deescalate after startup. Will apps need to manually deescalate? Will apps need special sudo option in config file? ... etc.
For the headless daemon, does the bootstrap need to be daemonized?
Should the bootstrap app do any source validation for tamper resistance when invoking apps?
Should the bootstrap app archive known-good app installs and be able to revert to them upon upgrade problems?
The text was updated successfully, but these errors were encountered:
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Hypergolix should be distributed as a standalone package with its own python interpreter for all supported platforms. Installation should be as simple as "download, install, done".
Some important bits to consider:
Current plan:
Unresolved questions:
The text was updated successfully, but these errors were encountered: