Trinity desktop environment 14.0.12

Benvenuti nella pagina Wiki di Simone Giustetti.


Lingue: English - Italiano


TDE 14.0.11 / 14.0.12 su Slackware 15.0

Gli ultimi mesi si sono rivelati ricchi di novità per gli utenti di TDE e di Slackware Linux. L'ambiente grafico ha rilasciato ben due nuove versioni di debug del ramo 14.0 stabile nel giro di pochi mesi, ma la novità più eclatante consiste nel rilascio ufficiale di Slackware 15.0, a conclusione di un periodo di sviluppo durato oltre cinque anni. Entrambi i rilasci includono molte novità, correzioni di errori, aggiunta di librerie e programmi e altri piccoli cambiamenti. Per un elenco delle modifiche apportate al Trinity Desktop Environment si rimanda alle rispettive note di rilascio (in inglese):

Oppure ai rispettivi registri dei cambiamenti introdotti (sempre in inglese):

L'aspetto forse più interessante per gli sviluppatori consiste nell'adozione di C++ 11 come versione minima supportata del linguaggio di programmazione, a partire da TDE 14.0.12. Le notivà più importanti introdotte in Slackware 15.0 sono riportate nell'annuncio ufficiale (in inglese) e nelle note del rilascio (sempre in inglese). Informazioni di dettaglio sono reperibili sul sito del progetto.

Cosa Cambia

Per quanto riguarda Slackware, le modifiche sono molte e impattano praticamente ogni aspetto del sistema. Tutti gli strumenti richiesti per compilare e far girare TDE sono presenti nel sistema base per cui l'ambiente grafico non è impattato dalle modifiche introdotte nel sistema operativo. I rilasci 11 e 12 di TDE consistono in versioni di debug, non introducono pertanto stravolgimenti nell'ambiente grafico, ma piuttosto correzioni e piccole modifiche atte ad ammodernare il progetto senza causare rotture con il passato. Nel seguito dell'articolo verranno descritte le novità introdotte in TDE 14.0.11 e 14.0.12. Le due versioni verranno trattate assieme perchè, complice l'accavallamento dei rilasci: TDE 14.0.11, Slackware 15.0, TDE 14.0.12, non è stato possibile mantenerle separate a meno di non ritardare notevolmente l'introduzione di Trinity Desktop Environment 14.0.12.

Akode

L'elenco dei documenti da copiare nella directory /usr/doc/akode-trinity-14.0.11 è stato aggiornato. Si tratta di una modifica minore che previene la generazione di un errore durante la preparazione del pacchetto del programma, ma non tocca in alcun modo il programma stesso.

Cmake

Il progetto Trinity Desktop Environment include un certo numero di macro e script condivisi per CMake, il sistema di compilazione automatica principale. Il codice è condiviso dalla quasi totalità dei pacchetti in cui è articolato il progetto. Nelle versioni precedenti a 14.0.11, le macro venivano di volta in volta copiate nel codice sorgente di ogni pacchetto in occasione dei rilasci. Essendo tali parti di codice molto stabili e richiedendo poca manutenzione, la prassi è stata abbandonata con TDE 14.0.11 ed è stato introdotto un nuovo pacchetto dedicato. Il pacchetto cmake deve essere preparato ed installato prima di tutti gli altri in quanto contiene dipendenze necessarie per compilarli correttamente. Gli script per pacchettizzare cmake sono stati aggiunti nella sezione prerequisite del build tree:

  ├── prerequisite
  │   ├── akode
  │   │   ├── akode.SlackBuild
  │   │   ├── local.options
  │   │   └── slack-desc
  ...
  │   ├── cmake
  │   │   ├── cmake.SlackBuild
  │   │   ├── local.options
  │   │   └── slack-desc
  │   ├── dbus-1-tqt
  ...

Ed è stata aggiornato l'elenco dei prerequisiti nello script principale: TDE.SlackBuild come segue:

   PKG_LIST_PRE01="cmake akode libr tqt3 tqtinterface arts dbus-tqt dbus-1-tqt tqca libart-lgpl libcaldav libcarddav sip4-tqt"

Le istruzioni per compilare l'intero Trinity Desktop Environment non mutano rispetto al passato. Lanciando lo script principale, dopo aver distribuito gli archivi contenenti il codice sorgente nelle cartelle preposte, la procedura terrà automaticamente conto del nuovo pacchetto introdotto.

