Trinity desktop environment 14.1.0

From Studiosg
Jump to navigationJump to search

Benvenuti nella pagina Wiki di Simone Giustetti.


Lingue: English - Italiano


TDE 14.1.0 su Slackware 15.0

Il 30 Aprile 2023 segna la fine del ramo di sviluppo 14.0.x del Trinity Desktop Environment. Dopo oltre 8 anni, gli sviluppatori hanno infatti dichiarato ufficialmente maturo il ramo 14.1.x dell'ambiente grafico, rilasciando la prima versione disponibile al pubblico. Non sono previsti ulteriori rilasci del ramo 14.0.x.

La nuova versione dell'ambiente grafico introduce molte migliorie, sia del codice sorgente che delle prestazioni, e la consueta correzione di tutti gli errori segnalati nei 6 mesi intercorsi dal precedente rilascio. Tra le migliorie introdotte risultano subito evidenti:

  • Il supporto alla crittografia ed alla cifratura di dischi e partizioni attraverso l'interfaccia LUKS del kernel Linux.
  • Un nuovo sistema di avvisi per i dischi rimovibili e gli eventi associati al loro collegamento oppure alla loro rimozione.
  • Il supporto base per PulseAudio.
  • Il supporto per l'infrastruttura PKI che dovrebbe semplificare la vita a chi usi certificati x.509, Smart Card ed altri dispositivi crittografici e voglia integrarli con le applicazioni di TDE.
  • L'introduzione di una nuova applicazione per gestire i dispositivi bluetooth (tdebluez).
  • L'introduzione di un nuovo riproduttore audio / video: kplayer basato su Mplayer, di cui si sentiva la necessità vista l'obsolescenza delle applicazioni incluse in TDEMultimedia.
  • L'aggiunta di nuovi temi grafici, alcuni dei quali basati sul Icewm, un gestore di finestre per l'interfaccia grafica X.
  • L'introduzione al supporto per il formato compresso lzip / lzma in Ark. Molto comodo data l'importanza sempre maggiore che sta assumendo questo formato di compressione presso gli utenti.
  • Un nuovo pannello per gestire le sessioni in Kate.
  • La definitiva rimozione del supporto per Python 2 in favore di Python 3.
  • Molte migliorie ai programmi di configurazione ed alle relative GUI.

Sono state apportate inoltre molte ulteriori migliorie, non esplicitamente visibili, ai servizi su cui si appoggia l'ambiente grafico. Per un elenco completo di cosa sia cambiato, si consiglia di consultare la pagina contenente le note di rilascio (in inglese):

Oppure al rispettivo registro dei cambiamenti introdotti (sempre in inglese):

Nel seguito dell'articolo verranno illustrate le modifiche apportate negli script utilizzati per compilare una versione funzionante di TDE 14.1.0 per Slackware Linux 15.0 su piattaforme amd64, arm e x86.

Un Poco di Pulizia

Un ramo di sviluppo totalmente nuovo rappresenta un'ottima occasione per fare un po' di pulizia, rimuovendo dagli script tutte le istruzioni, variabili, funzioni, che, divenute ormai obsolete, si sono accumulate nel tempo per permettere di compilare anche versioni molto vecchie. Il ramo 14.1.x non deve necessariamente essere compatibile con i predecessori e consente di fare tabula rasa e partire da zero. Con l'occasione, è stata rimossa da tutti script SlackBuild la variabile SOURCE_SUBDIR. La variabile era comunque inutilizzata da tempo e la modifica non impatta, di fatto, la procedura di preparazione dei pacchetti.


Nuovi Parametri di Compilazione

Una modifica che ha impattato la maggioranza degli script di compilazione riguarda i parametri passati a compilatore e linker attraverso la variabile SLKCFLAGS. Per ragioni che non ho ancora indagato, la variabile di ambiente LD_LIBRARY_PATH non sembra essere interpretata correttamente da cmake con il risultato che gli script SlackBuild di quasi tutti i pacchetti di cui è costituito TDE terminano immediatamente lamentando l'assenza delle librerie tqt3. Mi occupo di TDE da oltre 10 anni e questa è la prima volta che incappo in un intoppo così massiccio. Nulla di simile era mai successo nel ramo 14.0.x, se non per pochi pacchetti sparsi, nel corso degli anni. Il problema si risolve facilmente, aggiungendo la seguente riga prima dell'invocazione di cmake:

   # Add some include paths to the standard compiler flags otherwise the build
   # process will fail with an error
   SLKCFLAGS="${SLKCFLAGS} -L ${QTDIR}/lib${LIBDIRSUFFIX}"

