En/Trinity desktop environment 14.0.5

From Studiosg
Jump to: navigation, search

Welcome to Simone Giustetti's wiki pages.


Languages: English - Italiano


TDE 14.0.5

On August 18 2018 after almost two years of hard work Trinity Desktop Environment 14.0.5 was officially released to the world. Trinity is a desktop environment supporting the Linux operating system and partially FreeBSD. 14.0.5 is a debug release meant to solve issues arisen since the past one, anyway TDE developers managed to introduce some upgrades to both the base system and optional applications. For a complete list of solved issues, patches and updates please check the release notes.

TDE is a mature desktop environment that managed to remain rather lightweight in comparison to the many monsters greedy for resources that roam hungry the landscape of graphical user interfaces available for Linux and other operating systems of the UNIX family. TDE is probably the best desktop environment for machines with low resources for example the family of Raspberry Pi boards and their many clones / competitors that flooded the market in recent years. Release 14.0.5 carries on the declared goal of fixing as many bugs and issues as possible and attest the dedication of the developers to the project and to user needs. I have been following the Trinity Desktop Environment development for the past few years and am very pleased with each release and the performance / features ratio the environment delivers. In recent years I installed and have been using it effectively on Raspberry Pi 2 and 3 boards as well as on standard personal computers.

TDE and Slackware Linux Support

TDE always provided minimal support for Slackware Linux: my distribution of choice for all of my machines. Official packages used to be released, but both them and the installation instructions available in the related project web page are years old and pretty much useless. I really wanted to use an up to date release of TDE thus a couple of years ago decided to write my own set of SlackBuild scripts to build the entire desktop environment. It seems I'm not the only one pursuing a similar goal. GitHub hosts a project aimed to provide TDE build scripts for the last available Slackware version. The set of scripts is regularly updated and uses the source code from the TDE GitHub repository. This is particularly useful when you wish to build the very last available version of the code. The drawback consists in cloning the entire repository consequently filling a lot of disk space with a myriad of obsolete and often useless file revisions and consistently increase download time. Working with machines with limited disk space, I prefer my scripts which use as a starting point source archives from a single release instead of the entire GitHub repository. I recently tested the SlackBuild scripts against TDE 14.0.5.

In this article I will explain how to use the scripts to build working packages of version 14.0.5 of the Trinity Desktop Environment. The installed Linux distribution is Slackware 14.2, last official release at the time of writing, patched with every bug correcting package released since the date of first release. The build instructions were tested on Amd64/X86_64, Arm and i486/i586 boards.


Building Trinity Desktop Environment for Slackware 14.2

The first step in making working packages for Slackware Linux consists in obtaining the source code. Ignore the previously mentioned GitHub repository for the reasons shared above and search for compressed tar archives of the source code at the following URL. At the bottom of the web page you should find links to some really big tar archives packing the source code for:

If you have no bandwidth limits it is advisable to download the source code for all of the packages, otherwise it is probably better to get the first archive in the list only. The latter could require some tweaking to the main build script, but the final result will anyway be a working environment even if missing some of its extensions.

TDE Dependencies

A successful TDE build requires some packages installed on the target machine: packages the desktop environment requires to work properly. One of the dependencies is libart a library for high performance 2D graphics used in the past by both KDE and GNOME, two of the most diffused desktop environments for UNIX. Libart development met a stop in recent times and has been slow or near to null since. The library was in need of patching and updates and since the original developers discontinued support for it libart was adopted by the TDE project and included among its prerequisites. Slackware 14.2 ships the last available version of libart released before inclusion in TDE: libart 2.3.21 missing the latest updates. Linux as well as many other operating systems of the UNIX lineage permit installing more than one version of the same library, a choice I made when installing TDE 14.0.4 for fear of incompatibility between libart 14.0.4 and other Slackware packages. With TDE 14.0.5 I choose to remove libart 2.3.21 replacing it with libart 14.0.5 instead. I noticed no drawback nor issues in the few weeks since. Whoever wishes to have only one version of the library is recommended to install libart 14.0.5 since it is more up-to-date than the release included in Slackware 14.2. Whoever uses Slackware multi-lib should build both the 64 bit and 32 bit versions of the library then convert the 32 bit package into a multi-lib compatibility one recurring to command:

  convertpkg-compat32 -i libart-lgpl-R14.0.5-i486-1sg.txz -d /tmp

Install the resulting package using command:

  installpkg /tmp/libart-compat32-lgpl-R14.0.5-x86_64-1sgcompat32.txz

Another Trinity Desktop Environment required dependency consists of the imlib library, used to handle and draw to screen images saved in many standard formats. Imlib is needed to compile tdegraphics and obtain a working package. The library is rather old, it was designed to work with GTK and GNOME 1, and was removed from the standard Slackware 14.2 package sets. Imlib must be compiled from its source code. Luckily the library is supported by the SlackBuilds.org project whose mission is to provide SlackBuild scripts for many programs and libraries not included in any official Slackware Linux release. A brief guide to building and installing imlib can be found in one of my older articles. The included information is still reliable and useful.

Java Support

