Difference between revisions of "Getting Started/Build/KDE4 (it)"

Jump to: navigation, search
(Che sta succedendo?)
m
Line 325: Line 325:
 
=== Opzione 2: Da root ===
 
=== Opzione 2: Da root ===
  
Se il tuo sistema ha l'applicazione <tt>usermod</tt> puoi usare il seguente comando come root: <tt>usermod -s /bin/bash</tt>.
+
Se il tuo sistema ha l'applicazione <tt>usermod</tt> puoi usare il seguente comando come root: <tt>usermod -s /bin/bash kde-devel</tt>.
  
 
Un'altra opzione è di usare l'applicazione <tt>vipw</tt> da root per modificare in sicurezza il tuo {{path|/etc/passwd}}. Localizza 'kde-devel' nel file. Modifica '{{path|/bin/sh}}' alla fine della riga in '{{path|/bin/bash}}', salva i cambiamenti ed esci.
 
Un'altra opzione è di usare l'applicazione <tt>vipw</tt> da root per modificare in sicurezza il tuo {{path|/etc/passwd}}. Localizza 'kde-devel' nel file. Modifica '{{path|/bin/sh}}' alla fine della riga in '{{path|/bin/bash}}', salva i cambiamenti ed esci.

Revision as of 16:43, 6 January 2008


Contents

Getting_Started/Build/KDE4


Introduzione

Questo tutorial spiega come installare KDE da trunk per sistemi Linux/BSD. Ci sono tutorial anche per FreeBSD, Windows, Mac OS X e Solaris. Il tutorial prevede l'utilizzo del terminale.

noframe
 
Warning
Aspettati un rischio maggiore di errori di compilazione ogni Lunedì quando avvengono molti cambiamenti nelle kdelibs. La Dashboard riporta errori imprevisti. Ti incoraggiamo a riparare i moduli corrotti.


Software richiesto

I seguenti pacchetti devono essere installati prima di seguire questo tutorial:

  • gcc e g++, preferibilmente la versione 4.2 o superiore
  • svn, il client di controllo di revisione di subversion
  • pkg-config
  • librerie di sviluppo e header per X11, OpenGL (mesa-common-dev e libglu1-mesa-dev), libjpeg, libpng, libungif, libclucene, librdf, libxml2 e libxslt
  • lo script makeobj, parte di kdesdk. Puoi installarlo come parte di kdesdk (kdesdk-scripts su Debian) o un pacchetto simile, o scaricalo semplicemente da WebSVN
  • il pacchetto shared-mime-info, che è lo standard MIME freedesktop che utilizza attualmente KDE
  • boost, richiesto da kdebase; dopo aver compilato e/o installato boost, per far rendere conto a cmake della sua ubicazione (FindBoost), aggiungi la directory di boost (quella che contiene la sottodirectory include) a CMAKE_INCLUDE_PATH o imposta una variabile di ambiente chiamata BOOST_ROOT che punta alla directory di boost.

Ark Linux

Su Ark Linux, le dipendenze di compilazione di cui hai bisogno si installano con:

apt-get install devel-core libxml-devel libxslt-devel bzip2-devel \ clucene-core-devel librdf-devel shared-mime-info xorg-Mesa-libGL-devel \ subversion boost-devel doxygen giflib-devel dbus-devel openssl-devel \ alsa-lib-devel kdesdk-scripts qt4-devel

Se preferisci un'interfaccia grafica seleziona i pacchetti della lista di sopra dallo strumento "Install Software" in Mission Control.

Ciò include l'installazione di CMake, DBus e Qt - puoi ignorare i passi 5, 6 e 7.

Fedora

Alcuni dei pacchetti necessari per compilare KDE4 su Fedora 7 o superiore: yum install clucene-core-devel libxml-devel libxslt-devel \ dbus-devel boost-devel bzip2-devel openssl-devel alsa-lib-devel \ redland-devel rasqal-devel raptor-devel hspell-devel aspell-devel \ cups-devel xine-lib-devel avahi-devel gamin-devel OpenEXR-devel \ enchant-devel jasper-devel ilmbase-devel pcre-devel gpgme-devel \ libxklavier-devel glib-devel libusb-devel libsmbclient-devel \ libxcb-devel NetworkManager-devel lm_sensors-devel libraw1394-devel \ bluez-libs-devel


DCH-10/15/07: N.B.: - Può rivelarsi più semplice verificare gli RPM con Spin. Nota che puoi modificare le variabili in /etc/rpm/macros.kde4 (che è provvisto da kde-filesystems nella Rawhide).

La fase di compilazione sarà così:

%build

mkdir -p %{_target_platform}

pushd %{_target_platform}

%{cmake_kde4} ..

popd

make %{?_smp_mflags} -C %{_target_platform}

Ho avuto migliori risultati creando un rpm di kdesupport in modo da non dover installare gli rpm di sopramo e strigi. YMMV

