Difference between revisions of "En/Trinity desktop environment faq"
(Added some more questions and answers to the TDE FAQ) |
|
(No difference)
|
Latest revision as of 12:28, 21 March 2022
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:
- Copy source code archives in directory /usr/src/tde/base/tde-i18n/.
- 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 Disk Space TDE Requires ?
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 Packages Saved ?
Once built, packages are saved into the /tmp directory.
How Can I Obtain a List of Installed Packages ?
TDE Packages are managed as any other package through the pkgtools suite in Slackware. To obtain a list of installed packages run command:
ls -la /var/log/packages/*
To filter TDE packages from the full list use the grep command with a target value to match. All of TDE 14.0.4 packages contain the "R14" string for example. The command used to output a list of TDE installed packages is:
ls -la /var/log/packages/* | grep R14
Alternatively you can read the package names listed into the TDE.SlackBuild script and search them one by one.
Can I Build Packages without Installing Them ?
It is not possible because of missing dependencies. All of the TDE base packages require tqt, tdebase and tdelibs. Moreover many of the base packages require other ones to be successfully built.
How Can I Build One Package Only ?
Please read the answer to the previous question. You might want to recompile a package without having to re-install the entire environment. If this were the case, you can manually run the SlackBuild build script for a package. If you wish to rebuild the tdeadmin package for example:
- Move to the directory where the SlackBuild script and the source code archive are located.
cd /usr/src/tde-14.0.4/base/tdeadmin/
- Check for the presence of the source code archive.
ls -la total 1652 drwxr-xr-x 2 root root 4096 Sep 26 13:52 ./ drwxr-xr-x 22 root root 4096 Dec 14 2016 ../ -rw-r--r-- 1 root root 64 Sep 26 18:28 local.options -rw-r----- 1 root root 581 Aug 12mm 2016 ltmain_version_update.patch -rw-r----- 1 root root 612 Aug 12 2016 slack-desc -rw-r--r-- 1 root root 1656957 Nov 7 2016 tdeadmin-R14.0.4.tar.bz2 -rwxr----- 1 root root 10797 Dec 14 2016 tdeadmin.SlackBuild*
- Run the build script:
sh ./tdeadmin.SlackBuild
Can TDE Work in a Multi-Lib Environment ?
I built TDE for both Slackware64 and Slackware64 multi-lib in the past. Once installed the 64 bit TDE version works flawlessly.
What About TDE Performances ?
Excellent. It works perfectly with both dated hardware and ARM processors. Definitely more lightweight than KDE 4 and later KDE releases. An excellent desktop environment.
Can I Install TDE on Slackware Current ?
I never tried to install TDE on the development (current) branch of Slackware. In the past I received negative feedback from other users who have tried. The reported problems seemed to be tied to tdebase ie to the entire TDE. The error messages seemed more incompatibility issues with C++ 11 than real mistakes in the TDE code base, but I never gave the topic much attention.
What Can I Do When Problems Arise ?
When the compilation procedure exits with errors, you have to diagnose the cause. There is no standard methodology I'm aware of in such cases. You have to proceed by trial and with some luck you'll find the source of the problem. Some knowledge of C, C++, gcc, g++ and of the make command and MakeFile file format will help.
What i usually do is:
- Understand which package generated errors and caused the build script to fail.
- Read the log files available in the /tmp directory.
- There are up to 4 log files for each package:
- <package>_configure.log: Includes the output from the configure command run before code compilation starts.
- <package>_make.log: Includes the compiler output.
- <package>_install.log: Includes the output of the install script that copies built files to the destination directory before packaging them.
- <package>_makepkg.log: Includes the output of the package generation commands.
- Files are listed in the order they are written by the build procedure.
- Read the last log file available starting from the end and come backward searching for errors.
- Failure is usually a consequence of:
- A missing dependency or a mismatch in package version.
- Compiler errors.
- The former can be dealt with quite easily installing the missing packages or replacing the installed ones with different versions then running the SlackBuild script again.
- The latter is more tricky and requires some programming knowledge. You have to figure out which step of the compilation raised the error then navigate the /tmp/build/tmp-<package>/ directory looking for the directory where source code and MakeFiles are located. Once found, locate the specific file that raised the error and try to correct it. I managed to find and solve issues in the past, but a successful outcome is not granted. I can only wish you the best of luck.
Who Can I Refer to to Report Issues or to Ask for Help ?
I'll suggest the TDE developers. Their contacts are available in the following Web Page. You can of course ask me, but please keep in mind that:
- I'm mot part of the TDE development team, just an user and as such I do not know much more than you do.
- It is a hobby, not my actual work. My response times are slow.
I Solved a Problem. Would some Notes Help You ?
That would surely help the TDE developers a lot to close bugs and enhance the desktop environment. Please contact them. Their contacts are available in the following Web Page.
After I Solved an Issue How Can I Execute a Partial Build ?
After solving an issue you must restart the build script for it to build and install the TDE packages. Sadly the script starts over every time. That's a waste especially when the procedure fails in its final stages. Building only the missing packages would be a much better option.
You have to edit the TDE.SlackBuild script to build only a subset of the packages. Set alternative values for the PKG_LIST_PRE01, PKG_LIST_PRE02, PKG_LIST_BASE01, PKG_LIST_LIB_PYTHON, PKG_LIST_BASE02 and PKG_LIST_LIB variables. For example, if the error was generated by tdebindings and you only wanted to compile that package and the ones following in the list, the following values should be assigned to variables:
PKG_LIST_PRE01=""
PKG_LIST_PRE02=""
PKG_LIST_BASE01=""
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"
If instead you wanted to build packages starting with tdeartwork and on:
PKG_LIST_PRE01=""
PKG_LIST_PRE02=""
PKG_LIST_BASE01=""
PKG_LIST_LIB_PYTHON=""
PKG_LIST_BASE02="tdeartwork tdegames tdetoys tdeedu tdegraphics tdepim tdesdk tdevelop tdeaddons tdewebdev"
PKG_LIST_LIB="mlt mlt++ libtqt-perl libtdeldap libkexiv2 libkdcraw libkipi libksquirrel kipi-plugins"
I'll suggest checking which packages are present on the system before editing the TDE.SlackBuild script . Forget a package and issues could arise while building the following ones.
How Can I Set TDE as the Default Desktop Environment ?
This has not much to do with the build tree anyway you have to run the Slackware configuration tool: pkgtool.
- Select the Setup option.
- Scroll the menu down until reaching the xwmconfig option.
- Select TDE in the list of available desktop environments.
- Close the X window session and restart the graphical interface.
For any feedback, questions, errors and such, please e-mail me at studiosg [at] giustetti [dot] net
External links
Languages: English - Italiano