Trinity Desktop Environment is written in the C++ programming language and supports other development languages through proper bindings as well. If you wish to write TDE integrated programs in Java, you need to configure and compile the tdebindings package enabling Java language support. A working Java virtual machine or even better a JDK (Java Development Kit) should be installed on the target machine. Getting a virtual machine for the Amd64 or i486 architecture is quite straightforward while finding a VM for the Arm architecture can prove to be a really hard task. Please refer to an old article for some hints to resolve the problem. The article is about TDE 14.0.4 but the proposed solutions can be used for 14.0.5 too.

The Build Tree

A Build Tree is a set of build scripts for the Trinity Desktop Environment and is made of a main script working as a controller and many other scripts for the actual packages of TDE. The main script reads an option file setting the proper environment variables used to identify the target architecture and to pass the proper parameters to the compiler suite, then calls the build scripts in the proper order meant to ensure building each package without errors. The configuration file is centralized in order to guarantee a consistent configuration for every package of the desktop environment. Each individual package has a directory where to place the SlackBuild build script, the source code compressed archive file, potential patches when needed, a slack-desc file containing a brief description of the resulting package and finally a local.options file containing package specific options. Options configure inside the local.options file overwrite the build tree ones. Local.options file are usually empty, but can be populated as needed with options.

The build tree I shared 20 or so months ago for Trinity Desktop Environment 14.0.4 works flawlessly for release 14.0.5 as well. This is not much of a surprise as the new release is an incremental one resolving issues and bugs without the introduction of new dependencies. An archive including the updated build tree can be downloaded from the following URL. The changes made since the previous release are described below.

What Changed in the Build Tree

All of the build scripts were updated replacing the old 14.0.4 version with the new 14.0.5 one:

   SRCVER=${SRCVER:-"R14.0.5"}

The very same update affected the TDE.options file which includes options for the whole environment. Moreover 3 new TDE.options example files are now part of the tree. One for each supported architecture:

  • TDE.options.arm: Arm architecture.
  • TDE.options.i486: 32 bit Intel and compatible machines.
  • TDE.options.x86_64: 64 bit Amd and compatible machines.

