Trinity

From ArchWiki
Revision as of 19:49, 16 August 2012 by Drankinatty (Talk | contribs)

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 (TDE) is a fork of KDE3 developed by Timothy Pearson (trinitydesktop.org). The goal of this project is 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. A software release update (SRU) for 3.5.13 is planned in late 2012. Current development is on 14.0.0. Both 3.5.13(sru) and 14.0.0 build on Arch with all current libraries.

The Difference Between 3.5.13 & 14.0.0

The versioning change between 3.5.13 and 14.0.0 signifies that backwards compatibility with 3.5.X has been dropped to allow TDE/TQt to install along side KDE4/Qt4 without confict. 14.0.0 will continue to rely on HAL, but subsequent releases will do away with that dependency. 14.0.0 contains the first prototype of media:/ kioslave as a replacement for HAL. 3.5.13 continues backwards compatibility with KDE 3.5.10 code and provides an alternative choice for those that prefer.

Currently the remaining TQt name changes are being implemented after which a tentative code 'freeze' is anticipated to allow user testing and bug identification. 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 development packages for Arch Linux are available for both 3.5.13-sru and 14.0.0. If server space is available for hosting, binaries can be provided for testing for both i686 and x86_64.

Binary Packages

Server space has been graciously provided by Axilleas Pi. Install repositories are shown below. Meta package installation for tde is provided under the name 'tde-base'. To install TDE on Arch, simply install with:

pacman -Sy tde-base
Note: On install, you should expect conflicts with tde-sip and tde-sip4-tqt. The TDE packages 'tde-sip' and 'tde-sip4-tqt' are direct replacements for the 'sip' and 'python2-sip' packages. They simply contain additional extensions for TDE. If you encounter these conflicts, the recommended install is:
pacman -Rdd sip python2-sip
pacman -Sy tde-base
Warning: If attempting to install 3.5.13 along side KDE4 you will experience conflict with libart-lgpl and kdebase-workspace. The libart-lgpl packages are equivalent. The kdebase-workspace conflict is with /etc/ksysguarddrc. Both are in the process of being eliminated.
TDE Repositories

Repositories for stable 3.5.13-sru snapshots:

http://archlinux.us.to/3.5.13/i686/
http://archlinux.us.to/3.5.13/x86_64/

Example /etc/pacman.conf settings:

[tde3513]
Server = http://archlinux.us.to/3.5.13/i686/

Repositories for development 14.0.0 snapshots:

http://archlinux.us.to/14.0.0/i686/
http://archlinux.us.to/14.0.0/x86_64/

Example /etc/pacman.conf settings:

[tde1400]
Server = http://archlinux.us.to/14.0.0/i686/
PKGBUILDS for Trinity - Current GIT Code

For a snapshot of PKGBUILD sources for building against the current GIT tree, see: http://www.3111skyline.com/dl/dt/tde/src (R14) and http://www.3111skyline.com/dl/dt/tde/src3513 (3.5.13-sru), AND READ http://www.3111skyline.com/dl/dt/tde/src/README-building.txt

Note: Final PKGBUILD source files will be moved to the tdepackaging GIT tree after 14.0.0 is released.

Contributors

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.

Archlinux

  • 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

Developers

  • Timothy Pearson: Project administrator, Primary developer, Build farm administrator, Debian/Ubuntu packaging maintainer.
  • Darrell Anderson: 3.5.13 -> 14.0.0 Development and rebranding.
  • Slavek Blanko: 3.5.13 update and backporting.
  • 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) 'sudo mkarchroot -u $CHROOT/root'  # update the chroot
  
 (2) 'sudo makechrootpkg -c -r $CHROOT' # build first package with the -c option
  
 (3) 'sudo makechrootpkg -r $CHROOT'    # build remaining packages without update 

Trinity Build Issues

Build in a new Arch chroot
Warning: Trinity on Arch must be built in a clean environment.

Set up your chroot for building by referencing DeveloperWiki:Building in a Clean Chroot. Make sure you configure your 'local' repository in $CHROOT/root/repo and add each package built to the repository as outlined in the DeveloperWiki.

Trinity PKGBUILDs

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

groups()

  • 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.

options()

  • 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 ../ \
-DCMAKE_INSTALL_PREFIX=/opt/trinity \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DQT_VERSION=3 \
-DQTDIR=/opt/qt \
-DQT_LIBRARY_DIRS=/opt/qt/lib \
-DBUILD_ALL=ON
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:

groups()

  • trinity-

Issues

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 qt-mt.so

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/libqt-mt.so
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."
   ;;
 failsafe)
   exec xterm -geometry 80x24-0-0
   ;;
 custom)
   exec $HOME/.xsession
   ;;
 default)
   exec /opt/trinity/bin/startkde
   ;;
 *)
   eval exec "$session"
   ;;
esac
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 &

14.0.0 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
 wv2 (dependency for koffice)

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

 tde-abakus
 tde-amarok
 tde-arts
 tde-avahi-tqt
 tde-basket
 tde-dbus-1-tqt
 tde-dbus-tqt
 tde-digikam
 tde-dolphin
 tde-filelight
 tde-gtk-qt-engine
 tde-gwenview
 tde-k3b
 tde-k9copy
 tde-katapult
 tde-kaffeine
 tde-kbarcode
 tde-kbookreader
 tde-kdiff3
 tde-kdirstat
 tde-kgtk-qt3
 tde-kima
 tde-kio-locate
 tde-kipi-plugins
 tde-kmplayer
 tde-knemo
 tde-knetload
 tde-knetstats
 tde-knutclient
 tde-koffice
 tde-konversation
 tde-kpowersave
 tde-krename
 tde-krusader
 tde-ksplash-engine-moodin
 tde-libart-lgpl
 tde-libcaldav
 tde-libcarddav
 tde-libkdcraw
 tde-libkexiv2
 tde-libkipi
 tde-libksquirrel
 tde-python-tqt
 tde-rosegarden
 tde-sip
 tde-sip4-tqt
 tde-soundkonverter
 tde-tde-style-qtcurve
 tde-tdeaccessibility
 tde-tdeaddons
 tde-tdeadmin
 tde-tdeartwork
 tde-tdebase
 tde-tdeedu
 tde-tdegames
 tde-tdegraphics
 tde-tdelibs
 tde-tdemultimedia
 tde-tdenetwork
 tde-tdepim
 tde-tdesdk
 tde-tdesvn
 tde-tdetoys
 tde-tdeutils
 tde-tdevelop
 tde-tdewebdev
 tde-tqca-tls
 tde-tqt3
 tde-tqtinterface
 tde-twin-style-crystal
 tde-wlassistant
 tde-yakuake

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 (trinity-devel@lists.pearsoncomputing.net). Visit http://www.trinitydesktop.org/mailinglist.php for more information.

 koffice  (wv2 & libpng15)