En/trinity desktop environment 14.0.0
Welcome to Simone Giustetti's wiki pages.
Languages: English - Italiano
Trinity Desktop Environment 14.0.0
Release 14.0.0 of TDE officially come out the 16th December 2014. Trinity is a desktop environment for Linux and other Unixes born as a fork of the 3.5 KDE branch. The new release has been in the works for quite some time as it promised to solve many of the problems that so far kept the desktop environment from wider adoption. So many new features are included that the development team dropped the old numbering scheme in favor of a new one: the release identifier moved from 184.108.40.206 to 14.0.0 with an increment of the minor number thought as a starting point for the new course of TDE. Some among the included features are worth mentioning:
- HAL was removed from the dependency list. The old Hardware Abstraction Layer was deprecated in favor of DBUS some years ago in Linux and many distributions, among them Debian, Fedora and Slackware, dropped it from the supported packages list. TDE releases up to 220.127.116.11 could not work without HAL therefore users were forced to install obsolete packages often distributed without any form of support. The newer TDE release introduces its own hardware management library: TDE Hardware Library (TDEHWLIB). Linux packages can be built omitting HAL support while the very same can still be enabled for FreeBSD and other operating systems needing it.
- Many among the base packages dropped Autotools as build tool and were ported to Cmake. The conversion has not concluded yet, but the majority of packages can now be built with the new tool.
- Many programs and applications were renamed in order not to be confused with KDE 4 equally named ones. The renaming is still in progress, but a significant update from previous releases concluded; a great step forward towards KDE and TDE coexisting on the same host.
- Icons, backgrounds and other graphic elements were updated replacing old KDE branded files with TDE ones. This will grant for increased differentiation between both environments in the future and less occasions for mistaking the two.
- Many bugs and issues were resolved and new features added to the source code. Many packages presenting issues during build or not building at all now work flawlessly on recent releases of major Linux distributions.
- The general update touched even the project web site in both look and content. Even the documentation received a well deserved update.
TDE 14.0.0 and Slackware
A previous series of articles (Building TDE) detailed my efforts while trying to build packages for TDE 18.104.22.168 on the latest available Slackware release of the time: 14.0 now a couple of years old. The outcome turned out to be quite successful: both base packages and dependencies produced working binary packages with the major exception being the bindings for the Python programming language. After downloading freshly released source archives for TDE 14.0.0 I tried to build some working packages for the latest stable Slackware release: 14.1 which replaced 14.0 in 2013. The outcome proved again to be a positive one: all of the packages build with the exception of some optional add-on libraries and some newly added components probably in need of a bit more testing. All in all TDE 14.0.0 is a mature product able to run on recent Linux distributions and representing a valid alternative to Gnome, KDE, Xfce or any other desktop environment available.
Building TDE 14.0.0 for Slackware 14.1
While building TDE packages I tried to follow as much as possible the documentation available from the project wiki. When it was not possible to retrieve up to date information I referred to the INSTALL or README files in source code archives. When even this last path was precluded, either due to missing files or to files containing outdated information, the configuration parameters were assigned values coherent with the build scripts.
All projects as big as TDE are in need of rules to ensure the coherence of their internal structure. The guidelines adopted while building packages are listed below:
- Use /opt/trinity as package root directory in order for TDE 14.0.0 to be installed alongside KDE 4 without one overwriting the other one files.
- Try to build as many packages as possible from the Prerequisites, Base and Libraries subcategories ignoring the Additional Applications one at least in a early stage.
- Work on a 32 bit version for the AMD / Intel architecture first them move to a 64 bit architecture and last a multi-lib one.
- Write down a build script for each and every working package and a main one calling for the specific ones in the right build order. This way it will be possible to build either the whole environment or a single package running but a script.
- Put all shared configuration options for the Trinity Desktop Environment in a single file.
- Put custom package options in dedicated files.
- Use the Slackware KDE 3 build scripts as a trace.
- Remove newly added features in need of some more testing.
Being an articulated and complex project TDE borrows from external libraries and programs for some of its functionality. To execute an error free full build of the desktop environment dependencies installation on the system should be checked for beforehand. Dependencies can be grouped into two families: external and internal ones.
Among the external dependencies family are all packages included in a standard Slackware distribution and not directly linked to TDE. A partial list can include:
Some, the X server for example, TDE cannot do without while some others are optional and useful for features specific to some package.
Internal dependencies are all external packages included in TDE because their respective developers and maintainers stopped working on them. In this group fall:
It is possible that Slackware or some other distribution ship their version of the listed dependencies. Those packages lack patches and updates provided by the TDE developers and as such replacing them with the Trinity specific packages is highly recommended.
A directory tree is needed to successfully run a TDE full build and compile all of the TDE packages for Slackware Linux. The build tree directories will contain the source code archives, the configuration files, patches, build scripts and more. While test building, /usr/src/trinity was chosen as the root directory for the tree. A list of directories and their content follows:
/usr/src/trinity |-- TDE.options |-- base | |-- tde-construct | | `-- tde-construct-R14.0.0.tar.bz2 | |-- 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.0.tar.bz2 | | `-- tde-i18n.SlackBuild | |-- tdeaccessibility | | |-- local.options | | |-- ltmain_version_update.patch | | |-- slack-desc | | |-- tdeaccessibility-R14.0.0.tar.bz2 | | `-- tdeaccessibility.SlackBuild | |-- tdeaddons | | |-- local.options | | |-- ltmain_version_update.patch | | |-- slack-desc | | |-- tdeaddons-R14.0.0.tar.bz2 | | `-- tdeaddons.SlackBuild | |-- tdeadmin | | |-- local.options | | |-- ltmain_version_update.patch | | |-- slack-desc | | |-- tdeadmin-R14.0.0.tar.bz2 | | `-- tdeadmin.SlackBuild | |-- tdeartwork | | |-- local.options | | |-- slack-desc | | |-- tdeartwork-R14.0.0.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-22.214.171.124 | | |-- doinst.sh | | |-- local.options | | |-- profile.d | | | |-- trinity.csh | | | `-- trinity.sh | | |-- rc.4 | | |-- slack-desc | | |-- tdebase-R14.0.0.tar.bz2 | | |-- tdebase.SlackBuild | | |-- trinity.desktop | | `-- xinit | | |-- xinitrc.trinity | | `-- xwmconfig | |-- tdebindings | | |-- local.options | | |-- ltmain_version_update.patch | | |-- slack-desc | | |-- tdebindings-R14.0.0.tar.bz2 | | `-- tdebindings.SlackBuild | |-- tdeedu | | |-- local.options | | |-- ltmain_version_update.patch | | |-- slack-desc | | |-- tdeedu-R14.0.0.tar.bz2 | | `-- tdeedu.SlackBuild | |-- tdegames | | |-- local.options | | |-- ltmain_version_update.patch | | |-- slack-desc | | |-- tdegames-R14.0.0.tar.bz2 | | `-- tdegames.SlackBuild | |-- tdegraphics | | |-- local.options | | |-- slack-desc | | |-- tdegraphics-R14.0.0.tar.bz2 | | `-- tdegraphics.SlackBuild | |-- tdelibs | | |-- local.options | | |-- slack-desc | | |-- tdelibs-R14.0.0.tar.bz2 | | `-- tdelibs.SlackBuild | |-- tdemultimedia | | |-- local.options | | |-- ltmain_version_update.patch | | |-- slack-desc | | |-- tdemultimedia-R14.0.0.tar.bz2 | | `-- tdemultimedia.SlackBuild | |-- tdenetwork | | |-- local.options | | |-- slack-desc | | |-- tdenetwork-R14.0.0.tar.bz2 | | `-- tdenetwork.SlackBuild | |-- tdepim | | |-- local.options | | |-- slack-desc | | |-- tdepim-R14.0.0.tar.bz2 | | `-- tdepim.SlackBuild | |-- tdesdk | | |-- local.options | | |-- slack-desc | | |-- tdesdk-R14.0.0.tar.bz2 | | `-- tdesdk.SlackBuild | |-- tdetoys | | |-- local.options | | |-- slack-desc | | |-- tdetoys-R14.0.0.tar.bz2 | | `-- tdetoys.SlackBuild | |-- tdeutils | | |-- local.options | | |-- slack-desc | | |-- tdeutils-R14.0.0.tar.bz2 | | `-- tdeutils.SlackBuild | |-- tdevelop | | |-- local.options | | |-- slack-desc | | |-- tdevelop-R14.0.0.tar.bz2 | | `-- tdevelop.SlackBuild | `-- tdewebdev | |-- doinst.sh | |-- local.options | |-- ltmain_version_update.patch | |-- slack-desc | |-- tdewebdev-R14.0.0.tar.bz2 | `-- tdewebdev.SlackBuild |-- library | |-- kipi-plugins | | |-- kipi-plugins-R14.0.0.tar.bz2 | | |-- kipi-plugins.SlackBuild | | |-- local.options | | |-- ltmain_version_update.patch | | `-- slack-desc | |-- libkdcraw | | |-- libkdcraw-R14.0.0.tar.bz2 | | |-- libkdcraw.SlackBuild | | |-- local.options | | |-- ltmain_version_update.patch | | `-- slack-desc | |-- libkexiv2 | | |-- libkexiv2-R14.0.0.tar.bz2 | | |-- libkexiv2.SlackBuild | | |-- local.options | | |-- ltmain_version_update.patch | | `-- slack-desc | |-- libkipi | | |-- libkipi-R14.0.0.tar.bz2 | | |-- libkipi.SlackBuild | | |-- local.options | | |-- ltmain_version_update.patch | | `-- slack-desc | |-- libksquirrel | | |-- libksquirrel-R14.0.0.tar.bz2 | | |-- libksquirrel.SlackBuild | | |-- local.options | | |-- ltmain_version_update.patch | | `-- slack-desc | |-- libtdeldap | | |-- libtdeldap-R14.0.0.tar.bz2 | | |-- libtdeldap.SlackBuild | | |-- local.options | | |-- ltmain_version_update.patch | | `-- slack-desc | |-- libtqt-perl | | |-- libtqt-perl-R14.0.0.tar.bz2 | | |-- libtqt-perl.SlackBuild | | |-- local.options | | |-- ltmain_version_update.patch | | `-- slack-desc | |-- mlt | | |-- local.options | | |-- mlt-R14.0.0.tar.bz2 | | |-- mlt.SlackBuild | | |-- slack-desc | | |-- sox_configure.patch | | `-- sox_makefile.patch | |-- mlt++ | | `-- mlt++-R14.0.0.tar.bz2 | |-- pytdeextensions | | |-- local.options | | |-- pytdeextensions-R14.0.0.tar.bz2 | | |-- pytdeextensions.SlackBuild | | `-- slack-desc | `-- python-trinity | |-- local.options | |-- python-trinity-R14.0.0.tar.bz2 | |-- python-trinity.SlackBuild | `-- slack-desc |-- prerequisite | |-- arts | | |-- arts-R14.0.0.tar.bz2 | | |-- arts.SlackBuild | | |-- doinst.sh | | |-- local.options | | `-- slack-desc | |-- avahi-tqt | | |-- avahi-tqt-R14.0.0.tar.bz2 | | |-- avahi-tqt.SlackBuild | | `-- slack-desc | |-- dbus-1-tqt | | |-- dbus-1-tqt-R14.0.0.tar.bz2 | | |-- dbus-1-tqt.SlackBuild | | |-- local.options | | `-- slack-desc | |-- dbus-tqt | | |-- dbus-tqt-R14.0.0.tar.bz2 | | |-- dbus-tqt.SlackBuild | | |-- local.options | | `-- slack-desc | |-- libart-lgpl | | |-- libart-lgpl-R14.0.0.tar.bz2 | | |-- libart-lgpl.SlackBuild | | |-- local.options | | `-- slack-desc | |-- libcaldav | | |-- libcaldav-R14.0.0.tar.bz2 | | |-- libcaldav.SlackBuild | | |-- local.options | | `-- slack-desc | |-- libcarddav | | |-- libcarddav-R14.0.0.tar.bz2 | | |-- libcarddav.SlackBuild | | |-- local.options | | `-- slack-desc | |-- python-tqt | | |-- local.options | | |-- python-tqt-R14.0.0.tar.bz2 | | |-- python-tqt.SlackBuild | | `-- slack-desc | |-- sip4-tqt | | |-- local.options | | |-- sip4-tqt-R14.0.0.tar.bz2 | | |-- sip4-tqt.SlackBuild | | `-- slack-desc | |-- tqca | | |-- local.options | | |-- slack-desc | | |-- tqca-R14.0.0.tar.bz2 | | `-- tqca.SlackBuild | |-- tqca-tls | | |-- local.options | | |-- slack-desc | | |-- tqca-tls-R14.0.0.tar.bz2 | | `-- tqca-tls.SlackBuild | |-- tqscintilla | | |-- local.options | | |-- qscintilla.patch | | |-- slack-desc | | |-- tqscintilla-R14.0.0.tar.bz2 | | `-- tqscintilla.SlackBuild | |-- tqt3 | | |-- doinst.sh | | |-- local.options | | |-- profile.d | | | |-- tqt3.csh | | | `-- tqt3.sh | | |-- slack-desc | | |-- tqt3-R14.0.0.tar.bz2 | | `-- tqt3.SlackBuild | `-- tqtinterface | |-- local.options | |-- slack-desc | |-- tqtinterface-R14.0.0.tar.bz2 | `-- tqtinterface.SlackBuild `-- tde_build_script |-- bin | |-- TDE.SlackBuild
Some of the Trinity Desktop Environment included packages depend on one another. A specific order should be followed while building the environment to ensure all packages find the needed ones in order for the the procedure not to fail returning an error. The documentation suggested order was followed while building with but a few exceptions needed to solve the occasional issue. The order followed by the main build script is:
- Base packages
- Python language binding
- TDE base packages
- Additional Applications
The Python language bindings and successive packages must know the path to the TDE root directory. The tqt3.sh and trinity.sh scripts should be run before starting a build to ensure paths and other environment variables are correctly exported.
Recurring to the above listed order it was possible to build and install almost all of the packages without raising build errors or stumbling into other issues.
As previously mentioned SlackBuild build scripts were written and tested for each package. A main script was also written on top of them to automatically build the whole environment. The main script was named TDE.SlackBuild in accordance to the KDE.SlackBuild used in the past to build KDE 3. The TDE.SlackBuild script should be downloaded and copied into directory /usr/src/trinity/tde_build_script/bin. It is possible to run the script by passing it as a parameter to a bash invocation:
cd /usr/src/trinity/tde_build_script/bin bash ./TDE.SlackBuild
Or by running it after a proper permissions assignment:
cd /usr/src/trinity/tde_build_script/bin chmod 0744 ./TDE.SlackBuild ./TDE.SlackBuild
While running, the main script will call all of the package specific ones. The called scripts will read the common configuration file TDE.options placed into directory /usr/src/trinity searching for environment variables values such as the target architecture, the TDE release number, etc. . An example file for the a 64 bit configuration follows:
# 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="x86_64" ARCHIVE_FORMAT="tar.bz2" BUILD="1" MARCH="x86_64" PREFIX="/opt/trinity" SRCVER="R14.0.0" TAG="sg" TAR_OPTION="-xjvf"
TDE.SlackBuild calls SlackBuild scripts in the proper order, populates each directory with the proper option file named local.options and installs all built packages.
Package SlackBuild script
Each package needs a build script, some configuration files, patches and so on. Build instructions for individual packages are linked below. Desktop environment packages were grouped by their purpose in four macro groups:
- Base Packages
- Python Language Support
- TDE Base Packages
- TDE Libraries
- Additional Applications (WIP)
The listed web pages contain detailed information about the adopted configuration and useful build tips. Were You looking for package specific information, please refer to the TDE 126.96.36.199 articles. A lot of the information present there still apply to the more recent 14.0.0 release. Updates or new features will be detailed in sections of the above listed pages.
For any feedback, questions, errors and such, please e-mail me at studiosg [at] giustetti [dot] net
Languages: English - Italiano