Kubuntu e Debian

Su Kubuntu 7.04 (Feisty Fawn) e Debian (Testing/Unstable) le dipendenze di compilazione si installano con: sudo aptitude install build-essential cdbs debhelper cmake \ libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \ shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \ libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \ libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \ libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev libgpgme11-dev \ libasound2-dev kdesdk-scripts libpth-dev libjasper-dev \ ssh libxine-dev libqimageblitz-dev libqimageblitz4 libglib2.0-dev \ libxkbfile-dev

Su Kubuntu 7.10 (Gutsy Gibbon) devi aggiungere: sudo aptitude install dbus-x11 libqt4-dev libqca2-dev libeigen-dev \ libstreamanalyzer-dev libsoprano-dev libstrigiqtdbusclient-dev

Non c'è bisogno di compilare qt e kdesupport su Kubuntu Gutsy. Tutti i pacchetti necessari sono provvisti da questi pacchetti. Vai alla sezione kdelibs e continua da lì.


Per un sistema di documentazione API completamente funzionale ti serve anche: sudo aptitude install graphviz

openSUSE

Su openSUSE 10.2 e superiori puoi installare i pacchetti usando Zypper: sudo zypper install <nome-del-pacchetto>

Su versioni più vecchie di SuSE puoi usare YaST: su yast -i <nome-del-pacchetto>

Pacchetti richiesti

I pacchetti che devi installare sono: xorg-x11-devel libxml2-devel kdesdk3 clucene-core-devel boost-devel libjpeg-devel liblrdf-devel libpng-devel libxslt-devel libredland-devel Mesa-devel giflib-devel subversion gcc gcc-c++ gmp-devel (serve a compilare kdesupport) gpgme-devel (serve a compilare kdepimlibs)

Pacchetti opzionali

Puoi evitare l'installazione manuale e complicata di kdesupport e relative dipendenze ( Qt 4.3, CMake 2.4.6, DBus, Hal, clucene-core, Strigi, Soprano e altre dipendenze di Nepomuk) aggiungendo il repository KDE:KDE4 dall'openSUSE Build Service alle tue risorse di installazione.

Per openSUSE 10.2 e superiori: sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102

Per versioni più vecchie di SuSE Linux: su installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[LA TUA VERSIONE DI SUSE LINUX]

Adesso installa i seguenti pacchetti: cmake dbus-1-devel libqt4-devel libqca2-devel libsoprano-devel libqimageblitz-devel strigi strigi-ui

Ci sono molti altri pacchetti che sono indispensabili per soddisfare il config-check, come libusb-devel, bison ecc., quindi fai attenzione alle notifiche di config e installa i pacchetti di seguito. Ricordati di ignorare qualsiasi istruzione che si riferisca a kdesupport più giù. Comincia a compilare da kdelibs.

E per un sistema apidox completamente funzionale ti serve anche: graphviz

I pacchetti binari di CMake per openSUSE sono disponibili nel repository KDE:KDE4 così come in openSUSE build service.

Gentoo

Installazione manuale

Puoi usare ebuild stabili, ricordati di sincronizzare l'albero di portage prima di cominciare.

Ricorda: Tutti i comandi sono eseguiti come root.

Richiesti:

Dobbiamo permettere i seguenti ebuild mascherati da keyword.

echo 'dev-util/cmake' >> /etc/portage/package.keywords echo 'dev-cpp/clucene' >> /etc/portage/package.keywords

Assicurati di aver impostato il flag USE berkdb per redland, altrimenti nepomuk non funzionerà.

echo 'dev-libs/redland berkdb' >> /etc/portage/package.use

Questi sono i pacchetti che dovrete emergere, ho incluso l'opzione di aggiornamento nel comando emerge così da non riemergere qualsiasi cosa fosse già installata.

emerge -avu 'sys-devel/gcc' \

 'dev-util/subversion' \
 'dev-util/pkgconfig'  \
 'x11-base/xorg-x11' \
 'virtual/glut' \
 'media-libs/mesa' \
 'media-libs/jpeg' \
 'media-libs/libpng' \
 'media-libs/giflib' \
 'dev-cpp/clucene' \
 'dev-util/cppunit' \
 'media-libs/liblrdf' \
 'dev-libs/libxml2' \
 'dev-libs/libxslt' \
 'x11-misc/shared-mime-info' \
 'dev-libs/boost' \
 'dev-util/cmake' \
 'dev-libs/redland' \
 'sys-apps/dbus' \
 'sys-apps/hal' \
 'x11-libs/qt'

Devi anche emergere 'kde-base/kdesdk' o kde-base/kdesdk-scripts'.

Se emergi DBUS, CMAKE, QT o HAL puoi ignorare le rispettive sezioni di questo tutorial. Buona fortuna!

Installazione tramite portage

Puoi installare i pacchetti di KDE 4 direttamente via emerge -a <packagename>

