KTp/Getting Set Up: Difference between revisions

From KDE Community Wiki
< KTp
(→‎TelepathyQt: Make the text clearer, and the warning more obvious)
(Clean up the page, and re-order things slightly.)
Line 1: Line 1:
These instructions assume that you already know how to build KDE stuff from source. It just provides a list of what you need to checkout and build, and how to run it.
These instructions assume that you already know how to build KDE stuff from source. Check the "[http://techbase.kde.org/Getting_Started/Build/KDE_Applications building KDE applications page]" for more help with that.  The rest of this page will just tell you what to build and where to get it from.


==Prerequisites==
==Prerequisites==


You will also need to install several cross-desktop Telepathy components. Packages of the following from your distribution should do fine.
You will need to install several cross-desktop Telepathy components. Packages of the following from your distribution should do fine.
* telepathy-mission-control-5
* telepathy-mission-control-5
* telepathy-gabble for Jabber, GTalk and Facebook Chat support
* telepathy-gabble for Jabber, GTalk and Facebook Chat support
Line 15: Line 15:
We're using some dbus service files and it has been proven that these needs to be in /usr/share/dbus-1/, otherwise you won't be able to connect, start a chat or do other stuff. So if you're using your own install prefix, '''please make sure you have copied/linked these files to /usr/share/dbus-1/* first''' before posting a bugreport. Thanks.
We're using some dbus service files and it has been proven that these needs to be in /usr/share/dbus-1/, otherwise you won't be able to connect, start a chat or do other stuff. So if you're using your own install prefix, '''please make sure you have copied/linked these files to /usr/share/dbus-1/* first''' before posting a bugreport. Thanks.


You will also need to follow the steps 'Let Git rewrite URL prefixes' listed here, if you have not done so already.:
You will also need to follow the steps to [[Sysadmin/GitKdeOrgManual#Let_Git_rewrite_URL_prefixes|setup the kde: prefix in Git]], if you have not done so already.
http://community.kde.org/Sysadmin/GitKdeOrgManual#Let_Git_rewrite_URL_prefixes


==The "usual cmake build method"==
===Telepathy-Qt===
 
To build all our stuff, you just need four commands (assuming you cd'd to the directory of the project):
 
<syntaxhighlight lang="bash">
mkdir -p build && cd build
</syntaxhighlight>
This creates a build directory and moves you into it.
 
 
<syntaxhighlight lang="bash">
cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_BUILD_TYPE=debugfull ..
</syntaxhighlight>
This starts the configuration phase of building, where all the needed libs are found etc. You can only continue to the next step if this one finishes successfully.
 
 
<syntaxhighlight lang="bash">
make -j3
</syntaxhighlight>
This triggers the build itself. You can replace the number after "-j" by how many cores your CPU has + 1, so if I have two cores, I'd use "-j3", if I have 12, I'd use "-j13". Again you can move to the next step only if this one finishes successfully.
 
 
<syntaxhighlight lang="bash">
sudo make install
</syntaxhighlight>
This installs the stuff into your system. You need your sudo password.
 
==Telepathy-Qt==


Building any of the KDE telepathy software requires the [http://telepathy.freedesktop.org/doc/telepathy-qt/ Telepathy-Qt library]. Your distribution may package it, in which case you need version >= 0.9.
Building any of the KDE telepathy software requires the [http://telepathy.freedesktop.org/doc/telepathy-qt/ Telepathy-Qt library]. Your distribution may package it, in which case you need version >= 0.9.
Line 55: Line 27:
If you are building your own copy of Telepathy-Qt, clone the [http://cgit.freedesktop.org/telepathy/telepathy-qt/ git repository] and use the usual cmake method to build and install it.
If you are building your own copy of Telepathy-Qt, clone the [http://cgit.freedesktop.org/telepathy/telepathy-qt/ git repository] and use the usual cmake method to build and install it.


== KDE Telepathy internals ==
=== QtGstreamer ===
Before the other components, you need to build a library carrying internal components. You can check it out with


In order to build the [[#Call window App|call window application]], you will need the [http://gstreamer.freedesktop.org/modules/qt-gstreamer.html Qt bindings for GStreamer].  Your distribution will probably provide packages, or you can build from git:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
git clone kde:ktp-common-internals
git clone git://anongit.freedesktop.org/gstreamer/qt-gstreamer
</syntaxhighlight>
</syntaxhighlight>


== Scripted setup ==
== Scripted setup ==
You can find a script to clone and build the initial environment over [http://community.kde.org/Real-Time_Communication_and_Collaboration/Getting_Set_Up/Scripted here]
You can find a script to clone and build the initial environment over [http://community.kde.org/Real-Time_Communication_and_Collaboration/Getting_Set_Up/Scripted here]


== Using kdesrc-build ==
== Using kdesrc-build ==
To use kdesrc-build to build kde telepathy just add the following to your .kdesrc-buildrc file:
To use kdesrc-build to build kde telepathy just add the following to your .kdesrc-buildrc file:


  <nowiki>
  <nowiki>
module-set ktp
module-set ktp
     use-modules ktp-common-internals ktp-accounts-kcm ktp-contact-list ktp-text-ui ktp-approver ktp-kded-module ktp-auth-handler ktp-presence-applet ktp-filetransfer-handler ktp-send-file
     use-modules telepathy-logger-qt ktp-common-internals ktp-accounts-kcm ktp-contact-list ktp-text-ui ktp-approver ktp-kded-module ktp-auth-handler ktp-presence-applet ktp-filetransfer-handler ktp-send-file
     repository kde-projects
     repository kde-projects
end module-set
end module-set
</nowiki>
</nowiki>


Then do kdesrc-build ktp to build all of it, or kdesrc-build ktp-send-file to build just ktp-send-file for example.
Then do <tt>kdesrc-build ktp</tt> to build all of it, or <tt>kdesrc-build ktp-send-file</tt> to build just ktp-send-file, for example (although bear in mind that you will need to build <tt>ktp-common-internals</tt> before any other ktp projects, and <tt>telepathy-logger-qt</tt> before <tt>ktp-contact-list</tt>).


==KTp Components==
== Compiling manually ==
 
=== KDE Telepathy internals ===
 
Before the other components, you need to build a library carrying internal components.
 
[https://projects.kde.org/projects/extragear/network/telepathy/ktp-common-internals ktp-common-internals project page]
 
<syntaxhighlight lang="bash">
git clone kde:ktp-common-internals
</syntaxhighlight>


===Telepathy Accounts KCM===
===Telepathy Accounts KCM===
Line 103: Line 87:
===Contact List App===
===Contact List App===


This application provides a traditional contact-list, similar to the one provided by Kopete.
This application provides a traditional contact-list, similar to the one provided by Kopete.  Note that this requires [[#Telepathy Logger Qt Bindings|telepathy-logger-qt]].


[https://projects.kde.org/projects/extragear/network/telepathy/ktp-contact-list ktp-contact-list project page]
[https://projects.kde.org/projects/extragear/network/telepathy/ktp-contact-list ktp-contact-list project page]
Line 179: Line 163:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
git clone kde:ktp-send-file
git clone kde:ktp-send-file
</syntaxhighlight>
===QtGstreamer===
Not part of KDE Telepathy but needed to compile the call window app
[http://gstreamer.freedesktop.org/modules/qt-gstreamer.html QtGstreamer home page]
<syntaxhighlight lang="bash">
git clone git://anongit.freedesktop.org/gstreamer/qt-gstreamer
</syntaxhighlight>
</syntaxhighlight>


===Call window App===
===Call window App===


This application provides a voice/video chat window (optional).
This application provides a voice/video chat window (optional).  Note that this requires [[#QtGstreamer|QtGstreamer]].


[https://projects.kde.org/projects/extragear/network/telepathy/ktp-call-ui ktp-call-ui project page].
[https://projects.kde.org/projects/extragear/network/telepathy/ktp-call-ui ktp-call-ui project page].

Revision as of 11:57, 15 October 2012

These instructions assume that you already know how to build KDE stuff from source. Check the "building KDE applications page" for more help with that. The rest of this page will just tell you what to build and where to get it from.

Prerequisites

You will need to install several cross-desktop Telepathy components. Packages of the following from your distribution should do fine.

  • telepathy-mission-control-5
  • telepathy-gabble for Jabber, GTalk and Facebook Chat support
  • other Telepathy connection managers if you want to try out other protocols
    • telepathy-haze for icq, msn, yahoo, aim and all the others that Pidgin/libpurple supports
    • telepathy-rakia for sip
  • telepathy-logger (for the contact list)

Recently we started using some features of kdelibs 4.7.0, so you need at least KDE SC 4.7 to compile and run KDE-Telepathy.

We're using some dbus service files and it has been proven that these needs to be in /usr/share/dbus-1/, otherwise you won't be able to connect, start a chat or do other stuff. So if you're using your own install prefix, please make sure you have copied/linked these files to /usr/share/dbus-1/* first before posting a bugreport. Thanks.

You will also need to follow the steps to setup the kde: prefix in Git, if you have not done so already.

Telepathy-Qt

Building any of the KDE telepathy software requires the Telepathy-Qt library. Your distribution may package it, in which case you need version >= 0.9.

Warning

There used to be a library called telepathy-qt in kdesupport. This is NOT the same library. Make sure you are using the one from freedesktop.org


If you are compiling Telepathy-Qt and get a warning about needing a newer glib, simply ignore it. Glib is only needed for some internal tests.

If you are building your own copy of Telepathy-Qt, clone the git repository and use the usual cmake method to build and install it.

QtGstreamer

In order to build the call window application, you will need the Qt bindings for GStreamer. Your distribution will probably provide packages, or you can build from git:

git clone git://anongit.freedesktop.org/gstreamer/qt-gstreamer

Scripted setup

You can find a script to clone and build the initial environment over here

Using kdesrc-build

To use kdesrc-build to build kde telepathy just add the following to your .kdesrc-buildrc file:

module-set ktp
    use-modules telepathy-logger-qt ktp-common-internals ktp-accounts-kcm ktp-contact-list ktp-text-ui ktp-approver ktp-kded-module ktp-auth-handler ktp-presence-applet ktp-filetransfer-handler ktp-send-file
    repository kde-projects
end module-set

Then do kdesrc-build ktp to build all of it, or kdesrc-build ktp-send-file to build just ktp-send-file, for example (although bear in mind that you will need to build ktp-common-internals before any other ktp projects, and telepathy-logger-qt before ktp-contact-list).

Compiling manually

KDE Telepathy internals

Before the other components, you need to build a library carrying internal components.

ktp-common-internals project page

git clone kde:ktp-common-internals

Telepathy Accounts KCM

The next thing to get set up is the Telepathy Accounts KCM. This is the UI for account management.

ktp-accounts-kcm project page

git clone kde:ktp-accounts-kcm

This can be compiled and installed by the usual KDE build procedure.

Telepathy Logger Qt Bindings

Needed to compile the contact list app.

telepathy-logger-qt project page

git clone kde:telepathy-logger-qt

Contact List App

This application provides a traditional contact-list, similar to the one provided by Kopete. Note that this requires telepathy-logger-qt.

ktp-contact-list project page

git clone kde:ktp-contact-list

Chat window App

This application provides a text chat window.

ktp-text-ui project page

git clone kde:ktp-text-ui

The approver

This notifies you when an incoming message arrives and hangs in the system tray until you're ready to start a chat.

ktp-approver project page

git clone kde:ktp-approver

Workspace Integration Module

Sits in KDED and sets your presence automatically to 'Away' after certain amount of time, can set your presence to your current song from an mpris-enabled media player (Amarok and Clementine work great) and also contains an error handler which is very important if you want to be notified of errors

ktp-kded-module project page

git clone kde:ktp-kded-module

Auth handler

Handles kwallet integration, and prompts/sends passwords to connection managers when requested.

ktp-auth-handler project page

git clone kde:ktp-auth-handler

Presence Plasmoid and Dataengine

This shows the online-ness of your accounts and allows to bring accounts online/offline

ktp-presence-applet project page

git clone kde:ktp-presence-applet

The File Transfer Handler

Does the actual transferring of files between two contacts. Displays progress via KJob

ktp-filetransfer-handler project page

git clone kde:ktp-filetransfer-handler

Dolphin Integration

Allows you to start a file transfer via a handy shortcut in your file manager.

ktp-send-file project page

git clone kde:ktp-send-file

Call window App

This application provides a voice/video chat window (optional). Note that this requires QtGstreamer.

ktp-call-ui project page.

git clone kde:ktp-call-ui

Experimental Components not part of KTp (just yet)

Shared desktop ontologies

git clone git://oscaf.git.sourceforge.net/gitroot/oscaf/shared-desktop-ontologies

Nepomuk Service

NOTE: git master probably won't compile.

The Nepomuk service obsoletes the daemon and integrates Telepathy with Nepomuk, which is required by the Contact List application. Code is in git here

git clone kde:telepathy-nepomuk-service