Come anticipato, gli script impattati dal problema sono molti. Segue l'elenco completo:

  • Prerequisite / Dependencies
    • Arts
    • Avahi-tqt
    • Dbus-1-tqt
    • Dbus-tqt
    • Polkit-tqt
    • Pytqt
    • Tqca
    • Tqscintilla
    • Tqtinterface
  • Library / Libraries
    • Libkdcraw
    • Libkexiv2
    • Libkipi
    • Libtdeldap
    • Pytdeextensions
  • Base / Core
    • Tdeaccessibility
    • Tdeaddons
    • Tdeadmin
    • Tdeartwork
    • Tdebase
    • Tdeedu
    • Tdegames
    • Tdegraphics
    • Tdelibs
    • Tdemultimedia
    • Tdenetwork
    • Tdepim
    • Tdeutils
    • Tdesdk
    • Tdetoys
    • Tdewebdev

Python

Apparentemente la rimozione del supporto per Python 2 da tutta l'infrastruttura del Trinity Desktop Environment non dovrebbe presentare problemi. Slackware Linux, come la maggioranza delle distribuzioni, ha introdotto da tempo il supporto per Python 3. In realtà esistono delle conseguenze e non sono trascurabili per chi compila pacchetti. Seppure Slackware Linux supporti nativamente Python 3, include anche la versione 2 del linguaggio, che rimane quella predefinita per il numero enorme di librerie che non sono ancora state migrate alla versione 3 di Python, nonostante i 15 anni intercorsi dalla sua introduzione. In Slackware, il comando python chiama automaticamente l'interprete di Python 2. Per lanciare esplicitamente Python 3 si usa il comando python3, che, oltre all'interprete, carica le opportune variabili di ambiente ed i percorsi per le librerie e le estensioni della versione 3. Tutti gli script di compilazione dei pacchetti legati a Python devono, di conseguenza, essere modificati per:

  • Chiamare la versione 3 di Python al posto della 2, non più supportata.
  • Correggere il codice tenendo conto che la sintassi di Python 3 non è retro compatibile con la versione 2 del linguaggio.

Segue l'elenco dei pacchetti interessati dalle modifiche ed il dettaglio dei cambiamenti apportati.

Pytde

Il pacchetto python-trinity è stato rinominato pytde, adottando il nuovo nome introdotto dagli sviluppatori del progetto. La medesima convenzione è stata adottate per lo script SlackBuild e per la cartella che lo contiene. Per configurare correttamente e compilare il pacchetto sono stati rimossi tutti i riferimenti a Python 2, sostituendoli con comandi per la versione 3 del linguaggio. Le righe di configurazione dei percorsi sono state modificate da:

   # Define some python related variables.
   export PYTHON_VER=$( python -V 2>&1 | cut -f 2 -d' ' | cut -f 1-2 -d. )
   export PYTHON_LIB=$( python -c 'from distutils.sysconfig import get_python_lib; print get_python_lib()' )

a:

   # Define some python related variables.
   export PYTHON_VER=$( python3 -V 2>&1 | cut -f 2 -d' ' | cut -f 1-2 -d. )
   # Add a couple of parentheses to comply with python 3 new syntax
   export PYTHON_LIB=$( python3 -c 'from distutils.sysconfig import get_python_lib; print( get_python_lib())' )

Analogamente l'invocazione dello script di configurazione ha richiesto la modifica delle righe:

   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   python ./configure.py \
      -d "${PYTHON_LIB}" \

in:

   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   python3 ./configure.py \
      -d "${PYTHON_LIB}" \

Pytdeextensions

Pytdeextensions è una libreria che contiene centinaia di classi che legano il linguaggio Python ai controlli inclusi nel Trinity Desktop Environment. Le istruzioni per compilare il codice sorgente e preparare il pacchetto sono scritte con la sintassi di Python 3 per cui l'invocazione dello script preposto è stata adattata, cambiando le righe:

   # Configure, build and install the package
   python ./setup.py install --verbose --root=${PKG} \
      2>&1 | tee ${OUTPUT}/${PRGNAM}_build.log

in:

   # Configure, build and install the package
   python3 ./setup.py install --verbose --root=${PKG} \
      2>&1 | tee ${OUTPUT}/${PRGNAM}_build.log

ed evitare fastidiosi errori dovuti all'incompatibilità tra versioni diverse del linguaggio.

Pytqt

Il pacchetto python-tqt è stato rinominato in pytqt analogamente allo script SlackBuild ed alla cartella che lo contiene. Il tutto per allinearsi al nuovo nome introdotto nella versione 14.0.1 del Trinity Desktop Environment. Sono state apportate anche altre modifiche più sostanziali:

È stata aggiunto il percorso delle librerie tqt3 per il linker, modificando la riga:

   SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I${PREFIX_TDE}/include"

in:

   SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I${PREFIX_TDE}/include -L ${QTDIR}/lib${LIBDIRSUFFIX}"

