Changes

Added TDE building FAQ with the first batch of questions and answers
{{header_en|title=TDE building Frequently Asked Questions| keyword={{Template:keyword_en_tde}}| description=Answers to some frequently asked questions about the TDE Build Tree distributed by StudioSG | link_page=trinity_desktop_environment_faq}}

== '''TDE - Frequently Asked Questions''' ==
Building packages for a '''Slackware Linux full TDE install''' can be time consuming and has its often underestimated quirks. Difficulties pop out because of the sheer high package count, both internal and external dependencies, build and install package order and some other minor causes that, when overlooked, can result in a lot of hassle.

I have been building TDE since release 3.5.13 and for the past few years I have been sharing scripts meant to build working packages for the base environment and all additional libraries. As mentioned above the procedure can be tricky and I often receive requests for help or generic questions. I decided to write down a list of frequently asked questions to help whoever wishes to build TDE packages by herself / himself.

=== What Is a Build Tree ? ===
A build tree is a set of scripts grouped together because they are somewhat related and are all needed to build packages for a structured environment or program. TDE for example is made of dozens of packages that cannot be built alone because some of them depend on some of the others. Well-structured projects use a main script to set global parameters and configuration variables then call the build script for every atomic package in the proper order. Scripts are often grouped and shared as a single archive because each one alone is pretty much useless. The TDE build tree includes everything needed to build a full desktop environment setting only a few configuration parameters and running a single script.

=== How Can I Use the TDE Build Tree ? ===
The basic instructions that you must follow to use the scripts are:
* Download the build tree tar archive on a machine running '''Slackware Linux'''.
* Unpack the archive in a directory for example ''/usr/src/tde''.
* Download the TDE source code.
* Move each source code archive in its proper directory inside the build tree for example '''tdebase-R14.0.4.tar.bz2''' in ''/usr/src/tde/base/tdebase/''.
* Update the ''TDE.options'' configuration file setting the target architecture: i486, x86_64 or arm.
* Run the main script: '''sh''' ''/usr/src/tde/tde_build_script/bin/TDE.SlackBuild'' .
* Wait for the build procedure to conclude returning message: "'''TDE full build successfully concluded'''".
For more information please read the articles available in this very web site.

=== Is the Build Tree Automated ? ===
Scripts were designed to compile and install all packages making up the TDE base environment, prerequisites and extension libraries. Except for errors, running the main script should be enough to obtain a working '''Trinity Desktop Environment''' full installation when it finishes its run.