Per avere ciò che ti serve, installa Layman e poi preleva dall'overlay "kde" (che contiene ebuild sperimentali di KDE): layman -a kde Dopo di ciò devi aggiustare alcuni USE-flag per KDE 4 e dire a portage di usare gli ebuild di testing di KDE 4 anziché quelli stabili di KDE 3.

In questo modo portage ti terrà traccia delle dipendenze.

Istruzioni dettagliate su come installare KDE 4 su Gentoo tramite portage possono essere trovate nel KDE overlay wiki. Sono discusse nel thread KDE 4 monolithic ebuilds.

Mandriva

Su Mandriva le dipendenze di compilazione si installano con:

urpmi gcc-c++ cmake libxml2-devel libbzip2_1-devel \ libclucene0-devel liblrdf2-devel libmesagl1-devel \ subversion doxygen libdbus-1_3-devel libopenssl0.9.8-devel \ libalsa2-devel

Se stai usando un sistema a 64 bit devi modificare tutti i pacchetti che cominciano con "lib..." con "lib64...".

Se preferisci un'interfaccia grafica, seleziona i pacchetti della lista superiore nello strumento "Install Software" nel Mandriva Linux Control Center.

Ciò include l'installazione di CMake e DBus - puoi ignorare i passi 5 e 6.

Creare un account utente per lo sviluppo di KDE4

noframe
 
Note
Alcuni preferiscono avere un account separato per KDE 4 (per esempio un vecchio bug cancellava dei file per errore), e le istruzioni qui sotto sono scritte con questo scopo.

Ad ogni modo è più efficiente fare tutto da un singolo account utente, vedi Increased Productivity in KDE4 with Scripts per più dettagli.

Puoi comunque seguire le istruzioni seguenti, ma ricordati di non mettere le variabili di ambiente nel tuo .bashrc, mettile in un file separato che userai per passare all'ambiente di KDE 4.

Opzione 1: Riga di comando

useradd -m kde-devel passwd kde-devel

Opzione 2: Usare KControl

Invece di usare i comandi di cui sopra. puoi usare anche il modulo Utenti nel KDE Control Center se hai già KDE3 installato.

Impostare l'ambiente

Copia il ~/.bashrc del tuo account normale nel nuovo account kde-devel. Poi copia e incolla i contenuti di example .bashrc in ~kde-devel/.bashrc. Assicurati di togliere il commento dalla linea alias make=makeobj se non hai il comando makeobj disponibile. Vorrai probabilmente modificare anche il percorso per assicurarti che non includa i percorsi di KDE3. Se vuoi usare KDevelop per sviluppare applicazioni per KDE 4 puoi passare il flag -GKDevelop3 al comando cmake (per far generare a CMake dei file di progetto KDevelop, che ti aiuterà a non ricompilare in futuro, vedi questo). Per farlo funzionare, devi aprire una nuova bash o eseguire source ~/.bashrc

Ciò fornirà l'accesso a comandi come cmakekde che sono utilizzati in questo tutorial così da assicurarsi che i binari di Qt, KDE e CMake siano nei giusti percorsi.

Per più informazioni leggi il tutorial Getting Started/Increased Productivity in KDE4 with Scripts.

Passare al nuovo utente

Passa all'utente kde-devel: (non dimenticarti il trattino) ssh -X kde-devel@localhost

noframe
 
Note
Se il comando ssh fallisce, controlla la sezione Launching KDE 4 apps della KDE4 development guide.

La shell di sviluppo dell'utente

Su alcuni sistemi un nuovo utente utilizza come predefinito /bin/sh. Se questo non è il caso nel tuo sistema puoi ignorare questa sezione. Usare /bin/sh può rivelarsi sconveniente per lavorarci e dovresti perciò cambiarlo in /bin/bash o usare un'altra shell. Su Ark Linux e Fedora puoi ignorare questo passo - /bin/sh è bash.

Opzione 1: Da utente kde-devel

Se non hai privilegi di root e il tuo sistema supporta il cambiamento della shell con l'applicazione chsh, allora potresti cambiare la tua shell in /bin/bash usando: chsh -s /bin/bash kde-devel

Opzione 2: Da root

Se il tuo sistema ha l'applicazione usermod puoi usare il seguente comando come root: usermod -s /bin/bash kde-devel.

Un'altra opzione è di usare l'applicazione vipw da root per modificare in sicurezza il tuo /etc/passwd. Localizza 'kde-devel' nel file. Modifica '/bin/sh' alla fine della riga in '/bin/bash', salva i cambiamenti ed esci.

La nuova shell partirà automaticamente quando farai di nuovo il login dell'utente kde-devel.

D-Bus

QtDBus e KDE funzionano di certo con D-Bus versione 0.62, così come 0.92 e superiori. Le versioni 0.60 e 0.61 potrebbero anche funzionare ma non sono state testate. Le versioni 0.90 e 0.91 non funzionano. Ti raccomandiamo di usare versioni post-1.0 (almeno 0.94), quindi considera un aggiornamento se non l'hai ancora fatto.

