Menu Chiudi

Come installare Compiz da sorgenti

aggiornamento 01/06/07: questa guida è stata completamente rinnovata e ho deciso di farne un nuovo post: “Installare e Configurare Compiz da GIT

Se non sapete come si installa software da sorgenti è assolutamente indispensabile che leggiate questi miei post, sono scritti per essere facilmente comprensibili e contengono informazioni interessanti per chiunque voglia usare GNU/Linux, ecco i post:

Ok una volta fatte le voste letturine andiamo avanti:

Perché compilare da sorgenti?

Già, perché? Ci sono centinaia di pacchetti reperibili per qualsiasi distro, quindi tanto vale installare quelli, no? La risposta è: “perché possiamo farlo!” :) Queste informazioni servono solo ad indicare un altro modo per installare il nostro WM preferito, chi segue le mie guide su Compiz con Xgl o AIGLX può benissimo continuare ad installare da sorgenti.


Potrebbe essere utile sapere come compilare Compiz anche in situazioni come quella degli ultimi due giorni, in cui le distribuzioni binarie del pacchetto stanno funzionando male… (soprattutto in Edgy). Io in ogni caso compilo tutte le app che seguo un po’ più da vicino, è una cosa che mi da modo di conoscere più a fondo i progetti che mi interessano, ma questa è un’altra storia.

Versioni rilasciate o CVS?

Questa è una scelta che lascio a voi, al momento la versione CVS ha qualche problema. Il mio consiglio è di scaricare l’ultima versione stabile oppure l’ultima versione di sviluppo, le differenze non sono troppe, direttametne da questo annuncio dato in Mailing List da David Reveman. Se invece volete a tutti i costi farvi del male sappiate che per scaricare il codice avrete bisogno di “git”, ecco il comando:

$: git clone git://anongit.freedesktop.org/git/xorg/app/compiz

Vi ricordo che se scaricate la versione cvs dovrete creare lo script configure con il comando

$: ./autogen.sh

Dopo di ciò le procedure sono identiche per tutte le versioni.

Compilare con opzioni su misura

Come sapete uno dei vantaggi di compilare da sorgenti è quello di poter decidere se includere o escludere funzionalità, nel nostro caso le funzionalità offerte in Compiz dipendono molto dalle librerie di sviluppo che abbiamo installate, e vengono automaticamente rilevate. Ecco il comando che do io:

S: ./configure --prefix=/usr/ --enable-librsvg

Ed ecco cosa mi restituisce il comando una volta finito:

compiz.png

Per il supporto ai temi di metacity le nuovissime versioni di Compiz richiedono metacity 2.16 installato, ad esempio. Una volta completato configure possiamo compilare il codice con il comando:

$: make

Dopo 5 minuti circa sarà tutto compilato (salvo errori) e potremo installare il tutto. Qui ognuno ha i suoi metodi preferiti, io sovrascrivo bellamente i file del pacchetto compiz-freedesktop-gnome di gandalfn, tanto so dove vanno a finire tutti i file, e quindi uso:

$: make install

Il tocco felipesco

Per la serie “siamo tutti figli di mamma Debian”, un commento alla guida “Ubuntu Edgy + AIGLX + Compiz” mi ha portato l’attenzione allo script che usa Debian per lanciare Compiz (grazie massimiliano!). Per usare questo script bisogna rinominare il vero eseguibile di Compiz:

$: sudo mv /usr/bin/compiz /usr/bin/compiz.real

Creare un nuovo /usr/bin/compiz, così:

$: sudo gedit /usr/bin/compiz

e metterci dentro queste righe:

#!/bin/sh
# courtesy of Debian :-)

COMPIZ_OPTIONS="--strict-binding --use-cow"
COMPIZ_PLUGINS=""

#if the GLX implementation is not by NVIDIA, use indirect rendering

/usr/bin/glxinfo | grep "client glx vendor string: NVIDIA Corporation" > /dev/null 2>&1