L'invocazione dello script di configurazione è stata modificata da:

   python configure.py -z \

a:

   python3 configure.py -z \
      -q ${QTDIR} \

imponendo l'uso di Python 3, per essere certi che i moduli siano compilati per la versione corretta del linguaggio ed installati nella directory opportune. È stata imposta inoltre esplicitamente la locazione delle librerie tqt3 mediante l'opzione -q. Aggiunta necessaria per evitare che lo script eseguisse la ricerca nella cartella predefinita /usr, senza trovare nulla.

Sip4-tqt

Il nome del pacchetto resta inalterato perchè solo il modulo interno è stato rinominato in sip_tqt. È stato imposto l'uso di Python 3 modificando la riga:

   python configure.py \

in:

   python3 configure.py \

assicurandosi che i moduli compilati siano compatibili con TDE e vengano installati nelle directory relative a Python 3 e non quelle dedicate a Python 2. Facendo altrimenti, i moduli di sip-tqt non verrebbero rilevati dagli altri componenti dell'ambiente grafico.


Ulteriori Modifiche Specifiche

Alcuni script hanno richiesto modifiche specifiche per essere adattati alla nuova versione di TDE. Segue un elenco dei pacchetti interessati ed il dettaglio delle modifiche apportate:

Cmake

Il pacchetto cmake è stato rinominato in tde-cmake analogamente allo script SlackBuild ed alla cartella che lo contiene. Il tutto per adeguarsi alla nuova nomenclatura decisa dagli sviluppatori di TDE e non incorrere in confusione e disguidi.

Libtdeldap

La libreria libtdeldap ha introdotto una nuova dipendenza: Heimdal 7.7.0. Heimdal è una implementazione libera ed aperta del protocollo Kerberos 5. Kerberos è un protocollo di autenticazione via rete che sfrutta i ticket per consentire il riconoscimento di qualcuno attraverso un canale non sicuro. Heimdal va a rimpiazzare l'implementazione classica / ufficiale di Kerberos distribuita con Slackware 15.0. Non esiste un pacchetto ufficiale di Heimdal per Slackware Linux, ma fortunatamente uno script di compilazione è reperibile nel sito del progetto www.slackbuilds.org. Il pacchetto ottenuto può coesistere con quello ufficiale, per cui entrambi possono essere installati sulla medesima macchina senza incorrere in conflitti.

Heimdal deve essere installato prima di avviare lo script di compilazione di libtdeldap. Lo script SlackBuild di compilazione di libtdeldap deve essere aggiornato definendo i percorsi ove ricercare i file include e le librerie di Heimdal. Omettendo le modifiche, lo script fallisce immediatamente segnalando l'impossibilità di trovare quanto necessario.

La prima modifica consiste nell'aggiungere i percorsi corretti alla variabile SLKCFLAGS, che contiene alcuni parametri passati a cmake, al compilatore ed al linker:

   # Add some include paths to the standard compiler flags otherwise the build
   # process will fail with an error
   SLKCFLAGS="${SLKCFLAGS} -I /usr/heimdal/include -L ${QTDIR}/lib${LIBDIRSUFFIX} -L /usr/heimdal/lib${LIBDIRSUFFIX}"

La seconda ed ultima modifica consiste nel popolare opportunamente le variabili DHEIMDAL_INCLUDEDIR e DHEIMDAL_LIBDIR passate al comando cmake perchè configuri il codice sorgente:

   cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
      -DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
      -DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} ${DEBUG_CMAKE_OPT}" \
      -DCMAKE_INSTALL_PREFIX=${PREFIX} \
      -DCMAKE_SKIP_RPATH="OFF" \
      -DLIB_SUFFIX=${LIBDIRSUFFIX} \
      -DMAN_INSTALL_DIR=${MANDIR} \
      -DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
      -DHEIMDAL_INCLUDEDIR=/usr/heimdal/include \
      -DHEIMDAL_LIBDIR=/usr/heimdal/lib${LIBDIRSUFFIX} \
      -DBUILD_ALL=ON \
      2>&1 | tee -a ${OUTPUT}/${PRGNAM}_configure.log

Lo script modificato produrrà un pacchetto funzionante della libreria ed abiliterà l'integrazione del protocollo LDAP in TDE.

Libtqt-perl

La libreria ha subito alcune modifiche allo script di configurazione per cui le righe che lo invocano devono essere aggiornate in accordo:

   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   ./configure \
      ${DEBUG_AUTOTOOL_OPT} \
      --prefix=${PREFIX} \
      --with-qt-dir=${PREFIX} \

è diventato:

   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   ./configure \
      ${DEBUG_AUTOTOOL_OPT} \
      --prefix=${PREFIX} \
      --with-tqt-dir=${PREFIX} \

