KTp/Getting Set Up: Difference between revisions

From KDE Community Wiki
< KTp
(→‎Using kdesrc-build: Add info on additional build settings for kdesrc-build)
(Old installation guide is updated, according to d_ed's scratch)
Line 34: Line 34:
</syntaxhighlight>
</syntaxhighlight>


== Scripted setup ==
==Recommended installation==
This method is based on a scratch of David Edmundson which is located [http://quickgit.kde.org/?p=scratch%2Fdavidedmundson%2Fktp-bootstrap.git here]. You may pull it on your local machine and run '''install.sh'''.


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]
<syntaxhighlight lang="bash">
git clone git://anongit.kde.org/scratch/davidedmundson/ktp-bootstrap.git
cd ktp-bootstrap
sh install.sh
</syntaxhighlight>
 
 
'''Warning:''' While using some Ubuntu distributions you would like to have these packages installed (they are critical to build Ktp on your machine) from apt:
 
<syntaxhighlight lang="bash">
sudo apt-get install doxygen graphviz libfarstream-0.1-dev libgstreamer-plugins-base0.10-dev libgstreamer0.10-dev libqt4-dev libtelepathy-farstream-0.4-dev libtelepathy-glib-dev pkg-config cmake debhelper kdelibs5-dev libtelepathy-logger-dev libtelepathy-logger-qt4-dev libtelepathy-qt4-dev pkg-kde-tools bison cmake flex libqt4-dev libqtgstreamer-dev libtelepathy-glib-dev libtelepathy-logger-dev libxml2-dev python python-dev libxml-parser-perl librpc-xml-perl
</syntaxhighlight>
 
 
As soon as your installation has finished you can start Ktp by choosing '''Instant Messaging Contact List''' from the menu of your system. Alternatively, you may want to discover source yourself, e.g. if you are planning to contribute. Then, you can go path '''~/ktp/ktp/ktp-contact-list''' (git repository is already set there!)


== Using kdesrc-build ==
== Using kdesrc-build ==
Line 62: Line 77:
<syntaxhighlight lang="cmake">
<syntaxhighlight lang="cmake">
cmake-options -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake-qt4 -DPYTHON_EXECUTABLE=/usr/bin/python2
cmake-options -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake-qt4 -DPYTHON_EXECUTABLE=/usr/bin/python2
</syntaxhighlight>
== Compiling manually ==
<div style="color: red">
'''*ALL*''' the components depend on ktp-common-internals library, make sure you build that one first. Both ktp-contact-list and ktp-text-ui depend on telepathy-logger-qt, so be sure to have that one before building these two.</div>
=== 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 Logger Qt Bindings===
Needed to compile the contact list app. If it complains about missing QtGLib, install qt-gstreamer-devel package (libqtgstreamer-dev on k/ubuntu).
[https://projects.kde.org/projects/extragear/network/telepathy/telepathy-logger-qt telepathy-logger-qt project page]
<syntaxhighlight lang="bash">
git clone kde:telepathy-logger-qt
</syntaxhighlight>
===Telepathy Accounts KCM===
The next thing to get set up is the Telepathy Accounts KCM. This is the UI for account management. Note that this requires [[#Telepathy Logger Qt Bindings|telepathy-logger-qt]].
[https://projects.kde.org/projects/extragear/network/telepathy/ktp-accounts-kcm ktp-accounts-kcm project page]
<syntaxhighlight lang="bash">
git clone kde:ktp-accounts-kcm
</syntaxhighlight>
This can be compiled and installed by the usual KDE build procedure.
===Contact List App===
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]
<syntaxhighlight lang="bash">
git clone kde:ktp-contact-list
</syntaxhighlight>
===Chat window App===
This application provides a text chat window.
[https://projects.kde.org/projects/extragear/network/telepathy/ktp-text-ui ktp-text-ui project page]
<syntaxhighlight lang="bash">
git clone kde:ktp-text-ui
</syntaxhighlight>
===The approver===
This notifies you when an incoming message arrives and hangs in the system tray until you're ready to start a chat.
[https://projects.kde.org/projects/extragear/network/telepathy/ktp-approver ktp-approver project page]
<syntaxhighlight lang="bash">
git clone kde:ktp-approver
</syntaxhighlight>
===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
[https://projects.kde.org/projects/extragear/network/telepathy/ktp-kded-module ktp-kded-module project page]
<syntaxhighlight lang="bash">
git clone kde:ktp-kded-module
</syntaxhighlight>
===Auth handler===
Handles kwallet integration, and prompts/sends passwords to connection managers when requested.
[https://projects.kde.org/projects/extragear/network/telepathy/ktp-auth-handler ktp-auth-handler project page]
<syntaxhighlight lang="bash">
git clone kde:ktp-auth-handler
</syntaxhighlight>
===Applets===
[https://projects.kde.org/projects/extragear/network/telepathy/ktp-desktop-applets ktp-desktop-applets project page]
<syntaxhighlight lang="bash">
git clone kde:ktp-desktop-applets
</syntaxhighlight>
===The File Transfer Handler===
Does the actual transferring of files between two contacts. Displays progress via KJob
[https://projects.kde.org/projects/extragear/network/telepathy/ktp-filetransfer-handler ktp-filetransfer-handler project page]
<syntaxhighlight lang="bash">
git clone kde:ktp-filetransfer-handler
</syntaxhighlight>
=== Dolphin Integration ===
Allows you to start a file transfer via a handy shortcut in your file manager.
[https://projects.kde.org/projects/extragear/network/telepathy/ktp-send-file ktp-send-file project page]
<syntaxhighlight lang="bash">
git clone kde:ktp-send-file
</syntaxhighlight>
===Call window App===
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].
<syntaxhighlight lang="bash">
git clone kde:ktp-call-ui
</syntaxhighlight>
</syntaxhighlight>



Revision as of 17:20, 14 December 2013

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 KDE 4.10 or 4.9. We do not require latest git KDE.

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.

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

Recommended installation

This method is based on a scratch of David Edmundson which is located here. You may pull it on your local machine and run install.sh.

git clone git://anongit.kde.org/scratch/davidedmundson/ktp-bootstrap.git
cd ktp-bootstrap
sh install.sh


Warning: While using some Ubuntu distributions you would like to have these packages installed (they are critical to build Ktp on your machine) from apt:

sudo apt-get install doxygen graphviz libfarstream-0.1-dev libgstreamer-plugins-base0.10-dev libgstreamer0.10-dev libqt4-dev libtelepathy-farstream-0.4-dev libtelepathy-glib-dev pkg-config cmake debhelper kdelibs5-dev libtelepathy-logger-dev libtelepathy-logger-qt4-dev libtelepathy-qt4-dev pkg-kde-tools bison cmake flex libqt4-dev libqtgstreamer-dev libtelepathy-glib-dev libtelepathy-logger-dev libxml2-dev python python-dev libxml-parser-perl librpc-xml-perl


As soon as your installation has finished you can start Ktp by choosing Instant Messaging Contact List from the menu of your system. Alternatively, you may want to discover source yourself, e.g. if you are planning to contribute. Then, you can go path ~/ktp/ktp/ktp-contact-list (git repository is already set there!)

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-filetransfer-handler ktp-send-file ktp-desktop-applets ktp-call-ui
    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-text-ui and ktp-contact-list).

NOTE: If you have both qt4 and qt5 installed, you may need tell kdesrc-build to use qt4 by including the following in ~/.kdesrc-buildrc (global section):

cmake-options -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake-qt4


Similarly, if you have both Python 3 and Python 2 installed, you may need to point to the python2 path:

cmake-options -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake-qt4 -DPYTHON_EXECUTABLE=/usr/bin/python2

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