Puoi oltrepassare questa sezione se hai una versione di D-Bus recente o se non vuoi aggiornare. Probabilmente preferirai non installare i binding finché/a meno che sai che compilerai HAL (vedi sotto).

Prima di seguire i comandi di seguito assicurati che le librerie e gli header di X11 siano disponibili. Lo script configure dovrebbe restituire una quinta riga di output del genere:

Building X11 code:        yes

I comandi

Ktip.png
 
Tip
Assicurati di aver impostato il tuo ambiente correttamente come descritto sopra. È necessario per far funzionare i comandi cs e cb.


cs # 'cs' è una funzione di bash, clicca qui per saperne di più 
wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz
tar -xvzf dbus-1.0.2.tar.gz
cd dbus-1.0.2/
./configure --prefix=$DBUSDIR --localstatedir=/var
make
sudo make install
sudo dbus-uuidgen --ensure
cs # vedi sopra
wget http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.74.tar.gz
tar -xvzf dbus-glib-0.74.tar.gz
cd dbus-glib-0.74/
./configure --prefix=$DBUSDIR
make
sudo make install
cb
sudo chown -R kde-devel:kde-devel *

Che sta succedendo?

Dopo essere entrati nella directory dei sorgenti (riga 1), il codice sorgente di D-Bus viene scaricato da freedesktop.org (riga 2) e spacchettato (riga 3). Dopo essere entrati nella nuova directory di D-Bus (riga 4), la compilazione viene configurata dall'apposito script configure (riga 5). Dopo la compilazione (riga 6) e l'installazione di D-Bus (riga 7), usiamo lo strumento dbus-uuidgen per installare un file di indentificazione della macchina che permette al bus di partire automaticamente quando comincia la sessione del desktop (riga 8).

Nota che ti serve il permesso di scrittura in /var per gli ultimi due passi. Se il tuo sistema non ha il comando sudo, puoi usare invece il comando su, esempio: su -c "make install".

I passi per installare i binding di glib sono simili a quelli di sopra.

Quando questi due pacchetti sono compilati dobbiamo aggiustare le appartenenze dei file perché 'sudo make install' ha creato file e directory appartenenti a root in ~kde-devel/kde.

CMake

Ignora questo se hai CMake >=2.4.5 installato. Dovresti poter usare direttamente i pacchetti binari disponibili sul sito di CMake. Ci sono anche pacchetti per distribuzioni specifiche.

I comandi

cs # 'cs' è una funzione di bash, clicca qui per saperne di più 
wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz
tar -zxf cmake-2.4.6.tar.gz
mkdir cmake-build
cd cmake-build 
../cmake-2.4.6/bootstrap
make
sudo make install

Che sta succedendo?

Prima di tutto torniamo alla directory dei sorgenti dell'utente kde-devel (riga 1), otteniamo i sorgenti di CMake (riga 2) e li spacchettiamo (riga 3). Creiamo una directory per compilarci CMake (riga 4) e ci entriamo (riga 5). Poi eseguiamo lo script di bootstrap di CMake per impostare la compilazione di CMake (riga 6), facciamo make (riga 7), e lo installiamo (riga 8) usando i privilegi di root.

Se il tuo sistema non ha il comando sudo, puoi fare invece su -c "make install".

Qt

Adesso abbiamo bisogno di scaricare il Qt4 che si trova nel repository dei sorgenti di KDE. La compilazione di KDE è garantita con qualsiasi Qt 4.3. Qt 4.2 e precedenti non sono supportati e non funzioneranno. Dovresti usare la copia nei server Subversion di KDE. (Nota: alcune distro, come Debian o openSUSE, tendono a fornire Qt con patch applicate da KDE svn, quindi potresti farti furbo e installare dei Qt precompilati della tua distribuzione che funzioneranno a dovere). KDE prova a garantire che il sorgente sia compilabile con Qt 4.3.0 pulito e non patchato, ma potresti ottenere dei bugfix addizionali usando qt-copy (comunque, spesso la tua distribuzione si prende cura di fare backporting dei bugfix necessari, e sarebbe ottimale utilizzare quelli se sono abbastanza recenti). Riferisciti alle sezioni delle specifiche distribuzioni che puoi trovare sopra per avere più informazioni.

Per ora il layer di compatibilità con Qt3 in Qt4 è obbligatorio, quindi evita di usare l'opzione "-no-qt3support" quando compili Qt4 da sorgente.

I comandi

cd # Nota: qt-copy risiede in $HOME/qt-copy. Vedi $QTDIR in .bashrc 
svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy
cd qt-copy
./apply_patches
./configure -qt-gif -no-exceptions -debug -fast \
 -prefix $QTDIR -nomake examples -nomake demos
