(fix links) |
(→Che sta succedendo?) |
||
| Line 496: | Line 496: | ||
=== Che sta succedendo? === | === Che sta succedendo? === | ||
| − | Ci immettiamo nella directory base dei sorgenti (riga 1), poi | + | 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 {{path|~/kde/src/KDE/kdelibs}} (riga 4) e cominciamo la compilazione (riga 5). Ciò ci lascerà nella directory di compilazione <tt>kdelibs</tt> quando la compilazione viene portata a termine. |
{{tip|Potrebbero esserci delle dipendenze insoddisfatte nel tuo sistema! Sono facilmente individuabili nell'output di <tt>cmakekde</tt>. | {{tip|Potrebbero esserci delle dipendenze insoddisfatte nel tuo sistema! Sono facilmente individuabili nell'output di <tt>cmakekde</tt>. | ||
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
| Tutorial Series | Guida rapida |
| Previous | Anonymous SVN Quickstart Guide |
| What's Next | Set up KDE 4 for development |
| Further Reading | kdesvn-build: The KDE From Subversion Build Tool Increased Productivity in KDE4 with Scripts Introduction to CMake FreeBSD notes Instructions for Mac OS X Instructions for MS Windows |
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.
| 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. |
I seguenti pacchetti devono essere installati prima di seguire questo tutorial:
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.
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
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
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.
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!
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.
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.
| 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. |
useradd -m kde-devel
passwd kde-devel
Invece di usare i comandi di cui sopra. puoi usare anche il modulo Utenti nel KDE Control Center se hai già KDE3 installato.
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.
Passa all'utente kde-devel: (non dimenticarti il trattino)
ssh -X kde-devel@localhost
| Note |
|---|
| Se il comando ssh fallisce, controlla la sezione Launching KDE 4 apps della KDE4 development guide. |
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.
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
Se il tuo sistema ha l'applicazione usermod puoi usare il seguente comando come root: usermod -s /bin/bash.
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.
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
| 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 *
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.
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.
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
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".
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.
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;
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.
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.
| 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.
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.
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
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.
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").
Adesso possiamo passare alla compilazione delle librerie di base di KDE.
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
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.
| 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.) |
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.
Se hai problemi a compilare kdelibs assicurati che il software nella sezione Software richiesto sia installato e funzionante. Altri possibili errori possono essere:
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
update-alternatives --config qmake
CMake Error: KDE Requires Qt to be built with SSL support
, installa openssl-devel, rimuovi CMakeCache.txt e ricompila QT.
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à).
Dopo kdelibs, ma prima di kdebase devi compilare e installare kdepimlibs.
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
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.
Se hai problemi a compilare kdepimlibs:
kdebase è diviso in tre parti:
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.
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
Se hai problemi a compilare kdebase:
Ora puoi eseguire programmi per KDE 4 (ad esempio kwrite) digitando:
ssh -X kde-devel@localhost kwrite
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.
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.
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.
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
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
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.
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.