En/Trinity desktop environment faq

From Studiosg
Revision as of 12:01, 17 November 2017 by Wikiuser (talk | contribs) (Added some more questions and answers about the TDE build order)
Jump to navigationJump to search

Welcome to Simone Giustetti's wiki pages.


Languages: English - Italiano


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: 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: 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 following page. Multilib packages can be downloaded from 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 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 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 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 Slackware documentation. As usual ready to use SlackBuild scripts are available in the 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 Slackware documentation. Install packages are available in Eric Hameleers's (Alien BOB) repository. Moreover some build scripts are available in the 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 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.

Why Are Localization Packages Not Built by the Build Tree ?

Building the TDE localization packages requires a lot of time and the saved packages require a lot of disk space. Moreover very few people install 50 different languages on their systems; usually users install the TDE predefined language, English, and their native one. That said the build tree does not build automatically all localization packages to spare time and resources. Build instructions are commented and should be enabled editing the main script: /usr/src/tde/tde_build_script/bin/TDE.SlackBuild.

How Can I Install Localization Packages ?

The build tree automatically builds and installs the localization packages when the proper lines of code are enabled in the main script: /usr/src/tde/tde_build_script/bin/TDE.SlackBuild. To enable localization packages building and installing you should:

  1. Copy source code archives in directory /usr/src/tde/base/tde-i18n/.
  2. Remove the leading comment in line 320 of the /usr/src/tde/tde_build_script/bin/TDE.SlackBuild script as in the following example.
   SOURCE_SUBDIR=\".\"" > ./local.options
      # Build package
   #   bash ./${PKG}.SlackBuild
      if [[ 0 = ${?} ]]; then

Edit it into:

   SOURCE_SUBDIR=\".\"" > ./local.options
      # Build package
      bash ./${PKG}.SlackBuild
      if [[ 0 = ${?} ]]; then

I Need Only One Localization Package. How Can I Alter the Script to Build Only One ?

There are 2 ways to build only one localization package. The first and easier one consists of populating the /usr/src/tde/base/tde-i18n/ directory with but the desired language tarball. The second way consists in editing /usr/src/tde/tde_build_script/bin/TDE.SlackBuild script and is way trickier.

If you want to permanently update the script just edit the for cycle responsible for selecting localization tarballs and remove the asterisk character. For example edit line:

   for LC_PACK_PATH in ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/${PRGNAM}-* ; do

changing it into

   for LC_PACK_PATH in ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/${PRGNAM}-nds ; do

this way only the tde-i18n-nds localization package will be built while every other will be ignored.

If you wish to add a parameter for language selection to the script replace the asterisk character with a new variable. Assign a value to the newly added variable when running the script or add it to the option file. For example suppose to introduce variable LOCALE as follows:

   for LC_PACK_PATH in ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/${PRGNAM}-${LOCALE} ; do

then add the following lines somewhere at the beginning of the script:

   LOCALE=${1}
   # Check for command line parameter.
   if [[ -z ${LOCALE} ]]; then
      echo "(EE) missing locale."
      exit -1
   fi

The LOCALE variable is assigned the first parameter passed to the /usr/src/tde/tde_build_script/bin/TDE.SlackBuild script. To build the tde-i18n-nds package, for example, you should invoke the script as follows:

  sh /usr/src/tde/tde_build_script/bin/TDE.SlackBuild tde-i18n-nds

Where Is TDE Installed ?

All packages making up TDE are configured to install in directory /opt/trinity in order to ensure a pacific coexistence of TDE and KDE.

Can I Change the Installation Directory ?

Of course. Please edit the configuration file TDE.options and change the PREFIX value. For example to install TDE in directory /usr/bin set the following value for PREFIX:

   PREFIX="/usr/bin"

How Much Storage Installing TDE Takes ?

The base packages, the prerequisites and the extension libraries add up to:

  • 700 Mb for the 32 bit version.
  • 750 Mb for the 64 bit version.

Localization packages and applications are excluded.

Where Is TDE built ?

The build tree scripts all write temporary files in directory /tmp/build/ while the installation packages are saved in directory /tmp/.

How Much Storage Building TDE Requires ?

The base environment requires more or less 1 Gb of storage for temporary files written by some of the largest packages while building. Add 300 Mb to store the output packages. Localization packages require a lot disk space more. The one time I built them all it used 4 Gb of free space in directory /tmp. Sadly I cannot provide you data regarding the applications and extensions because I never tried to build them all.

Why Is Directory /tmp/build/ Always Empty ?

Temporary files are deleted every time a package finishes building in order to save disk space otherwise the 1 Gb value suggested above will not suffice.

In Which Order Should I Build TDE Packages ?

TDE developers suggested build order is available on-line in the project wiki pages. The order used by the build tree is:

  • Prerequisites
    • tqt3
    • tqtinterface
    • arts
    • dbus-tqt
    • dbus-1-tqt
    • tqca
    • tqca-tls
    • libart-lgpl
    • libcaldav
    • libcarddav
    • sip4-tqt
  • Base Packages
    • tdelibs
    • tdebase
  • Python Prerequisites
    • tqscintilla
    • python-tqt
  • Python Libraries
    • python-trinity
    • pytdeextensions
  • Base environment
    • tdebindings
    • tdeaccessibility
    • tdeutils
    • tdemultimedia
    • tdenetwork
    • tdeadmin
    • tdeartwork
    • tdegames
    • tdetoys
    • tdeedu
    • tdegraphics
    • tdepim
    • tdesdk
    • tdevelop
    • tdeaddons
    • tdewebdev
  • Localization packages (When enabled)
  • Optional libraries
    • mlt
    • mlt++
    • libtqt-perl
    • libtdeldap
    • libkexiv2
    • libkdcraw
    • libkipi
    • libksquirrel
    • kipi-plugins

The Script builds All of TDE Packages ?

Yes, almost all.

The Script builds All of TDE Prerequisites ?

All except avahi-tqt, that was excluded because Slackware does not ship a package for avahi.

The Script builds All of TDE Base Packages ?

Yes, all.

The Script builds All of TDE Optional Libraries and Enhancements ?

Yes, all.

The Script builds Any of the TDE Applications ?

No, no application. TDE includes a lot of applications, but I use almost no one so I never tried to build them all.

Did You Ever Try to Build Any of the Applications ?

I managed to build k3b, krename and ktorrent in the past, but I can not provide up to date instructions about them.

Where Are Finished Packages Saved ?

Once built, packages are saved into the /tmp directory.


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


External links





Languages: English - Italiano