Changes

Aggiunto pagina relativa a TDE 14.1.0 su Slackware Linux 15.0
{{header_it|title=Installazione di TDE 14.1.0 su Slackware / SlackwareArm Linux 15.0 | keyword={{Template:keyword_it_tde}} | description=Installazione di Trinity Desktop Environment 14.1.0 su Slackware / SlackwareArm Linux 15.0 | link_page=en/Trinity_desktop_environment_14.1.0 }}

== '''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):
* [https://wiki.trinitydesktop.org/Release_Notes_For_R14.1.0 Note del rilascio della versione 14.1.0].
Oppure al rispettivo registro dei cambiamenti introdotti (sempre in inglese):
* [https://wiki.trinitydesktop.org/Changelog_For_R14.1.0 Elenco completo delle modifiche incluse nella versione 14.1.0].

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''':
<syntaxhighlight lang="bash">
# Add some include paths to the standard compiler flags otherwise the build
# process will fail with an error
SLKCFLAGS="${SLKCFLAGS} -L ${QTDIR}/lib${LIBDIRSUFFIX}"
</syntaxhighlight>

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&agrave; 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&ugrave; supportata.
* Correggere il codice tenendo conto che la sintassi di Python 3 non &egrave; 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''' &egrave; stato rinominato '''pytde''', adottando il nuovo nome introdotto dagli sviluppatori del progetto. La medesima convenzione &egrave; 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:
<syntaxhighlight lang="bash">
# 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()' )
</syntaxhighlight>

a:
<syntaxhighlight lang="bash">
# 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())' )
</syntaxhighlight>

Analogamente l'invocazione dello script di configurazione ha richiesto la modifica delle righe:
<syntaxhighlight lang="bash">
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
python ./configure.py \
-d "${PYTHON_LIB}" \
</syntaxhighlight>

in:
<syntaxhighlight lang="bash">
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
python3 ./configure.py \
-d "${PYTHON_LIB}" \
</syntaxhighlight>

==== Pytdeextensions ====
'''Pytdeextensions''' &egrave; 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 &egrave; stata adattata, cambiando le righe:
<syntaxhighlight lang="bash">
# Configure, build and install the package
python ./setup.py install --verbose --root=${PKG} \
2>&1 | tee ${OUTPUT}/${PRGNAM}_build.log
</syntaxhighlight>

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

ed evitare fastidiosi errori dovuti all'incompatibilit&agrave; tra versioni diverse del linguaggio.

==== Pytqt ====
Il pacchetto '''python-tqt''' &egrave; 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&ugrave; sostanziali:

&Egrave; stata aggiunto il percorso delle librerie tqt3 per il linker, modificando la riga:
<syntaxhighlight lang="bash">
SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I${PREFIX_TDE}/include"
</syntaxhighlight>

in:
<syntaxhighlight lang="bash">
SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I${PREFIX_TDE}/include -L ${QTDIR}/lib${LIBDIRSUFFIX}"
</syntaxhighlight>

L'invocazione dello script di configurazione &egrave; stata modificata da:
<syntaxhighlight lang="bash">
python configure.py -z \
</syntaxhighlight>

a:
<syntaxhighlight lang="bash">
python3 configure.py -z \
-q ${QTDIR} \
</syntaxhighlight>

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. &Egrave; 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&egrave; solo il modulo interno &egrave; stato rinominato in '''sip_tqt'''. &Egrave; stato imposto l'uso di Python 3 modificando la riga:
<syntaxhighlight lang="bash">
python configure.py \
</syntaxhighlight>

in:
<syntaxhighlight lang="bash">
python3 configure.py \
</syntaxhighlight>

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''' &egrave; 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'''. [https://github.com/heimdal/heimdal/wiki Heimdal] &egrave; una implementazione libera ed aperta del protocollo '''Kerberos 5'''. [http://web.mit.edu/kerberos/ Kerberos] &egrave; un protocollo di autenticazione via rete che sfrutta i ticket per consentire il riconoscimento di qualcuno attraverso un canale non sicuro. [https://github.com/heimdal/heimdal/wiki Heimdal] va a rimpiazzare l'implementazione classica / ufficiale di [http://web.mit.edu/kerberos/ Kerberos] distribuita con Slackware 15.0. Non esiste un pacchetto ufficiale di Heimdal per Slackware Linux, ma fortunatamente uno script di compilazione &egrave; reperibile nel sito del progetto [https://www.slackbuilds.org/repository/15.0/network/heimdal/ www.slackbuilds.org]. Il pacchetto ottenuto pu&ograve; coesistere con quello ufficiale, per cui entrambi possono essere installati sulla medesima macchina senza incorrere in conflitti.

[https://github.com/heimdal/heimdal/wiki 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&agrave; 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:
<syntaxhighlight lang="bash">
# 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}"
</syntaxhighlight>

La seconda ed ultima modifica consiste nel popolare opportunamente le variabili '''DHEIMDAL_INCLUDEDIR''' e '''DHEIMDAL_LIBDIR''' passate al comando '''cmake''' perch&egrave; configuri il codice sorgente:
<syntaxhighlight lang="bash">
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
</syntaxhighlight>

Lo script modificato produrr&agrave; un pacchetto funzionante della libreria ed abiliter&agrave; 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:
<syntaxhighlight lang="bash">
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
./configure \
${DEBUG_AUTOTOOL_OPT} \
--prefix=${PREFIX} \
--with-qt-dir=${PREFIX} \
</syntaxhighlight>

&egrave; diventato:
<syntaxhighlight lang="bash">
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
./configure \
${DEBUG_AUTOTOOL_OPT} \
--prefix=${PREFIX} \
--with-tqt-dir=${PREFIX} \
</syntaxhighlight>

La vecchia e dismessa opzione ''--with-qt-dir'' &egrave; 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: [http://www.giustetti.net/resource/slackbuild/tde/1410/tde_build_tree_sg-14.1.0.tar.bz2 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 [https://mirror.ppa.trinitydesktop.org/trinity/releases/R14.1.0/R14.1.0-complete.tar codice sorgente di '''tutti''' i pacchetti].
* Distribuire i tanti archivi compressi in cui &egrave; 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'''.
<syntaxhighlight lang="bash">
init 3
</syntaxhighlight>

