Trinity desktop environment 14.0.4 raspberry pi 3

From Studiosg
Revision as of 13:02, 2 May 2022 by Wikiuser (talk | contribs) (Corretto proseguo in prosieguo)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Benvenuti nella pagina Wiki di Simone Giustetti.


Lingue: English - Italiano


TDE 14.0.4 e SlackwareArm 14.2

Trinity Desktop environment è un ambiente grafico nato per continuare lo sviluppo del ramo 3.5 di KDE. Slackware è la più longeva tra le distribuzioni Linux attivamente supportate ed una tra le più stabili. Raspberry Pi è una famiglia di computer a basso costo costruiti su una singola scheda. Nati con il fine di insegnare l'informatica e la programmazione, i modelli recenti vantano specifiche hardware e prestazioni di tutto rispetto e sono la piattaforma ideale per ambienti di sviluppo e test o per server destinati a piccole reti. Paradossalmente sono le moderne interfacce grafiche ad avere i maggiori problemi nel girare sul Raspberry Pi a causa delle richieste abnormi di risorse. TDE rappresenta il miglior compromesso tra funzionalità e buone prestazioni per macchine con risorse limitate.

Trinity Desktop Environment non supporta ufficialmente Slackware perciò non sono disponibili pacchetti ufficiali per tale distribuzione. In una serie di articoli reperibili su questo stesso sito avevo illustrato come compilare pacchetti funzionanti per svariate versioni di Slackware su architettura AMD, ARM o Intel. Il primo Luglio 2016 ha coinciso con il rilascio ufficiale di Slackware 14.2, l'ultima versione della distribuzione, il cui ciclo di sviluppo ha richiesto oltre due anni. Essendo venuto in possesso di un Raspberry Pi 3 aspettavo solo un ritaglio di tempo per installare e provare entrambi. Purtroppo altre attività hanno avuto la precedenza. Ero riuscito ad installare la distribuzione e a compilare quasi tutti i pacchetti di TDE 14.0.3 a cavallo tra Luglio ed Agosto, ma mi sono dovuto fermare prima di aver completato l'opera. Ho procrastinato fino alla fine di Novembre quando, con il rilascio ufficiale di TDE 14.0.4, mi sono reso conto di non poter rimandare oltre e ho deciso di recuperare il tempo perduto scrivendo l'articolo che state leggendo.

Nel prosieguo dell'articolo verrà illustrato come installare la versione 14.0.4 del Trinity Desktop Environment, TDE in breve, su Raspberry Pi 3 e SlackwareARM 14.2.


SlackwareARM sul Raspberry Pi 3

Ci si occuperà prima di tutto di installare la distribuzione SlackwareARM sul Raspberry Pi 3. La fondazione Raspberry Pi non supporta la distribuzione derivata Slackware, nè SlackwareARM fornisce supporto per alcun modello di Raspberry Pi. Si tratta comunque di un'operazione semplice che non si discosta molto da una installazione di Slackware Linux su altre architetture ed è possibile reperire documentazione esaustiva in rete. Le istruzioni non si discostano molto da quelle impiegate per installare SlackwareARM 14.1 su Raspberry Pi 2 illustrate in un precedente articolo. Nel caso abbiate già installato la distribuzione sul dispositivo potete procedere oltre fino al capitolo dedicato a TDE disponibile più avanti altrimenti continuate la lettura.

Prima di incominciare l'installazione sarà necessario procurarsi:

  • Una scheda MicroSD di dimensione maggiore o uguale a 16 Giga byte su cui verrà installato il sistema operativo. Si consiglia una scheda da 32 Gbyte
  • Un lettore di schede MicroSD per PC.
  • Una pennetta USB da almeno 4 Gb su cui copiare i pacchetti di installazione.
  • Mouse USB, tastiera USB, monitor, cavi e tutto il necessario per il funzionamento del Raspberry Pi.

Preparazione della Scheda MicroSD

Le operazioni di installazione devono essere eseguite da un utente con privilegi elevati quale root. Salvo dove diversamente specificato nel prosieguo dell'articolo si supporrà che stiate operando come root.

Collegare la scheda al PC mediante l'apposito lettore. La scheda correttamente rilevata dovrebbe comparire nell'elenco dei dischi reso dal comando fdisk come nel seguente esempio:

  fdisk -l
  Disk /dev/sdd: 16.0 GB, 16003366912 bytes
  255 heads, 63 sectors/track, 1945 cylinders, total 31256576 sectors
  Units = sectors of 1 * 512 = 512 bytes
  Sector size (logical/physical): 512 bytes / 512 bytes
  I/O size (minimum/optimal): 512 bytes / 512 bytes
  Disk identifier: 0x00000000
  
  Device      Boot       Start   End          Blocks   Id  System
  /dev/sdd1              8192    31256575    15624192    c   W95 FAT32 (LBA)

Scaricare l'immagine di installazione di SlacwareArm in una directory locale

cd /tmp
wget http://rpi3.fatdog.eu/files/rpi3/142/img/sarpi3-installer_slack14.2_fd0.img.xz
wget http://rpi3.fatdog.eu/files/rpi3/142/img/sarpi3-installer_slack14.2_fd0.img.md5

Ad operazione terminata eseguire un controllo di congruenza per accertarsi che l'immagine non si sia corrotta durante il trasferimento:

md5sum -c rpi3.fatdog.eu/files/rpi3/142/img/sarpi3-installer_slack14.2_fd0.img.md5

Nel caso il comando rendesse un errore sarà necessario scaricare nuovamente l'immagine sperando che il problema non si ripeta. Altrimenti si potrà procedere copiando l'immagine sulla scheda MicroSD mediante il comando dd:

xz -dc sarpi3-installer_slack14.2_fd0.img.xz | dd of=/dev/sdd bs=65536

Ove /dev/sdd è la scheda MicroSD collegata al PC e precedentemente rilevata. Il buon esito della copia potrà essere verificato utilizzando nuovamente il comando fdisk per accertarsi che le dimensioni della partizione siano mutate e che sia stato attivato il flag di boot:

  fdisk -l
  Disk /dev/sdd: 16.0 GB, 16003366912 bytes
  4 heads, 32 sectors/track, 244192 cylinders, total 31256576 sectors
  Units = sectors of 1 * 512 = 512 bytes
  Sector size (logical/physical): 512 bytes / 512 bytes
  I/O size (minimum/optimal): 512 bytes / 512 bytes
  Disk identifier: 0xd4dd6bc4
  
  Device      Boot       Start   End          Blocks   Id  System
  /dev/sdd1   *          32      187519       93744    c   W95 FAT32 (LBA)

Pacchetti di Installazione

Non esistono immagini ISO di SlackwareARM dato che la grande maggioranza dei dispositivi basati su architettura ARM non è dotata di lettore CD/DVD e che anche collegandone uno esterno via USB non sarebbe comunque possibile eseguire il boot dai supporti. SlackwareARM può essere installata in due modi dopo aver avviato il programma di installazione:

  1. Leggendo i pacchetti esportati via rete tramite protocollo NFS.
  2. Leggendo i pacchetti da un supporto collegato via USB.

Nel prosieguo dell'articolo si utilizzerà la seconda opzione. Un elenco di locazioni da cui scaricare i pacchetti può essere reperito al seguente indirizzo. Una volta scaricati, i pacchetti costituenti SlackwareARM devono essere copiati sulla pennetta USB che dovrà essere collegata al Raspberry Pi durante l'installazione.

Avviare l'Installazione di SlackwareARM

Ultimati i preparativi si potrà cominciare l'installazione vera e propria.

  • Inserire la scheda MicroSD nell'apposito lettore integrato nel Raspberry Pi.
  • Collegare tastiera e mouse USB.
  • Collegare la chiavetta USB contenente i pacchetti di SlackwareARM precedentemente scaricati.
  • Collegare il cavo HDMI/RCA al monitor.
  • Accendere il monitor.
  • Collegare il cavo di alimentazione al Raspberry Pi.

Se tutto va bene sul Raspberry Pi si accenderanno in sequenza la spia rossa dell'alimentazione e la spia verde collegata al lettore MicroSD che incomincerà a lampeggiare. Sulla parte alta del monitor compariranno un numero di lamponi pari al numero di core e più sotto la schermata di selezione della tastiera. In caso contrario qualcosa non funziona: potrebbe trattarsi di un problema dell'immagine di installazione risolvibile ripetendo l'operazione di scrittura della scheda MicroSD oppure un problema della scheda stessa; in quest'ultimo caso sarà necessario sostituirla e provarne un'altra.

