Jump to content

KTp/Packaging Guide: Difference between revisions

From KDE Community Wiki
< KTp
Pmello (talk | contribs)
Update page to be transcludable on main KTp project page
 
(47 intermediate revisions by 22 users not shown)
Line 1: Line 1:
Packaging KDE-Telepathy is complicated for two reasons: firstly, due to the modular nature of Telepathy, there are several distinct components in separate git repositories. Secondly, there are large numbers of runtime interdependencies to worry about. This page attempts to ease packaging KDE-Telepathy in a useful way by explaining these issues.
<noinclude>{{:KTp/Header}}</noinclude>
Packaging KDE-Telepathy is complicated for two reasons:
# Due to the modular nature of Telepathy, there are several distinct components, each in separate Git repositories.
# There are large numbers of runtime inter-dependencies to worry about.


==Upstream Packages==
This page attempts to ease packaging KDE-Telepathy in a useful way by explaining these issues.
Two upstream packages are essential for KDE-Telepathy to work.
* [http://telepathy.freedesktop.org/releases/telepathy-qt4/ telepathy-qt4] >= LATEST (currently 0.7.4, Build and Runtime Dependency)
* [http://telepathy.freedesktop.org/releases/telepathy-mission-control/ telepathy-mission-control] >= 5.7.9 (Runtime Dependency)


We're also using some bits from '''kdelibs 4.7.0''' (Build and Runtime Dependency).
=== Upstream packages ===
Several upstream packages are essential for KDE-Telepathy to work. These are the ones encountered as dependencies in a normal compilation:
* [https://telepathy.freedesktop.org/releases/telepathy-qt/ <code>telepathy-qt</code>] >= LATEST (currently 0.9.8), Build and Runtime Dependency
* [https://telepathy.freedesktop.org/releases/telepathy-mission-control/ <code>telepathy-mission-control</code>] >= 5.7.9 (currently 5.16.6), Runtime Dependency
* [https://qjson.sourceforge.net/ <code>QJson</code>] Build Dependency for [https://invent.kde.org/network/ktp-auth-handler <code>ktp-auth-handler</code>]
* [https://gstreamer.freedesktop.org/modules/qt-gstreamer.html <code>QtGStreamer</code>] Build Dependency for [https://invent.kde.org/network/ktp-call-ui <code>ktp-call-ui</code>]
* [https://telepathy.freedesktop.org/releases/telepathy-logger/ <code>telepathy-logger</code>] Build and Runtime Dependency for [https://invent.kde.org/network/telepathy-logger-qt <code>telepathy-logger-qt</code>]
* [https://invent.kde.org/unmaintained/kdelibs <code>kdelibs</code>] >= 4.7.0 (currently 4.14.0), Build and Runtime Dependency


The IM networks that KDE-Telepathy can connect to are decided by which Telepathy Connection Managers are installed. These are runtime only dependencies, but which ones are installed will decide what IM networks KDE-Telepathy supports. The following are the ones we recommend - whether they are installed optionally or required is, of course, up to you.
The IM networks that KDE-Telepathy can connect to are determined by which ''Telepathy Connection Managers'' are installed. These are runtime-only dependencies, but which ones are installed will decide what IM networks KDE-Telepathy supports. The following are the ones we recommend&mdash;whether they are installed optionally or required is, of course, up to you.
* [https://telepathy.freedesktop.org/releases/telepathy-gabble/ <code>telepathy-gabble</code>] >=  0.13.7 (currently 0.18.4), for Jabber/XMPP support, including Google Talk and Facebook, might very probably crash with earlier versions
* [https://telepathy.freedesktop.org/releases/telepathy-haze/ <code>telepathy-haze</code>] for all the other protocols, as supported by [https://keep.imfreedom.org/pidgin/pidgin/file/tip/libpurple <code>libpurple</code>]
* [https://telepathy.freedesktop.org/releases/telepathy-farstream/ <code>telepathy-farstream</code>] should be compiled '''before''' <code>telepathy-qt</code> for compilation of <code>ktp-call-ui</code> to proceed


* [http://telepathy.freedesktop.org/releases/telepathy-gabble/ telepathy-gabble 0.13.7] (for Jabber support, including Google Talk and Facebook, might very probably crash with earlier versions)
=== KDE-Telepathy packages ===
* [http://telepathy.freedesktop.org/releases/telepathy-haze/ telepathy-haze] (for all the other protocols, as supported by libpurple).
The different components of KDE-Telepathy are housed in separate Git repositories on KDE Invent's [https://invent.kde.org/network Network group]. Some of these components are currently recommended to use, while others are not yet ready to be installed by users.


==KDE-Telepathy Packages==
==== Ready components ====
The different components of KDE-Telepathy are housed in separate git repositories on projects.kde.org. Some of these components are currently recommended to use. Others are not yet ready to be installed by users.
 
===Ready Components===
These components have reached a level of maturity where they are interesting to users. We recommend providing these components at the current time.
These components have reached a level of maturity where they are interesting to users. We recommend providing these components at the current time.


{| class="wikitable" border="1"
{| class="wikitable" style="border-width: 1px;"
! Name !! Description !! Dependencies
! scope="col" | Name
|-
! scope="col" | Description
| [https://projects.kde.org/projects/playground/network/telepathy/telepathy-accounts-kcm telepathy-kde-accounts-kcm] || Account management KCM || telepathy-qt4, data from telepathy-kde-contact-list (at runtime)
! scope="col" | Dependencies
|-
|-
| [https://projects.kde.org/projects/playground/network/telepathy/telepathy-approver telepathy-kde-approver] || KDED module that shows a notification when somebody starts a chat with you || telepathy-qt4, data from telepathy-kde-contact-list (at runtime)
! scope="row" style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-common-internals <code>ktp-common-internals</code>]
|-
| Internal library
| [https://projects.kde.org/projects/playground/network/telepathy/telepathy-chat-handler telepathy-kde-text-ui] || Text chat application || telepathy-qt4, data from telepathy-kde-contact-list (at runtime)
| style="text-align: center; white-space: nowrap;" | [https://telepathy.freedesktop.org/releases/telepathy-qt/ <code>telepathy-qt</code>]
|-
|-
| [https://projects.kde.org/projects/playground/network/telepathy/telepathy-contact-list telepathy-kde-contact-list] || Contact list application - Also provides icons and other data files that are shared among the other applications || telepathy-qt4
! scope="row" style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-accounts-kcm <code>ktp-accounts-kcm</code>]
|-
| Account management KCM
| [https://projects.kde.org/projects/playground/network/telepathy/telepathy-kded-module telepathy-kde-integration-module] || Workspace integration module - provides several plugins like auto-away, the infamous 'Now listening to...' and also an '''error handler''' (important!!) || telepathy-qt4
| style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-common-internals <code>ktp-common-internals</code>]
|-
|-
| [https://projects.kde.org/projects/playground/network/telepathy/telepathy-presence-dataengine telepathy-kde-presence-dataengine] || Plasma dataengine that provides telepathy data to plasmoids || telepathy-qt4
! scope="row" style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-approver <code>ktp-approver</code>]
|-
| KDED module that shows a notification when somebody starts a chat with you
| [https://projects.kde.org/projects/playground/network/telepathy/telepathy-presence-applet telepathy-kde-presence-applet] || Plasma widget for setting your online presence - acts as the central system tray icon of traditional IM clients || telepathy-kde-presence-dataengine (at runtime), data from telepathy-kde-contact-list (at runtime)
| style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-common-internals <code>ktp-common-internals</code>]
|-
|-
| [https://projects.kde.org/projects/playground/network/telepathy/telepathy-filetransfer-handler telepathy-kde-filetransfer-handler] || Background application for handling file tranfers || telepathy-qt4
! scope="row" style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-text-ui <code>ktp-text-ui</code>]
|-
| Text chat application
| [https://projects.kde.org/projects/playground/network/telepathy/telepathy-auth-handler telepathy-kde-auth-handler] || Background application for handling passwords and ssl certificates || telepathy-qt4
| style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-common-internals <code>ktp-common-internals</code>]
|-
|-
| [https://projects.kde.org/projects/playground/network/telepathy/telepathy-send-file telepathy-kde-send-file] || Dolphin/konqueror context menu plugin for sending files easily to contacts || telepathy-qt4, telepathy-kde-filetransfer-handler (at runtime), data from telepathy-kde-contact-list (at runtime)
! scope="row" style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-contact-list <code>ktp-contact-list</code>]
|-
| Contact list application &ndash; also provides icons and other data files that are shared among the other applications
| [https://projects.kde.org/projects/playground/network/telepathy/telepathy-contact-applet telepathy-kde-contact-applet] || Plasma applet for displaying contacts || telepathy-qt4
| style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-common-internals <code>ktp-common-internals</code>]
|-
|-
! scope="row" style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-kded-module <code>ktp-kded-module</code>]
| Workspace integration module &ndash; provides several plugins like auto-away, the infamous 'Now listening to...' and also an error handler (important!!)
| style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-common-internals <code>ktp-common-internals</code>]
|-
! scope="row" style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-desktop-applets <code>ktp-desktop-applets</code>]
| Plasma widgets &ndash; provides a presence applet which acts as the central system tray icon of traditional IM clients, a simplified contact list, an applet which represents a single contact and can be used to trigger actions like 'Send mail' and 'Initiate conversation', …
| style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-common-internals <code>ktp-common-internals</code>]
|-
! scope="row" style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-filetransfer-handler <code>ktp-filetransfer-handler</code>]
| Background application for handling file transfers
| style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-common-internals <code>ktp-common-internals</code>]
|-
! scope="row" style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-auth-handler <code>ktp-auth-handler</code>]
| Background application for handling passwords and SSL/TLS certificates
| style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-common-internals <code>ktp-common-internals</code>]
|-
! scope="row" style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-send-file <code>ktp-send-file</code>]
| Dolphin/Konqueror context menu plugin for easily sending files to contacts
| style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-common-internals <code>ktp-common-internals</code>]<br />[https://invent.kde.org/network/ktp-filetransfer-handler <code>ktp-filetransfer-handler</code>] <small>(at runtime)</small>
|-
! scope="row" style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-call-ui <code>ktp-call-ui</code>]
| Voice and video chat with contacts
| style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-common-internals <code>ktp-common-internals</code>]
|-
! scope="row" style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-contact-runner <code>ktp-contact-runner</code>]
| Show contacts in KRunner
| style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-common-internals <code>ktp-common-internals</code>]
|-
! scope="row" style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/telepathy-logger-qt <code>telepathy-logger-qt</code>]
| Provides support for loading saved message logs
| style="text-align: center; white-space: nowrap;" | [https://invent.kde.org/network/ktp-common-internals <code>ktp-common-internals</code>]<br />[https://telepathy.freedesktop.org/releases/telepathy-logger/ <code>telepathy-logger</code>]<br />[https://gstreamer.freedesktop.org/src/qt-gstreamer/ <code>QtGLib</code>] <small> (from QtGStreamer)</small>
|}
|}
* '''Required components for basic functionality:'''
** [https://invent.kde.org/network/ktp-accounts-kcm <code>ktp-accounts-kcm</code>]
** [https://invent.kde.org/network/ktp-contact-list <code>ktp-contact-list</code>]
** [https://invent.kde.org/network/ktp-text-ui <code>ktp-text-ui</code>]
** [https://invent.kde.org/network/ktp-auth-handler <code>ktp-auth-handler</code>]
** [https://invent.kde.org/network/ktp-kded-module <code>ktp-kded-module</code>]
* '''Highly recommended components (should be installed by default):'''
** [https://invent.kde.org/network/ktp-approver <code>ktp-approver</code>]
** [https://invent.kde.org/network/ktp-desktop-applets <code>ktp-desktop-applets</code>]
** [https://invent.kde.org/network/ktp-call-ui <code>ktp-call-ui</code>]
** [https://invent.kde.org/network/ktp-filetransfer-handler <code>ktp-filetransfer-handler</code>]
** [https://invent.kde.org/network/telepathy-logger-qt <code>telepathy-logger-qt</code>]
** [https://invent.kde.org/network/ktp-contact-runner <code>ktp-contact-runner</code>]
* '''Optional components:'''
** [https://invent.kde.org/network/ktp-send-file <code>ktp-send-file</code>]


==== Experimental components ====
Several other components are under development, however unless they are listed above, we do not recommend packaging them yet. This is because they are subject to major changes/removal at any time, and are not ready for end users.


'''Required components for basic functionality:''' telepathy-kde-accounts-kcm, telepathy-kde-contact-list, telepathy-kde-text-ui, telepathy-auth-handler, telepathy-kde-integration-module
==== Note about accounts-kcm-plugins ====
 
Our <code>0.1.0</code> release had an extra package called <code>telepathy-kde-accounts-kcm-plugins</code>. These plugins have now been merged into the main <code>telepathy-kde-accounts-kcm</code> package and are no longer shipped separately.
'''Highly recommended components (should be installed by default):''' telepathy-kde-approver, telepathy-kde-presence-applet, telepathy-kde-presence-dataengine, telepathy-kde-filetransfer-handler
 
'''Optional components:''' telepathy-kde-send-file, telepathy-kde-contact-applet
 
===Experimental Components===
We have several other components under development, however, unless they are listed above we do not recommend packaging them. This is because they are subject to major changes/removal at any time, and are not ready for end users yet.
 
===Note about accounts-kcm-plugins===
Our 0.1.0 release had an extra package called telepathy-kde-accounts-kcm-plugins. These plugins have now been merged to the main telepathy-kde-accounts-kcm package and are no longer shipped separately.
 
==Release Tarballs==
The latest release is the 0.2.0 alpha release.
 
Tarballs can be found at the KDE ftp mirrors:
http://download.kde.org/download.php?url=unstable/telepathy-kde/0.2.0/src/


==Distributions==
=== Release tarballs ===
The latest release is <code>0.9.0</code>. Tarballs can be found at the [https://download.kde.org/Attic/kde-telepathy/0.9.0/src/ KDE FTP mirrors].


Here is a list of known packaging efforst for various distributions. If you are also doing packages for a distribution, add your information here.
=== Distributions ===
Here is a list of known packaging efforts for various distributions. If you are also doing packages for a distribution, please add your information here.


{| border="1"
{| class="wikitable" style="border-width: 1px; margin: 1em auto;"
! Distro !! Packager !! Links
! scope="col" | Distro
|-
! scope="col" | Packager
| Debian || George Kiagiadakis <[email protected]> || http://anonscm.debian.org/gitweb/ (users/gkiagia-guest/telepathy-kde* repos)
! scope="col" | Links
|-
|-
|-
! scope="row" | Debian
| Ubuntu || Michał Zając <[email protected]> || Source: same as debian
| [mailto:[email protected] George Kiagiadakis]
Binaries: https://launchpad.net/~telepathy-kde/+archive/ppa (stable) <br />
| https://salsa.debian.org/qt-kde-team/kde/meta-kde-telepathy
Binaries: https://launchpad.net/~telepathy-kde/+archive/daily-builds (latest)
|-
|-
! scope="row" | Ubuntu
|-
| [mailto:[email protected] Michał Zając]
| openSUSE || Christophe Giboudeaux (krop on irc #opensuse-kde) || http://download.opensuse.org/repositories/KDE:/Unstable:/Playground/
| Source: https://code.launchpad.net/ubuntu/+source/meta-kde-telepathy<br />
|-
Binaries (stable): https://launchpad.net/~telepathy-kde/+archive/ubuntu/ppa<br />
| Arch Linux || Andrea Scarpino (bash) <[email protected]> ||
Binaries (latest): https://launchpad.net/~telepathy-kde/+archive/ubuntu/daily-builds
https://www.archlinux.org/groups/x86_64/telepathy-kde/
|-
|-
! scope="row" | openSUSE
| Gentoo || KDE Herd <[email protected]> ||
| [mailto:opensuse-kde@opensuse.org The openSUSE Community]
http://git.overlays.gentoo.org/gitweb/?p=proj/kde.git
| https://en.opensuse.org/KDE_Telepathy
|-
|-
| Chakra || Anke Boersma <abveritas@chakra-project.org> ||
! scope="row" | Arch Linux
http://www.chakra-project.org/packages/index.php?act=search&searchpattern=telepathy
| [mailto:[email protected] Andrea Scarpino (ilpianista)]
|-
| https://archlinux.org/packages/?q=telepathy
|-
! scope="row" | Gentoo
| [mailto:[email protected] KDE Project]
| https://packages.gentoo.org/packages/kde-apps/plasma-telepathy-meta
|-
! scope="row" | FreeBSD
| [mailto:avilla@FreeBSD.org Alberto Villa (avilla)]
| https://www.freshports.org/net-im/kde-telepathy/
|-
! scope="row" | Fedora
| [mailto:jgrulich@redhat.com Jan Grulich (jgrulich)]
| https://src.fedoraproject.org/rpms/telepathy-accounts-signon
|}
|}

Latest revision as of 22:27, 26 February 2024

Project logo Welcome to the
KDE Telepathy Development Wiki
Current Version: 23.07.70

Open Hub project report for KDE Telepathy

Packaging KDE-Telepathy is complicated for two reasons:

  1. Due to the modular nature of Telepathy, there are several distinct components, each in separate Git repositories.
  2. There are large numbers of runtime inter-dependencies to worry about.

This page attempts to ease packaging KDE-Telepathy in a useful way by explaining these issues.

Upstream packages

Several upstream packages are essential for KDE-Telepathy to work. These are the ones encountered as dependencies in a normal compilation:

The IM networks that KDE-Telepathy can connect to are determined by which Telepathy Connection Managers are installed. These are runtime-only dependencies, but which ones are installed will decide what IM networks KDE-Telepathy supports. The following are the ones we recommend—whether they are installed optionally or required is, of course, up to you.

  • telepathy-gabble >= 0.13.7 (currently 0.18.4), for Jabber/XMPP support, including Google Talk and Facebook, might very probably crash with earlier versions
  • telepathy-haze for all the other protocols, as supported by libpurple
  • telepathy-farstream should be compiled before telepathy-qt for compilation of ktp-call-ui to proceed

KDE-Telepathy packages

The different components of KDE-Telepathy are housed in separate Git repositories on KDE Invent's Network group. Some of these components are currently recommended to use, while others are not yet ready to be installed by users.

Ready components

These components have reached a level of maturity where they are interesting to users. We recommend providing these components at the current time.

Name Description Dependencies
ktp-common-internals Internal library telepathy-qt
ktp-accounts-kcm Account management KCM ktp-common-internals
ktp-approver KDED module that shows a notification when somebody starts a chat with you ktp-common-internals
ktp-text-ui Text chat application ktp-common-internals
ktp-contact-list Contact list application – also provides icons and other data files that are shared among the other applications ktp-common-internals
ktp-kded-module Workspace integration module – provides several plugins like auto-away, the infamous 'Now listening to...' and also an error handler (important!!) ktp-common-internals
ktp-desktop-applets Plasma widgets – provides a presence applet which acts as the central system tray icon of traditional IM clients, a simplified contact list, an applet which represents a single contact and can be used to trigger actions like 'Send mail' and 'Initiate conversation', … ktp-common-internals
ktp-filetransfer-handler Background application for handling file transfers ktp-common-internals
ktp-auth-handler Background application for handling passwords and SSL/TLS certificates ktp-common-internals
ktp-send-file Dolphin/Konqueror context menu plugin for easily sending files to contacts ktp-common-internals
ktp-filetransfer-handler (at runtime)
ktp-call-ui Voice and video chat with contacts ktp-common-internals
ktp-contact-runner Show contacts in KRunner ktp-common-internals
telepathy-logger-qt Provides support for loading saved message logs ktp-common-internals
telepathy-logger
QtGLib (from QtGStreamer)

Experimental components

Several other components are under development, however unless they are listed above, we do not recommend packaging them yet. This is because they are subject to major changes/removal at any time, and are not ready for end users.

Note about accounts-kcm-plugins

Our 0.1.0 release had an extra package called telepathy-kde-accounts-kcm-plugins. These plugins have now been merged into the main telepathy-kde-accounts-kcm package and are no longer shipped separately.

Release tarballs

The latest release is 0.9.0. Tarballs can be found at the KDE FTP mirrors.

Distributions

Here is a list of known packaging efforts for various distributions. If you are also doing packages for a distribution, please add your information here.

Distro Packager Links
Debian George Kiagiadakis https://salsa.debian.org/qt-kde-team/kde/meta-kde-telepathy
Ubuntu Michał Zając Source: https://code.launchpad.net/ubuntu/+source/meta-kde-telepathy

Binaries (stable): https://launchpad.net/~telepathy-kde/+archive/ubuntu/ppa
Binaries (latest): https://launchpad.net/~telepathy-kde/+archive/ubuntu/daily-builds

openSUSE The openSUSE Community https://en.opensuse.org/KDE_Telepathy
Arch Linux Andrea Scarpino (ilpianista) https://archlinux.org/packages/?q=telepathy
Gentoo KDE Project https://packages.gentoo.org/packages/kde-apps/plasma-telepathy-meta
FreeBSD Alberto Villa (avilla) https://www.freshports.org/net-im/kde-telepathy/
Fedora Jan Grulich (jgrulich) https://src.fedoraproject.org/rpms/telepathy-accounts-signon