make -j2
# se non installiamo, allora puliremo i file obj per
# risparmiare spazio su disco
if [ $QTDIR = `pwd` ]; then \
find . -name '*.o' -delete ; \
else make install; fi;

Che sta succedendo?

Torniamo indietro alla home dell'utente kde-devel (riga 1) e scarichiamo il codice sorgente usando subversion (svn) dal repository di KDE (riga 2). Dopo esserci immessi nella risultante directory qt-copy (riga 3), eseguiamo uno script che gestisce le patch fornite da qt-copy (riga 4).

Una volta che le patch sono state applicate impostiamo la compilazione usando lo script configure (righe 5-6). Le varie righe di comando usate sono spiegate nel file qt-copy/README.qt-copy. Infine compiliamo i requisiti minimi di KDE (riga 7) e installiamo Qt (riga 10). Se la directory di installazione è la cartella corrente (riga 8), allora liberiamo dello spazio su disco (riga 9). Se vuoi tutti gli esempi e le applicazioni di dimostrazione puoi compilarli individualmente o dando un semplice make dalla directory qt-copy.

Nota che l'installazione non richiede l'utente root poiché installa Qt localmente in $QTDIR. Ad ogni modo, l'installazione è necessaria solo se $QTDIR differisce da $HOME/qt-copy, che non è il tuo caso se hai seguito attentamente le instruzioni.

Risoluzione dei problemi

Se ottieni "error: X11/Xlib.h: No such file or directory", installa il pacchetto di sviluppo di xorg (il nome esatto può variare tra i sistemi operativi, ad esempio si chiama xorg-dev su sistemi basati su Ubuntu come Kubuntu).

Se ottieni un errore durante il configure di definizioni mancanti controlla il valore di $QMAKESPEC. Alcune distribuzioni lo impostano in modo che punti direttamente al Qt installato dal sistema. Se unset QMAKESPEC risolve il problema vorrai sicuramente aggiungerlo allo script ~/.bashrc.

Se ottieni un errore ".pch/debug-shared/QtCore" è perché Qt-4.3 abilita gli header precomplilati se il tuo gcc lo supporta, ma per qualche ragione non funzionerà per te. Se usi distcc, configura qt con l'opzione -no-pch. Se usi icecream aggiorna all'ultimo trunk svn di icecream.

Prova ad eseguire qualsiasi applicazione Qt come assistant. Nota: Potresti aver bisogno di eseguire xhost +local:kde-devel come il tuo normale utente di kde3 per eseguire quest'applicazione. Se va in crash in QSpanData::adjustSpanMethods allora il tuo problema è lo stile Oxygen. Prova a rimuovere lib/kde4/plugins/styles/kstyle-oxygen.so e lib/kde4/plugins/styles/oxygen.so se esistono nel prefisso di installazione di KDE.

HAL

Ktip.png
 
Tip
Puoi usare qdbusviewer per vedere se hai org.freedesktop.hal. Se non è il tuo caso hai bisogno di una nuova versione di HAL. Se hai org.freedesktop.hal, non ne avrai probabilmente bisogno e non vorrai aggiornarla per mantenere il tuo HAL.


Se il tuo sistema ti chiede di compilare una nuova versione di HAL c'è una decente possibilità che tu debba compilare anche altre cose che non sono presenti in questo tutorial. Dato che questo dovrebbe essere indispensabile solo per vecchie distro, le istruzioni sono in una pagina separata.

kdesupport

noframe
 
Warning
Non dimenticarti di leggere prima la sezione Impostare l'ambiente.


Ci sono diverse librerie nel modulo kdesupport alle quali le applicazioni di KDE si appoggiano: Strigi e Soprano per i metadata e la ricerca dei file, QImageBlitz per la manipolazione delle immagini richiesto in kdebase, eigen per gli effetti visuali in applicazioni come Kalzium, taglib per riproduttori musicali e qca per necessità di crittografia.

Strigi di per sé ha alcune dipendenze: avrai bisogno delle librerie e header di libz, libbz2, openssl (libcrypto o libssl), libclucene (>=0.9.16a ma fà attenzione: la versione 0.9.17 non funziona), e libxml2 o libexpat.

Ti prego di ricordare che se usi openSUSE puoi installare i pacchetti richiesti dal buildservice repository KDE:KDE4 e non devi preoccuparti di seguire i dettagli forniti di seguito. Ignora la sezione kdelibs.

I comandi

cs # 'cs' è una funzione di bash, clicca qui per saperne di più
svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/
cd kdesupport
cmakekde

Che sta succedendo?

Ci immettiamo nella directory base dei sorgenti (riga 1). Scarichiamo i sorgenti di kdesupport usando subversion (riga 2), andiamo nella nuova directory ~/kde/src/kdesupport (riga 3), e cominciamo la compilazione (riga 4). Ciò ci lascerà nella nella directory di compilazione di kdesupport quando la compilazione viene portata a termine.