What follows is a tree view of the complete file list:

  .
  |-- TDE.options.arm
  |-- TDE.options.i486
  |-- TDE.options.x86_64
  |-- base
  |   |-- tde-i18n
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   |   |-- slack-desc.tde-i18n-af
  |   |   |   |-- slack-desc.tde-i18n-ar
  |   |   |   |-- slack-desc.tde-i18n-az
  |   |   |   |-- slack-desc.tde-i18n-be
  |   |   |   |-- slack-desc.tde-i18n-bg
  |   |   |   |-- slack-desc.tde-i18n-bn
  |   |   |   |-- slack-desc.tde-i18n-br
  |   |   |   |-- slack-desc.tde-i18n-bs
  |   |   |   |-- slack-desc.tde-i18n-ca
  |   |   |   |-- slack-desc.tde-i18n-cs
  |   |   |   |-- slack-desc.tde-i18n-csb
  |   |   |   |-- slack-desc.tde-i18n-cy
  |   |   |   |-- slack-desc.tde-i18n-da
  |   |   |   |-- slack-desc.tde-i18n-de
  |   |   |   |-- slack-desc.tde-i18n-el
  |   |   |   |-- slack-desc.tde-i18n-en_GB
  |   |   |   |-- slack-desc.tde-i18n-eo
  |   |   |   |-- slack-desc.tde-i18n-es
  |   |   |   |-- slack-desc.tde-i18n-et
  |   |   |   |-- slack-desc.tde-i18n-eu
  |   |   |   |-- slack-desc.tde-i18n-fa
  |   |   |   |-- slack-desc.tde-i18n-fi
  |   |   |   |-- slack-desc.tde-i18n-fr
  |   |   |   |-- slack-desc.tde-i18n-fy
  |   |   |   |-- slack-desc.tde-i18n-ga
  |   |   |   |-- slack-desc.tde-i18n-gl
  |   |   |   |-- slack-desc.tde-i18n-he
  |   |   |   |-- slack-desc.tde-i18n-hi
  |   |   |   |-- slack-desc.tde-i18n-hr
  |   |   |   |-- slack-desc.tde-i18n-hsb
  |   |   |   |-- slack-desc.tde-i18n-hu
  |   |   |   |-- slack-desc.tde-i18n-id
  |   |   |   |-- slack-desc.tde-i18n-is
  |   |   |   |-- slack-desc.tde-i18n-it
  |   |   |   |-- slack-desc.tde-i18n-ja
  |   |   |   |-- slack-desc.tde-i18n-kk
  |   |   |   |-- slack-desc.tde-i18n-km
  |   |   |   |-- slack-desc.tde-i18n-ko
  |   |   |   |-- slack-desc.tde-i18n-ku
  |   |   |   |-- slack-desc.tde-i18n-lt
  |   |   |   |-- slack-desc.tde-i18n-lv
  |   |   |   |-- slack-desc.tde-i18n-mi
  |   |   |   |-- slack-desc.tde-i18n-mk
  |   |   |   |-- slack-desc.tde-i18n-mn
  |   |   |   |-- slack-desc.tde-i18n-ms
  |   |   |   |-- slack-desc.tde-i18n-mt
  |   |   |   |-- slack-desc.tde-i18n-nb
  |   |   |   |-- slack-desc.tde-i18n-nds
  |   |   |   |-- slack-desc.tde-i18n-nl
  |   |   |   |-- slack-desc.tde-i18n-nn
  |   |   |   |-- slack-desc.tde-i18n-nso
  |   |   |   |-- slack-desc.tde-i18n-oc
  |   |   |   |-- slack-desc.tde-i18n-pa
  |   |   |   |-- slack-desc.tde-i18n-pl
  |   |   |   |-- slack-desc.tde-i18n-pt
  |   |   |   |-- slack-desc.tde-i18n-pt_BR
  |   |   |   |-- slack-desc.tde-i18n-ro
  |   |   |   |-- slack-desc.tde-i18n-ru
  |   |   |   |-- slack-desc.tde-i18n-rw
  |   |   |   |-- slack-desc.tde-i18n-se
  |   |   |   |-- slack-desc.tde-i18n-sk
  |   |   |   |-- slack-desc.tde-i18n-sl
  |   |   |   |-- slack-desc.tde-i18n-sr
  |   |   |   |-- slack-desc.tde-i18n-sr@Latn
  |   |   |   |-- slack-desc.tde-i18n-ss
  |   |   |   |-- slack-desc.tde-i18n-sv
  |   |   |   |-- slack-desc.tde-i18n-ta
  |   |   |   |-- slack-desc.tde-i18n-te
  |   |   |   |-- slack-desc.tde-i18n-tg
  |   |   |   |-- slack-desc.tde-i18n-th
  |   |   |   |-- slack-desc.tde-i18n-tr
  |   |   |   |-- slack-desc.tde-i18n-uk
  |   |   |   |-- slack-desc.tde-i18n-uz
  |   |   |   |-- slack-desc.tde-i18n-uz@cyrillic
  |   |   |   |-- slack-desc.tde-i18n-ven
  |   |   |   |-- slack-desc.tde-i18n-vi
  |   |   |   |-- slack-desc.tde-i18n-wa
  |   |   |   |-- slack-desc.tde-i18n-xh
  |   |   |   |-- slack-desc.tde-i18n-zh_CN
  |   |   |   |-- slack-desc.tde-i18n-zh_TW
  |   |   |   `-- slack-desc.tde-i18n-zu
  |   |   `-- tde-i18n.SlackBuild
  |   |-- tdeaccessibility
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   |-- slack-desc
  |   |   `-- tdeaccessibility.SlackBuild
  |   |-- tdeaddons
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   |-- slack-desc
  |   |   `-- tdeaddons.SlackBuild
  |   |-- tdeadmin
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   |-- slack-desc
  |   |   `-- tdeadmin.SlackBuild
  |   |-- tdeartwork
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   `-- tdeartwork.SlackBuild
  |   |-- tdebase
  |   |   |-- FBSlackware
  |   |   |   |-- Preview.png
  |   |   |   |-- Theme.rc
  |   |   |   |-- splash_active_bar.png
  |   |   |   |-- splash_bottom.png
  |   |   |   |-- splash_inactive_bar.png
  |   |   |   `-- splash_top.png
  |   |   |-- config
  |   |   |   |-- Xsession
  |   |   |   |-- Xsession.orig
  |   |   |   |-- backgroundrc
  |   |   |   |-- kdeglobals
  |   |   |   |-- kdesktop.kcfg
  |   |   |   |-- kickerSettings.kcfg
  |   |   |   |-- klaunch.kcfg
  |   |   |   |-- konsole.desktop
  |   |   |   |-- konsole.desktop.orig
  |   |   |   |-- konsolerc
  |   |   |   |-- migratekde3
  |   |   |   `-- starttde-14.0.5
  |   |   |-- doinst.sh
  |   |   |-- local.options
  |   |   |-- profile.d
  |   |   |   |-- trinity.csh
  |   |   |   `-- trinity.sh
  |   |   |-- rc.4
  |   |   |-- slack-desc
  |   |   |-- tdebase.SlackBuild
  |   |   |-- trinity.desktop
  |   |   `-- xinit
  |   |       |-- xinitrc.trinity
  |   |       `-- xwmconfig
  |   |-- tdebindings
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   |-- slack-desc
  |   |   `-- tdebindings.SlackBuild
  |   |-- tdeedu
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   |-- slack-desc
  |   |   `-- tdeedu.SlackBuild
  |   |-- tdegames
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   |-- slack-desc
  |   |   `-- tdegames.SlackBuild
  |   |-- tdegraphics
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   `-- tdegraphics.SlackBuild
  |   |-- tdelibs
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   `-- tdelibs.SlackBuild
  |   |-- tdemultimedia
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   |-- slack-desc
  |   |   `-- tdemultimedia.SlackBuild
  |   |-- tdenetwork
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   `-- tdenetwork.SlackBuild
  |   |-- tdepim
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   `-- tdepim.SlackBuild
  |   |-- tdesdk
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   `-- tdesdk.SlackBuild
  |   |-- tdetoys
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   `-- tdetoys.SlackBuild
  |   |-- tdeutils
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   `-- tdeutils.SlackBuild
  |   |-- tdevelop
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   `-- tdevelop.SlackBuild
  |   `-- tdewebdev
  |       |-- doinst.sh
  |       |-- local.options
  |       |-- ltmain_version_update.patch
  |       |-- slack-desc
  |       `-- tdewebdev.SlackBuild
  |-- library
  |   |-- kipi-plugins
  |   |   |-- kipi-plugins.SlackBuild
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   `-- slack-desc
  |   |-- libkdcraw
  |   |   |-- libkdcraw.SlackBuild
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   `-- slack-desc
  |   |-- libkexiv2
  |   |   |-- libkexiv2.SlackBuild
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   `-- slack-desc
  |   |-- libkipi
  |   |   |-- libkipi.SlackBuild
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   `-- slack-desc
  |   |-- libksquirrel
  |   |   |-- libksquirrel.SlackBuild
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   `-- slack-desc
  |   |-- libtdeldap
  |   |   |-- libtdeldap.SlackBuild
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   `-- slack-desc
  |   |-- libtqt-perl
  |   |   |-- libtqt-perl.SlackBuild
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   `-- slack-desc
  |   |-- mlt
  |   |   |-- local.options
  |   |   |-- mlt.SlackBuild
  |   |   |-- slack-desc
  |   |   |-- sox_configure.patch
  |   |   `-- sox_makefile.patch
  |   |-- mlt++
  |   |   |-- local.options
  |   |   |-- mlt++.SlackBuild
  |   |   `-- slack-desc
  |   |-- pytdeextensions
  |   |   |-- local.options
  |   |   |-- pytdeextensions.SlackBuild
  |   |   `-- slack-desc
  |   `-- python-trinity
  |       |-- local.options
  |       |-- python-trinity.SlackBuild
  |       `-- slack-desc
  |-- prerequisite
  |   |-- arts
  |   |   |-- arts.SlackBuild
  |   |   |-- doinst.sh
  |   |   |-- local.options
  |   |   `-- slack-desc
  |   |-- avahi-tqt
  |   |   |-- avahi-tqt.SlackBuild
  |   |   |-- local.options
  |   |   `-- slack-desc
  |   |-- dbus-1-tqt
  |   |   |-- dbus-1-tqt.SlackBuild
  |   |   |-- local.options
  |   |   `-- slack-desc
  |   |-- dbus-tqt
  |   |   |-- dbus-tqt.SlackBuild
  |   |   |-- local.options
  |   |   `-- slack-desc
  |   |-- libart-lgpl
  |   |   |-- libart-lgpl.SlackBuild
  |   |   |-- local.options
  |   |   `-- slack-desc
  |   |-- libcaldav
  |   |   |-- libcaldav.SlackBuild
  |   |   |-- local.options
  |   |   `-- slack-desc
  |   |-- libcarddav
  |   |   |-- libcarddav.SlackBuild
  |   |   |-- local.options
  |   |   `-- slack-desc
  |   |-- python-tqt
  |   |   |-- local.options
  |   |   |-- python-tqt.SlackBuild
  |   |   `-- slack-desc
  |   |-- sip4-tqt
  |   |   |-- local.options
  |   |   |-- sip4-tqt.SlackBuild
  |   |   `-- slack-desc
  |   |-- tqca
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   `-- tqca.SlackBuild
  |   |-- tqca-tls
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   `-- tqca-tls.SlackBuild
  |   |-- tqscintilla
  |   |   |-- local.options
  |   |   |-- qscintilla.patch
  |   |   |-- slack-desc
  |   |   `-- tqscintilla.SlackBuild
  |   |-- tqt3
  |   |   |-- doinst.sh
  |   |   |-- local.options
  |   |   |-- profile.d
  |   |   |   |-- tqt3.csh
  |   |   |   `-- tqt3.sh
  |   |   |-- slack-desc
  |   |   `-- tqt3.SlackBuild
  |   `-- tqtinterface
  |       |-- local.options
  |       |-- slack-desc
  |       `-- tqtinterface.SlackBuild
  `-- tde_build_script
     |-- bin
     |   `-- TDE.SlackBuild
     `-- etc
        |-- tde.dep
        |-- tde_build.conf
        |-- tde_pkg_application.lst
        |-- tde_pkg_base.lst
        |-- tde_pkg_library.lst
        `-- tde_pkg_prerequisite.lst

The list includes all packages of the base, library and prerequisite subset. No one of the application sub set grouping all of the TDE optional programs and add-ons.

Building Packages

The first step consists of removing eventually installed previous TDE versions from the target machine. The build tree installs every newly produced package during the build, but does not remove installed ones. That is system administrator work and users should run manually the proper commands before starting the build procedure or after the build procedure concludes. Use standard Slackware command removepkg. For example to remove all of the TDE 14.0.4 packages you could use command:

  removepkg /var/log/packages/*R14.0.4*

When updating a machine it is highly recommended to start with a clean system therefore you should remove packages before running the desktop environment build script.

Once packages are removed, download the build tree and decompress the archive into a local directory such as /tmp or /usr/src/tde-14.0.5 unpacking the previously listed files and directories. Download the source code archive or archives and distribute them in the file tree directories in such a way that each directory will end up containing the source code and SlackBuild script for the package it is meant to.

  .
  |-- TDE.options.arm
  |-- TDE.options.i486
  |-- TDE.options.x86_64
  |-- base
  |   |-- tde-i18n
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   |   |-- slack-desc.tde-i18n-af
  |   |   |   |-- slack-desc.tde-i18n-ar
  |   |   |   |-- slack-desc.tde-i18n-az
  |   |   |   |-- slack-desc.tde-i18n-be
  |   |   |   |-- slack-desc.tde-i18n-bg
  |   |   |   |-- slack-desc.tde-i18n-bn
  |   |   |   |-- slack-desc.tde-i18n-br
  |   |   |   |-- slack-desc.tde-i18n-bs
  |   |   |   |-- slack-desc.tde-i18n-ca
  |   |   |   |-- slack-desc.tde-i18n-cs
  |   |   |   |-- slack-desc.tde-i18n-csb
  |   |   |   |-- slack-desc.tde-i18n-cy
  |   |   |   |-- slack-desc.tde-i18n-da
  |   |   |   |-- slack-desc.tde-i18n-de
  |   |   |   |-- slack-desc.tde-i18n-el
  |   |   |   |-- slack-desc.tde-i18n-en_GB
  |   |   |   |-- slack-desc.tde-i18n-eo
  |   |   |   |-- slack-desc.tde-i18n-es
  |   |   |   |-- slack-desc.tde-i18n-et
  |   |   |   |-- slack-desc.tde-i18n-eu
  |   |   |   |-- slack-desc.tde-i18n-fa
  |   |   |   |-- slack-desc.tde-i18n-fi
  |   |   |   |-- slack-desc.tde-i18n-fr
  |   |   |   |-- slack-desc.tde-i18n-fy
  |   |   |   |-- slack-desc.tde-i18n-ga
  |   |   |   |-- slack-desc.tde-i18n-gl
  |   |   |   |-- slack-desc.tde-i18n-he
  |   |   |   |-- slack-desc.tde-i18n-hi
  |   |   |   |-- slack-desc.tde-i18n-hr
  |   |   |   |-- slack-desc.tde-i18n-hsb
  |   |   |   |-- slack-desc.tde-i18n-hu
  |   |   |   |-- slack-desc.tde-i18n-id
  |   |   |   |-- slack-desc.tde-i18n-is
  |   |   |   |-- slack-desc.tde-i18n-it
  |   |   |   |-- slack-desc.tde-i18n-ja
  |   |   |   |-- slack-desc.tde-i18n-kk
  |   |   |   |-- slack-desc.tde-i18n-km
  |   |   |   |-- slack-desc.tde-i18n-ko
  |   |   |   |-- slack-desc.tde-i18n-ku
  |   |   |   |-- slack-desc.tde-i18n-lt
  |   |   |   |-- slack-desc.tde-i18n-lv
  |   |   |   |-- slack-desc.tde-i18n-mi
  |   |   |   |-- slack-desc.tde-i18n-mk
  |   |   |   |-- slack-desc.tde-i18n-mn
  |   |   |   |-- slack-desc.tde-i18n-ms
  |   |   |   |-- slack-desc.tde-i18n-mt
  |   |   |   |-- slack-desc.tde-i18n-nb
  |   |   |   |-- slack-desc.tde-i18n-nds
  |   |   |   |-- slack-desc.tde-i18n-nl
  |   |   |   |-- slack-desc.tde-i18n-nn
  |   |   |   |-- slack-desc.tde-i18n-nso
  |   |   |   |-- slack-desc.tde-i18n-oc
  |   |   |   |-- slack-desc.tde-i18n-pa
  |   |   |   |-- slack-desc.tde-i18n-pl
  |   |   |   |-- slack-desc.tde-i18n-pt
  |   |   |   |-- slack-desc.tde-i18n-pt_BR
  |   |   |   |-- slack-desc.tde-i18n-ro
  |   |   |   |-- slack-desc.tde-i18n-ru
  |   |   |   |-- slack-desc.tde-i18n-rw
  |   |   |   |-- slack-desc.tde-i18n-se
  |   |   |   |-- slack-desc.tde-i18n-sk
  |   |   |   |-- slack-desc.tde-i18n-sl
  |   |   |   |-- slack-desc.tde-i18n-sr
  |   |   |   |-- slack-desc.tde-i18n-sr@Latn
  |   |   |   |-- slack-desc.tde-i18n-ss
  |   |   |   |-- slack-desc.tde-i18n-sv
  |   |   |   |-- slack-desc.tde-i18n-ta
  |   |   |   |-- slack-desc.tde-i18n-te
  |   |   |   |-- slack-desc.tde-i18n-tg
  |   |   |   |-- slack-desc.tde-i18n-th
  |   |   |   |-- slack-desc.tde-i18n-tr
  |   |   |   |-- slack-desc.tde-i18n-uk
  |   |   |   |-- slack-desc.tde-i18n-uz
  |   |   |   |-- slack-desc.tde-i18n-uz@cyrillic
  |   |   |   |-- slack-desc.tde-i18n-ven
  |   |   |   |-- slack-desc.tde-i18n-vi
  |   |   |   |-- slack-desc.tde-i18n-wa
  |   |   |   |-- slack-desc.tde-i18n-xh
  |   |   |   |-- slack-desc.tde-i18n-zh_CN
  |   |   |   |-- slack-desc.tde-i18n-zh_TW
  |   |   |   `-- slack-desc.tde-i18n-zu
  |   |   |-- tde-i18n-R14.0.5.tar.bz2
  |   |   `-- tde-i18n.SlackBuild
  |   |-- tdeaccessibility
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   |-- slack-desc
  |   |   |-- tdeaccessibility-R14.0.5.tar.bz2
  |   |   `-- tdeaccessibility.SlackBuild
  |   |-- tdeaddons
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   |-- slack-desc
  |   |   |-- tdeaddons-R14.0.5.tar.bz2
  |   |   `-- tdeaddons.SlackBuild
  |   |-- tdeadmin
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   |-- slack-desc
  |   |   |-- tdeadmin-R14.0.5.tar.bz2
  |   |   `-- tdeadmin.SlackBuild
  |   |-- tdeartwork
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   |-- tdeartwork-R14.0.5.tar.bz2
  |   |   `-- tdeartwork.SlackBuild
  |   |-- tdebase
  |   |   |-- FBSlackware
  |   |   |   |-- Preview.png
  |   |   |   |-- Theme.rc
  |   |   |   |-- splash_active_bar.png
  |   |   |   |-- splash_bottom.png
  |   |   |   |-- splash_inactive_bar.png
  |   |   |   `-- splash_top.png
  |   |   |-- config
  |   |   |   |-- Xsession
  |   |   |   |-- Xsession.orig
  |   |   |   |-- backgroundrc
  |   |   |   |-- kdeglobals
  |   |   |   |-- kdesktop.kcfg
  |   |   |   |-- kickerSettings.kcfg
  |   |   |   |-- klaunch.kcfg
  |   |   |   |-- konsole.desktop
  |   |   |   |-- konsole.desktop.orig
  |   |   |   |-- konsolerc
  |   |   |   |-- migratekde3
  |   |   |   `-- starttde-14.0.5
  |   |   |-- doinst.sh
  |   |   |-- local.options
  |   |   |-- profile.d
  |   |   |   |-- trinity.csh
  |   |   |   `-- trinity.sh
  |   |   |-- rc.4
  |   |   |-- slack-desc
  |   |   |-- tdebase-R14.0.5.tar.bz2
  |   |   |-- tdebase.SlackBuild
  |   |   |-- trinity.desktop
  |   |   `-- xinit
  |   |       |-- xinitrc.trinity
  |   |       `-- xwmconfig
  |   |-- tdebindings
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   |-- slack-desc
  |   |   |-- tdebindings-R14.0.5.tar.bz2
  |   |   `-- tdebindings.SlackBuild
  |   |-- tdeedu
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   |-- slack-desc
  |   |   |-- tdeedu-R14.0.5.tar.bz2
  |   |   `-- tdeedu.SlackBuild
  |   |-- tdegames
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   |-- slack-desc
  |   |   |-- tdegames-R14.0.5.tar.bz2
  |   |   `-- tdegames.SlackBuild
  |   |-- tdegraphics
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   |-- tdegraphics-R14.0.5.tar.bz2
  |   |   `-- tdegraphics.SlackBuild
  |   |-- tdelibs
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   |-- tdelibs-R14.0.5.tar.bz2
  |   |   `-- tdelibs.SlackBuild
  |   |-- tdemultimedia
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   |-- slack-desc
  |   |   |-- tdemultimedia-R14.0.5.tar.bz2
  |   |   `-- tdemultimedia.SlackBuild
  |   |-- tdenetwork
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   |-- tdenetwork-R14.0.5.tar.bz2
  |   |   `-- tdenetwork.SlackBuild
  |   |-- tdepim
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   |-- tdepim-R14.0.5.tar.bz2
  |   |   `-- tdepim.SlackBuild
  |   |-- tdesdk
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   |-- tdesdk-R14.0.5.tar.bz2
  |   |   `-- tdesdk.SlackBuild
  |   |-- tdetoys
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   |-- tdetoys-R14.0.5.tar.bz2
  |   |   `-- tdetoys.SlackBuild
  |   |-- tdeutils
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   |-- tdeutils-R14.0.5.tar.bz2
  |   |   `-- tdeutils.SlackBuild
  |   |-- tdevelop
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   |-- tdevelop-R14.0.5.tar.bz2
  |   |   `-- tdevelop.SlackBuild
  |   `-- tdewebdev
  |       |-- doinst.sh
  |       |-- local.options
  |       |-- ltmain_version_update.patch
  |       |-- slack-desc
  |       |-- tdewebdev-R14.0.5.tar.bz2
  |       `-- tdewebdev.SlackBuild
  |-- library
  |   |-- kipi-plugins
  |   |   |-- kipi-plugins-R14.0.5.tar.bz2
  |   |   |-- kipi-plugins.SlackBuild
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   `-- slack-desc
  |   |-- libkdcraw
  |   |   |-- libkdcraw-R14.0.5.tar.bz2
  |   |   |-- libkdcraw.SlackBuild
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   `-- slack-desc
  |   |-- libkexiv2
  |   |   |-- libkexiv2-R14.0.5.tar.bz2
  |   |   |-- libkexiv2.SlackBuild
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   `-- slack-desc
  |   |-- libkipi
  |   |   |-- libkipi-R14.0.5.tar.bz2
  |   |   |-- libkipi.SlackBuild
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   `-- slack-desc
  |   |-- libksquirrel
  |   |   |-- libksquirrel-R14.0.5.tar.bz2
  |   |   |-- libksquirrel.SlackBuild
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   `-- slack-desc
  |   |-- libtdeldap
  |   |   |-- libtdeldap-R14.0.5.tar.bz2
  |   |   |-- libtdeldap.SlackBuild
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   `-- slack-desc
  |   |-- libtqt-perl
  |   |   |-- libtqt-perl-R14.0.5.tar.bz2
  |   |   |-- libtqt-perl.SlackBuild
  |   |   |-- local.options
  |   |   |-- ltmain_version_update.patch
  |   |   `-- slack-desc
  |   |-- mlt
  |   |   |-- local.options
  |   |   |-- mlt-R14.0.5.tar.bz2
  |   |   |-- mlt.SlackBuild
  |   |   |-- slack-desc
  |   |   |-- sox_configure.patch
  |   |   `-- sox_makefile.patch
  |   |-- mlt++
  |   |   |-- local.options
  |   |   |-- mlt++-R14.0.5.tar.bz2
  |   |   |-- mlt++.SlackBuild
  |   |   `-- slack-desc
  |   |-- pytdeextensions
  |   |   |-- local.options
  |   |   |-- pytdeextensions-R14.0.5.tar.bz2
  |   |   |-- pytdeextensions.SlackBuild
  |   |   `-- slack-desc
  |   `-- python-trinity
  |       |-- local.options
  |       |-- python-trinity-R14.0.5.tar.bz2
  |       |-- python-trinity.SlackBuild
  |       `-- slack-desc
  |-- prerequisite
  |   |-- arts
  |   |   |-- arts-R14.0.5.tar.bz2
  |   |   |-- arts.SlackBuild
  |   |   |-- doinst.sh
  |   |   |-- local.options
  |   |   `-- slack-desc
  |   |-- avahi-tqt
  |   |   |-- avahi-tqt-R14.0.5.tar.bz2
  |   |   |-- avahi-tqt.SlackBuild
  |   |   |-- local.options
  |   |   `-- slack-desc
  |   |-- dbus-1-tqt
  |   |   |-- dbus-1-tqt-R14.0.5.tar.bz2
  |   |   |-- dbus-1-tqt.SlackBuild
  |   |   |-- local.options
  |   |   `-- slack-desc
  |   |-- dbus-tqt
  |   |   |-- dbus-tqt-R14.0.5.tar.bz2
  |   |   |-- dbus-tqt.SlackBuild
  |   |   |-- local.options
  |   |   `-- slack-desc
  |   |-- libart-lgpl
  |   |   |-- libart-lgpl-R14.0.5.tar.bz2
  |   |   |-- libart-lgpl.SlackBuild
  |   |   |-- local.options
  |   |   `-- slack-desc
  |   |-- libcaldav
  |   |   |-- libcaldav-R14.0.5.tar.bz2
  |   |   |-- libcaldav.SlackBuild
  |   |   |-- local.options
  |   |   `-- slack-desc
  |   |-- libcarddav
  |   |   |-- libcarddav-R14.0.5.tar.bz2
  |   |   |-- libcarddav.SlackBuild
  |   |   |-- local.options
  |   |   `-- slack-desc
  |   |-- python-tqt
  |   |   |-- local.options
  |   |   |-- python-tqt-R14.0.5.tar.bz2
  |   |   |-- python-tqt.SlackBuild
  |   |   `-- slack-desc
  |   |-- sip4-tqt
  |   |   |-- local.options
  |   |   |-- sip4-tqt-R14.0.5.tar.bz2
  |   |   |-- sip4-tqt.SlackBuild
  |   |   `-- slack-desc
  |   |-- tqca
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   |-- tqca-R14.0.5.tar.bz2
  |   |   `-- tqca.SlackBuild
  |   |-- tqca-tls
  |   |   |-- local.options
  |   |   |-- slack-desc
  |   |   |-- tqca-tls-R14.0.5.tar.bz2
  |   |   `-- tqca-tls.SlackBuild
  |   |-- tqscintilla
  |   |   |-- local.options
  |   |   |-- qscintilla.patch
  |   |   |-- slack-desc
  |   |   |-- tqscintilla-R14.0.5.tar.bz2
  |   |   `-- tqscintilla.SlackBuild
  |   |-- tqt3
  |   |   |-- doinst.sh
  |   |   |-- local.options
  |   |   |-- profile.d
  |   |   |   |-- tqt3.csh
  |   |   |   `-- tqt3.sh
  |   |   |-- slack-desc
  |   |   |-- tqt3-R14.0.5.tar.bz2
  |   |   `-- tqt3.SlackBuild
  |   `-- tqtinterface
  |       |-- local.options
  |       |-- slack-desc
  |       |-- tqtinterface-R14.0.5.tar.bz2
  |       `-- tqtinterface.SlackBuild
  `-- tde_build_script
     |-- bin
     |   `-- TDE.SlackBuild
     `-- etc
        |-- tde.dep
        |-- tde_build.conf
        |-- tde_pkg_application.lst
        |-- tde_pkg_base.lst
        |-- tde_pkg_library.lst
        `-- tde_pkg_prerequisite.lst