=== Where Can I download the Build Tree ? ===
The most recent release of the Trinity Desktop Environment available at the present is 14.0.4. A build tree can be downloaded from this link: [https://www.giustetti.net/resource/slackbuild/tde/1404/tde_build_tree_sg-14.0.4.tar.bz2 TDE 14.0.4 Build Tree]. In the past I shared scripts to build both the full desktop environment and some lone package. A build tree for release 14.0.1 of TDE can be downloaded from this link: [https://www.giustetti.net/resource/slackbuild/tde/1401/tde_build_tree_sg-14.0.1-2.tar.bz2 TDE 14.0.1 Build Tree]. For earlier releases you should search TDE related articles available among this web site pages.

=== On Which Architecture the Build Tree Works ? ===
I regularly use the scripts to build the Trinity Desktop Environment and some extensions for the following architectures: ARM, i486 and AMD64. The arm machines are some Raspberry Pi 2 or 3.

=== Does It work for ARM ? ===
Yes.

=== Does It work for i486, i586 ? ===
Yes.

=== Does It work for AMD64, X86_64 ? ===
Yes.

=== Does It work for Multilib ? ===
It does, but it builds 64 bit only packages. I never researched which 32 bit compatibility packages are needed for full multilib TDE. I presume '''tqt3''', '''tqtinterface''', '''arts''' and some other base libraries, but cannot provide you with first hand information. Interested parties will have to experiment what configuration is best for them.

=== Which Packages Do You Use for Multilib ? ===
I usually install Eric Hameleers (Alien BOB) multilib packages. Eric is a member of the Slackware development team. His packages are not included in official releases nevertheless they are updated regularly and work well with the system. For more information about multilib Slackware, please visit the [https://docs.slackware.com/slackware:multilib following page]. Multilib packages can be downloaded from [http://www.slackware.com/~alien/multilib/ this link].

=== TDE Requires Dependencies ? ===
Yes a certain amount of packages are required to build TDE. A generic and almost full list can be found in the [https://wiki.trinitydesktop.org/How_to_Build_TDE_Core_Modules project documentation]. The lit should be completed with some not so obvious dependencies and some more Slackware Linux specific packages. Among the Slackware specific packages are:
* '''Avahi''': Optional. Build script and some documentation is available in the [https://www.slackbuilds.org/repository/14.2/network/avahi/ SlackBuilds.org] web site.
* '''Imlib''': A graphic library required to build '''tdegraphics'''. Slackware does not include a binary package for imlib anymore, but patches and build script can be downloaded from the [https://www.slackbuilds.org/repository/14.2/libraries/imlib/ SlackBuilds.org] web site.
* '''Libical''': Required to add iCal support to '''tdepim'''. An updated package is included in Slackware most recent release.

=== Which Programming Languages Are Supported by Tdebindings ? ===
The Trinity Desktop Environment is '''mostly written in C++''', but it includes some libraries to bind to other programming languages thus enabling developers to write applications using the language of choice. Tdebindings is the TDE package containing libraries binding the environment to programming languages other than C++. The supported languages include:
* '''Java'''.
* '''Javascript'''.
* '''Perl'''.
* '''Python'''.
* '''Ruby'''.

==== Can I Write Applications in Java ? ====
Yes you can. You'll have to enable Java when building the '''tdebindings''' package. The SlackBuild script included in the build tree automatically checks whether a '''JDK''' is installed and '''automatically enables Java support''' when one is found.

===== Which Java Version Is Supported ? =====
That depends on the system architecture. TDE on Intel or AMD supports '''both JDK 7 and 8'''. On the ARM architecture on the other hand '''JDK 7''' is supported by SlackwareARM up to relase 14.2 while Current requires '''JDK 8'''.

===== How to Install a JDK ? =====
This FAQ is not the place to find detailed instructions. Please consult the [https://docs.slackware.com/howtos:software:java Slackware documentation]. As usual ready to use SlackBuild scripts are available in the [https://www.slackbuilds.org/repository/14.2/development/jdk/ www.slackbuilds.org] web site.

===== How to Install OpenJDK ? =====
This subject too is out of the scope of the TDE build tree FAQ. Please read the [https://docs.slackware.com/howtos:software:java Slackware documentation]. Install packages are available in Eric Hameleers's (Alien BOB) [http://www.slackware.com/~alien/slackbuilds/openjdk/ repository]. Moreover some build scripts are available in the [https://www.slackbuilds.org/result/?search=openjdk&sv=14.2 www.slackbuilds.org] web site.

==== Can I Write Applications in Perl ? ====
Yes you can. You'll have to enable Perl when building the '''tdebindings''' package. The SlackBuild script included in the build tree automatically checks whether '''Perl''' is installed and '''automatically enables Perl support'''.

===== Which Perl Version Is Supported ? =====
The last available Slackware Linux release includes packages for '''Perl 5.22''' that seem to work perfectly with TDE.

==== Can I Write Applications in Python ? ====
Yes you can. You'll have to enable Python when building the '''tdebindings''' package. The SlackBuild script included in the build tree automatically checks whether '''Python''' is installed and '''automatically enables Python support'''.

===== Which Python Version Is Supported ? =====
The last available Slackware Linux release includes packages for '''Python 2.7'''. Tdebindings seem to work perfectly with Python 2.7.

===== What about Python 3 Support ? =====
I have no clue. If you want, you can use [https://www.slackbuilds.org/repository/14.2/python/python3/ www.slackbuilds.org] scripts to install '''Python 3'''. I'm afraid I'm not a Python programmer and I never tried building tdebindings with Python 3.

==== Can I Write Applications in Ruby ? ====
Yes you can. You'll have to enable Ruby when building the '''tdebindings''' package. The SlackBuild script included in the build tree automatically checks whether '''Ruby''' is installed and '''automatically enables Ruby support'''.

===== Which Ruby Version Is Supported ? =====
The last available Slackware Linux release includes packages for '''Ruby 2.2''' that seem to work perfectly with TDE.


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


External links

----

* [http://www.slackware.com Slackware Linux home page]
* [http://www.trinitydesktop.org TDE home page]

----

{{footer_en | link_page=trinity_desktop_environment_faq}}