Risoluzione dei problemi

Se ottieni

  cmakekde: command not found

devi andare manualmente nella directory di kdesupport nella ~ ed eseguire il comando cmakekde. Se questo non risolve il problema, c'è qualcosa di sbagliato nel tuo bashrc.

Se ottieni

CMake Error: This project requires some variables to be set,
and cmake can not find them.
Please set the following variables:
LIBXML2_INCLUDE_DIR (ADVANCED)

dovresti installare il pacchetto di sviluppo di libxml2.

Se ottieni

CMake Error: Could NOT find REDLAND

allora ti serve librdf dal Redland. Se la tua distribuzione non include il pacchetto librdf, puoi scaricarne il sorgente da http://download.librdf.org/source/ e compilarlo. (Utenti di Gentoo: l'ebuild di librdf si chiama dev-libs/redland)

Se ottieni

Fetching external item into 'kdesupport/admin'
Error validating server certificate for 'https://...'

vedi Using Subversion with KDE

Se ottieni

FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.
- - -
make: *** [install] Error 255

dai un secondo sguardo al file .bashrc descritto sopra, i percorsi sono corretti? Alternativamente potresti ottenere quest'errore se decidi di utilizzare una versione di qt4 installata dalla distribuzione e hai saltato l'installazione di Qt come descritta sopra. Installa qt-copy come descritto sopra o fai "sudo make install". Se usi "sudo make install" assicurati di cambiare le appartenenze dei file al tuo utente per alcune sottodirectory in ~/kde affette dall'utilizzo di sudo (usa "sudo chown -R kde-devel:kde-devel ~/kde").

kdelibs

Adesso possiamo passare alla compilazione delle librerie di base di KDE.

I comandi

cd   
cs # 'cs' è una funzione di bash, clicca qui per saperne di più
mkdir KDE && cd KDE
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
cd kdelibs
cmakekde

Che sta succedendo?

Ci immettiamo nella directory base dei sorgenti (riga 1), poi creiamo ed entriamo nella directory di KDE (riga 2). Scarichiamo i sorgenti di kdelibs usando subversion (riga 3), entriamo nella nuova cartella ~/kde/src/KDE/kdelibs (riga 4) e cominciamo la compilazione (riga 5). Ciò ci lascerà nella directory di compilazione kdelibs quando la compilazione viene portata a termine.

Ktip.png
 
Tip
Potrebbero esserci delle dipendenze insoddisfatte nel tuo sistema! Sono facilmente individuabili nell'output di cmakekde. Potresti fare cmake $KDE_SRC/KDE/MODULE_NAME prima di compilare qualsiasi modulo di kde (come kdelibs, kdepimlibs, ecc.)


Moduli addizionali di CMake specifici per KDE

Ci sono moduli CMake addizionali in kdelibs/cmake/modules/ che sono necessari alla compilazione di applicazioni per KDE4. Saranno installati per te quando installerai kdelibs.

Risoluzione dei problemi

Se hai problemi a compilare kdelibs assicurati che il software nella sezione Software richiesto sia installato e funzionante. Altri possibili errori possono essere:

  • Se il comando cmakekde fallisce dicendo che CMake richiede una directory che non sia quella dei sorgenti rimuovi ~/kde/src/KDE/kdelibs/CMakeCache.txt e riprova.

Se cmakekde restituisce ancora lo stesso errore allora prova così:

cd
cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \
-DCMAKE_BUILD_TYPE=debugfull \
-DKDE4_BUILD_TESTS=ON \
~/kde/src/KDE/kdelibs
make
make install
  • Se ricevi un errore che dice "Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.", allora devi cambiare la tua directory di compilazione prima di eseguire cmakekde (ad esempio: cs KDE/kdelibs && cb && cmakekde). Se il messaggio insiste esegui 'svn status' nella cartella di kdelibs e rimuovi tutti i file etichettati con '?'.
  • Se Qt non viene trovato o viene trovata una versione errata di Qt assicurati che il qmake del Qt che ti serve sia il qmake indicato nel percorso.
  • Se qmake non viene trovato e stai utilizzando pacchetti Debian, /usr/bin/qmake probabilmente punta ad una versione errata di qmake. Per risolvere il problema esegui questo comando con privilegi di root:
