El programari KDE es divideix en diferents components, molts dels quals poden ser construïts pel kdesrc-build. Comprendre aquesta organització us ajudarà a seleccionar adequadament els mòduls de programari que voleu construir.
En el nivell més baix es troba la biblioteca de les Qt™, la qual és una biblioteca de «joc d'eines» multiplataforma molt potent. El KDE es basa en les Qt™, i algunes de les biblioteques que no són KDE requerides pel KDE també es basen en les Qt™. El kdesrc-build pot construir les Qt™, o fer servir el que ja es troba en el vostre sistema si és una versió prou recent.
Per sobre de les Qt™, es requereixen les biblioteques necessàries perquè el programari KDE funcioni. Algunes d'aquestes biblioteques no es consideren part del KDE a causa de la seva naturalesa genèrica, però segueixen sent essencials per a la Plataforma KDE. Aquestes biblioteques es recopilen sota una agrupació de mòduls
kdesupport
, però no es consideren part de les biblioteques «Frameworks».A més d'aquestes biblioteques essencials, venen els Frameworks del KDE, de vegades abreujats com a KF5, els quals són les biblioteques essencials per a l'escriptori de Plasma del KDE, les aplicacions KDE i un altre programari de tercers.
A més dels Frameworks, venen diverses coses diferents:
Aplicacions «de tercers». Aquestes són les aplicacions que fan servir els Frameworks del KDE o que estan dissenyades per a executar-se en el Plasma del KDE però que no estan creades ni associades amb el projecte KDE.
Plasma, el qual és un entorn d'escriptori complet d'«espai de treball». Això és el que els usuaris veuen normalment quan «inicien la sessió en el KDE».
El conjunt d'aplicacions del KDE. Aquesta és una col·lecció de programari útil inclòs amb la Plataforma i l'escriptori Plasma™, agrupats en mòduls individuals, que inclouen utilitats com el Dolphin, jocs com el KSudoku i programari de productivitat llançat pel KDE com el Kontact.
Finalment, hi ha una col·lecció de programari (també recopilada en mòduls) el desenvolupament és compatible amb els recursos del KDE (com la traducció, control del codi font, seguiment d'errors, etc.) però el KDE no l'allibera com a part del Plasma o el conjunt d'aplicacions. Aquests mòduls es coneixen com a «Extragear».
La selecció de quins dels mòduls possibles per a construir estan controlats pel fitxer de configuració. Després de la secció global
hi ha una llista de mòduls per a construir, entre claudàtors per mòdul... línies de mòdul final. Es mostra una entrada d'exemple per a un mòdul a l'Exemple 2.4, «Exemple d'una entrada «module» al fitxer de configuració».
Exemple 2.4. Exemple d'una entrada «module» al fitxer de configuració
module kdesrc-build-git
# Les opcions per a aquest mòdul van aquí, exemple:
repository kde:kdesrc-build
make-options -j4 # Executa 4 compilacions alhora
end module
Nota
A la pràctica, aquesta construcció de mòdul generalment no s'utilitza directament. En canvi, la majoria dels mòduls s'especifiquen mitjançant conjunts de mòduls com es descriu a continuació.
Quan només s'utilitzen entrades module
, el kdesrc-build les construeix en l'ordre en què els llisteu, i no intenta descarregar cap altre repositori que no sigui el que especifiqueu directament.
El codi font del KDE es descompon en una gran quantitat de repositoris relativament petits basats en Git. Per a facilitar la gestió de la gran quantitat de repositoris involucrats en qualsevol instal·lació útil basada en el KDE, el kdesrc-build admet l'agrupació de múltiples mòduls i el tractament del grup com a un «conjunt de mòduls».
En utilitzar un conjunt de mòduls, podreu declarar amb rapidesa molts mòduls de Git que es descarregaran i construiran, com si haguéssiu escrit una declaració de mòdul separada per a cadascun. L'opció repository es gestiona especialment per a configurar des d'on es descarregarà cada mòdul, i totes les altres opcions contingudes en el conjunt de mòduls es copiaran a cada mòdul generat d'aquesta manera.
Exemple 2.5. Emprar conjunts de mòduls
globalgit-repository-base
kde-git
kde:
end global moduleqt
# Opcions eliminades per brevetat: end module module-setkde-support-libs
repository
kde-git
use-modules
automoc
attica
akonadi
end module-set # Altres mòduls segons sigui necessari... modulekdesupport
end module
En l'Exemple 2.5, «Emprar conjunts de mòduls» es mostra un breu conjunt de mòduls. Quan el kdesrc-build troba aquest conjunt de mòduls, actua com si, per a cada mòdul indicat a use-modules
, s'hagués declarat un mòdul individual, amb el seu repository
igual que repository
del «module-set» seguit immediatament pel nom del mòdul indicat.
A més, es poden passar altres opcions en un conjunt de mòduls, les quals es copiaran a cada mòdul nou que es crea d'aquesta manera. En utilitzar el conjunt de mòduls, és possible declarar amb rapidesa molts mòduls Git que es basen en el mateix URL del fitxer. A més, és possible assignar un nom als conjunts de mòduls (com es mostra a l'exemple), el qual permet consultar amb rapidesa tot el grup de mòduls des de la línia d'ordres.
El suport del conjunt de mòduls descrit fins ara és general per a qualsevol mòdul basat en Git. Per als repositoris Git del KDE, el kdesrc-build inclou característiques addicionals per a facilitar les coses als usuaris i desenvolupadors. Aquest suport s'habilita especificant kde-projects
com el repository
per al conjunt de mòduls.
El kdesrc-build normalment només construeix els mòduls que heu llistat en el fitxer de configuració, en l'ordre en què els heu llistat. Però amb un conjunt de mòduls del kde-projects
, el kdesrc-build pot fer una resolució de dependències dels mòduls específics del KDE, i a més inclou automàticament mòduls en la construcció, fins i tot si només s'especifica indirectament.
Exemple 2.6. Emprar conjunts de mòduls «kde-projects»
# Només afegeix un mòdul per al juk (el repo kde/kdemultimedia/juk) module-setjuk-set
repository
kde-projectsuse-modules
juk
end module-set # Afegeix tots els mòduls a kde/multimedia/*, inclòs el juk, # però no les altres dependències module-setmultimedia-set
repository
kde-projectsuse-modules
kde/multimedia
end module-set # Afegeix tots els mòduls que es troben a kde/multimedia/*, # i totes les dependències a «kde-projects» des de fora del # kde/kdemultimedia module-setmultimedia-deps-set
repository
kde-projectsuse-modules
kde/multimedia
include-dependencies
true
end module-set # Tots els mòduls creats a partir d'aquests tres conjunts de mòduls es # col·locaran automàticament en l'ordre de dependència adequat, # independentment de la configuració de les dependències d'inclusió
Suggeriment
Aquesta construcció del conjunt de mòduls kde-projects
és el mètode principal per a declarar quins mòduls voleu construir.
Tots els conjunts de mòduls utilitzen les opcions repository i use-modules. Els conjunts de mòduls kde-projects
té un valor repository
predefinit, però altres tipus de conjunts de mòduls també utilitzaran l'opció git-repository-base.
Els repositoris Git del KDE permeten agrupar mòduls Git relacionats en col·leccions de mòduls relacionats (p. ex., kdegraphics). Git no reconeix aquestes agrupacions, però el kdesrc-build les pot comprendre, utilitzant conjunts de mòduls amb una opció repository
establerta a «kde-projects
».
El kdesrc-build reconeixerà que el repositori kde-projects
necessita un tractament especial i ajustarà el procés de construcció adequadament. Entre altres coses, el kdesrc-build farà:
Descarrega l'última base de dades de mòduls des de l'arxiu git del KDE.
Intenteu trobar un mòdul amb el nom indicat a l'opció
use-modules
del conjunt de mòduls en aquesta base de dades.Per a cada mòdul que es trobi, el kdesrc-build cercarà el repositori apropiat a la base de dades, en funció de l'opció branch-group vigent. Si hi ha un repositori i està actiu per al grup branca, el kdesrc-build el farà servir automàticament per a descarregar o actualitzar el codi font.
Nota
A la base de dades actual, alguns grups de mòduls no només tenen una col·lecció de mòduls, sinó que també declaren el seu propi repositori Git. En aquestes situacions, el kdesrc-build preferirà el repositori Git del grup en lloc d'incloure els repositoris dels fills.
El següent exemple mostra com utilitzar la base de dades del mòdul KDE per a instal·lar la biblioteca multimèdia Phonon.
module-setmedia-support
# Aquesta opció haurà de ser «kde-projects» per a utilitzar la base de dades dels mòduls.repository
kde-projects
# Aquesta opció tria quins mòduls cercar a la base de dades.use-modules
phonon/phonon
phonon-gstreamer
phonon-vlc
end module-set
Suggeriment
S'utilitza phonon/phonon
, ja que (amb la base de dades del projecte actual) el kdesrc-build hauria de decidir entre el grup de projectes anomenat «phonon» o el projecte individual anomenat «phonon». Actualment, el kdesrc-build triarà el primer, el qual generarà molts més dorsals dels necessaris.
El següent exemple potser és més realista i mostra una característica només disponible amb la base de dades de mòduls del KDE: construir totes les aplicacions gràfiques del KDE amb una sola declaració.
module-setkdegraphics
# Aquesta opció haurà de ser «kde-projects» per a utilitzar la base de dades dels mòduls.repository
kde-projects
# Aquesta opció tria quins mòduls cercar a la base de dades.use-modules
kdegraphics/libs
kdegraphics/*
end module-set
Aquí es demostren dues habilitats importants:
El kdesrc-build permet especificar mòduls que són descendents d'un mòdul indicat, sense construir el mòdul pare, utilitzant la sintaxi
. En realitat, es requereix en aquest cas, ja que el mòdul base, kdegraphics, està marcat com a inactiu perquè no es construeixi accidentalment juntament amb els seus mòduls fills. L'especificació dels mòduls descendents permet que el kdesrc-build ometi el mòdul inhabilitat.nom_mòdul
/*El kdesrc-build tampoc afegirà un mòdul indicat a la llista de construcció més d'una vegada. Això permet configurar manualment
kdegraphics/libs
per a construir-lo primer, abans que la resta delkdegraphics
, sense intentar construirkdegraphics/libs
dues vegades. Això solia ser necessari per al maneig adequat de les dependències, i avui segueix sent una opció alternativa en cas que la base de dades del projecte KDE no tingui metadades sobre les dependències.
Podeu decidir que voleu construir tots els programes dins d'una agrupació de mòduls del KDE, excepte un programa indicat.
Per exemple, el grup kdeutils
inclou un programa anomenat kremotecontrol. Si el vostre ordinador no té el maquinari adequat per a rebre els senyals enviats pels controls remots, llavors podríeu decidir que preferiu no descarregar, construir i instal·lar el kremotecontrol cada vegada que actualitzeu el kdeutils
.
Podeu aconseguir això utilitzant l'opció de configuració ignore-modules. A la línia d'ordres, l'opció --ignore-modules fa el mateix, però és més oportú per a filtrar un mòdul només una vegada.
Exemple 2.7. Exemple per a ignorar un mòdul «kde-project» en un grup
module-setutils
repository
kde-projects
# Aquesta opció tria quins mòduls cercar a la base de dades.use-modules
kdeutils
# Aquesta opció «manlleva» aquests mòduls dels mòduls escollits # anteriorment per «use-modules».ignore-modules
kremotecontrol
end module-set module-setgraphics
repository
kde-projects
# Aquesta opció tria quins mòduls cercar a la base de dades.use-modules
extragear/graphics
# Aquesta opció «manlleva» aquests mòduls dels mòduls escollits # anteriorment per «use-modules». # En aquest cas, *ambdós* extragear/graphics/kipi-plugins i # extragear/graphics/kipi-plugins/kipi-plugins-docs seran ignoratsignore-modules
extragear/graphics/kipi-plugins
end module-set