That’s my blog… Life and Linux

Impacchettare Compiz Fusion GIT con MakeFusionDebs

Make-Compiz-Fusion-ScriptCi 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 rudimentalmentemakedebs‘ 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 ^_^ 

  • maurizio

    @ Erik

    se per problema al punto 139 intendi quello dello stop di compiz con metacity, Trevino ha spiegato che non niente di cui preoccuparsi (in fondo compiz lo stai chiudendo ….) 

  • maurizio, genera prima plugins-main (con ./makedebs plugins-main), quindi installa quel pacchetto e poi riavvia lo script normalmente…

  • maurizio

    Trevino, grazie per la risposta, vedo di riprovare anche se mi sembra che quando mi ha dato errore il plugin main fosse installato (ma non ne sono proprio sicuro a questo punto)

    A proposito, quindi quando si genera una nuova serie di pacchetti con makefusiondebs non è necessario disinstallare prima quelli installati in precedenza? anzi mi sembra di capire che sia addirittura sconsigliato

    ciao, grazie 

  • maurizio

    Con la procedura indicata al commento 152 la creazione dei pacchetti è andata a buon fine, però quando li ho installati e ho avviato compiz, alcuni plugin non li abilitava perchè c’era un problema di date diverse nelle versioni ABI

    Per cui ho eliminato la dir /fusion e ho riavviato lo script per vedere di riallineare tutte le date dei pacchetti

    Ora tutti i pacchetti si installano e funzionano

    Però durante la compilazione ho notato che scorrevano molte righe con error (che non sono riuscito a salvare) che si riferivano a screensaver 

  • Non saprei… Il plugin screensaver qui si compila correttamente, resta comunque il fatto che sono plugin "unofficial" quindi può anche capitare che a volte non facciano…

  • maurizio

    mi manca forse qualche libreria particolare da installare? (per la compilazione del plugin screensaver, intendo)

    a proposito, l’output che si produce durante la compilazione è possibile inviarlo in qualche modo anche a un file di log? Con qualcosa tipo: ./makefusiondebs > makefusiondebs.log?

  • Un log completo lo puoi generare usando il programma script. Fai:

    script makefusiondebs.log -c ./makefusiondebs

    Ci sta tu debba installarlo, sta nel pacchetto bsdutils

     

  • maurizio

    grazie

    su eventuali librerie necessarie per compilare il plugin screensaver sai dirmi qualcosa? o della verifica se ne incarica già il tuo script?

  • Mh, no di quei plugin non se ne occupa… So che è necessario di sicuro il pacchetto x11proto-scrnsaver-dev

  • Fiste788

    a me non parte più il compiz config setting manager… mi ritorna questo errore

    Traceback (most recent call last):
      File "/usr/bin/ccsm", line 29, in <module>
        gettext.bindtextdomain("ccsm", DataDir + "/locale")
    NameError: name ‘DataDir’ is not defined

    qualcuno sa perchè? 

  • Che versione stai usando di python-compizconfig? Controlla che sia la 0.0.1*

  • Fiste788

    si.. è la 0.0.1 aggiornata all’11 luglio… il problema è che mi sono accorto che lo script non mi crea neanche più il pacchetto compiz-config-setting-manager

  • luca

    piccolo problema da 4gg a questa parte… partendo "dal vuoto" riesco a compilare correttamente (a parte un’assurda richiesta di installare compiz, compiz-core, compiz-dev e qualcos’altro)…

     

    ridando ./makefusiondebs qualche ora dopo per vedere se ci sono stati cambiamenti ricevo il seguente messaggio…

     

    Updating the widget package…
    patching file widget.xml
    Already up-to-date.

    Problems occurred while building extra-items packages… Continue Building?
     [Y/n]:  

     

    cancellando la cartella extra-items e ridando il comando va tutto bene… consigli?? sono son il cellulare ed ho limiti di traffico 🙁   

     

  • mhmhm… Strano non ho mai ricevuto una cosa del genere… Sopra non ti dice altro?

  • Sorry for writting in English since no parlo italiano. I tried makefusiondebs on debian lenny amd64/i386 and it failed on libcompizconfig packages (it seems it builds but dh_install complains):

    <code>
    dh_installudev -plibcompizconfig0
    dh_install -plibcompizconfig0  –sourcedir=debian/tmp –list-missing
    dh_install: libcompizconfig0 missing files (usr/lib/compiz/*.so), aborting
    make: ** [binary-install/libcompizconfig0] Erro 1
    </code>

    The files seem to be there

    <code>
    $ ls fusion/libcompizconfig/debian/tmp/usr/lib/
    compizconfig       libcompizconfig.la  libcompizconfig.so.0      pkgconfig
    libcompizconfig.a  libcompizconfig.so  libcompizconfig.so.0.0.0
    </code> 

     I dont know if some upgrade broke the build system because I had succeded in building it before.

    Thanks a lot for the script.  

     

  • Pingback: fusion-icon per Debian Sid i386/ppc [deb] « O.S. Revolution()

  • luca

    continuo a ricevere errori nella compilazione, nonostante abbia cancellato tutto e sia ripartito da zero…

     

    http://rafb.net/p/f1Zjq044.html

     

    qualcuno mi sa aiutare??   

    grazie

    luca   

     

  • qulc altro oltre a me ha problemi con la patch italian e il file po/it.po?? compiz non si compila….

  • Fiste788

    si anche io stesso problema… mi sa che dobbiamo aspettare il ritorno di trevino

  • lollo

    1 out of 4 hunks FAILED — rejects in file src/display.c
    patching file src/Makefile.am
    Patch 013-add-cursor-theme-support.patch does not apply (enforce with -f)
    make: *** [debian/stamp-patched] Error 1

     

    cosa posso fare?? 3v1 help! 

  • neubauten84

    Ho riprovato lo script per curiosità ma arrivato a un certo punto si arresta tutto perchè manca il file x11-xcb…capita anche a voi?come si può risolvere?

  • luca

    xcb è una brutta dipendenza che hanno aggiunto e che ancora pochi possono avere il lusso di avere…

     per ora aspetta, o usa lo script di telperion 🙂

  • Beh, veramente ho fatto ed ho aggiunto a questo script una patch per rimuovere il supporto di xcb già da metà agosto…

    Controlla di aver eseguito correttamente l’aggiornamento visto che la compilazione funziona da tanto… 

  • Complimenti!!! veramente!!!

  • Temo che la patch 013 di compiz debba essere aggiornata. E` cambiato compiz-core.h e cosi` com’e` fallisce.

  • Pingback: Ridimensionare le finestre rallenta Ubuntu, risolviamo la questione. « Ispirazioni informatiche()

  • Pingback: Treviño’s Blog » Archives » Compiz Fusion AMD-64 Ubuntu Repository()

  • Pingback: Impacchettare Compiz Fusion GIT con MakeFusionDebs | L'angolo della condivisione()

  • Terrific job here. I genuinely enjoyed what you had to say. Keep heading because you unquestionably bring a new voice to this subject. Not many people would say what youve said and still make it interesting. Properly, at least Im interested. Cant wait to see additional of this from you.