Changes

From Studiosg
Jump to navigationJump to search
Added new article about TDE 14.0.5
{{header_en|title=Installing TDE 14.0.5 on SlackwareArm Linux 14.2| keyword={{Template:keyword_en_tde}}| description=Building, installing and configuring working TDE 14.0.5 packages on Slackware Linux 14.2 | link_page=trinity_desktop_environment_14.0.5}}

== '''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 [https://wiki.trinitydesktop.org/Release_Notes_For_R14.0.5 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 [https://www.raspberrypi.org 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 [https://wiki.trinitydesktop.org/SlackwareInstall 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. [https://github.com/Ray-V/tde-slackbuilds 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 [http://mirror.ppa.trinitydesktop.org/trinity/releases/R14.0.5/downloads.html URL]. At the bottom of the web page you should find links to some really big '''tar''' archives packing the source code for:
* [http://mirror.ppa.trinitydesktop.org/trinity/releases/R14.0.5/R14.0.5-core.tar All of the base packages].
* [http://mirror.ppa.trinitydesktop.org/trinity/releases/R14.0.5/R14.0.5-noncore.tar All of the optional packages].
* [http://mirror.ppa.trinitydesktop.org/trinity/releases/R14.0.5/R14.0.5-complete.tar The whole project] consisting of the base and optional packages merged into one huge archive.
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 [http://www.slackbuilds.org/ 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 [[En/Trinity_desktop_environment_14.0.4_raspberry_pi_3#New_Dependencies |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 [[en/Trinity_desktop_environment_14.0.4_raspberry_pi_3#TDEBINDINGS |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 [http://www.giustetti.net/resource/slackbuild/tde/1405/tde_build_tree_sg-14.0.5.tar.bz2 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:
<syntaxhighlight lang="bash">
SRCVER=${SRCVER:-"R14.0.5"}
</syntaxhighlight>

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:
.
|-- <font color="red">TDE.options.arm</font>
|-- <font color="red">TDE.options.i486</font>
|-- <font color="red">TDE.options.x86_64</font>
|-- 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
| | |-- <font color="red">tde-i18n-R14.0.5.tar.bz2</font>
| | `-- tde-i18n.SlackBuild
| |-- tdeaccessibility
| | |-- local.options
| | |-- ltmain_version_update.patch
| | |-- slack-desc
| | |-- <font color="red">tdeaccessibility-R14.0.5.tar.bz2</font>
| | `-- tdeaccessibility.SlackBuild
| |-- tdeaddons
| | |-- local.options
| | |-- ltmain_version_update.patch
| | |-- slack-desc
| | |-- <font color="red">tdeaddons-R14.0.5.tar.bz2</font>
| | `-- tdeaddons.SlackBuild
| |-- tdeadmin
| | |-- local.options
| | |-- ltmain_version_update.patch
| | |-- slack-desc
| | |-- <font color="red">tdeadmin-R14.0.5.tar.bz2</font>
| | `-- tdeadmin.SlackBuild
| |-- tdeartwork
| | |-- local.options
| | |-- slack-desc
| | |-- <font color="red">tdeartwork-R14.0.5.tar.bz2</font>
| | `-- 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
| | |-- <font color="red">tdebase-R14.0.5.tar.bz2</font>
| | |-- tdebase.SlackBuild
| | |-- trinity.desktop
| | `-- xinit
| | |-- xinitrc.trinity
| | `-- xwmconfig
| |-- tdebindings
| | |-- local.options
| | |-- ltmain_version_update.patch
| | |-- slack-desc
| | |-- <font color="red">tdebindings-R14.0.5.tar.bz2</font>
| | `-- tdebindings.SlackBuild
| |-- tdeedu
| | |-- local.options
| | |-- ltmain_version_update.patch
| | |-- slack-desc
| | |-- <font color="red">tdeedu-R14.0.5.tar.bz2</font>
| | `-- tdeedu.SlackBuild
| |-- tdegames
| | |-- local.options
| | |-- ltmain_version_update.patch
| | |-- slack-desc
| | |-- <font color="red">tdegames-R14.0.5.tar.bz2</font>
| | `-- tdegames.SlackBuild
| |-- tdegraphics
| | |-- local.options
| | |-- slack-desc
| | |-- <font color="red">tdegraphics-R14.0.5.tar.bz2</font>
| | `-- tdegraphics.SlackBuild
| |-- tdelibs
| | |-- local.options
| | |-- slack-desc
| | |-- <font color="red">tdelibs-R14.0.5.tar.bz2</font>
| | `-- tdelibs.SlackBuild
| |-- tdemultimedia
| | |-- local.options
| | |-- ltmain_version_update.patch
| | |-- slack-desc
| | |-- <font color="red">tdemultimedia-R14.0.5.tar.bz2</font>
| | `-- tdemultimedia.SlackBuild
| |-- tdenetwork
| | |-- local.options
| | |-- slack-desc
| | |-- <font color="red">tdenetwork-R14.0.5.tar.bz2</font>
| | `-- tdenetwork.SlackBuild
| |-- tdepim
| | |-- local.options
| | |-- slack-desc
| | |-- <font color="red">tdepim-R14.0.5.tar.bz2</font>
| | `-- tdepim.SlackBuild
| |-- tdesdk
| | |-- local.options
| | |-- slack-desc
| | |-- <font color="red">tdesdk-R14.0.5.tar.bz2</font>
| | `-- tdesdk.SlackBuild
| |-- tdetoys
| | |-- local.options
| | |-- slack-desc
| | |-- <font color="red">tdetoys-R14.0.5.tar.bz2</font>
| | `-- tdetoys.SlackBuild
| |-- tdeutils
| | |-- local.options
| | |-- slack-desc
| | |-- <font color="red">tdeutils-R14.0.5.tar.bz2</font>
| | `-- tdeutils.SlackBuild
| |-- tdevelop
| | |-- local.options
| | |-- slack-desc
| | |-- <font color="red">tdevelop-R14.0.5.tar.bz2</font>
| | `-- tdevelop.SlackBuild
| `-- tdewebdev
| |-- doinst.sh
| |-- local.options
| |-- ltmain_version_update.patch
| |-- slack-desc
| |-- <font color="red">tdewebdev-R14.0.5.tar.bz2</font>
| `-- tdewebdev.SlackBuild
|-- library
| |-- kipi-plugins
| | |-- <font color="red">kipi-plugins-R14.0.5.tar.bz2</font>
| | |-- kipi-plugins.SlackBuild
| | |-- local.options
| | |-- ltmain_version_update.patch
| | `-- slack-desc
| |-- libkdcraw
| | |-- <font color="red">libkdcraw-R14.0.5.tar.bz2</font>
| | |-- libkdcraw.SlackBuild
| | |-- local.options
| | |-- ltmain_version_update.patch
| | `-- slack-desc
| |-- libkexiv2
| | |-- <font color="red">libkexiv2-R14.0.5.tar.bz2</font>
| | |-- libkexiv2.SlackBuild
| | |-- local.options
| | |-- ltmain_version_update.patch
| | `-- slack-desc
| |-- libkipi
| | |-- <font color="red">libkipi-R14.0.5.tar.bz2</font>
| | |-- libkipi.SlackBuild
| | |-- local.options
| | |-- ltmain_version_update.patch
| | `-- slack-desc
| |-- libksquirrel
| | |-- <font color="red">libksquirrel-R14.0.5.tar.bz2</font>
| | |-- libksquirrel.SlackBuild
| | |-- local.options
| | |-- ltmain_version_update.patch
| | `-- slack-desc
| |-- libtdeldap
| | |-- <font color="red">libtdeldap-R14.0.5.tar.bz2</font>
| | |-- libtdeldap.SlackBuild
| | |-- local.options
| | |-- ltmain_version_update.patch
| | `-- slack-desc
| |-- libtqt-perl
| | |-- <font color="red">libtqt-perl-R14.0.5.tar.bz2</font>
| | |-- libtqt-perl.SlackBuild
| | |-- local.options
| | |-- ltmain_version_update.patch
| | `-- slack-desc
| |-- mlt
| | |-- local.options
| | |-- <font color="red">mlt-R14.0.5.tar.bz2</font>
| | |-- mlt.SlackBuild
| | |-- slack-desc
| | |-- sox_configure.patch
| | `-- sox_makefile.patch
| |-- mlt++
| | |-- local.options
| | |-- <font color="red">mlt++-R14.0.5.tar.bz2</font>
| | |-- mlt++.SlackBuild
| | `-- slack-desc
| |-- pytdeextensions
| | |-- local.options
| | |-- <font color="red">pytdeextensions-R14.0.5.tar.bz2</font>
| | |-- pytdeextensions.SlackBuild
| | `-- slack-desc
| `-- python-trinity
| |-- local.options
| |-- <font color="red">python-trinity-R14.0.5.tar.bz2</font>
| |-- python-trinity.SlackBuild
| `-- slack-desc
|-- prerequisite
| |-- arts
| | |-- <font color="red">arts-R14.0.5.tar.bz2</font>
| | |-- arts.SlackBuild
| | |-- doinst.sh
| | |-- local.options
| | `-- slack-desc
| |-- avahi-tqt
| | |-- <font color="red">avahi-tqt-R14.0.5.tar.bz2</font>
| | |-- avahi-tqt.SlackBuild
| | |-- local.options
| | `-- slack-desc
| |-- dbus-1-tqt
| | |-- <font color="red">dbus-1-tqt-R14.0.5.tar.bz2</font>
| | |-- dbus-1-tqt.SlackBuild
| | |-- local.options
| | `-- slack-desc
| |-- dbus-tqt
| | |-- <font color="red">dbus-tqt-R14.0.5.tar.bz2</font>
| | |-- dbus-tqt.SlackBuild
| | |-- local.options
| | `-- slack-desc
| |-- libart-lgpl
| | |-- <font color="red">libart-lgpl-R14.0.5.tar.bz2</font>
| | |-- libart-lgpl.SlackBuild
| | |-- local.options
| | `-- slack-desc
| |-- libcaldav
| | |-- <font color="red">libcaldav-R14.0.5.tar.bz2</font>
| | |-- libcaldav.SlackBuild
| | |-- local.options
| | `-- slack-desc
| |-- libcarddav
| | |-- <font color="red">libcarddav-R14.0.5.tar.bz2</font>
| | |-- libcarddav.SlackBuild
| | |-- local.options
| | `-- slack-desc
| |-- python-tqt
| | |-- local.options
| | |-- <font color="red">python-tqt-R14.0.5.tar.bz2</font>
| | |-- python-tqt.SlackBuild
| | `-- slack-desc
| |-- sip4-tqt
| | |-- local.options
| | |-- <font color="red">sip4-tqt-R14.0.5.tar.bz2</font>
| | |-- sip4-tqt.SlackBuild
| | `-- slack-desc
| |-- tqca
| | |-- local.options
| | |-- slack-desc
| | |-- <font color="red">tqca-R14.0.5.tar.bz2</font>
| | `-- tqca.SlackBuild
| |-- tqca-tls
| | |-- local.options
| | |-- slack-desc
| | |-- <font color="red">tqca-tls-R14.0.5.tar.bz2</font>
| | `-- tqca-tls.SlackBuild
| |-- tqscintilla
| | |-- local.options
| | |-- qscintilla.patch
| | |-- slack-desc
| | |-- <font color="red">tqscintilla-R14.0.5.tar.bz2</font>
| | `-- tqscintilla.SlackBuild
| |-- tqt3
| | |-- doinst.sh
| | |-- local.options
| | |-- profile.d
| | | |-- tqt3.csh
| | | `-- tqt3.sh
| | |-- slack-desc
| | |-- <font color="red">tqt3-R14.0.5.tar.bz2</font>
| | `-- tqt3.SlackBuild
| `-- tqtinterface
| |-- local.options
| |-- slack-desc
| |-- <font color="red">tqtinterface-R14.0.5.tar.bz2</font>
| `-- 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:
<syntaxhighlight lang="bash">
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"
</syntaxhighlight>

To ignore the aforementioned mlt libraries the '''PKG_LIST_LIB''' variable should be changed as in the example below:
<syntaxhighlight lang="bash">
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"
</syntaxhighlight>

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:
<syntaxhighlight lang="bash">
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"
</syntaxhighlight>

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:
<syntaxhighlight lang="bash">
# bash ./${PKG}.SlackBuild
</syntaxhighlight>

to:
<syntaxhighlight lang="bash">
bash ./${PKG}.SlackBuild
</syntaxhighlight>

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 [http://www.giustetti.net/resource/slackbuild/tde/1405/tde_build_tree_sg-14.0.5.tar.bz2 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 [[trinity_desktop_environment_gallery |link]].


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


External links

----

* [https://www.raspberrypi.org Raspberry Pi foundation home page]
* [https://it.wikipedia.org/wiki/Raspberry_Pi Raspberry Pi page in Wikipedia]
* [http://www.slackware.com Slackware home page]
* [http://arm.slackware.com Slackware Linux for the ARM architecture]
* [http://www.trinitydesktop.org TDE home page]

----

{{footer_en | link_page=trinity_desktop_environment_14.0.5}

Navigation menu