Trinity

From ArchWiki
Revision as of 06:53, 30 January 2011 by Drankinatty (Talk | contribs) (Created page with "==Trinity Desktop on Arch Linux== ===Introducing the Trinity Desktop=== The Trinity Project is a fork of KDE3 developed by Timothy Pearson ([http://trinity.pearsoncomputing.net/ ...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Trinity Desktop on Arch Linux

Introducing the Trinity Desktop

The Trinity Project is a fork of KDE3 developed by Timothy Pearson (trinity.pearsoncomputing.net). The project provides the Trinity Desktop updated and built against current libraries. The current release (3.5.12) provides binary packages available for Debian (Lenny & Squeeze), Ubuntu (Karmic, Lucid & Maverick) and Slackware 12.2. The desktop is actively developed and provides subversion checkout. The latest emphasis on development is moving to a cmake build environment and port to Qt4 by way of the Trinity Qt Interface (tqtinterface). The goal here is to develop a set of PKGBUILD scripts that will allow Trinity to be built and made available for Arch Linux using the Trinity svn code. The purpose of this page is the capture the information necessary to build Trinity on Arch and facilitate collaboration for that effort.

Current Status

The current effort to provide a set of PKGBUILDs on Arch began January 21, 2011. The basic build requirements on Arch have been determined and preliminary PKGBUILDs have been created for several of the Trinity svn dependencies (See Completed PKGBUILDs below). As with any large desktop build, a bit of trial and error will be required to determine how best to design a working set of build scripts to work efficiently with the Trinity svn tree. Any thoughts, help or advise that can be provided will speed the development and maturity of this project and will be much appreciated.

Contributors

At present, the project is just beginning. Hopefully, interest in the project and the list of contributors will grow in the near future. Anyone wanting to help can simply join in. Regardless of your experience level building packages for Arch, your thoughts and comments are welcome and any technical expertise or experience you can lend (especially with cmake or determining build dependencies) will help. The current project of listed members is comprised of:

  • David Rankin

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. All pages are available from the main project site. A quick list of helpful links to the project follows:

Getting the Code

The Trinity source is available as a stable release and via svn checkout. For purposes of building Trinity on Arch, the project is focused on using the svn code. The total size of the current svn checkout is approximately 3.8G. The code is available via anonymous svn checkout from kde.org:

svn co svn://anonsvn.kde.org/home/kde/branches/trinity ./

Building Trinity on Arch Linux

Required Packages on Arch

Before jumping into the Trinity source, you will need to install the Arch base-devel packages, cmake, python2-sip, pyqt3, pykde3 and qt3-3.3.8c (patched for the Trinity Qt interface). Arch already provides packages for everything except pykde3 and qt3-3.3.8c. Current PKGBUILDs for pykde3 and qt3-3.3.8c are provided below.

Trinity Build Order

The required build order is specified in the Trinity-HowToBuild. In summary, the order is to build the tqinterface and arts (in trinity/dependencies) before proceeding with the remaining modules. A current issue under investigation is whether kdemod3 must be removed prior to building Trinity or when in the process it must be removed (See Build Issues below)

Trinity Build Issues

dcopobject.h

There are reports that building against older versions of the KDE3 dcopobject.h will cause the Trinity build to fail at later stages. The difficulty is building pykde3 without having an existing KDE3 (kdemod3) installed. The current approach taken is to patch and build Qt3-3.3.8c, install as qt3-enhanced with your existing kdemod3 install and then build pykde3 against the existing dcopobject.h in /opt/kde/include. This assumes a rebuild of pykde3 against the updated dcopobject.h provided by trinity/kdelibs once the build has progressed to that point. Where in the build order that happens is yet to be determined. This approach allows for the successful build of tqtinterface.

Needed: If you are familiar with manipulating build environments in a way that would allow pykde3 to be built against the newer dcopobject.h (found in trinity/kdelibs and trinity/kdebindings), without using the existing kdemod3 header, it may prevent problems later. Any thoughts here would be appreciated.

Trinity PKGBUILD Status

New PKGBUILD files will be added as they are developed from working through the Trinity build order. If you are familiar with KDE3 packaging, complex PKGBUILD structures, or in determining package dependencies for individual applications, your help is needed. We are currently looking at the structure of the KDE4 build system and with build structure of packages like mesa to deduce a good approach to build Trinity. If you have thoughts on how best to do this, please lend a hand.

Completed PKGBUILDs

qt3-3.3.8c - The source containes two PKGBUILD files (PKGBUILD and PKGBUILD-qt3-enhanced) The original simply builds qt3 with the Trinity tqtinterface patch. PKGBUILD-qt3-enhanced will build an updated qt3-enhanced with the Trinity patch that will work with the existing kdemod3 install.

pykde3 - builds the pykde3 package.

tqtinterface - builds trinity/dependencies/tqtinterface. The PKGBUILD currently retrieves the source from svn before building. It is currently being reworked to use the existing source in the svn tree. (See PKGBUILD Issues below)

PKGBUILD Issues

General Structure Issues
Using the Existing SVN Tree as ${srcdir}

Help Needed

Contributions - Advice, Tips and Tricks