Line 3: |
Line 3: |
| == '''TDE 14.0.6 and SlackwareArm 14.2 Current (15.0 Beta)''' == | | == '''TDE 14.0.6 and SlackwareArm 14.2 Current (15.0 Beta)''' == |
| | | |
− | This is a work in progress.
| + | A new '''Raspberry Pi''' model and some updates for the '''Trinity Desktop Environment''': a graphical user interface born to keep the legacy of the '''3.5 branch of KDE''' alive, were both released in 2019. No new release '''15.0''' for Slackware Linux so far, but the development tree, called '''14.2 current''', is mature, stable and well tested. '''Raspberry Pi 4''' is the last in the famous line of single board computers and includes a big hardware boost when compared to its predecessors. It is a '''good desktop replacement''' or the ideal choice to deploy '''severs for small organizations, artisans and small firms'''. Despite the abundance of resources, it is still worth limiting waste and that means: |
| + | * SlackwareARM in place of Raspian. |
| + | * TDE to replace KDE 4 or KDE Plasma. |
| + | in order to avoid wasting CPU cycles for the operating system and its desktop environment, saving it for applications and services running on the computer. |
| | | |
− | Please check this page later for the full article.
| + | The present paper will provide you detailed instructions to build and install release 14.0.6 of the Trinity Desktop Environment on a SlackwareARM powered Raspberry Pi 4. |
| | | |
| + | |
| + | == SlackwareARM and Raspberry Pi 4 == |
| + | |
| + | The first step of the activity consist of installing the latest available '''SlackwareARM release on a Raspberry Pi 4'''. Not the [https://www.raspberrypi.org Raspberry Pi foundation], nor the [http://arm.slackware.com SlackwareARM] distribution provide any support for the task, but as many articles of this very web site point out, it is easy and straightforward, not changing much between different Raspberry Pi models. You are welcome to read the following articles: |
| + | * [[en/Trinity_desktop_environment_raspberry_pi_2#Installing_Slackware_ARM_on_a_Raspberry_Pi_2 |Installing Slackware ARM on a Raspberry Pi 2]]. |
| + | * [[en/Trinity_desktop_environment_14.0.4_raspberry_pi_3#SlackwareARM_and_Raspberry_Pi_3 |Installing Slackware ARM on a Raspberry Pi 3]]. |
| + | And the semiofficial documentation provided by the [https://sarpi.fatdog.eu/index.php?p=installer SARPi] (Slackware ARM on a Raspberry Pi) site, which provides installers and optimized kernel packages. |
| + | |
| + | What is different when compared to previous Raspberry Pi models and previous versions of Slackware ARM ? '''The SARPi project provides no support whatsoever for Slackware 14.2, but for the current development branch only''' as the latter packages are compiled with hardware support enabled for floating point numbers, while all previous versions emulated this functionality via software. Hardware support means better performance and as such is a welcome innovation. All models starting from the Raspberry Pi 2 and later are equipped with a floating point hardware unit and it is a pity not to use it. The downside of the choice is that the packages of the current version cannot be mixed with those of previous versions. Be careful when downloading installation packages checking their source and their compatibility. |
| + | |
| + | Generic SlackwareARM installation packages can be downloaded from one of the project servers listed on the [http://arm.slackware.com/getslack/ following page]. Packages specific to the Raspberry Pi 4 can be found in the pages of the [https://sarpi.fatdog.eu/index.php?p=rpi4getcurrent SARPi project website]. |
| + | |
| + | |
| + | == Installing the Trinity Desktop Environment on a Raspberry Pi 4 == |
| + | |
| + | '''TDE is not part of Slackware Linux''' and the desktop environment support for the distribution has always been lacking. This scenario has been changing in recent years. Many projects aiming to provide build script for the graphical interface were born; among them [https://github.com/Ray-V/tde-slackbuilds TDE Slackbuilds on GitHub] is worth mentioning. Some web sites provide packages ready to install. Sadly those packages are meant for the Amd64 or i486 architecture and nobody seems to care for the ARM one. if you own a Raspberry Pi you have no choice but build your own packages. Luckily I have some experience with the task and some ready to use build scripts that work for the whole environment, requiring some minor tweaks for every new release and newly introduced feature. I recently updated the script set for TDE 14.0.6. |
| + | |
| + | In this article I will show you how to use the scripts to build working packages of Trinity Desktop Environment release 14.0.6. The installed Linux distribution is Slackware 14.2 current and the hardware a Raspberry Pi 4 with 4 Gigabytes of RAM. I haven't tested the scripts for Amd64 or i486 boards, but they should work nevertheless. |
| + | |
| + | The Trinity Desktop Environment installation does not change much between different releases. Detailed instructions are provided in articles you can read in this very same web site: |
| + | * [[en/trinity_desktop_environment_14.0.0 | Trinity Desktop Environment 14.0.0]]. |
| + | * [[en/Trinity_desktop_environment_raspberry_pi_2 |Installing Trinity Desktop Environment on a Raspberry Pi 2]]. |
| + | * [[en/Trinity_desktop_environment_14.0.4_raspberry_pi_3 |Installing Trinity Desktop Environment on a Raspberry Pi 3]]. |
| + | Below I'll describe the differences introduced with new version 14.0.6. A link to the build scripts is available below too. |
| + | |
| + | The first step in building working packages for any system consists in obtaining the source code, available as compressed archives that can be downloaded from the links in this [http://mirror.ppa.trinitydesktop.org/trinity/releases/R14.0.6/downloads.html page]. You are encouraged to try the links available at the bottom of the page, that pack many files into a single big archive: |
| + | * [http://mirror.ppa.trinitydesktop.org/trinity/releases/R14.0.6/R14.0.6-core.tar All of the base packages]. |
| + | * [http://mirror.ppa.trinitydesktop.org/trinity/releases/R14.0.6/R14.0.6-noncore.tar All of the optional packages]. |
| + | * [http://mirror.ppa.trinitydesktop.org/trinity/releases/R14.0.6/R14.0.6-complete.tar The whole project consisting of the base and optional packages merged into one huge archive]. |
| + | |
| + | === TDE Dependencies === |
| + | A successful TDE build requires the availability of some packages on the target machine: packages the desktop environment requires to work properly. The dependency list changes with each new release, but the number of packages has been shrinking constantly in recent years. Many of the required libraries are not actively developed or supported anymore and were included in the main TDE project. The '''remaining external dependency required''' being '''imlib''', used to handle and draw images saved in many standard formats to screen. Imlib is required to compile '''tdegraphics''' and obtain a working package. The library is rather old and '''was removed from the standard Slackware 14.2 package sets''' and must be compiled from its source code. Luckily the library is supported by the [http://www.slackbuilds.org/ SlackBuilds.org] project and a brief guide to build and install it can be found in one of my [[en/Trinity_desktop_environment_14.0.4_raspberry_pi_3#New_Dependencies |older articles]]. The provided 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. In the past getting a Java Virtual Machine for the ARM platform was quite the task. Luckily those days are over and the previously mentioned '''SARPi project provides Raspberry Pi users with a packaged version of a recent JDK''', ready to install. Please download the JDK for Slackware ARM 14.2 current and Raspberry Pi4 from the link available in the [https://rpi3.fatdog.eu/index.php?p=downloads#currentpkg following web page]. |
| + | |
| + | === The Build Tree === |
| + | Trinity Desktop Environment is a very complex software consisting of a multitude of packages, which can be sorted into four categories: |
| + | * Prerequisites. |
| + | * Base packages. |
| + | * Optional Libraries. |
| + | * Optional applications. |
| + | '''The number of packages included in every group can change slightly with each release''' since the ones too old and unmaintained are deprecated or eventually replaced, while new ones are added bringing new functionality, effects and more. The set of scripts used to compile TDE source code is called '''Build Tree'''. The build tree is made up of '''one main script''', setting environment variables and calling the remaining ones, '''each meant for a single TDE package''', in the correct order required to ensure building each package without errors. The configuration file is centralized in order to guarantee the consistency of 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 set inside the local.options file overwrite the build tree ones. Local.options files are usually empty, but can be populated when needed. |
| + | |
| + | The build tree I shared for Trinity Desktop Environment 14.0.5 '''requires some updates to work with release 14.0.6'''. After all we are working with an incremental release meant to solve issues and introduce some minor changes and not to revolutionize the whole project. An archive including the updated build tree can be downloaded from the following [http://www.giustetti.net/resource/slackbuild/tde/1406/tde_build_tree_sg-14.0.6.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 setting the release identifier to 14.0.6: |
| + | <syntaxhighlight lang="bash"> |
| + | SRCVER=${SRCVER:-"R14.0.6"} |
| + | </syntaxhighlight> |
| + | |
| + | ==== LIBTOOL ==== |
| + | The TDE source code refers to an old and by now replaced version of the '''libtool''' library, required to build portable code across different operating systems. This is a well known issue that has been plaguing the project since its very first release. '''Slackware 14.2 current comes with libtool 2.4.6''' as Slackware 14.2 did, the patch included for the 14.0.5 release of TDE works for 14.0.6 too. The updated lines of code are included into file '''ltmain_version_update.patch''': |
| + | <syntaxhighlight lang="bash"> |
| + | *** admin/ltmain.sh 2013-08-29 14:58:12.136925711 +0200 |
| + | --- admin/ltmain.sh 2013-08-29 12:10:51.935987043 +0200 |
| + | *************** |
| + | *** 73,81 **** |
| + | |
| + | PROGRAM=ltmain.sh |
| + | PACKAGE=libtool |
| + | ! VERSION="2.2.6b Debian-2.2.6b-2ubuntu1" |
| + | TIMESTAMP="" |
| + | ! package_revision=1.3017 |
| + | |
| + | # Be Bourne compatible |
| + | if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then |
| + | --- 73,81 ---- |
| + | |
| + | PROGRAM=ltmain.sh |
| + | PACKAGE=libtool |
| + | ! VERSION="2.4.6" |
| + | TIMESTAMP="" |
| + | ! package_revision=2.4.6 |
| + | |
| + | # Be Bourne compatible |
| + | if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then |
| + | </syntaxhighlight> |
| + | |
| + | Please copy file in the build directory of every package included in the following list: |
| + | * base/tdeaccessibility |
| + | * base/tdeaddons |
| + | * base/tdeadmnin |
| + | * base/tdebindings |
| + | * base/tdeedu |
| + | * base/tdegames |
| + | * base/tdemultimedia |
| + | * base/tdewebdev |
| + | * library/kipi-plugins |
| + | * library/libkdcraw |
| + | * library/libkexiv2 |
| + | * library/libkipi |
| + | * library/libksquirrel |
| + | * library/libtdeldap |
| + | * library/libtqt-perl |
| + | |
| + | ==== MLT and MLT++ ==== |
| + | The '''MLT''' and '''MLT++''' libraries were at last '''removed from the project''' since they were unused by any of the other packages. Building them with versions of TDE older than 14.0.4 was a pain in the neck and usually arose conflicts with other dependencies therefore their removal will leave no regret. The '''TDE.SlackBuild''' script was updated accordingly. |
| + | |
| + | ==== AKODE and LIBR ==== |
| + | TDE 14.0.6 introduced 2 new dependencies: '''Akode''' and '''Libr'''. The former is a library used to decode audio streams like MPEG, Ogg Vorbis, FLAC, WAV and more, bringing new functionality to tdemultimedia. The latter is a library meant to manage resources packaged inside an ELF library, the format Linux uses for binary files. The following files were added to the directory tree to include the two new libraries: |
| + | | |-- akode |
| + | | | |-- local.options |
| + | | | |-- akode-trinity-14.0.6.tar.xz |
| + | | | |-- akode.SlackBuild |
| + | | | `-- slack-desc |
| + | ... |
| + | | |-- libr |
| + | | | |-- local.options |
| + | | | |-- libr-trinity-14.0.6.tar.xz |
| + | | | |-- libr.SlackBuild |
| + | | | `-- slack-desc |
| + | ... |
| + | |
| + | No more new entries for this release and its package list. |
| + | |
| + | === Guidelines === |
| + | A brief synopsis of the guidelines used to manage a project as big as TDE: |
| + | # Use '''/opt/trinity''' as package root directory in order for TDE 14.0.6 to be installed alongside a recent KDE release without one overwriting the other one files. |
| + | # Build all packages in the '''Prerequisites''', '''Base''' and '''Libraries''' groups ignoring the '''Additional Applications''' one. |
| + | # Write SlackBuild scripts working on all of the Slackware Linux supported platforms: '''Amd64''', '''ARM''' and '''i486'''. |
| + | # 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. |
| + | # Set all shared configuration options for the Trinity Desktop Environment in a single file: '''TDE.options'''. |
| + | # Set custom package options in local files. Options included in local files will overwrite wholly or in part the ones in '''TDE.options'''. |
| + | I have been following the listed rules for each and every TDE version I worked on in the past and they remain substantially unchanged for release 14.0.6. |
| + | |
| + | === Building Packages === |
| + | '''Before you start building, it is recommended to remove previous releases of TDE''' from the target computer. 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'''. If the 14.0.5 release of TDE were installed, for example, you could use command: |
| + | '''removepkg''' /var/log/packages/*R14.0.5* |
| + | |
| + | This way you'll start with a clean system, but the graphical interface will be unusable until the installation successfully finishes. |
| + | |
| + | The whole '''build tree''' can be downloaded as a compressed archive [http://www.giustetti.net/resource/slackbuild/tde/1406/tde_build_tree_sg-14.0.6.tar.bz2 here]. Download the build tree and the source code for the TDE project in a local directory like ''/tmp'' then follow the steps listed below: |
| + | |
| + | * Create directory ''/usr/src/trinity'': |
| + | : '''mkdir''' /usr/src/trinity |
| + | * Copy the build tree archive in the new directory |
| + | : '''cp''' /tmp/tde_build_tree_sg-14.0.6.tar.bz2 /usr/src/trinity/ |
| + | * Move to directory ''/usr/src/trinity'' |
| + | : '''cd''' /usr/src/trinity/ |
| + | * Extract the archive using the '''tar''' command: |
| + | : '''tar''' ''-jxf'' tde_build_tree_sg-14.0.6.tar.bz2 |
| + | The ''/usr/src/trinity'' directory will be populated with files and sub-directories: |
| + | '''ls''' ''-la'' |
| + | total 12 |
| + | drwxr-xr-x 7 root root 1024 Jan 4 19:31 . |
| + | drwxr-xr-x 3 root root 1024 Sep 9 2018 .. |
| + | lrwxrwxrwx 1 root root 15 Jan 4 19:31 TDE.options -> TDE.options.arm |
| + | -rw-r--r-- 1 root root 301 Nov 27 16:09 TDE.options.arm |
| + | -rw-r--r-- 1 root root 302 Nov 27 16:10 TDE.options.i486 |
| + | -rw-r--r-- 1 root root 306 Nov 27 16:10 TDE.options.x86_64 |
| + | drwxr-xr-x 2 root root 3072 Jan 1 1970 application |
| + | drwxr-xr-x 21 root root 1024 Sep 9 2018 base |
| + | drwxr-xr-x 13 root root 1024 Dec 14 2016 library |
| + | drwxr-xr-x 18 root root 1024 Jan 4 19:31 prerequisite |
| + | drwxr-xr-x 4 root root 1024 Dec 14 2016 tde_build_script |
| + | |
| + | * Distribute the source file archives among the sub-directories in '''base''', '''library''' and '''prerequisite'''. The '''TDE.options''' file is a link to the option file for one of the three supported architectures: |
| + | :* ''TDE.options.arm'': For ARM computers including every Raspberry Pi. |
| + | :* ''TDE.options.i486'': For 32 bit Amd or Intel powered personal computers. |
| + | :* ''TDE.options.x86_64'': For 64 bit Amd or Intel powered personal computers. |
| + | |
| + | When the link points to the wrong option file, delete it and make a new one using the '''ln''' command. For example to set options for a 32 bit processor the commands to run are: |
| + | '''rm''' TDE.options |
| + | '''ln''' ''-s'' TDE.options.i486 TDE.options |
| + | |
| + | You are strongly suggested to check the file content and eventually update it, setting your own customization for the configuration parameters. The file can be read with your text editor of choice. A sample file follows: |
| + | <syntaxhighlight lang="bash"> |
| + | # 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="arm" |
| + | ARCHIVE_FORMAT="tar.xz" |
| + | BUILD="1" |
| + | JOB_NUM="-j6" |
| + | MARCH="arm" |
| + | PREFIX="/opt/trinity" |
| + | SRCVER="trinity-14.0.6" |
| + | TAG="sg" |
| + | </syntaxhighlight> |
| + | |
| + | Compared to version 14.0.5 the values of the variables '''ARCHIVE_FORMAT''' and '''SRCVER''' were updated setting the new compression algorithm and the new label for packages chosen by the TDE project developers. Moreover the '''TAR_OPTION''' variable was removed: the option used to decompress archives is now managed inside the scripts. |
| + | |
| + | * Move into directory ''/usr/src/trinity/tde_build_script/bin'' then run the build script: |
| + | : '''cd''' /usr/src/trinity/tde_build_script/bin |
| + | : '''sh''' ./TDE.SlackBuild |
| + | |
| + | The script will autonomously build and install every package. '''A copy of each built package and related log files will be saved in directory ''/tmp'''''. |
| + | |
| + | The '''tde-i18n''' package, containing localization files for each TDE supported language, needs special mentioning. The main script contains the lines of code needed to build localization packages, but the procedure is a time consuming one and not very useful for a standard user thus '''the lines were commented out''' and localization packages are ignored. To build the localization packages the TDE.SlackBuild script should be modified removing the comment from line: |
| + | <syntaxhighlight lang="bash"> |
| + | # bash ./${PKG}.SlackBuild |
| + | </syntaxhighlight> |
| + | |
| + | changing it to |
| + | <syntaxhighlight lang="bash"> |
| + | bash ./${PKG}.SlackBuild |
| + | </syntaxhighlight> |
| + | ---- |
| + | |
| + | |
| + | == Conclusions == |
| + | |
| + | This paper provides instructions about '''how to install a recent release of the Trinity Desktop Environment on a Raspberry Pi model 4'''. The task was performed using a Linux SlackwareARM operating system and turned out to be rather easy and straightforward, providing the Raspberry Pi with a full, light and feature rich desktop environment. Some images depicting the running desktop are available below. |
| + | |
| + | [[File:tde_1406_konqueror_filemanager.png]] |
| + | |
| + | Fig: 1 - Konqueror used as a file manager. |
| + | |
| + | [[File:tde_1406_konqueror_version.png]] |
| + | |
| + | Fig: 2 - The TDE release number shown in the Konqueror window. |
| + | |
| + | [[File:tde_1406_kmix.png]] |
| + | |
| + | Fig: 3 - A lone volume control for a Raspberry Pi. |
| + | |
| + | [[File:tde_1406_khexedit.png]] |
| + | |
| + | Fig: 4 - A working hexadecimal editor for binary files (Any perceived criticism to Okteta is well deserved). |
| + | |
| + | [[File:tde_1406_kiten.png]] |
| + | |
| + | Fig: 5 - Kiten: A program to learn the Japanese language. |
| + | |
| + | [[File:tde_1406_kolourpaint.png]] |
| + | |
| + | Fig: 6 - A simple easy to use image editor. |
| + | |
| + | [[File:tde_1406_korganizer.png]] |
| + | |
| + | Fig: 7 - An organizer to help you in scheduling tasks and activities. |
| + | |
| + | [[File:tde_1406_ksysguard_process.png]] |
| + | |
| + | Fig: 8 - A list of running system processes. |
| + | |
| + | [[File:tde_1406_ksysguard_load.png]] |
| + | |
| + | Fig: 9 - And its load for one of the Raspberry Pi 4 cores. |
| + | |
| + | [[File:tde_1406_ksnake.png]] |
| + | |
| + | Fig: 10 - Some fun after all the hard work. |
| + | |
| + | I'd like to thank the TDE development team for the hard work and invite you to check this web site for updates and further reading. |
| | | |
| | | |