From ArchWiki
Revision as of 03:02, 15 July 2012 by Drankinatty (talk | contribs) (Trinity Build Order)
Jump to: navigation, search

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary end

Trinity Desktop Environment is a fork of KDE3 developed by Timothy Pearson ( This project aims to keep the KDE3.5 computing style alive, as well as polish off any rough edges that were present as of KDE 3.5.10. Along the way, new useful features have be added to keep the environment up-to-date. The current stable release of TDE (3.5.13) was released Nov 1st 2011. Current development is on 14.0.0 which builds on current libraries and contains the first prototype of media:/ kioslave as a replacement for HAL. The versioning change from 3.5.14 to 14.0.0 signifies that backwards compatibility with 3.5.X has been dropped to allow TDE/TQt to install along side Qt4 without confict. 14.0.0 will continue to rely on HAL, but subsequent releases will do away with that dependency.

Note: gcc 4.7 and libpng15 build issues are FIXED! for Trinity builds for Archlinux building from the GIT tree.

Currently the remaining TQt name changes are being implemented after which a tentative code 'freeze' is anticipated to allow user testing and bug identification and correction before release of 14.0.0. 14.0.0 will be a true TDE release with all branding, artwork, and graphics changed and updated for this project rather than using the holdover KDE3 stock images. All in all, the desktop functions beautifully on current graphics libs, systemd-tools, libusbx, udisk2 and other newly implemented hardware paradigms.

Trinity Packages for Arch

Currently only development packages for Arch Linux are available for 14.0.0. If server space is available for hosting, binaries can be provided for testing for both i686 and x86_64.

PKGBUILDS for Trinity Current Code (3.5.13)

Currently there are no binaries available for archlinux, however there are PKGBUILDs available in the AUR. Note, the AUR packages are not complete for the entire TDE GIT tree. Many new packages have been developed for 3.5.14 and those PKGBUILD files will be made available shortly.

Any problems should be reported immediately.

Note: The pkgbuilds in AUR are dated. There has been rapid change to accommodate gcc47 and libpng15. Final PKGBUILD source files will be moved to the tdepackaging GIT tree after 14.0.0 is released. For a snapshot of PKGBUILD sources for the building against the current GIT tree, see:, AND READ

Binary Packages - From Trinity Old Stable Code (3.5.12)

Note: The 3.5.12 binaries continue to work excellently on Arch, but you will need to make sure you have the following (audiofile 0.3.2-1, shadow (unneeded if you do not use kdm3), hal 0.5.14-9 (AUR).

The following repository holds binary packages from the Trinity Old Stable (KDE 3.5.12) code base. Albert Vaca built the binaries to work as updated kdemod3 packages. I cannot say enough good about this version of kdemod3 -- it's that good. See this ArchBBS thread for additional links The repositories for the binaries are:

# Trinity 3.5.12
Server =$arch

After adding the repository to /etc/pacman.conf, the packages can be installed using the kdemod3-complete package group. Example:

pacman -Syu

or if that fails to trigger the update, then use

pacman -Sy kdemod3-complete
pacman -Su
Warning: iceauth error -- If you update arch and receive the following error (~/.xsession-errors), make sure xorg-xdm is installed
dcopserver: 'iceauth' not found in path, aborting.
DCOPServer self-test failed.
sh: iceauth: command not found
kdeinit: DCOPServer could not be started, aborting.


At present, the Trinity project for Arch Linux is just beginning. Interest in the project and the list of contributors is growing. Anyone wanting to help can simply join in. Please email Calvin Morrison.


  • Calvin Morrison: Trinity and Arch a/k/a "mutantturkey", PKGBUILD development and collaboration.
  • Kaiting Chen: Arch Linux - server space for testing Trinity binaries in the past.
  • Albert Vaca: kdemod3 updated based on Trinity Stable codebase.
  • David C. Rankin: 14.0.0 (3.5.14) Development & Packaging


  • Timothy Pearson: Project administrator, Primary developer, Build farm administrator, Debian/Ubuntu packaging maintainer.
  • Serghei Amelian: General functionality enhancements, CMake build system developer/maintainer.
  • "Woodsman": Vanilla build testing, Slackware packaging maintainer.
  • Francois Andriot: Redhat/Fedora packaging maintainer.

Content Distribution

  • University of Idaho: Mirror 1 [United States]
  • Jens Dunzweiler: Mirror 2 [Germany]
  • Inga Muste: Kubuntu LiveCD mirror

Web Team

  • Calvin Morrison: Website design.
  • Inga Muste: Website design.

Trinity Resources

The Trinity site has a number of good resources available. As with any rapidly developing project, the documentation is somewhat sparse, but it does provide a good basic road-map to follow here. The mailing list has approximately the same volume as the arch-user list, so it will not overwhelm your inbox. If you want to help with this project, it is strongly recommended that you also join the trinity-user mailing list. All of the following links are available from the Trinity project site. A quick list of helpful links to the project follows:

Trinity Build Order

The required build order is specified in the Trinity-HowToBuild. After building kdebase, you can start the desktop.

Warning: Trinity should be built from a clean build environment without KDE4 or kdemod3 present. Using an Arch chroot (archroot) is the proper way to build. See: DeveloperWiki:Building in a Clean Chroot for details. (1) update the chroot 'sudo mkarchroot -u $CHROOT/root' (2) build the first package with the -c option to sync the local repository 'sudo makechrootpkg -c -r $CHROOT', (3) build remaining packages without update to prevent pulling in new packages mid-build 'sudo makechrootpkg -r $CHROOT'

Trinity Module Configuration

The Trinity install on Arch will be in /opt/trinity to distinguish from the prior kdemod3 location of /opt/kde. Other distributions have standardized around either /opt/kde, /opt/kde3 or /opt/trinity. The Trinity modules required to have a working Trinity desktop have been ported to cmake. A number of addons (kdeutils, kdepim, etc..) still remain to be ported. There is a different build process for the SVN code that use cmake and the stable release that relied on autoconf.

Warning: You cannot build some modules with cmake and others with autoconf and expect any type of success. The older stable KDE 3.5.12 sources can be built with autoconf. The new SVN code should be built with cmake.
Note: To build kdebase and other modules that rely on Qt3-3.3.8c and TQt (TrinityQt Interface), you will need to update your PATH variable to include /opt/qt. Beginning with the build of kdelibs, you need /opt/trinity/bin in your path as well. (See PKGBUILDs for details)
Building the SVN code with CMake

For all Trinity packages (including tqtinterface), you will need to specify the /opt/trinity prefix to get packages installed in the correct location. The following cmake options have been successful:

cmake ../ \
-DQTDIR=/opt/qt \
-DQT_LIBRARY_DIRS=/opt/qt/lib \
make VERBOSE=1

# for debugging info, add -DCMAKE_CXX_FLAGS=-g
Warning: RPATH argument ‘-DCMAKE_SKIP_RPATH=ON’ cannot be used with the kdelibs build

Trinity Build Issues

A Clean Environment without KDE4 or kdemod3 Required
Warning: After many attempts to find a way to prevent cmake from using Qt4 includes if kde4 was also installed, it became clear that building Trinity on Arch must be done in a clean environment. Trinity will now build with Qt4 installed. Building with kde4 installed has not been reattempted. Current development is progressing in an Arch Linux VirtualBox VM which is working better than attempting a build in an archroot.


To standardize the build and install of Trinity, the following PKGBUILD options are used:


  • trinity-extras - for any extra packages related to trinity, trinity-kpowersave, trinity-amarok, etc
  • trinity - for base Trinity packages, tqtinterface, trinity-kdebase trinity-kdelibs etc.


  • Don't use options=(!libtool)
I have had the best success with options=('libtool' '!strip').

Trinity Build Dependency PKGBUILDs

The following PKGUILDS are complete and provide working packages for both i686 and x86_64 architectures. They can always be improved and if you notice a missing depends, please feel free to update it. These PKGBUILDs for Trinity have been developed in a clean, minimal Virtualbox build environment, so the depends array should be complete.

Standard CMake Flags For Building Trinity Components

For all Trinity packages (including tqtinterface), you will need to specify the /opt/trinity prefix to get packages installed in the correct location. The following cmake options have been successful:

cmake ../ \
-DQTDIR=/opt/qt \
-DQT_LIBRARY_DIRS=/opt/qt/lib \
make VERBOSE=1

# for debugging info, add -DCMAKE_CXX_FLAGS=-g
Warning: RPATH argument ‘-DCMAKE_SKIP_RPATH=ON’ cannot be used with the kdelibs build

Trinity PKGBUILD Standards

To standardize the build and install of Trinity, the following PKGBUILD options are used:


  • trinity-


The current work is centered on determining how best to organize the PKGBUILD structure to make building from the existing Trinity svn tree doable. A majority of the Trinity svn build has been ported to cmake.

Cannot find

For some reason sometimes qt3 cannot be found. A quick hack is to add qt to your LD_PRELOAD:

export LD_PRELOAD="/opt/qt/lib/
archroot - trinity-arts - qtobject.h not found

It first appeared that cmake environment was not respecting CMAKE_INCLUDE_PATH resulting an an tqobject.h include failure. However, Baho has been successful with the build and has not encountered this error. There have been many improvements with the CMake files in Trinity during the past few weeks, so hopefully this is no longer an issue.

Starting and Running Trinity on Arch

Currently Trinity runs fine if KDE4 or kdemod3 are not installed on the computer. It will run along side kde4, but the kde4 autostart scripts in /usr/share/autostart will load akonadi, nepomuk and the kde4 plasma-panel on top of Trinity. The Trinity developers are currently looking at how to make Trinity ignore the kde4 autostart scripts. Trinity will not run along side another kde3 install due to the conflict with the kde system config cache store in /var/tmp/kdecache-$USER. (Trinity will load, but window decorations, etc. will not appear due to incorrect path information in the existing cache). So currently, if you want to run Trinity -- run it in a clean environment.

Configuring Trinity to work with startx

Trinity provides a normal ‘startkde’ in /opt/trinity/bin. The easiest way to start Trinity is to simply create the symlink /usr/bin/starttrinity pointing to /opt/trinity/bin/startkde and then just add the ‘starttrinity’ entry at the end of ~/.xinitrc. (the symlink simply ensures that starttrinty is in your existing $PATH) Then from the command line, just type ‘startx’

Configuring Trinity kdm Greeter

Trinity provides a great looking kdm interface. The trinity-kdebase PKGBUILD has been updated to install the trinity.desktop file in /etc/X11/sessions; update /opt/trinity/share/config/kdm/kdmrc and /opt/trinity/share/config/kdm/Xsession. In order to use the Trinity kdm, all that is needed is to update /etc/inittab and change the runlevel 5 x startup to:

x:5:respawn:/opt/trinity/bin/kdm -nodaemon

If you experiment with other display managers (slim, etc..) please drop a quick howto here.

Trinity kdm Changes Summary

There are currently issues with the default Xsession file. (genkdmconf probably hasn't been looked at in years. Work is underway to get this fixed.) Updated files are provided in the trinity-kdebase package that fix this on Arch. The updated Xsession file provided by the trinity-kdebase PKGBUILD contains the following:

case $session in
   exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session."
   exec xterm -geometry 80x24-0-0
   exec $HOME/.xsession
   exec /opt/trinity/bin/startkde
   eval exec "$session"
exec xmessage -center -buttons OK:0 -default OK "Sorry, cannot execute $session. Check $DESKTOP_SESSION.desktop."
Warning: The trinity-kdebase install will install a default kdmrc each time the package is installed. The original annotated kdmrd is installed as kdmrc.orig. A fix is in work use the existing kdmrc if present.

The trinity-kdebase install also does the following:

creates the trinity.desktop file above in /etc/X11/sessions/trinity.desktop
updates /opt/trinity/share/config/kdm/kdmrc to set:
  • SessionsDirs=/etc/X11/sessions
  • TerminateServer=true

To use the Trinity chooser, all you need to do is:

  1. edit /etc/inittab and set x:5:respawn:/opt/trinity/bin/kdm -nodaemon
  2. sudo telinit Q or sudo /opt/trinity/bin/kdm &

3.5.14 Development Status

The following packages have been successfully built from the TDE GIT tree for the upcoming 3.5.14 release.

Required AUR Packages

 hal 0.5.14-14
 hal-info 0.20091130-7
 libutempter 1.1.5-8

Completed Packages - 14.0.0_dev (on gcc 4.7.1 + libpng15)


Packages Requiring Fixes (libpng15)

The following is a list of packages that need code fixes to build with current libraries. If you can help with the project and code updates then please join us on the trinity-devel list ( Visit for more information.

 koffice  (wv2 & libpng15)