Organitzar i seleccionar els mòduls

Organització del programari KDE

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.

  1. 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.

  2. 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».

  3. 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.

  4. 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».

Seleccionar els mòduls a construir

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.

Conjunts de mòduls

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».

El concepte bàsic del 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

global
    git-repository-base kde-git kde:
end global

module qt
    # Opcions eliminades per brevetat:
end module

module-set kde-support-libs
    repository kde-git
    use-modules automoc attica akonadi
end module-set

# Altres mòduls segons sigui necessari...
module kdesupport
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.

Suport especial per a conjunts de mòduls del KDE

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-set juk-set
    repository kde-projects
    use-modules juk
end module-set

# Afegeix tots els mòduls a kde/multimedia/*, inclòs el juk,
# però no les altres dependències
module-set multimedia-set
    repository kde-projects
    use-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-set multimedia-deps-set
    repository kde-projects
    use-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.

La base de dades oficial de mòduls del KDE

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-set media-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-set kdegraphics
    # 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:

  1. 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 nom_mòdul/*. 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.

  2. 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 del kdegraphics, sense intentar construir kdegraphics/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.

Filtrar mòduls del projecte KDE

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-set utils
    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-set graphics
    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 ignorats
    ignore-modules extragear/graphics/kipi-plugins
end module-set