Libkdcraw

Uno degli obiettivi del Trinity Desktop Environment dichiarati fin dalla nascita consiste nell'adozione del sistema di compilazione CMake. La migrazione dei pacchetti da AutoTools a CMake è stata portata avanti con costanza nel corso degli anni e ormai pochissimi utilizzano ancora AutoTools. Uno degli ultimi, la libreria libkdcraw, è stato convertito in occasione del rilascio 14.0.12 di TDE. Lo script SlackBuild di compilazione è stato aggiornato di conseguenza eliminando ogni riferimento ad AutoTools ed impostando le seguenti opzioni di compilazione:

   cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
      -DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
      -DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
      -DCMAKE_INSTALL_PREFIX=${PREFIX} \
      -DCONFIG_INSTALL_DIR=${SYSCONFDIR} \
      -DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
      -DXDG_MENU_INSTALL_DIR="/etc/xdg/menus" \
      -DCMAKE_BUILD_TYPE="RelWithDebInfo" \
      -DCMAKE_VERBOSE_MAKEFILE="ON" \
      -DCMAKE_SKIP_RPATH="OFF" \
      -DLIB_SUFFIX=${LIBDIRSUFFIX} \
      -DMAN_INSTALL_DIR=${MANDIR} \
      -DBUILD_ALL="ON" \
      -DWITH_ALL_OPTIONS="ON" \
      2>&1 | tee -a ${OUTPUT}/${PRGNAM}_configure.log

Dato che la migrazione è stata eseguita per TDE 14.0.12, chi desiderasse compilare la versione 14.0.11 di libkdcraw ha due opzioni:

  1. Utilizzare lo script contenuto nel build tree della versione 14.0.12 sperando che CMake fosse già supportato.
  2. Utilizzare lo script contenuto nel build tree della versione 14.0.10, disponibile nelle pagine di questo stesso sito.

Libexiv2

L'elenco dei documenti da copiare nella directory /usr/doc/libexiv2-trinity-14.0.11 è stato aggiornato. Si tratta di una modifica minore che previene la generazione di un errore durante la preparazione del pacchetto, ma non tocca in alcun modo la libreria.

Libtdeldap

L'elenco dei documenti da copiare nella directory /usr/doc/libtdeldap-trinity-14.0.11 è stato aggiornato. Si tratta di una modifica minore che previene la generazione di un errore durante la preparazione del pacchetto, ma non tocca in alcun modo la libreria.

Polkit-tqt

Nel rilascio 14.0.12 è stato introdotto un nuovo pacchetto: polkit-tqt. Una libreria che consente agli sviluppatori di TDE di sfruttare la API PolicyKit. Polkit-tqt richiede che sia installato un ambiente grafico minimo per compilare. Gli script per pacchettizzare polkit-tqt sono stati aggiunti nella sezione prerequisite del build tree:

  ├── prerequisite
  │   ├── akode
  │   │   ├── akode.SlackBuild
  │   │   ├── local.options
  │   │   └── slack-desc
  ...
  │   ├── polkit-tqt
  │   ├── local.options
  │   │   ├── local.options
  │   │   ├── polkit-tqt.SlackBuild
  │   │   └── slack-desc
  │   ├── python-tqt
  ...

Il nuovo pacchetto sfrutta CMake come sistema di compilazione. Nello script SlackBuild preposto sono stati impostati valori ed opzioni predefiniti, compatibili con il resto dei pacchetti dell'ambiente grafico, per ragioni di omogeneità:

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

Per risolvere la dipendenza costituita da TDE, la compilazione di polkit-tqt è stata subordinata all'installazione dei pacchetti tdelibs e tdebase, accorpando il pacchetto al secondo elenco di prerequisiti:

   PKG_LIST_PRE02="tqscintilla python-tqt polkit-tqt"

Sfruttando il nuovo ordine, la procedura di compilazione terrà conto del pacchetto introdotto automaticamente, senza richiedere modifiche o azioni manuali.

Polkit-tqt è stato introdotto nella versione 14.0.12 del Trinity Desktop Environment. Chi desiderasse compilare i pacchetti della versione 14.0.11 con i gli script contenuti nel build tree deve perciò rimuoverlo dall'elenco modificando la riga precedente in:

   PKG_LIST_PRE02="tqscintilla python-tqt"

per non incorrere in un errore causato dalla mancanza delle directory, delle risorse e degli script corrispondenti.