update-alternatives --config qmake
  • Se il problema persiste, prova l'opzione di CMake make-option --keep-going.
  • Qui hai bisogno della libreria libungif, altrimenti otterrai un messaggio d'errore come "Could NOT find GIF".
  • Aggiornamento di Qt-4.3: se ottieni un errore di collegamento in kjsembed riguardante QScriptEngine, modifica CMakeCache.txt in kdelibs e rimuovi le righe che parlano di QT_QTUITOOLS_LIBRARY, poi esegui make di nuovo (quella libreria statica ha una nuova dipendenza e il codice cmake che l'aggiunge deve essere eseguito).
  • Se ottieni CMake Error: KDE Requires Qt to be built with SSL support

, installa openssl-devel, rimuovi CMakeCache.txt e ricompila QT.

  • Se ottieni kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()' significa che hai compilato QT senza il supporto a QT3 (no, linkare ad una vera installazione di QT3 non funzionerà).

kdepimlibs

Dopo kdelibs, ma prima di kdebase devi compilare e installare kdepimlibs.

I comandi

cs KDE # 'cs' è una funzione di bash, clicca qui per saperne di più
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs
cd kdepimlibs
cmakekde

Che sta succedendo?

Entriamo nella directory dei sorgenti di KDE (riga 1), scarichiamo il codice sorgente di kdepimlibs usando subversion (riga 2) ed entriamo nella nuova directory ~/kde/src/KDE/kdepimlibs (riga 3). Dopodiché iniziamo la compilazione (riga 4). Ciò ci lascerà nella cartella di compilazione di kdepimlibs quando la compilazione viene portata a termine.

Risoluzione dei problemi

Se hai problemi a compilare kdepimlibs:

  • il comando cmakekde può richiedere una versione aggiornata della libreria gpgme che è disponibile nel sito web del progetto: http://www.gnupg.org/(en)/download/index.html - ti prego di notare che la compilazione di gpgme richiede ancge libgpg-error, disponibile sempre nel sito del progetto. Entrambe le librerie si installano con la sequenza "./configure", "make" e "sudo make install", com la libreria gpgme configurata con il parametro addizionale "--with-gpg-error-prefix". Potresti dover sovrascrivere il tuo file esistente "/usr/bin/gpgme-config" con la nuova versione per far notare a kdepimlibs la nuova installazione.

kdebase

kdebase è diviso in tre parti:

  • apps
Contiene applicazioni come Dolphin o KWrite.
  • runtime
Contiene cose richieste da ogni applicazione in esecuzione (runtime), come le icone. È una dipendenza richiesta per ogni applicazione per KDE, quindi devi compilarlo ed installarlo.
  • workspace
Contiene cose specifiche per il desktop KDE, come Plasma o il window manager. La maggior parte delle cose dipende da X11.Ne hai bisogno solo se vuoi compilare un desktop KDE completo.

Puoi compilare tutto il kdebase in un'unica volta, la quale compilazione è descritta qui sotto. Se vuoi compilare solo kdebase-runtime, che è l'unico richiesto, puoi rimpiazzare cd kdebase con cd kdebase/runtime nei comandi qui sotto.

I comandi

cs KDE # 'cs' è una funzione di bash, clicca qui per saperne di più
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase
cd kdebase
cmakekde

Risoluzione dei problemi

Se hai problemi a compilare kdebase:

  • Assicurati di avere gli header di libxss headers installati. (Spesso otterrai delle referenze non definite per gli oggetti xscreensaver se non hai quegli header)
  • which meinproc deve restituire /home/kde-devel/kde/bin/meinproc.
  • se cmakekde non trova il percorso di kdepimlibs, modifica il file $KDE_BUILD/KDE/kdebase/CMakeCache.txt e imposta manualmente KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs.
  • se ottieni un errore che dice "Please set the following variables: X11_XTest_LIB (ADVANCED)", installa il pacchetto di sviluppo di Xtst. Per qualche sistema questo pacchetto è separato da xext ed è chiamato x11proto-xext-dev oppure libxtst-dev. Probabilmente avrai bisogno di eliminare il file CMakeCache.txt nella directory di compilazione dopo aver installato il pacchetto.
  • lo stesso vale per "X11_Xinerama_LIB (ADVANCED)" dove avrai bisogno del pacchetto di sviluppo di xinerama.
  • se ottiene un errore che parla di variabili mancanti in X11_Xrandr_LIB, ti serve il pacchetto di sviluppo di libxrandr (libxrandr-devel su sistemi basati su Ubuntu come Kubuntu).
  • se ottieni l'errore "Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)", allora devi installare gli header di libfontconfig.
  • se ottieni l'errore "CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES", devi installare soprano da kdesupport e ricompilare kdelibs.
  • se ottieni l'errore "‘XserverRegion’ does not name a type" assicurati di avere gli header di libxcomposite installati (libxcomposite-dev su Ubuntu).
  • se ottieni l'errore "CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: QT_QTOPENGL_LIBRARY (ADVANCED) ", prova a modificare CMakeCache.txt e ad impostare QT_QTOPENGL_LIBRARY:FILEPATH=/home/kde-devel/qt-copy/lib/libQtOpenGL.so
  • se ottieni messaggi come "KDE4_INSTALL_HANDBOOK() is deprecated. Remove it please. Now all is done in KDE4_CREATE_HANDBOOK.", allora trova i file contenenti la riga in questione e decommentala manualmente o esegui il seguente script in ~/kde/src/KDE/kdebase: macros_corrector.sh. RIMUOVERÀ semplicemente la riga che contiene "kde4_create_handbook" da tutti i file trovati.

Eseguire programmi per KDE 4

Ora puoi eseguire programmi per KDE 4 (ad esempio kwrite) digitando:

ssh -X kde-devel@localhost
kwrite 

Risoluzione dei problemi

  • Se ottieni
KUniqueApplication: Cannot find the D-Bus session server

controlla se hai l'accesso al display, ad esempio digita xclock e vedi se compare un orologio su schermo.

  • Se ottieni qualcosa come
Error: standard icon theme "oxygen" not found!

ASSERT: "!isEmpty()" in file /home/kde-devel/qt-copy/include/QtCore/../../src/corelib/tools/qlist.h, line 245
Aborted (core dumped)

Devi installare kdebase - vedi sopra. Basta installare anche solo la directory "runtime" di kdebase.

Generare documentazione locale API

Sebbene la documentazione API per KDE sia disponibile online su api.kde.org a volte è utile averla sul proprio disco, per esempio quando vuoi usare KDevelop per sfogliare la documentazione o quando non puoi restare online per tutto il tempo.

Bada bene che generare la documentazione API può metterci diverse ore e occupa almeno mezzo gigabyte di spazio su disco. La generazione è gestita da uno script in kdelibs/doc/api, ti serve doxygen per poterlo eseguire.

Per compilare la documentazione API per kdelibs, digita i seguenti comandi:

cs KDE/kdelibs # 'cs' è una funzione di bash, clicca qui per saperne di più
$KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \
--doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .

Ripeti l'operazione per gli altri moduli come si desidera.

cd <module home>
$KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \
--doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .

Un alktro metodo più semplice è scaricare questo Doxyfile sul tuo sistema locale. Dopodiché devi cambiare semplicemente la directory su dove vuoi creare la documentazione ed esegui % doxygen /path/to/Doxyfile Poi rivedi il file doxygen.log per controllare eventuali errori e avvertenze di doxygen. Troverai la documentazione attuale nella sottodirectory apidocs.

Rimanere aggiornati

Al fine di mantenere aggiornata le versione di kde4, ogni modulo installato dovrebbe essere aggiornato periodicamente. Come il Lunedì è il giorno dei maggiori cambiamenti in kdelibs, il Martedì può essere il momento migliore per farlo. Per ogni modulo in quesatione esegui svn up e make.

Per esempio: cs kdesupport # cs non è un errore di battitura svn up cb # cb non è un errore di battitura make -j2 VERBOSE=1 && make install

Installare un sottoset di moduli

Molti moduli in KDE contengono un vasto numero di programmi che possono metterci molto tempo ad essere scaricati e compilati. Nel caso in cui tu voglia lavorare su un particolare programma o programmi in un modulo, è possibile scaricare e compilare le singole cartelle. In alcuni casi certe cartelle sono richieste per qualsiasi compilazione del modulo. Ciò viene determinato dal file CMakeLists.txt del modulo. Ad esempio il file CMakeLists.txt di kdegames dice:

add_subdirectory(libkdegames) add_subdirectory(libkmahjongg)

macro_optional_add_subdirectory(doc) macro_optional_add_subdirectory(lskat) macro_optional_add_subdirectory(katomic)

Quindi le directory libkdegames e libkmahjongg sono richieste per compilare ogni kdegames. Anche la directory di cmake sarà spesso richiesta. Tutte le altre directory (doc, katomic etc) sono opzionali. Saranno compilate se presenti sul tuo sistema. In quest'esempio compiliamo mahjongg e kbattleship:

cs KDE svn co -N kdegames # Lo switch -N effettua un controllo non recursivo cd kdegames svn up libkdegames # Ottiene le directory richieste svn up libkmahjongg svn up cmake svn up kbattleship # Ottiene le directory opzionali svn up kmahjongg cmakekde

Risoluzione di problemi generali

Ciò che può succedere col passare del tempo, dopo alcuni comandi svn up, è che alcuni degli strumenti utilizzati nella catena di compilazione di KDE cambiano il loro formato dell'output. Per esempio, i file kcfg sono letti da kconfig_compiler per produrre finestre di dialogo. CMake non riesce ad individuare questi cambiamenti e la compilazione può perciò fallire. Un workaround è di forzare sempre una rigenerazione di tutti questi file:

find $KDE_SRC/KDE/kdebase -name "*.kcfg" | xargs touch

Lo stesso si applica ai file ui come prodotti dai progettatori Qt.

Complimenti!

Adesso sei pronto per cominciare a compilare altri moduli svn nello stesso modo in cui hai compilato kdebase, eseguire e testare KDE4 o scrivere le tue patch e applicazioni.

Vedi il tutorial Set up KDE 4 for development per come far partire applicazioni per KDE 4 e come usare KDevelop per lavorarci.


KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal