Changes

From Studiosg
Jump to navigationJump to search
Aggiunto pagina relativa a TDE 14.0.7
{{header_it|title=Installazione di TDE 14.0.7 SlackwareArm Linux 14.2 Curent| keyword={{Template:keyword_it_tde}}| description=Installazione di Trinity Desktop Environment 14.0.7 su SlckwareArm Linux 14.2 Current | link_page=en/Trinity_desktop_environment_14.0.7}}

== '''TDE 14.0.7''' ==

Lo scorso 31 Dicembre del 2019 dopo quasi 8 mesi di lavoro è stato ufficializzato il rilascio della '''versione 14.0.7 di Trinity Desktop Environment''': un ambiente grafico che supporta il sistema operativo '''Linux''' e parzialmente '''FreeBSD'''. Si tratta di un rilascio finalizzato alla correzione dei bachi scoperti nella versione precedente, ma gli sviluppatori hanno comunque incluso numerose migliorie sia al sistema di base che ai programmi a corredo. Per un elenco esaustivo delle modifiche e delle integrazioni si rimanda alle [https://wiki.trinitydesktop.org/Release_Notes_For_R14.0.7 note del rilascio] (in inglese).

Una delle modifiche più impattanti per chi produce in proprio i pacchetti dell'ambiente grafico consiste nella migrazione di sistema di build: il sistema originale '''autotools''' sta venendo progressivamente rimpiazzato con '''cmake'''. Si tratta di una grossa modifica ancora in corso d'opera, incominciata con la primissima versione di TDE e portata avanti a sprazzi in base alle priorità del gruppo di sviluppo nel corso degli anni. L'obiettivo finale consiste in configurare e compilare tutti i pacchetti di TDE con '''cmake'''. L'elenco è ancora parziale, ma fa comunque piacere constatare che il numero di pacchetti gestiti mediante il nuovo sistema sia cresciuto in maniera significativa rispetto al passato.

Da anni mantengo un insieme di script che consentono di compilare Trinity Desktop Environment per Slackware Linux e, complice l'acquisto di un nuovo Raspberry Pi 4 a scopo di test e la clausura forzata dal virus Covid-19, li ho aggiornati allineandoli alla versione 14.0.7. Segue un elenco delle modifiche apportate rispetto alla versione 14.0.6 con relativa descrizione dettagliata. Per gli impazienti: '''un archivio contenente una copia aggiornata degli script è scaricabile dal collegamento a fondo pagina'''.

=== Modifiche Generali al Build Tree ===
Alcune modifiche hanno riguardato l'intero build tree ossia tutti gli script che configurano e compilano il codice sorgente dei pacchetti costituenti TDE. Ovviamente, essendo cambiata la versione, sono state aggiornate tutte le variabili di ambiente adattandole alla nuova numerazione e ad altre piccole modifiche introdotte dagli sviluppatori. Il tutto senza stravolgere le linee guida del mio progetto. In particolare la directory di installazione preferita rimane '''/opt'''. In ogni script è stato aggiunto il calcolo di un '''checksum in formato SHA512''' utile per chi desiderasse distribuire i pacchetti compilati e per verificarne l'integrità. Gli script prevedono ancora il calcolo del classico '''checksum MD5''' anche se l'algoritmo sta progressivamente venendo rimpiazzato in quanto suscettibile a vulnerabilità che lo rendono insicuro.

Come anticipato nel paragrafo precedente, la modifica più sostanziale introdotta in TDE 14.0.7 consiste nella migrazione di molti pacchetti al sistema di compilazione '''cmake'''. La migrazione comporta l'impossibilità di generare pacchetti funzionanti a meno di aggiornare gli script preposti. Gli script preparati per TDE 14.0.6 o per le versioni precedenti andranno in errore non essendo confezionati per il giusto sistema. Di seguito verranno elencati i pacchetti toccati dalla modifica. Gli script relativi hanno subito due sostanziali modifiche. In primo luogo '''la pulizia della cache di cmake''' e '''la creazione della cartella dedicata alla compilazione''':
<syntaxhighlight lang="bash">
# Clean cmake cache
find . -name CMakeCache.txt -exec rm {} \;

# Create a directory where to build source (cmake wants the name to be build).
cd ${TMP}/tmp-${PRGNAM}
mkdir build
cd build
</syntaxhighlight>

e, seconda ma non meno importante modifica, nell''''invocazione del comando usato per configurare il codice sorgente'''. Ad esempio:
<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} \
-DBUILD_ALL=ON \
2>&1 | tee -a ${OUTPUT}/${PRGNAM}_configure.log
</syntaxhighlight>