Tdeaccessibility

L'ordine di compilazione dei pacchetti base di TDE è stato aggiornato spostando tdeaccessibility dopo tdemultimedia per evitare un errore durante la compilazione del pacchetto. Con il vecchio ordine, il compilatore segnalava la mancanza di alcuni file header. Una nuova dipendenza introdotta a partire dalla versione 14.0.11 del Trinity Desktop Environment. Per aggirare il problema, è stato imposto il nuovo ordine:

   PKG_LIST_BASE02="tdebindings tdeutils tdemultimedia tdeaccessibility tdenetwork tdeadmin tdeartwork tdegames tdetoys tdeedu
   tdegraphics tdepim tdesdk tdevelop tdeaddons tdewebdev"

Non è richiesta alcuna azione da parte di chi compila i pacchetti.

Tdebase

Il pacchetto tdebase ha subito alcune modifiche rispetto al passato. È stato aggiornato uno script incluso al suo interno: xwmconfig per sincronizzarlo con la versione più recente, inclusa in Slackware 15.0. Lo script è stato adattato all'uso con il Trinity Desktop Environment, aggiungendo il codice necessario per far comparire un riga relativa all'ambiente grafico quando si invoca il programma di configurazione pkgtool:

   # Add Trinity:
   if [ -r /etc/X11/xinit/xinitrc.trinity ]; then
      echo "\"xinitrc.trinity\" \"TDE: Trinity Desktop Environment\" \\" >> $TMP/tmpscript.sh
   fi

Ed un'altra:

      -a ! "$file" = "xinitrc.trinity" -a ! "$file" = "xinitrc.trinity" \

per evitare che la riga di selezione compaia due volte, un inconveniente che ha afflitto i miei pacchetti per parecchie versioni e che è stato definitivamente risolto.

Lo script rc.4 è stato sostituito da rc.4.local, per allinearsi alla nuova consuetudine introdotta in Slackware Linux 15.0. Lo script rc.4 incluso nella distribuzione chiama automaticamente rc.4.local se lo stesso esiste ed è eseguibile. Il vantaggio di questa scelta consiste nel disaccoppiare eventuali personalizzazioni dagli script predefiniti. Ciò evita che le personalizzazioni vadano automaticamente perse eseguendo un aggiornamento del sistema operativo. Chiunque volesse usare tdm, il login manager grafico di TDE, dovrà:

  1. Rinominare il file rc.4.local.new, installato nella directory /etc/rc.d/ , in rc.4.local.
  2. Assegnare privilegi di esecuzione al file ottenuto con il comando:
   chmod a+x /etc/rc.d/rc.4.local

Per ultimo è stato abilitato il supporto per PAM. Si tratta di una aggiunta impossibile in passato, dato che Pluggable Authentication Modules non erano inclusi nelle versioni passate di Slackware, ma finalmente possibile con la 15.0. Il comando di configurazione completo per il pacchetto è riportato di seguito:

   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_CRASHTEST=ON \
      -DWITH_ARTS=ON \
      -DWITH_HAL=OFF \
      -DWITH_LDAP=ON \
      -DWITH_LIBRAW1394=ON \
      -DWITH_OPENEXR=ON \
      -DWITH_PAM=ON \
      -DWITH_GCC_VISIBILITY=OFF \
      -DWITH_SAMBA=ON \
      -DWITH_SASL=ON \
      -DWITH_SHADOW=ON \
      -DWITH_TDEHWLIB=ON \
      -DWITH_USBIDS="/usr/share/hwdata/usb.ids" \
      -DWITH_XCOMPOSITE=ON \
      -DWITH_XCURSOR=ON \
      -DWITH_XDAMAGE=ON \
      -DWITH_XDMCP=ON \
      -DWITH_XEXT=ON \
      -DWITH_XFIXES=ON \
      -DWITH_XINERAMA=ON \
      -DWITH_XRANDR=ON \
      -DWITH_XRENDER=ON \
      -DWITH_XTEST=ON \
      -DBUILD_ALL=ON \
      2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log

Tdenetwork

