Impacchettare Compiz Fusion GIT con MakeFusionDebs
Ci siamo! Come avevo anticipato nel post precedente, mi sono messo di buzzo buono, ed ho terminato il lo script dinamico per impacchettare Compiz e Compiz Fusion direttamente da GIT.
Infatti, già quando iniziai ad impacchettare Beryl-SVN, come presupposto iniziale mi scrissi uno script che chiamavo rudimentalmente ‘makedebs‘ che mi permetteva di fare tutto il lavoro senza troppo sforzo e, sopratutto, senza necessità di una grossa manutenzione…
Col breve passaggio di Beryl da SVN a GIT, aggiornai lo script per funzionare anche con il Software di Controllo delle Versioni Distribuito di Torvalds (= git) e con l’arrivo di CompComm (poi Compiz Fusion) l’ho aggiornato ulteriormente…
Il maggior problema di Compiz Fusion è il fatto che non vengono distribuite delle cartelle debian, di default che consentono la realizzazione dei pacchetti, per tanto (com era già avvenuto anche per alcune parti di Beryl e come succede quasi sempre per gli altri pacchetti che produco) le ho dovute fare io, praticamente da 0…
Avendo ricevuto l’accesso in scrittura al GIT di OpenCompositing qualche settimana fa, ho deciso che il nuovo sistema sarebbe stato molto più git-based.
Con un po’ di ritardo, stasera ho inserito in GIT tutte le cartelle debian necessarie alla creazione di pacchetti .deb, quindi dopo diversi aggiornamenti, ho inserito anche il nuovo makefusiondebs che vi permetterà di compilare e pachettizzare tutto!
Le modifiche rispetto alla versione precedente sono:
- Autoupdate (lo script si auto-aggiorna all’avvio)
- Supporto ad un file di configurazione (makefusiondebs-options)
- Supporto per le patch debian (sistema quilt)
- Controllo dell’ABIVERSION dei plugin (permette la ricompilazione automatica)
- La versione di base ora viene letta anche dal configure.ac
- Supporto per il prefisso delle versioni debian (#:versione)
- Corretta la rimozione dei suffissi debian alla versione
- Possibilità di definire il nome delle cartelle in cui salvare i dati
- Spostamento dei vecchi deb basato anche sul pacchetto sorgente
- Le cartelle debian utente, ora hanno priorità su quelle scaricate
- Codice ripulito
- Altre correzioni sparse che non ricordo 🙂
Per avere tutto questo, dopo che avete ripulito il vostro sistema dalle installazioni di compiz in /usr/local (soprattutto rimuovendo i file /usr/local/lib/pkgconfig/compiz*.pc), vi basterà dare i seguenti comandi:
git-clone git://anongit.opencompositing.org/users/3v1n0/compiz-fusion-debian-builder
cd compiz-fusion-debian-builder
./makefusiondebs
A questo punto lo script tenterà prima di aggiornare sé stesso (ed in caso positivo di riavviarsi), se non impostato diversamente (vedi sotto), e poi scaricare (o aggiornare) tutte le sezioni del GIT definiti (che comprendono sia compiz-fusion-debian che compiz-wrapper – tra l’altro quest’ultimo è stato integrato in questi giorni proprio nei pacchetti di Ubuntu Gutsy!!) nelle opzioni…
Ho parlato di opzioni, sì, perché essendo l’autoaggiornamento basato su GIT, per evitare problemi col passare del tempo, ho deciso di dare la possibilità di definire le proprie impostazioni in un file parallelo, impostato di default a makefusiondebs-options, che potrete editare (mantenendo la sintassi bash) per personalizzare l’impacchettamento (piuttosto che toccando lo script stesso, per cui semmai inviatemi delle patch, ma che è meglio non modificare direttamente!).
Infine, un accenno ai parametri accettati dallo script:
./makefusiondebs # esegue tutti i passaggi (aggiorna ed impacchetta)
./makefusiondebs update # esegue solo l’aggiornamento dei pacchetti
./makefusiondebs build # impacchetta solo ciò che serve
./makefusiondebs <item> # impacchetta solo <item> (se necessario)
./makefusiondebs rebuild <item> # forza la ricompilazione di <item>
./makefusiondebs repack <item> # forza il rimpacchettamento di <item>
Adesso se non potete o non volete usare i miei deb di Compiz, sarà possibile e molto facile creare pacchetti anche per tutte le distribuzioni (basate su debian) e tutte le architetture; se vi dovesse servire hosting per i vostri pacchetti – per un eventuale repository – contattatemi pure!
Maggiori informazioni le troverete sicuramente in questo thread di OpenCompositing.
Bye ^_^