Impostazione di Data e Ora

Il Raspberry Pi non è dotato di un orologio hardware perciò ad ogni avvio la data di sistema viene azzerata al 1 Gennaio 1970 ed è necessario impostare data ed ora correnti. Tale operazione deve essere eseguita anche durante l'installazione altrimenti la procedura si rifiuterà di installare pacchetti di molti anni più recenti del sistema ipotizzando un errore di configurazione. Per impostare la data di sistema sarà necessario:

  • Selezionare un layout di tastiera dall'elenco fornito.
  • Collegarsi come utente root (Durante l'installazione non viene richiesta una password).
  • Lanciare il comando date con l'opzione -s per impostare la data:
date -s "<day> <month> <date> <hour>:<minute>:<second> <year>"

Ove

<day> = Stringa di 3 lettere che specifica il giorno della settimana in inglese.
<month> = Mese dell'anno rappresentato con una stringa di 3 lettere.
<date> = Giorno del mese rappresentato con 2 cifre numeriche.
<year> = Anno rappresentato con 4 cifre numeriche.
<hour> = Ora rappresentata con 2 cifre numeriche.
<minute> = Minuti rappresentati con 2 cifre numeriche.
<second> = Secondi rappresentati con 2 cifre numeriche.
Es: date -s "Thu Sep 3 16:06:35 2015"

Nel caso in cui la rete fosse configurata e funzionante sarà invece possibile aggiornare la data di sistema interrogando un server NTP esterno mediante il comando:

ntpdate pool.ntp.org

Partizionamento della Scheda MicroSD

La scheda MicroSD è gestita come un disco e come tale deve essere partizionata. Creare più di una partizione garantisce una maggior sicurezza per i dati residenti sul sistema oltre che una maggiore flessibilità nell'eseguire aggiornamenti, back-up o per reinstallare il sistema. Il primo passo consiste nell'individuare la scheda tra i supporti riconosciuti dal sistema mediante il comando fdisk di cui si riporta un estratto:

  fdisk -l
  /dev/mmcblk0
  /dev/mmcblk0p1

La scheda corrisponde al dispositivo /dev/mmcblk0 mentre /dev/mmcblk0p1 è la prima partiziona, che contiene i file di avvio. Per partizionare la scheda è possibile far ricorso al comando cfdisk comune in moltissime distribuzioni Linux:

cfdisk /dev/mmcblk0

La partizione esistente non deve essere modificata. Oltre ad essa sarà necessario creare una partizione di swap, tipologia 082, di almeno 256 Mb di dimensione, una partizione di root, ove installare il sistema ed una partizione /home per i dati dell'utenza. È ovviamente possibile creare molte altre partizioni secondo le proprie esigenze; quelle elencate rappresentano una configurazione minima. Verificare che il flag di boot della prima partizione VFAT sia attivo prima di salvare la tabella delle partizioni ed uscire da cfdisk.

Si consiglia di riservare come minimo 8 Gbyte per il sistema operativo, ma 12 Gbyte sarebbero preferibili in quanto compilare TDE consuma molto spazio disco temporaneo. Lo spazio può essere liberato dopo aver installato l'ambiente desktop, ma si corre il rischio di saturare il disco durante la compilazione causandone il fallimento.

Copia dei Pacchetti

Montare la pennetta USB contenente i pacchetti di SlackwareARM su di una directory locale ed avviare il programma di installazione mediante il comando setup, che presenterà le schermate standard di una installazione di Slackware Linux.

  • Attivare la partizione di swap.
  • Attivare la partizione di sistema e le altre configurate.
  • Salvare la configurazione delle partizioni nel file /etc/fstab.
  • Attivare la partizione di boot (VFAT) facendo attenzione ad impostare umask 177 in fase di mount onde evitare che ne sia sovrascritto il contenuto per errore.
  • Selezionare la sorgente dei pacchetti specificando la directory ove è stata in precedenza montata la pennetta USB.
  • Selezionare la tipologia di installazione ed avviare la copia dei pacchetti.

Come anticipato in precedenza lo scopo del presente articolo consiste nel dimostrare che TDE 14.0.4 rappresenti un ottimo rimpiazzo per KDE 4 pertanto si consiglia di non installare i pacchetti relativi a KDE 4. Le librerie Qt4 potrebbero essere richieste da programmi non necessariamente legati a KDE e possono convivere con TQt: la versione di Qt3 manutenuta dal progetto Trinity. Purtroppo la presenza di Qt4 può causare problemi durante la compilazione dei pacchetti costituenti il Trinity Desktop Environment pertanto si consiglia di non installarle subito, ma di rimandarne a dopo aver ultimato l'installazione di TDE.

Configurazione di Sistema

Il programma di installazione di SlackwareARM ricalca quello standard di Slackware perciò la procedura di configurazione va a toccare tutti i punti gestiti da quest'ultimo:

  • Configurazione del mouse.
  • Configurazione dell'interfaccia di rete.
    • Impostazione del nome della macchina.
    • Impostazione del dominio.
    • Impostazione di un indirizzo IP statico oppure configurazione del servizio DHCP.
  • Configurazione dei servizi da avviare al boot.
  • Selezione di un font predefinito per la console.
  • Configurazione del fuso orario.
  • Configurazione del Window Manager predefinito. Operazione che dovrà essere ripetuta dopo aver compilato ed installato TDE.
  • Impostazione della password dell'utente root.

In chiusura il programma di installazione chiederà di eseguire un riavvio del sistema. Non riavviare immediatamente e procedere invece collegandosi ad un nuovo terminale per:

  • Rimuovere pacchetti inutili:
ROOT=/mnt removepkg kernel_armv7 kernel-modules-armv7
ROOT=/mnt removepkg kernel_kirkwood kernel-modules-kirkwood
  • Rimuovere il file initrd.gz dalla partizione di boot:
mount -t vfat /dev/mmcblk0p1 /mnt/boot
rm /mnt/boot/initrd.gz
  • Installare il firmware per il Raspberry Pi ed i dati per il kernel:
ROOT=/mnt installpkg /rpi3-extra/kernel* /rpi3-extra/rpi3*

Ultimate le operazioni sopra elencate si potrà smontare la sorgente dei pacchetti di installazione ed eseguire il riavvio. L'installazione di SlackwareARM sul Raspberry Pi è conclusa ed al termine della procedura di avvio sarà possibile collegarsi al sistema appena installato per procedere all'installazione di TDE.



Installazione di Trinity Desktop Environment su Raspberry Pi 3

Il 7 Novembre del 2016 è stata ufficialmente rilasciata la versione 14.0.4 del Trinity Desktop Environment. Si tratta di un rilascio di manutenzione e rappresenta il risultato di oltre sette mesi di lavoro per correggere errori e problemi segnalati dagli utenti. Non esistono pacchetti precompilati di TDE per Slackware Linux. Non per PC e neppure per dispositivi basati su architettura ARM. Si dovrà pertanto procedere compilando i singoli pacchetti a partire dal codice sorgente. Gli archivi compressi contenenti il codice sorgente per i pacchetti possono essere scaricati dal seguente indirizzo. Nella pagina web sono disponibili sia i singoli pacchetti che un unico archivio contenente il codice sorgente e i file di localizzazione dell'intero ambiente desktop. Volendo compilare l'intero ambiente e avendo a disposizione circa 750 Mbyte di spazio disco ed una linea veloce, si consiglia di scaricare l'archivio completo. La versione 14.0.4 non presenta stravolgimenti rispetto alle precedenti: si tratta di una versione di manutenzione che non introduce novità. È stato necessario apportare alcune modifiche agli script di compilazione per gestire le dipendenze e gli aggiornamenti introdotti nella versione 14.2 di Slackware. Prima di procedere si consiglia lettura di due precedenti articoli che trattavano la compilazione dei pacchetti di TDE:

Segue una descrizione degli script utilizzati per compilare l'intero Trinity Desktop Environement con note specifiche per le novità introdotte.

Il Build Tree di TDE

Il Trinity Desktop Environment è un ambiente molto complesso che consta di una moltitudine di pacchetti, che possono essere suddivisi in quattro categorie:

  • Prerequisiti.
  • Pacchetti base.
  • Librerie addizionali.
  • Applicazioni opzionali.

I primi due gruppi costituiscono l'ambiente base funzionante ed adatto alle esigenze di un utenza generica. Le librerie introducono funzionalità aggiuntive utili sia per migliorare l'ambiente base che per installare le molte applicazioni opzionali facenti parte del quarto ed ultimo gruppo. Per compilare tutti i pacchetti e mantenere un alto livello di maneggevolezza non basta un unico script SlackBuild per quanto complesso. Si utilizzano invece molti script in grado di svolgere un compito specifico ed uno principale che svolge funzioni di controllo. Per mantenere la consistenza dell'intero ambiente si utilizza un file di configurazione centralizzato ed univoco in cui includere tutte le opzioni predefinite. Per i pacchetti che necessitassero di opzioni specifiche si utilizzano invece file locali che vanno a sovrascrivere in toto o in parte la configurazione predefinita. L'albero delle directory è stato descritto in un precedente articolo rispetto al quale ci occuperemo degli aggiornamenti introdotti:

LIBTOOL

Molti dei pacchetti costituenti TDE presentano problemi nel riconoscimento delle versioni recenti di libtool incluse nelle moderne distribuzioni. Problemi che affliggono anche una distribuzione molto conservativa come Slackware, sempre attenta negli aggiornamenti del software incluso. In breve il codice sorgente dei pacchetti fa riferimento a libtool 2.2.6: una versione ormai obsoleta e spesso rimpiazzata con quelle più recenti. Non si tratta di un problema introdotto con TDE 14.0.4 bensì di una anomalia nota, che si propaga ad ogni nuovo rilascio. Slackware 14.2 include libtool 2.4.6 il che rende le patch utilizzate per Slackware 14.1 e precedenti obsolete ed inutili. ltmain_version_update.patch è stata aggiornata come segue:

   *** admin/ltmain.sh	2013-08-29 14:58:12.136925711 +0200
   --- admin/ltmain.sh	2013-08-29 12:10:51.935987043 +0200
   ***************
   *** 73,81 ****
   
   PROGRAM=ltmain.sh
   PACKAGE=libtool
   ! VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
   TIMESTAMP=""
   ! package_revision=1.3017
   
   # Be Bourne compatible
   if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   --- 73,81 ----
   
   PROGRAM=ltmain.sh
   PACKAGE=libtool
   ! VERSION="2.4.6"
   TIMESTAMP=""
   ! package_revision=2.4.6
   
   # Be Bourne compatible
   if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then

Il file aggiornato deve essere copiato nelle cartelle di compilazione di ogni pacchetto che lo necessiti. Segue l'elenco dei pacchetti che richiedono la patch:

  • base/tdeaccessibility
  • base/tdeaddons
  • base/tdeadmnin
  • base/tdebindings
  • base/tdeedu
  • base/tdegames
  • base/tdemultimedia
  • base/tdewebdev
  • library/kipi-plugins
  • library/libkdcraw
  • library/libkexiv2
  • library/libkipi
  • library/libksquirrel
  • library/libtdeldap
  • library/libtqt-perl

MLT e MLT++

Le librerie MLT e MLT++ erano state trascurate in precedenza essendo afflitte da problemi di dipendenze con Qt4 e tQt che ne impedivano la compilazione. Le librerie sono inutilizzate dall'ambiente base pertanto la loro presenza non era fondamentale e la loro assenza non comportava alcuna limitazione. La versione 14.0.4 di TDE sembra aver risolto il problema delle dipendenze ed entrambe le librerie sono finalmente incluse nell'ambiente. Sono stati aggiunti i seguenti file all'albero delle directory:

  |   |-- mlt
  |   |   |-- local.options
  |   |   |-- mlt-R14.0.4.tar.bz2
  |   |   |-- mlt.SlackBuild
  |   |   |-- slack-desc
  |   |   |-- sox_configure.patch
  |   |   `-- sox_makefile.patch
  |   |-- mlt++
  |   |   |-- local.options
  |   |   |-- mlt++-R14.0.4.tar.bz2
  |   |   |-- mlt++.SlackBuild
  |   |   `-- slack-desc

e lo script TDE.SlackBuild è stato aggiornato di conseguenza.

TDEBASE

Alcuni degli script contenuti nella cartella config non sono più necessari, ma sono comunque inclusi. Si ipotizza di rimuoverli in versioni future del build tree.

TDEBINDINGS

Tdebindings contiene i collegamenti dell'ambiente grafico a linguaggi diversi da quello nativo: il C++. Tali collegamenti sono indispensabili per chi volesse sviluppare applicazioni integrate in TDE utilizzando altri linguaggi di programmazione. Tra i linguaggi supportati figura anche Java, che purtroppo rappresenta un problema per la piattaforma ARM dato che è complicato reperire una virtual machine funzionante per tale architettura. Ovviamente le applicazioni non potrebbero funzionare senza la macchina virtuale e le librerie di collegamento non vengono compilate a meno che una non sia installata. Dove reperire una macchina virtuale Java funzionante per SlackwareArm 14.2 ? In passato era impossibile, ma con la versione 14.0 la situazione è migliorata.

Sul sito di Oracle, attuale proprietario del linguaggio, esistono file di installazione per alcuni dispositivi basati su architettura ARM. Le distribuzioni Linux che girano su architetture ARM si dividono in due categorie: hard float e soft float in base a come gestiscono i numeri a virgola mobile. SlackwareARM 14.2 ricade nella seconda categoria perciò necessita di un macchina virtuale soft float. Oracle distribuisce solo versioni hard float del JDK8, si dovrà quindi ripiegare sul JDK7 di cui esiste una versione soft float. Istruzioni per l'installazione della Java virtual machine sono reperibili al seguente indirizzo. Per chi fosse interessato, maggiori informazioni circa la differenza tra architetture ARM hard e soft float sono reperibili sul forum di Raspian (In inglese).

Una soluzione alternativa consiste nel compilare una virtual machine basata sul progetto OpenJDK: Un'implementazione di Java completamente Open Source che condivide gran parte del codice sorgente con quella di Oracle. Grazie agli sforzi di Eric Hameleers (Alias Alien Bob) OpenJDK è stato incluso in SlackwareARM. Istruzioni dettagliate per la compilazione ed installazione sono reperibili nel repository dei pacchetti di Eric. Compilare il tutto richiede buone competenze, tempo e risorse: oltre 10 Giga byte di spazio disco libero, e potrebbe rappresentare un problema. Per chi non se la sentisse sono disponibili pacchetti precompilati sul sito di Slackware UK. Nonostante il nome possa trarre in inganno dato che contiene armhfp, i file binari sono compilati per architetture soft-float:

  root@system:/tmp/openjdk7/usr/lib/java/bin# readelf -a java
  ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x84c4
  Start of program headers:          52 (bytes into file)
  Start of section headers:          6512 (bytes into file)
  Flags:                             0x5000202, has entry point, Version5 EABI, soft-float ABI
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         8
  Size of section headers:           40 (bytes)
  Number of section headers:         38
  Section header string table index: 35

pertanto possono girare su SlackwareARM 14.2.

TDENETWORK

Versioni precedenti del pacchetto tdenetwork richiedevano una patch, inclusa nel file threads_sprintf.patch, per risolvere problema di compatibilità con la funzione vsprintf. L'ultima versione del pacchetto non sembra essere afflitta dal problema per cui la patch è stata rimossa e lo script tdenetwork.SlackBuild aggiornato eliminando ogni riferimento ad essa.

Le Linee Guida

Riassumiamo brevemente le linee guida impiegate per gestire un progetto di ampio respiro come TDE:

  1. Impostare /opt/trinity come directory base dei pacchetti in modo da consentire la coesistenza di TDE 14.0.4 e KDE 4 sulla medesima macchina.
  2. Compilare tutti i pacchetti appartenenti ai gruppi: Prerequisiti, Base e Librerie Opzionali ignorando invece le Applicazioni Addizionali.
  3. Preparare script di compilazione che funzionino su tutte le architetture supportate da Slackware Linux: amd64, ARM e i486.
  4. Utilizzare uno script di compilazione specifico per ogni pacchetto ed uno principale che richiami quelli specifici nel giusto ordine. Ciò consente di compilare a scelta sia l'intero ambiente che un unico pacchetto lanciando sempre un unico comando.
  5. Utilizzare un file di configurazione centralizzato che contenga tutte le opzioni comuni tra i pacchetti costituenti il Trinity Desktop Environment: TDE.options.
  6. Utilizzare file di configurazione locali per le opzioni specifiche di singoli pacchetti. Il contenuto dei file sovrascrive in toto in parte quello di TDE.options.

Le linee guida elencate sono state utilizzate per tutte le versioni di TDE su cui si è lavorato fino ad ora e mantenute sostanzialmente invariate anche per la versione 14.0.4.

Novità Introdotte tra le Dipendenze

Per compilare tutti i pacchetti costituenti il Trinity Desktop Environment sono richieste alcune dipendenze elencate in un precedente articolo. All'elenco si aggiunge imlib: una libreria per leggere immagini e disegnarle velocemente sullo schermo. La libreria è stata rimossa dai pacchetti ufficiali di Slackware 14.2 e deve pertanto essere compilata ed installata a parte pena l'impossibilità di ottenere un pacchetto per tdegraphics.

Imlib è supportata dal progetto SlackBuilds.org che mette a disposizione degli utenti script di compilazione per una mole considerevole di librerie e programmi non supportati direttamente da Slackware Linux. Per ottenere un pacchetto di imlib funzionante ed installabile sarà necessario:

  • Scaricare il codice sorgente di imlib 1.9.15 e l'archivio contenente lo script di compilazione dalla pagina seguente.
  • Spostarsi nella cartella ove sono stati scaricati i file. Si supponga /tmp:
  cd /tmp
  • Decomprimere l'archivio contenente lo script di compilazione con il comando tar:
  tar -zxf imlib.tar.gz
  • Spostarsi nella cartella principale dell'archivio estratto:
  cd imlib
  • Trasferire l'archivio contenente il codice sorgente nella cartella dello script:
  mv /tmp/imlib-1.9.15.tar.bz2 .
  • Lanciare la procedura di compilazione del pacchetto:
  ./imlib.SlackBuild

Lo script si occuperà di applicare le patch e le correzioni introdotte e di eseguire tutte le operazioni necesssarie ad ottenere un pacchetto finito contenente la libreria.

Il pacchetto creato nella directory /tmp può essere installato mediante il comando installpkg come consuetudine:

  installpkg /tmp/imlib-1.9.15-arm-1_SBo.tgz

Nota Bene: tutte le operazioni descritte devono essere eseguite dall'utente root.

Non installare il pacchetto di imlib distribuito con Slackware 14.1. Anche se sembra funzionare, la libreria inclusa si appoggia a versioni obsolete di jpeg, png, ecc. perciò la sua inclusione in tdegraphics comporterà la produzione di un errore durante la compilazione ed il definitivo fallimento della stessa. Imlib deve essere compilato ex novo.

Aggiornamenti all'Ordine di Compilazione

Non si segnala alcuna modifica all'ordine di compilzione dei pacchetti riportato in un precedente articolo.

Compilare TDE

Per semplificare l'operazione di compilazione di TDE è stato preparato uno script principale: TDE.SlackBuild avente lo scopo di guidare la procedura richiamando in ordine quelli per specifici pacchetti. Una copia dello script e dell'intero build tree è scaricabile sotto forma di archivio compresso dal seguente indirizzo. Una volta scaricato l'archivio ed il codice sorgente del progetto TDE in una cartella locale quale /tmp si dovranno seguire i passi dettagliati di seguito:

  • Creare la directory /usr/src/trinity:
mkdir /usr/src/trinity
  • Copiare l'archivio contenente il build tree in tale directory
cp /tmp/tde_build_tree_sg-14.0.4.tar.bz2 /usr/src/trinity/
  • Spostarsi nella directory /usr/src/trinity
cd /usr/src/trinity/
  • Estrarre il contenuto dell'archivio utilizzando il comando tar:
tar -jxf tde_build_tree_sg-14.0.4.tar.bz2

La directory /usr/src/trinity verrà così popolata:

  ls -la
  total 14
  drwxr-xr-x   7 root root 4096 Nov 29 20:48 .
  drwxr-xr-x   5 root root 4096 Aug 12 22:46 ..
  -rw-r--r--   1 root root  314 Aug 12 22:59 TDE.options
  drwxr-xr-x 113 root root 4096 Aug 12 22:46 application
  drwxr-xr-x  22 root root 4096 Aug 12 23:11 base
  drwxr-xr-x  13 root root 4096 Aug 12 22:47 library
  drwxr-xr-x  16 root root 4096 Aug 12 22:48 prerequisite
  drwxr-xr-x   4 root root 4096 Aug 12 22:46 tde_build_script
  • Smistare gli archivi contenenti il codice sorgente per i pacchetti nelle omonime directory contenute in base, library e prerequisite. Il file TDE.options, di cui viene fornito un esempio, contiene le opzioni di compilazione per l'intero ambiente:
   # Global options used to build TDE.
   #
   # Do not place here package specific options. Use a file named
   # "local.options" in the build root directory of the package
   # instead.
   
   ARCH="arm"
   ARCHIVE_FORMAT="tar.bz2"
   BUILD="1"
   JOB_NUM="-j6"
   MARCH="arm"
   PREFIX="/opt/trinity"
   SRCVER="R14.0.4"
   TAG="sg"
   TAR_OPTION="-xjvf"
  • Aprire il file con un qualsiasi programma di elaborazione di testo ed impostare i valori adeguati alla versione di TDE. Le variabili che dovrebbero essere popolate con riguardo all'architettura e alle preferenze personali sono:
    • ARCH e MARCH che impostano l'architettura per cui si desideri compilare i pacchetti: arm nel caso del Raspberry Pi 3.
    • BUILD che dovrebbe essere incrementato ogni volta che si apporta una modifica alla procedura.
    • JOB_NUM che specifica il livello di parallelismo utilizzato per compilare i pacchetti.
    • PREFIX che impone la directory di installazione di TDE. Impostare /opt/trinity consente la convivenza di TDE e KDE 4.
    • SRCVER è la versione di TDE che si desidera compilare.
    • TAG è l'identificatore di chi esegue la compilazione. Impostare una stringa a piacere.
  • Spostarsi nella directory /usr/src/trinity/tde_build_script/bin e lanciare la procedura di generazione dei pacchetti:
cd /usr/src/trinity/tde_build_script/bin
sh ./TDE.SlackBuild

Lo script si farà autonomamente carico di compilare ogni pacchetto e di installarlo. I pacchetti generati ed i relativi file di log potranno essere reperiti nella directory /tmp.

Una nota a parte merita il pacchetto tde-i18n contenente i file di localizzazione in tutte le lingue supportate da TDE. Lo script principale contiene le istruzioni necessarie ad eseguirne la compilazione, ma l'operazione risulta essere molto lunga e di scarsa utilità per un utente generico perciò le istruzioni sono commentate ed i pacchetti di localizzazione vengono ignorati. Se si desiderasse generare anche i file di localizzazione sarà necessario modificare lo script TDE.SlackBuild rimuovendo il commento dalla riga:

   #   bash ./${PKG}.SlackBuild

modificandola in

      bash ./${PKG}.SlackBuild


Conclusioni

Nel corso del presente articolo è stato affrontato il tema dell'installazione di versioni aggiornate di SlackwareARM e di Trinity Desktop Environment su un Raspberry Pi modello 3. L'operazione si è rivelata semplice e lineare e ha consentito di dotare il Raspberry Pi di un ambiente grafico completo, funzionale e leggero. In conclusione si riportano alcune immagini dell'ambiente desktop in funzione.

Tde 1404 desktop clean.png

Fig: 1 - Come si presenta il desktop all'avvio di TDE.

Tde 1404 konqueror version.png

Fig: 2 - La versione di TDE come riportata nello help in linea di Konqueror.

Tde 1404 periodic table.png

Fig: 3 - Un po' di chimica.

Tde 1404 java plugin configure.png

Fig: 4 - La schermata di configurazione dei plug-in Java gestiti attraverso IcedTea.

Tde 1404 gparted.png

Fig: 5 - GParted: un programma per il partizionamento dei dischi rigidi.

Tde 1404 task manager.png

Fig: 6 - Il monito del Task Manager.

Tde 1404 calendar.png

Fig: 7 - Un calendario per programmare le attività.

Tde 1404 disk usage.png

Fig: 8 - Una rappresentazione grafica dell'occupazione di spazio dell'utenza root.

Tde 1404 tdevelop.png

Fig: 9 - TDevelop un IDE per sviluppatori integrato nell'ambiente desktop.

Tde 1404 ddd.png

Fig: 10 - Dopo l'ambiente di sviluppo non poteva mancare quello di debug.

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





Lingue: English - Italiano