Binario ottimizzato 33MB: spec PyInstaller con potatura temi icona e lingue
- da 244MB a 33MB (-86%): l'hook PyGObject raccoglieva tutti i temi icona di sistema (~70MB Papirus/Breeze/Adwaita) e 122 lingue - a runtime GTK usa i temi di sistema, i bundlati erano peso morto - spec con potatura post-analisi (share/icons/*, locale solo it/en) - release v0.1.0 su Gitea con binario allegato (33.4MB)
This commit is contained in:
@@ -40,19 +40,19 @@ Le sessioni **con nome** (`/name` in pi) sono mostrate in **grassetto**.
|
||||
|
||||
## Eseguibile portabile
|
||||
|
||||
Build dell'eseguibile singolo (PyInstaller, non richiede `python3-dev`):
|
||||
Build dell'eseguibile singolo ottimizzato (33 MB, PyInstaller + potatura):
|
||||
|
||||
```bash
|
||||
python3 -m pip install --user --break-system-packages pyinstaller
|
||||
python3 -m PyInstaller --onefile --windowed --name pi-session-launcher \
|
||||
--collect-all gi --collect-all cairo \
|
||||
--hidden-import gi.repository.Gtk --hidden-import gi.repository.Gdk \
|
||||
--hidden-import gi.repository.Gio --hidden-import gi.repository.GLib \
|
||||
--hidden-import gi.repository.Pango \
|
||||
pi-session-launcher.py
|
||||
# build da spec (vedi pi-session-launcher.spec): pota temi icona di sistema
|
||||
# (GTK usa quelli di sistema a runtime) e tiene solo lingue it/en
|
||||
python3 -m PyInstaller --clean --noconfirm pi-session-launcher.spec
|
||||
./dist/pi-session-launcher
|
||||
```
|
||||
|
||||
Il file `.spec` contiene la potatura post-analisi: rimuove `share/icons/*`
|
||||
(tutti i temi installati sul sistema, ~70 MB) e `share/locale/*` eccetto it/en.
|
||||
|
||||
> Nota: Nuitka richiede gli header `python3-dev` (non installabili senza sudo);
|
||||
> PyInstaller è la via raccomandata dalla documentazione PyGObject per app GTK.
|
||||
|
||||
@@ -60,6 +60,7 @@ python3 -m PyInstaller --onefile --windowed --name pi-session-launcher \
|
||||
|
||||
Mirror pubblico su Gitea: https://git.enne2.net/enne2/pi-session-launcher
|
||||
|
||||
Release: https://git.enne2.net/enne2/pi-session-launcher/releases/tag/v0.1.0
|
||||
## Come funziona
|
||||
|
||||
- Ogni sessione è un file JSONL in `~/.pi/agent/sessions/--<percorso>--/<timestamp>_<uuid>.jsonl`.
|
||||
|
||||
Reference in New Issue
Block a user