if [ "x$?" != "x0" ]; then
    COMPIZ_OPTIONS="$COMPIZ_OPTIONS --indirect-rendering"
fi

# start the gtk-window-decorator if present
if [ -x /usr/bin/gtk-window-decorator ]; then
    /usr/bin/gtk-window-decorator --replace &
fi

#load the gconf plugin if present
if [ -f /usr/lib/compiz/libgconf.so ]; then
    COMPIZ_PLUGINS="$COMPIZ_PLUGINS gconf"
fi

# always load the gconf plugin
/usr/bin/compiz.real $COMPIZ_OPTIONS "$@" $COMPIZ_PLUGINS

# EOF

Una volta salvato il file basta aggiungere i soliti comandi a gnome-session-properties, riportati anche nella guida “Ubuntu Dapper + XGL + Compiz

Plugin aggiuntivi

Se volete compilare qualche plugin aggiuntivo vi consiglio di leggere anche: “Compiz e i Plugin che non avete osato chiedere mai…

Buon divertimento

28 commenti

  1. GoLeM

    mmh, si è verificato un errore che non comprendo, speriamo ne capiate piu di me =)

    quando faccio configure alla fine esce the following optional plugins will be compiled:
    gconf: yes
    place: yes
    dbus: yes

    and the following optional features will be compiled:
    svg: no
    gtk: no
    metacity: no
    gnome: no
    kde: no

    successivamente se faccio make aappare una lista di errori di cui questo è un esempio

    error: expected declaration specifiers or ‘…’ before ‘GLXDrawable’

    avete qualche idea? potrebbe essere per l’amd64 che crea casini di sorgenti? ‘iuto

  2. GoLeM

    e si che le ho lette

    e anche con attenzione =)

    ma non ho trovato l’illuminazione per la risoluzione del problema…

  3. solid

    ciao ho appunto un problema con i sorgenti versione 0.3.2

    con il make tutto bene poi faccio partire compiz e mi dà
    il classico GLX_EXT_texture_from_pixmap is missing

    la cosa strana è che beryl (da repository svn) funzia
    anke compiz da repository funzia

    uso i driver radeon open e AIGLX aiutatemi
    beryl è un elefante vorrei passare a compiz…

  4. solid

    @felipe

    complimenti per il blog
    il tuo feed è ormai la prima cosa ke guardo all’avvio di firefox

  5. felipe

    @solid:
    grazie, che motivo hai per non usare compiz da repository, visto che funziona?

    ps: prima di compilare prova con: sudo apt-get build-dep compiz

  6. solid

    uso debian e la repository gandalfn mi sputtana
    le dipendenze (libc6 2.4 su debian chi l’ha mai vista???)

    i pacchetti repository di debian funziano ma non
    sono molto aggiornati (d’altronde è debian mica ubuntu…)

    la cosa strana è che l’accelerazione 3d funziona perfettamente
    quindi non capisco perchè mi dà quell’errore
    (forse un problema di librerie?)

    grazie

  7. luca

    Il configure è ok, il make mi da problemi…


    Eddai basta con l’incollare *tutto*!  :/

    felipe

  8. MATTEO

    compilato e fatto tutto ma non funziona non capisco dove sbaglio, forse xkè quando faccio il ./configure –prefix=/usr/ –enable-librsvg alla fine ottengo un output diverso dal ql di felipe (the following optional plugins will be compiled:
    gconf: yes
    place: yes
    dbus: no
    and the following optional features will be compiled:
    svg: no
    gtk: no
    metacity: no
    gnome: no
    kde: no)

  9. matteo

    ciao ora che ho risolto tutto vorrei aggiungere un po’ di cose a compiz (ho già aggiunto i 2plugin che consigli) e adesso vorrei applicare un tema decente ma quali devo scaricare i metacity o i cgwdtheme?nel primo caso come faccio senza compiz-manager?

  10. felipe

    @matteo:
    I temi supportati sono tutti quelli per Metacity

    Puoi prelevare gnome-compiz-manager direttamente da gnomefiles.com e usare quello per configurare il tutto

  11. iosononessuno

    domandina forse scema, ho installato grazie alla tua bellissima guida compiz con aixgl sulla mia kubuntu (scheda ati), funziona tutto tranne i temi che non sono selezionabili, credi che compilando compiz riesca a risolvere questo problema? scusa il disturbo e grazie comunque per tutto quello che fai ( che è tanto!!! )
    io

  12. felipe

    @iononsononessuno:
    Per avere il supporto ai temi nelle versioni >=0.3 ti serve libmetacity-dev >=2.15

    Ossia se hai Dapper non puoi :-/

  13. maurolinux

    a me esce questo

    (cd .libs && rm -f libcompiz.la && ln -s ../libcompiz.la libcompiz.la)
    make[3]: Leaving directory `/home/mauro/compiz/gtk/gnome’
    make[3]: Entering directory `/home/mauro/compiz/gtk’
    make[3]: Nothing to be done for `all-am’.
    make[3]: Leaving directory `/home/mauro/compiz/gtk’
    make[2]: Leaving directory `/home/mauro/compiz/gtk’
    Making all in kde
    make[2]: Entering directory `/home/mauro/compiz/kde’
    Making all in window-decorator
    make[3]: Entering directory `/home/mauro/compiz/kde/window-decorator’
    /bin/moc decorator.h > decorator.moc.cpp
    /bin/bash: /bin/moc: No such file or directory
    make[3]: *** [decorator.moc.cpp] Error 127
    make[3]: Leaving directory `/home/mauro/compiz/kde/window-decorator’
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/home/mauro/compiz/kde’
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/mauro/compiz’
    make: *** [all] Error 2

  14. maurolinux

    e nel configure

    the following optional plugins will be compiled:
    gconf: yes
    place: yes
    dbus: yes
    annotate: yes
    svg: yes

    and the following optional features will be compiled:
    svg: yes
    gtk: yes
    metacity: yes
    gnome: yes
    kde: yes

  15. GS Defender

    @maurolinux:

    /bin/bash: /bin/moc: No such file or directory

    ossia ti manca un pacchetto di sviluppo delle librerie Qt. Non ho un sistema Ubuntu sottomano, ma con un apt-.cache search qt | grep -i devel dovresti trovare il pacchetto che ti serve.

  16. maurolinux

    è uscito
    kdesdk-scripts – a set of useful development scripts for KDE
    libqscintilla-dev – Qt source code editing component – development files
    libqt3-mt-dev – Qt development files (Threaded)
    libqt4-dev – Qt 4 development files
    libscim-dev – development library for SCIM platform
    libsmokeqt-dev – SMOKE Binding Library to Qt – Development Files
    python-kde3-dev – KDE3 bindings for Python – Development files and scripts
    python-qt-dev – Qt bindings for Python – Development files
    python-qt4-dev – Development files for PyQt4
    qt3-apps-dev – Qt3 Developer applications development files
    qt3-dev-tools – Qt3 development tools
    facturalux-dev – Development files for facturalux
    icomlib1-dev – Icom PCR-1000 development kit
    kde-devel – the K Desktop Environment development files and modules
    kdesdk-kfile-plugins – KDE file dialog plugins for software development files
    kdesdk-misc – various goodies from the KDE Software Development Kit
    kdevelop – An IDE for Unix/X11
    kdevelop-data – An IDE for Unix/X11 – data
    kdevelop-dev – An IDE for Unix/X11 – development files
    kdevelop-doc – An IDE for Unix/X11 – documentation
    libace-qtreactor-dev – GUI Integrated Reactors for ACE: Qt Reactor (development files)
    liberis-1.3-dev – The WorldForge client entity library – development files
    libguile-dev – Development headers and static library for libguile
    libqt4-debug-dev-kdecopy – Qt 4 debugging development files
    libqt4-dev-kdecopy – Qt 4 development files
    libqwt-dev – Qt widgets library for technical applications (development)
    librlog-dev – flexible message logging library – development files
    libsmokekde-dev – SMOKE Binding Library to KDE – Development Files
    libsmokeqt-qt4-dev – SMOKE Binding Library to Qt4 – Development Files
    libsoqt-dev – Qt GUI component toolkit for Inventor – development
    libsvnqt-dev – Qt wrapper library for subversion (development files)
    libtao-qtresource-dev – Qt GUI resource factory for TAO (development files)
    libtulip-qt4-2.0-dev – Tulip graph library – Qt/OpenGL gui development files
    pyqt4-dev-tools – Development tools for PyQt4
    python2.3-sip-dev – Python/C++ bindings generator – Python2.3+Qt3 devel
    python2.4-sip-dev – Python/C++ bindings generator – Python2.3+Qt3 devel
    qca-dev – Qt Cryptographic Architecture – development files
    qt3-dev-tools-compat – Conversion utilities for Qt3 development
    qt3-dev-tools-embedded – Tools to develop embedded Qt applications
    qt4-dev-tools – Qt 4 development tools
    qt4-dev-tools-kdecopy – Qt 4 development tools
    scribus-ng – Open Source Desktop Page Layout – developmental branch
    tora – A graphical toolkit for database developers and administrators
    ebook-dev-kde20 – [EBOOK-DEV] KDE 2.0 Development
    libavahi-qt3-dev – Development headers for the Avahi QT3 integration library
    libavahi-qt4-dev – Development headers for the Avahi QT4 integration library
    libpoppler-qt-dev – PDF rendering library — development files (Qt 3 interface)
    libpoppler-qt4-dev – PDF rendering library — development files (Qt 4 interface)
    libkexiv2-dev – Qt like interface for the libexiv2 library (development)

    che vuol dire??

  17. GS Defender

    Che con tutta probabilità devi fare

    sudo apt-get install qt3-dev-tools qt4-dev-tools

    apt-cache doveva darti un’idea, tramite le descrizioni, di quali pacchetti potevano fornire quanto ti avevo detto che ti mancava.

  18. maurolinux

    niente mi da ancora
    In file included from main.cpp:31:
    decorator.h:44:29: error: dbus/connection.h: No such file or directory
    decorator.h:139: error: ISO C++ forbids declaration of ‘DBusMessage’ with no type
    decorator.h:139: error: expected ‘;’ before ‘*’ token
    decorator.h:172: error: ISO C++ forbids declaration of ‘DBusConnection’ with no type
    decorator.h:172: error: expected ‘;’ before ‘*’ token
    decorator.h:173: error: ‘DBusQt’ has not been declared
    decorator.h:173: error: ISO C++ forbids declaration of ‘Connection’ with no type
    decorator.h:173: error: expected ‘;’ before ‘mDBusQtConnection’
    make[3]: *** [main.o] Error 1
    rm KWinInterface.kidl
    make[3]: Leaving directory `/home/mauro/compiz/kde/window-decorator’
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/home/mauro/compiz/kde’
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/mauro/compiz’
    make: *** [all] Error 2

  19. luca

    checking for GTK_WINDOW_DECORATOR… no

    è possibile specificare le dipendenze per gnome? non so più quali pacchetti installare!

    the following optional plugins will be compiled:
    gconf: yes
    place: yes
    dbus: yes
    annotate: yes
    svg: yes

    and the following optional features will be compiled:
    svg: yes
    gtk: no
    metacity: no
    gnome: no
    kde: no

    nel ./configure l’unico no che ricevo è proprio quello riportato in prima riga. quindi dovrebbero mancarmi solo le dipendenze per il gtk-window-decorator ma non riesco proprio a capire quali sono. help!

  20. Pingback:Definizione di una incertezza » Blog Archive » Appunti tecnico-informatici su Linux

Rispondi

%d
Vai alla barra degli strumenti