En/trinity desktop environment

Welcome to Simone Giustetti's wiki pages.


Languages: English - Italiano


Trinity Desktop Environment

The Trinity Desktop Environment is a project born forking the KDE 3.5.10 source base. The project aims to keep the KDE 3.x branch alive resolving bugs and adding functionality and support for modern hardware. The first official release was 3.5.11 dated 29th April 2010. In the 3 years since, others followed with a yearly release cycle culminating in the last available one: 3.5.13.2 dated July 2013. Since day one the Trinity project provides binary packages for some Linux distributions: Debian and Ubuntu which were joined by Fedora and Red Hat in later releases. Some other distributions and operating systems are supported via a mix of source code packages and build instructions provided through the project web pages. In the following paper I'll try to provide an overview of the Trinity Desktop Environment support for recent Slackware releases.

TDE and Slackware

I have a really critical opinion about KDE 4 that strengthened over time, therefore I followed the Trinity project with anticipation from its birth. I never had the opportunity to install the desktop environment on a production machine because the Slackware support somewhat lacked and always seemed late when compared to other distributions:

  • The downloadable binary packages available from the project web site were historically never built against the "current" Slackware release, but usually for an earlier, sometimes obsolete one.
  • The provided build scripts are hard to read and worse to update. It seems impossible to obtain a clean build out of downloaded source packages of an official release. Scripts stubbornly try to download source code from the Git repository refusing to read locally installed archives in spite of environment variables assigned values. Moreover the total script count is high as a lot of optional libraries and applications are included; libraries and applications I won't use anyway.

I lost faith in KDE developers who seem more eager to get in the smart pone / tablet business rather than develop for the old desktop PC and I still miss some features of KDE 3 that never made it to 4.x branch therefore I decided to give Trinity a try compiling my own packages.

Packages from Unofficial Repositories

Compiling TDE for the current Slackware release, 14.0 at the time of writing, out of source packages is not an original idea. A quick search in the web returned some links to unofficial packages and repositories:

  • The Indiana Non-Profit Information Technology Organization web site hosts packages for the 3.5.13 TDE release. Packages are built against a 64 bit multilib Slackware 13.37. They were rejected not being the latest Slackware release nor TDE one. Packages are meant to be a KDE 4 replacement: it is not possible to install both desktop environments on the same machine. /usr was chosen as root path for the installation as a consequence files from one environment will overwrite files from the other.
  • Lazy Tux web site hosts packages for both a 32 bit and a 64 bit release of Trinity 14.0.0, the development an test release. The environment is packaged for Slackware 14.0, but still a development release not a final build. Again the /usr path was configured as root directory making TDE 3 and KDE 4 coexistence impossible. Packages are configured for the Nvidia video driver. Maybe too many dependencies are required .

Installing unofficial packages was not an option. I went for building packages from source following some sane guide lines in order to get binaries usable by users other than me.


Building TDE

While building TDE I tried to follow the documentation available in the project wiki. The guides don't seem up to date; some changes to the procedure were necessary here and there.

Guide Lines

The adopted guide lines follow:

  1. Ignore the Trinity provided build kit for Slackware in favor of the old official slackbuild scripts for KDE 3. Use those as a base providing updates and patches when needed.
  2. Build the base environment only. Do not consider all optional libraries and binaries.
  3. Build a working 32 bit release for Intel / AMD compatible architecture initially then go on with a 64 bit release and finally a multilib one.
  4. Include options to compile for architectures other than Intel / AMD in the slackbuild scrips from the very start. This will hopefully ease the porting work.
  5. Configure /opt/trinity as base directory for packages in order for TDE 3 to coexist with KDE 4 on the very same machine.


Packages are divided into three macro groups: prerequisites, base packages and applications. Below You'll find the package list ordered by the build sequence. Notes, slackbuilds and additional build instructions are available in the specific page for each package.

Prerequisites

The group include base libraries used throughout the desktop environment by applications. All packages here grouped do not use the automake utility to compile: they were migrated to cmake. The SlackBuild scripts for kDE 3 were written for automake and were thus updated accordingly.

The build order followed is:

Base Packages

Once all packages included in the "Prerequisites" set are built and installed it is possible to go on with the TDE core packages. Packages including all the base subsystems and the applications of the desktop environment. The TDE project divides the "Base Packages" into two subsets:

  1. Required: All packages TDE cannot work without.
  2. Recommended: Packages adding some functionality or service not critical to the environment.

Below I'll work with the Required packages only, leaving the Recommended ones for the future.

The base package list ends with tdeaddons. By installing the previously built packages You'll obtain a full desktop environment rich with functionality, programs and services. Before moving on to the optional applications and packages it is worth spending some time developing a main script meant to automate the build procedure shortening packaging time. The script should call build scripts for individual packages in the order suggested by the TDE documentation. Individual scripts can be downloaded by the respective article page. Following the Slackware KDE 3 philosophy, the script was named TDE.SlackBuild. The directory build tree should be created before running the script. The directory schema being:

  -rwxr--r-- TDE.SlackBuild
  drwxr-xr-x arts
  drwxr-xr-x dbus-1-tqt
  drwxr-xr-x dbus-tqt
  drwxr-xr-x libcaldav
  drwxr-xr-x libcarddav
  drwxr-xr-x qt3
  drwxr-xr-x sip4-tqt
  drwxr-xr-x tdeaccessibility
  drwxr-xr-x tdeaddons
  drwxr-xr-x tdeadmin
  drwxr-xr-x tdeartwork
  drwxr-xr-x tdebase
  drwxr-xr-x tdebindings
  drwxr-xr-x tdeedu
  drwxr-xr-x tdegames
  drwxr-xr-x tdegraphics
  drwxr-xr-x tdelibs
  drwxr-xr-x tdemultimedia
  drwxr-xr-x tdenetwork
  drwxr-xr-x tdepim
  drwxr-xr-x tdesdk
  drwxr-xr-x tdetoys
  drwxr-xr-x tdeutils
  drwxr-xr-x tdevelop

Every directory should contain the respective source code archive plus the build scripts obtained from previous articles. To build and install the whole desktop environment simply run command ./TDE.SlackBuild. A full copy of the main script can be downloaded from the following link.

Applications

TDE is a full desktop environment and provides a software development kit for developers eager to write software fully integrated with it. In the years many programmers answered the call this resulting in a greatly increased availability of integrated applications. Approximately one hundred additional packages exist. Below I'll write build scripts for some of those packages: the ones I usually work with:


Updated Packages / Scripts

TDE and many other Open Source projects periodically release all of their packages in order to present users with new functionality. The build procedure needs updating for each release. A recent release of the build tree ans scripts can be downloaded from the following web page.


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


External links





Languages: English - Italiano