La vecchia e dismessa opzione --with-qt-dir è stata rimpiazzata con la nuova --with-tqt-dir.

Tdebase

Alcune opzioni deprecate e commentate sono state rimosse dall'invocazione del comando cmake. I commenti potevano causare il fallimento dello script sulla piattaforma Amd64. Trattandosi di opzioni inutilizzate da diverso tempo, la modifica non comporta nessuna conseguenza per i binari compilati.



IL BUILD TREE

Avendo concluso l'elenco delle modifiche sparse apportate agli script, riporto un collegamento da cui scaricare un archivio compresso che li include tutti: tde_build_tree_sg-14.1.0.tar.bz2. Segue una breve procedura per usare al meglio gli script che preparano tutti i pacchetti di TDE:

  • Scaricare e decomprimere l'archivio contenente il build tree in una directory della propria Linux Box. Solitamente /tmp oppure /usr/src/tde-14.1.0.
  • Scaricare e decomprimere l'archivio tar contenente il codice sorgente di tutti i pacchetti.
  • Distribuire i tanti archivi compressi in cui è organizzato il codice sorgente nelle opportune directory. Un archivio avente estensione tar.xz per ogni directory avente il medesimo nome.
  • Entrare nel runlevel 3 e rieseguire l'autenticazione come root.
   init 3
  • Se fosse già presente una installazione di TDE, bisogna rimuovere tutti i pacchetti installati prima di avviare gli script in modo da non introdurre ambiguità durante la compilazione. Nel caso dei pacchetti della versione 14.0.13, ad esempio, eseguire:
   removepkg /var/log/packages/*trinity-14.0.13*

Oppure il più generico comando:

   removepkg /var/log/packages/*trinity-14.0.*
  • Cancellare eventuali script di configurazione "dimenticati" dal comando removepkg.
   rm /etc/profile.d/tqt3.*
   rm /etc/profile.d/trinity.*
  • Eseguire il logout per poi autenticarsi nuovamente in modo che tutti i riferimenti a TDE vengano rimossi dalla memoria e dalle variabili di ambiente.
  • Se si desiderasse preparare anche tutti i pacchetti di localizzazione, modificare lo script principale tde_build_script/bin/TDE.SlackBuild rimuovendo il commento dall'inizio della riga
      # Build package
   #   bash ./${PKG}.SlackBuild

in

      # Build package
      bash ./${PKG}.SlackBuild
  • Impostare le opzioni di configurazione per la propria piattaforma. Nel caso di un computer con processore Amd a 64 bit, ad esempio, eseguire i seguenti comandi
   rm TDE.options
   ln -s TDE.options.x86_64 TDE.options
  • Spostarsi nella cartella tde_build_script/bin e lanciare lo script TDE.SlackBuild.
   cd ./tde_build_script/bin
   sh ./TDE.SlackBuild
  • Attendere pazientemente che lo script termini di girare. Le tempistiche variano molto in base al processore ed all'architettura, ma saranno comunque necessarie diverse ore per compilare il Trinity Desktop Environment. Il periodo sarà circa doppio se si compilano anche i file di localizzazione. Lo script provvederà a compilare ed installare automaticamente tutti i pacchetti dell'ambiente.
  • Rimuovere eventuali pacchetti superflui o indesiderati.
  • Lanciare il comando startx onde verificare che l'ambiente funzioni e sia stato installato correttamente.
  • Chiudere la sessione di TDE e ritornare nel runlevel 4.
   init 4


CONCLUSIONI

Nel corso dei precedenti paragrafi sono state illustrate le modifiche principali introdotte nel nuovo ramo di sviluppo del Trinity Desktop Environment: 14.1.x. Gli script di compilazione aggiornati e testati sono stati raccolti in un unico archivio in modo da facilitarne la fruizione e l'uso. Per istruzioni dettagliate circa l'uso degli script si rimanda agli altri articoli reperibili nel sito. La procedura di compilazione dei pacchetti è molto stabile ed il passaggio dal ramo 14.0.x al 14.1.x non dovrebbe incorrere in intoppi. Tutti i test di compilazione, installazione, configurazione e successivo uso sono stati condotti su di un Desktop su cui gira una versione di Slackware Linux 15.0 per piattaforma Amd a 64 e x86 a 32 bit. In conclusione si rinnovano i consueti ringraziamenti agli sviluppatori del Trinity Desktop Environment per l'impegno e gli sforzi compiuti. Ci si aggiorna tra 6 mesi: al prossimo rilascio ufficiale di TDE.

Per commenti, consigli, domande inviate una e-mail all'indirizzo studiosg [chiocciola] giustetti [punto] net.


Link esterni





Lingue: English - Italiano