Una nuova dipendenza è stata introdotta con la versione 14.0.11 di TDE al codice sorgente di tdenetwork, che contiene alcuni strumenti utili per configurare una rete e monitorarne il traffico. La dipendenza in questione è OpenSLP: una implementazione libera del protocollo di localizzazione dei servizi del Internet Engineering Task Force (IETF). Slackware Linux non include un pacchetto ufficiale per OpenSLP. Dato che preferisco non aggiungere dipendenze che richiedano di compilare pacchetti opzionali, ho preferito disabilitare OpenSLP aggiungendo l'opzione -DWITH_SLP=OFF al comando di configurazione. Il comando modificato risulta essere:

   # 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_SLP=OFF \
      -DBUILD_ALL=ON \
      2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log

Chi desiderasse includere il supporto per OpenSLP in tdenetwork dovrà:

  • Compilare ed installare un pacchetto per OpenSLP.
  • Modificare lo script tdenetwork.SlackBuild rimuovendo la riga segnalata più sopra.
  • Ricompilare ed installare il pacchetto tdenetwork.

Tqca-tls

La libreria tqca-tls contiene estensioni della API tqca, che aggiunge funzioni crittografiche e di hash al Trinity Desktop Environment. Le due librerie erano in passato gestite come pacchetti distinti, ma sono state definitivamente fuse in una unica con il rilascio 14.0.11 di TDE. Gli script di compilazione sono stati aggiornati di conseguenza e tutto ciò che riguarda tqca-tls come pacchetto a se stante è stato definitivamente rimosso e non ne compare più traccia nel build tree. A seguito della rimozione, lo script principale, TDE.SlackBuild, è stato aggiornato eliminando ogni riferimento al pacchetto:

   PKG_LIST_PRE01="cmake akode libr tqt3 tqtinterface arts dbus-tqt dbus-1-tqt tqca libart-lgpl libcaldav libcarddav sip4-tqt"

Tqscintilla

Un altro pacchetto migrato da AutoTools a CMake con il rilascio 14.0.12 di TDE è tqscintilla: un controllo utilizzato per scrivere elaboratori di testo in TQt. La sostituzione del sistema di compilazione ha reso obsoleta la patch necessaria per assegnare la directory di installazione corretta con AutoTools, semplificando di conseguenza lo script SlackBuild. Oltre ai soliti accorgimenti, lo script è stato aggiornato introducendo le seguenti opzioni di compilazione:

   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

Chi volesse compilare tqscintilla per la versione 14.0.11 del Trinity Desktop Environment è pregato di utilizzare lo script distribuito per versione 14.0.10, disponibile nelle pagine di questo stesso sito.


IL BUILD TREE

Riporto un collegamento da cui scaricare tutti gli script di compilazione organizzati in un comodo archivio compresso: tde_build_tree_sg-14.0.12.tar.bz2. Per usare il build tree seguire le seguenti brevi istruzioni:

  • Scaricare e decomprimere l'archivio.
  • Distribuire il codice sorgente, organizzato in tanti archivi compressi, nelle opportune directory. Un archivio avente estensione tar.xz per ogni directory.
  • Entrare nel runlevel 3.
   init 3
  • Rimuovere tutti i pacchetti di TDE installati. Nel caso dei pacchetti della versione 14.0.10 ad esempio:
   removepkg /var/log/packages/*14.0.10*
  • Rimuovere eventuali script di configurazione dimenticati dal comando removepkg.
   rm /etc/profile.d/tqt3.*
   rm /etc/profile.d/trinity.*
  • Eseguire il logout e quindi autenticarsi nuovamente per assicurarsi che tutti i riferimenti a TDE vengano cancellati.
  • Se si desiderasse preparare anche tutti i pacchetti di localizzazione, modificare lo script principale tde_build_script/bin/TDE.SlackBuild cambiando le righe
      # Build package
   #   bash ./${PKG}.SlackBuild

in

      # Build package
      bash ./${PKG}.SlackBuild
  • Impostare le opzioni di configurazione per la piattaforma utilizzata.
   rm TDE.options
   ln -s TDE.options.i486 TDE.options

Per la piattaforma Intel a 32 bit, ad esempio.

  • 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. Saranno necessarie molte ore per compilare il Trinity Desktop Environment ed un periodo 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.


CONCLUSIONI

Sono state illustrate le modifiche introdotte nella versione 14.0.11 e 14.0.12 del Trinity Desktop Environment. Gli script di compilazione 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. 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 32 bit. In conclusione i consueti ringraziamenti agli sviluppatori di Slackware Linux e del Trinity Desktop Environment per l'impegno e gli sforzi compiuti.


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


Link esterni





Lingue: English - Italiano