The next step consists of setting build options for the target architecture. As stated in the previous paragraph the build tree supports 3 architectures and as of version 14.0.5 it includes an example file for each one. The main script: ./tde_build_script/bin/TDE.SlackBuild searches for a file named TDE.options and returns an error when not finding it. To set the correct option file all you need to do is copy or rename one of the example ones removing the architecture suffix from its name. If you plan to build TDE for a Raspberry Pi 3, that is an Arm board, the file to copy in the root directory of the build tree is TDE.options.arm:

  cp ./TDE.options.arm ./TDE.options

Once the configuration file is in place it is at last possible to start building packages running the main script:

  cd ./tde_build_script/bin
  sh ./TDE.SlackBuild

The script will read the configuration file and set the environment variables, then it will run the build scripts for each and every package in the proper order, save the outcome packages and related log files into the /tmp directory and install them all. When the script exits the desktop environment is installed and ready for use and you can start it from a terminal console running command startde.

Customizing the Build Scripts

Some of the packages included in the prerequisite or library sub-sets are not essential to TDE. Not installing them results in some missing functionality or tool. Some other like the mlt and mlt++ libraries are almost useless and will probably be deprecated and removed in future releases or the Trinity Desktop Environement. The main build script can be customized in order to ignore the unwanted packages. The following lines should be edited in order to exclude packages from the build procedure:

   PKG_LIST_PRE01="tqt3 tqtinterface arts dbus-tqt dbus-1-tqt tqca tqca-tls libart-lgpl libcaldav libcarddav sip4-tqt"
   PKG_LIST_PRE02="tqscintilla python-tqt"
   PKG_LIST_BASE01="tdelibs tdebase"
   PKG_LIST_LIB_PYTHON="python-trinity pytdeextensions"
   PKG_LIST_BASE02="tdebindings tdeaccessibility tdeutils tdemultimedia tdenetwork tdeadmin tdeartwork tdegames tdetoys \
                    tdeedu tdegraphics tdepim tdesdk tdevelop tdeaddons tdewebdev"
   PKG_LIST_LIB="mlt mlt++ libtqt-perl libtdeldap libkexiv2 libkdcraw libkipi libksquirrel kipi-plugins"

