SpatialBundles piccola presentazione presso pollycoke.net
In seguito al presente articolo su http://pollycoke.net
lavorando su un progetto analogo mi sono sentito di intervenire con un post per esplicitare meglio il mio lavoro:
vorrei portare alla vostra attenzione un progetto tutto italiano che sto sviluppando con certosina pazienza che cerca di risolvere una buona parte dei problemi introdotti da tutti i sistemi in Bundle oggi esistenti.
Alcuni riferimenti diretti qui:
http://developer.infodomestic.com
https://sourceforge.net/project/showfiles.php?group_id=199098
Di seguito lo skeleton che sto usando per la costruizione del Bundle:
http://it.wikipedia.org/wiki/SpatialBundles
in particolare uno scambio di punti di vista con Alexander Larsson
http://lists.freedesktop.org/archives/xdg/2007-September/008812.html
In poche parole uno SpatialBundle è un Bundle semicompleto che vive in un file e necessita quasi esclusivamente per funzionare della shell POSIX (ora bash ma poi dash compatibile) e di xmessage per alcune interazioni.
Ad oggi lo sviluppo avviene tramite Ubuntu quindi sfrutto anche una componente di zenity e della system tray per migliorare l'esperienza di ritorno con l'utente, ma ho intenzione di rendermi indipendente anche da loro.
Alcune differenze dagli altri sistemi ormai noti come glik klik AppDir & co sono:
Vive in un file ed in quanto tale è manipolabile come un file.
Non necessita di istallazione 1 programma = 1 file = 1 click per eseguirlo (a meno del doppio clik)
Non necessita di infrastrutture esotiche tipo FUSE
Non necessita di accesso root
Non necessita di preinstallazione di programmi proxy tipo klik
Si comporta come un eseguibile al pari di glick ma con qualche riserva in quanto è un file shell con il payload incorporato (usa il codice di makeself/loki)
Lavora in ambiente di memoria protetto e non permette il code injection in quanto ogni esecuzione del bundle ha un controllo checksum e crc di consistenza.
Non usa file immegine cramfs o altro.
Non sporca il file fstab
La sua architettura interna è 100% ROX Application Directory (ho inserito anche il proxy standard AppDir) compatibile e presenta una compatibilità in via di miglioramento con le Application Bundle di OSX/NEXTSTEP.
In particolare se con il ROX filer si visita la cartella Programs che contiene la cache dello SpatialBundle è possibile vedere direttamente un'icona in stile ROX ed avviare dalla cache l'applicazione (operazione non necessaria).
L'esecuzione del Bundle produce un menu contestuale presente nella tray per il controllo primordiale del Bundle stesso compresa la rimozione della cache (che viene comunque rimossa ad ogni riavvio del computer).
E' progettato per venire incontro alle esigenze della "Nonna".
Soffre di alcune latenze al primo avvio che sono funzione dell'espansione del file nella cache.
Sto progettando un metodo statistico che cone le dovute premesse conservative migra la cache da disco a ram pura per velocizzare l'avvio di applicazioni pesanti (ad esempio OpenOffice).
Vorrebbe essere multipiattaforma attaversando GNU/Linux - BSD - OSX - Windows (ovvero li dove è possibile installare una shell standard POSIX o al limite bash).
2 commenti:
Lodevolissima iniziativa quella di potere usare un programma senza preoccuparsi delle dipendenze e, addirittura, in prospettiva, indipendentente dalla distro.
Domanda, creare questo file risulta semplice pure per pacchetti di grosse dimensioni?
Ad es. a me interesserebbe disporre sempre degli ultimi aggiornamenti di gimp senza dovere installare nuove vers. di ubuntu è molto complicato realizzare questo pacchetto? Magari da sorgente? Oppure aspetti la vers. 1.0 in modo da rilasciare pure una guida su come realizzare facilmente questo pacchetto?
Ciao,
grazie per i complimenti ;)
Teoricamente potrei impacchettare un'intera distribuzione in uno SpatialBundles se questo avesse senso :)
Per avere un vecchio esempio, in http://downloads.infodomestic.com trovi un vecchio pacchetto KOffice (che da solo è molto piu grande di GIMP) che gia allora nelle prime fasi di prototipizzazione degli SpatialBundle funzionava abbastanza bene.
Per risolvere il tuo problema devi considerare la tecnologia divisa in due parti:
1) Il software che vuoi distribuire (esempio GIMP)
2) Il distributore del software (SpatialBundle)
Se vuoi un backport di GIMP devi (tu manutentore dello SpatialBundle di GIMP) assicurarti di poterlo compilare sulla tua piattaforma, fatto questo la creazione dello SpatialBundle è una pura banalità in quanto il builder che sto progettando fa tutto da solo (quasi tutto).
Tutta quanta la tecnologia da capo a piedi la rilascio al pubblico solo dalla 1.0 in poi, quando mi sono assicurato che sia un sistema perfettamente usabile anche per sviluppatori visual basic di windows che non capiscono una mazza di tecnologie di sviluppo in stile GNU.org
Cio equivale quasi a dire che impacchettare dati e programmi in uno SpatialBundle sarà quasi facile come trascinare i dati di interesse in una cartella e poi eseguire un file di controllo...insomma quasi a prova di nonna.
ciao :)
Luca
Posta un commento