* Se fosse gi&agrave; presente una installazione di TDE, bisogna rimuovere tutti i pacchetti installati '''prima''' di avviare gli script in modo da non introdurre ambiguit&agrave; durante la compilazione. Nel caso dei pacchetti della versione 14.0.13, ad esempio, eseguire:
<syntaxhighlight lang="bash">
removepkg /var/log/packages/*trinity-14.0.13*
</syntaxhighlight>

Oppure il pi&ugrave; generico comando:
<syntaxhighlight lang="bash">
removepkg /var/log/packages/*trinity-14.0.*
</syntaxhighlight>

* Cancellare eventuali script di configurazione "dimenticati" dal comando '''removepkg'''.
<syntaxhighlight lang="bash">
rm /etc/profile.d/tqt3.*
rm /etc/profile.d/trinity.*
</syntaxhighlight>

* 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
<syntaxhighlight lang="bash">
# Build package
# bash ./${PKG}.SlackBuild
</syntaxhighlight>

in
<syntaxhighlight lang="bash">
# Build package
bash ./${PKG}.SlackBuild
</syntaxhighlight>

* 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
<syntaxhighlight lang="bash">
rm TDE.options
ln -s TDE.options.x86_64 TDE.options
</syntaxhighlight>

* Spostarsi nella cartella ''tde_build_script/bin'' e lanciare lo script '''TDE.SlackBuild'''.
<syntaxhighlight lang="bash">
cd ./tde_build_script/bin
sh ./TDE.SlackBuild
</syntaxhighlight>

* 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&agrave; circa doppio se si compilano anche i file di localizzazione. Lo script provveder&agrave; 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'''.
<syntaxhighlight lang="bash">
init 4
</syntaxhighlight>


== 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 &egrave; 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
----

* [http://www.slackware.com Home page di Slackware (En)]
* [http://arm.slackware.com Slackware Linux per piattaforma ARM]
* [http://www.trinitydesktop.org Home page del progetto TDE (En)]
* [https://mirror.ppa.trinitydesktop.org/trinity/releases/R14.1.0/downloads.html La pagina da cui scaricare il codice sorgente di TDE]
* [http://web.mit.edu/kerberos/ Home Page ufficiale del protocollo Kerberos 5 al MIT (En)]
* [https://it.wikipedia.org/wiki/Kerberos Pagina di Wikipedia dedicata a Kerberos 5]
* [https://github.com/heimdal/heimdal/wiki Home Page ufficiale di Heimdal (En)]


----

{{footer_it | link_page=en/Trinity_desktop_environment_14.1.0}}