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:
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
di niente…debian rulez…:-D
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
e ovviamente non hai letto le tre guide che ho consigliato di leggere :(
e si che le ho lette
e anche con attenzione =)
ma non ho trovato l’illuminazione per la risoluzione del problema…
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…
@felipe
complimenti per il blog
il tuo feed è ormai la prima cosa ke guardo all’avvio di firefox
@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
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
Il configure è ok, il make mi da problemi…
—
Eddai basta con l’incollare *tutto*! :/
—
felipe
@luca
ti servono gli header mesa
prova con un apt-get install mesa-common-dev
@solid
Niente… stesso errore nel make
Ok, aggiunto anche libgl1-mesa-dev e libglitz-glx1-dev e tutto a posto.
Grazie
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)
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?
@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
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
@iononsononessuno:
Per avere il supporto ai temi nelle versioni >=0.3 ti serve libmetacity-dev >=2.15
Ossia se hai Dapper non puoi :-/
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
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
@maurolinux:
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.
è 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??
Che con tutta probabilità devi fare
apt-cache doveva darti un’idea, tramite le descrizioni, di quali pacchetti potevano fornire quanto ti avevo detto che ti mancava.
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
Manca anche il pacchetto di sviluppo di dbus.
e qual’è? io ho installati i pacchetti dbus, python-dbus e tutte le relative libdbus ecc
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!
Pingback:Definizione di una incertezza » Blog Archive » Appunti tecnico-informatici su Linux
@maurolinux:
libdbus-qt-1-dev