al posto di:
<syntaxhighlight lang="bash">
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
./configure \
--prefix=${PREFIX} \
--libdir=${LIBDIR} \
--build=$ARCH-slackware-linux \
2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log
</syntaxhighlight>

di seguito sono dettagliate tutte le modifiche apportate agli specifici pacchetti.

=== Modifiche all'Insieme dei Prerequisiti ===
L'insieme dei prerequisiti comprende tutti i programmi e le librerie richieste per ottenere un ambiente grafico base. Una modifica ha riguardato l'ordine di compilazione dei pacchetti: '''Akode''' e '''Libr''', prerequisiti aggiunti nella precedente versione 14.0.6 di TDE, sono ora compilati per primi. Lo spostamento in ragione del fatto che altri pacchetti potrebbero trattarli come dipendenze. Di sicuro, vista la loro funzione, '''tdemultimedia''' e potenzialmente '''arts''', anche se nutro dei dubbi su quest'ultimo. Modificare l'ordine di compilazione non ha causato errori o problemi nei successivi test per cui si pu&ograve; affermare con le dovute cautele che l'aggiornamento funzioni.

==== AVAHI-TQT ====
Avahi è una implementazione del servizio di '''Zeroconf''' (configurazione zero) che permette di assemblare una rete basata sui '''protocolli TCP/IP''' senza alcuna opera di configurazione. Il demone / servizio, un a volta installato ed avviato, esegue scansioni periodiche della rete alla ricerca dei servizi disponibili e salvando i risultati in cache per minimizzare il traffico. Il pacchetto '''avahi-tqt''' consente di integrare le funzionalit&agrave; di Avahi nel Trinity Desktop Environment. Si tratta di una dipendenza superflua che di solito non compilo. Ammetto di averlo totalmente ignorato quando ho aggiornato gli script alla versione 14.0.6. Recentemente ho lavorato alla [[compilare_libreoffice_per_slackware | compilazione di LibreOffice su Slackware ARM 14.2 current]]. Dato che avahi &egrave; una potenziale seppur inutile dipendenza per entrambi i progetti ho deciso di compilare ed installare il pacchetto per completezza. Le istruzioni per compilare una versione utilizzabile di avahi sono reperibili nella [[compilare_libreoffice_per_slackware#Avahi | pagina dedicata a LibreOffice]]. Avahi-tqt ha subito un notevole aggiornamento in TDE 14.0.7: &egrave; stato portato a '''cmake''' per cui il vecchio script di compilazione non funziona pi&ugrave;. Quello nuovo, incluso nel build tree 14.0.7 &egrave; stato modificato in modo da invocare cmake e produrre un pacchetto completo, funzionante per avahi-tqt.

==== LIBART-LGPL ====
Anche libart-lgpl, una libreria veloce e leggera per la grafica in 2 dimensioni, &egrave; stata migrata a '''cmake'''. Si tratta fortunatamente dell'unica modifica introdotta.

==== LIBCALDAV ====
Libcaldav, una libreria usata per includere in TDE il supporto per il protocollo '''CalDAV''', &egrave; stata migrata a '''cmake''' come molti altri prerequisiti, per cui il suo script ha richiesto alcune modifiche. Inoltre &egrave; stato rimosso il documento ''rfc4791.pdf'' dalla variabile '''DOCS''', usata per copiare la documentazione della directory apposita. Il documento in questione &egrave; stato spostato nella directory ''./doc'' dell'archivio contenete il codice sorgente e la sua inclusione tra la documentazione viene gestita dal '''MakeFile'''. Non &egrave; pertanto pi&ugrave; richiesto copiarlo in maniera esplicita.

==== LIBCARDDAV ====
L'aggiornamento di '''libcarddav''' ha seguito pari, pari quello di libcaldav, la libreria gemella. Anche in questo caso &egrave; stato introdotto '''cmake''' come sistema di compilazione ed &egrave; stato rimosso il documento ''rfc4791.pdf'' dalla variabile '''DOCS''', gestito in altra maniera dalla procedura di compilazione.

==== TQCA ====
L'unica variazione allo script di compilazione consiste nella sostituzione dell'opzione di configurazione deprecata '''qtdir''' con '''tqtdir''':
<syntaxhighlight lang="bash">
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
./configure \
--prefix=${PREFIX} \
--tqtdir=${QTDIR} \
2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log
</syntaxhighlight>

==== TQCA-TLS ====
Lo script di compilazione rimane praticamente invariato se si esclude la sostituzione dell'opzione di configurazione deprecata '''qtdir''' con '''tqtdir''':
<syntaxhighlight lang="bash">
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
./configure \
--tqtdir=${QTDIR} \
2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log
</syntaxhighlight>
----

=== Modifiche all'Insieme delle Librerie ===
Trinity Desktop Environment si appoggia su numerose librerie esterne per incrementare le proprie funzionalit&agrave;. Gli sviluppatori di TDE stanno facendo un grosso lavoro per migrare tutte le librerie opzionali al sistema di compilazione '''cmake'''. Il passsaggio non &egrave; ancora completo, ma cmake &egrave; stato introdotto in alcuni pacchetti anche con il rilascio 14.0.7, incrementando il numero complessivo ed avvicinandosi al traguardo finale. Di seguito sono elencati i pacchetti il cui script di compilazione &egrave; stato aggiornato e un dettaglio delle modifiche stesse.

==== KIPI-PLUGINS ====
I '''plug-in di kipi''' sono stati migrati a '''cmake'''. Non si segnalano altre modifiche introdotte.

==== LIBKDCRAW ====
Gli sviluppatori hanno incominciato la migrazione del sistema di compilazione a '''cmake''' ed hanno inoltre introdotto la possibilit&agrave; di compilare il codice sorgente in una directory diversa da quella di residenza. Quello che in inglese si chiama compilazione '''"out of tree"''' e che non era supportato nelle versioni precedenti di TDE. Purtroppo si tratta di un lavoro in corso d'opera, non ancora concluso. Pertanto &egrave; stato mantenuto il vecchio sistema di compilazione basato su '''autotools'''. Ottimisticamente, visto lo stato del codice sorgente, si tratta di aspettare la prossima versione per poter usare '''cmake'''.

==== LIBKEXIV2 ====
La libreria '''libkexiv2''' &egrave; stata migrata a '''cmake'''. Non si segnalano altre modifiche introdotte.

==== LIBKIPI ====
La libreria '''libkipi''' &egrave; stata migrata a '''cmake'''. L'introduzione del nuovo sistema di compilazione &egrave; l'unica novit&agrave; introdotta nella versione 14.0.7.

==== LIBKSQUIRREL ====
Gli sviluppatori hanno incominciato a migrare la libreria '''libksquirrel''' al sistema di compilazione '''cmake'''. Non si tratta dell'unica novit&agrave; introdotta nella versione 14.0.7. Gli sviluppatori hanno infatti introdotto la possibilit&agrave; di compilare il codice sorgente in una directory diversa da quella di residenza. Quello che in inglese si chiama compilazione '''"out of tree"''', non supportato nelle versioni precedenti di TDE. La conversione non &egrave; ancora stata completata per cui il vecchio script di compilazione che faceva ricorso ad '''autotools''' funziona ancora perfettamente. In attesa che la migrazione sia conclusa.

==== LIBTDELDAP ====
L'ultima libreria oggetto della migrazione del sistema di compilazione &egrave; '''libtdeldap''', avente la funzione di aggiungere al Trinity Desktop Environment il supporto al protocollo LDAP. Lo script SlackBuild usato per compilare un pacchetto funzionante di libtdeldap per Slackware Linux e' stato aggiornato di conseguenza ed adattato al codice sorgente introdotto.
----

=== Modifiche ai Pacchetti Base ===
Un ambiente grafico esteso come TDE &egrave; organizzato in molti pacchetti per una migliore gestione dello sviluppo. Anche alcuni dei pacchetti dell'insieme di base sono stati portati a '''cmake''' e hanno inglobato modifiche, correzioni ed aggiornamenti rispetto alle versioni precedenti. Nei paragrafi seguenti vengono illustrate con un minimo di dettaglio tutte le modifiche significative riscontrate.

==== TDEACCESSIBILITY ====
Anche la migrazione del pacchetto '''tdeaccessbility''' &egrave; un lavoro in corso d'opera e non &egrave; ancora il momento di aggiornare a '''cmake''' il relativo script SlackBuild. '''Autotools''' ancora per una versione, si spera.

==== TDEADMIN ====
Il codice sorgente del pacchetto '''tdeadmin''', che contiene i programmi di configurazione dell'ambiente e gli strumenti di amministrazione, &egrave; stato definitivamente portato a '''cmake'''. Un plauso agli sviluppatori del progetto Trinity Desktop Environemnt per l'ottimo lavoro svolto. Lo script di compilazione &egrave; stato modificato per usare i comandi del nuovo sistema di sviluppo.

==== TDEBINDINGS ====
Il lavoro per portare '''tdebindings''': il pacchetto contenente le librerie di interfaccia necessarie per sviluppare componenti di TDE in un linguaggio diverso da '''C++''', al nuovo sistema di compilazione &egrave; incominciato, ma non ancora concluso. Di conseguenza &egrave; ancora possibile usare lo script SlackBuild basato su '''autotools''' per produrre un pacchetto funzionante e completo di '''tdebindings per Slackware Linux'''.

==== TDEEDU ====
Anche '''tdeedu''', il pacchetto contenente i programmi "scolastici" e di educazione di TDE &egrave; stato interessato dalla migrazione a '''cmake'''. Il lavoro di modifica ed aggiornamento &egrave; concluso perci&ograve; ho aggiornato il relativo script di compilazione adattandolo al nuovo build system.

==== TDEGAMES ====
Il pacchetto che include i giochi sviluppati esplicitamente per il Trinity Desktop Environement &egrave; stato portato a '''cmake''' ed &egrave; perci&ograve; andato ad ingrassare le file di quelli il cui script di compilazione richiedeva un aggiornamento. Con l'occasione ho anche aggiunto l'opzione '''DWITH_ARTS=ON''' al comando di configurazione del codice sorgente. Alcuni dei giochi inclusi la richiedono esplicitamente:
<syntaxhighlight lang="bash">
# Configure the package
cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
-DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
-DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
-DCMAKE_INSTALL_PREFIX=${PREFIX} \
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DMAN_INSTALL_DIR=${MANDIR} \
-DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
-DWITH_ARTS=ON \
-DBUILD_ALL=ON \
2>&1 | tee -a ${OUTPUT}/${PRGNAM}_configure.log
</syntaxhighlight>

==== TDELIBS ====
Le librerie su cui si fonda TDE erano state migrate a '''cmake''' anni fa. Con la nuova versione &egrave; stata invece aggiunta l'opzione '''WITH_GCC_VISIBILITY''' al comando di configurazione:
<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} \
-DWITH_GCC_VISIBILITY="ON" \
-DBUILD_ALL="ON" \
2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log
</syntaxhighlight>

La visibillit&agrave; &egrave; una buona idea e porta molti vantaggi come spiegato nelle [https://gcc.gnu.org/wiki/Visibility pagine wiki di GCC]. Il supporto &egrave; inoltre richiesto esplicitamente da alcune delle applicazioni a corredo di TDE come ad esempio: '''kiosk-tools'''.

==== TDEMULTIMEDIA ====
Con il rilascio della versione 14.0.7, '''tdemultimedia''', il pacchetto contenente i programmi di riproduzione multimediale integrati in TDE, &egrave; entrato nel novero di quelli che usano '''cmake''' per configurare il codice sorgente e controllare la procedura di compilazione. Il relativo script di compilazione &egrave; stato aggiornato ed adattato di conseguenza.

==== TDEWBDEV ====
L'ultimo pacchetto di Trinity Desktop Environment migrato a '''cmake''' con la versione 14.0.7 &egrave; '''tdewebdev''', che contiene gli strumenti di sviluppo web come l'editor di codice HTML, quello delle imagemap, ecc. Anche lo script di quest'ultimo &egrave; stato aggiornato adeguatamente.

==== TDE-I18N ====
Oltre a '''avahi-tqt''', avevo dimenticato di aggiornare lo script che compila '''tde-i18n''': i pacchetti di localizzazione dell'ambiente grafico per la versione 14.0.6 di TDE. Mi spiace per la svista, ma non usandoli non mi sono accorto della dimenticanza. Comunque ho rimediando includendo tutti gli aggiornamenti necessari nella versione 14.0.7. Ho quindi provveduto ad aggiungere:
* Codice per gestire la nomenclatura degli archivi, sperando che gli sviluppatori del progetto abbiano esaurito gli algoritmi di compressione degli archivi e si siano messi finalmente d'accordo sull'organizzazione dei file e l'alberatura delle directory.
* Codice per gestire il nome della directory in cui scompattare gli archivi.
* Codice per gestire il flag di estrazione da passare al comando '''tar''' quando decomprime il codice sorgente.
* L'opzione '''armv7l''' per gestire l'architettura ARM e l'opzione '''Hard Float''' utile per i Raspberry Pi 2, 3 e 4.

Il pacchetto &egrave; anche stato testato con successo. Posso affermare con una certa soddisfazione che la produzione dei pacchetti di localizzazione richiede decisamente meno tempo su di un Raspberry Pi 4 rispetto ai modelli precedenti.
----


== IL BUILD TREE ==

Come promesso all'inizio dell'articolo, riporto un collegamento da cui scaricare tutti gli script di compilazione organizzati in un comodo archivio compresso: [http://www.giustetti.net/resource/slackbuild/tde/1407/tde_build_tree_sg-14.0.7.tar.bz2 tde_build_tree_sg-14.0.7.tar.bz2]. Una volta scaricato l'archivio e distribuito gli archivi costituenti il codice sorgente del progetto nelle opportune directory, potrete avviare la compilazione dell'interfaccia grafica lanciando lo script principale '''TDE.SlackBuild'''. Si consiglia di rimuovere eventuali versioni gi&agrave; presenti sulla macchina onde evitare conflitti con i nuovi pacchetti installati.


== CONCLUSIONI ==

Nel corso del presente articolo sono state illustrate le molte novit&agrave; introdotte nel sistema di compilazione di '''Trinity Desktop Environment''' con la versione '''14.0.7'''. Gli script aggiornati e testati sono stati raccolti in un unico archivio in modo da facilitarne la fruizione. Per istruzioni dettagliate circa l'uso degli script si rimanda agli altri articoli reperibili nel sito. Le modifiche introdotte dagli sviluppatori hanno interessato il codice sorgente, ma non la procedura di compilazione nel suo complesso. Tutti i test di compilazione, installazione, configurazione e successivo uso sono stati condotti su di un '''Raspberry Pi modello 4 su cui gira una versione di Slackware Linux per piattaforma ARM'''. TDE si conferma la miglior interfaccia grafica per architetture dotate di poche risorse. In conclusione non resta che ringraziare gli sviluppatori di TDE per l'ottimo lavoro svolto e invitarvi a visitare nuovamente il sito per aggiornamenti e nuovi articoli.


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


Link esterni
----

* [https://www.raspberrypi.org Home page della fondazione Raspberry Pi (En)]
* [https://it.wikipedia.org/wiki/Raspberry_Pi La pagina di Wikipedia dedicata al Raspberry Pi]
* [http://www.slackware.com Home page di Slackware (En)]
* [http://arm.slackware.com Slackware Linux per piattaforma ARM]
* [https://sarpi.fatdog.eu/ Supporto Slackware non ufficiale per i Raspberry Pi]
* [http://www.trinitydesktop.org Home page del progetto TDE (En)]
* [http://ftp.fau.de/trinity/releases/R14.0.7/downloads.html La pagina da cui scaricare il codice sorgente di TDE]

----

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

Navigation menu