To ignore the aforementioned mlt libraries the PKG_LIST_LIB variable should be changed as in the example below:

   PKG_LIST_PRE01="tqt3 tqtinterface arts dbus-tqt dbus-1-tqt tqca tqca-tls libart-lgpl libcaldav libcarddav sip4-tqt"
   PKG_LIST_PRE02="tqscintilla python-tqt"
   PKG_LIST_BASE01="tdelibs tdebase"
   PKG_LIST_LIB_PYTHON="python-trinity pytdeextensions"
   PKG_LIST_BASE02="tdebindings tdeaccessibility tdeutils tdemultimedia tdenetwork tdeadmin tdeartwork tdegames tdetoys \
                    tdeedu tdegraphics tdepim tdesdk tdevelop tdeaddons tdewebdev"
   PKG_LIST_LIB="libtqt-perl libtdeldap libkexiv2 libkdcraw libkipi libksquirrel kipi-plugins"

The related packages will be ignored while compiling the desktop environment. To disable support for the Python programming language the lines should be updated as in the following example:

   PKG_LIST_PRE01="tqt3 tqtinterface arts dbus-tqt dbus-1-tqt tqca tqca-tls libart-lgpl libcaldav libcarddav sip4-tqt"
   PKG_LIST_PRE02=""
   PKG_LIST_BASE01="tdelibs tdebase"
   PKG_LIST_LIB_PYTHON=""
   PKG_LIST_BASE02="tdebindings tdeaccessibility tdeutils tdemultimedia tdenetwork tdeadmin tdeartwork tdegames tdetoys \
                    tdeedu tdegraphics tdepim tdesdk tdevelop tdeaddons tdewebdev"
   PKG_LIST_LIB="mlt mlt++ libtqt-perl libtdeldap libkexiv2 libkdcraw libkipi libksquirrel kipi-plugins"

Consequently Python will be unavailable to developers and no new TDE integrated program could be written in that language.

Localizing TDE

English is Trinity Desktop Environment native language however localization packages exist for Italian, French, German and more than other 50 languages. A full list of localization packages is included in the ./base/tde-i18n sub-directory. The corresponding source code is released as one huge single archive weighting around 250 Mbytes in size. The build tree scripts include lines of code needed to build all of the localization packages, but they were commented because of the following reasons:

  • Building the localization packages requires a lot of free disk space: more than 2 Gbytes for temporary files.
  • Building the localization packages requires more time than all of the Trinity Desktop Environment packages together.
  • Installing all localization packages takes up a lot of disk space unnecessarily and is hardly suitable for machines with limited resources.

I usually don't configure a locale other than English thus the line starting localization package build was commented out. If you wish to configure a locale for TDE you'll have to update the main script ./tde_build_tree/tde_build_script/bin/TDE.SlackBuild removing the comment at line 324. From:

   #   bash ./${PKG}.SlackBuild

to:

      bash ./${PKG}.SlackBuild

Localization packages are built after the base ones and before optional libraries.


Conclusions

This article provides how to information about the use of some SlackBuild scripts written to build working packages for Trinity Desktop Environment on Slackware Linux 14.2. The "build tree" was updated to match the recently released TDE 14.0.5 and was successfully tested on 32 and 64 bit Amd / Intel architectures as well as Arm boards such as the Raspberry Pi 2 and 3. The article includes some hints on how to configure and customize scripts and instructions for compiling optional localization packages. A URL to download a compressed archive for the build scripts was provided in the hope they will prove useful to other Linux, Slackware and TDE users. A gallery of images depicting Trinity Desktop Environment running on different platforms is available at the following link.


For any feedback, questions, errors and such, please e-mail me at studiosg [at] giustetti [dot] net


External links





Languages: English - Italiano