aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>2011-03-23 03:58:36 +0800
committerEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>2011-04-09 00:03:39 +0800
commitf51b7cd067921da3d8f80986eff3cc2d67e8674c (patch)
treebad048d9bdc66b457d91ffce7990e3ac86a97fb6
parent14c784281eca531135cc07009fb6d4a463d04ac2 (diff)
downloadgsoc2013-empathy-f51b7cd067921da3d8f80986eff3cc2d67e8674c.tar
gsoc2013-empathy-f51b7cd067921da3d8f80986eff3cc2d67e8674c.tar.gz
gsoc2013-empathy-f51b7cd067921da3d8f80986eff3cc2d67e8674c.tar.bz2
gsoc2013-empathy-f51b7cd067921da3d8f80986eff3cc2d67e8674c.tar.lz
gsoc2013-empathy-f51b7cd067921da3d8f80986eff3cc2d67e8674c.tar.xz
gsoc2013-empathy-f51b7cd067921da3d8f80986eff3cc2d67e8674c.tar.zst
gsoc2013-empathy-f51b7cd067921da3d8f80986eff3cc2d67e8674c.zip
Add packaging
-rw-r--r--debian/README.source58
-rw-r--r--debian/changelog1264
-rw-r--r--debian/compat1
-rw-r--r--debian/control127
-rw-r--r--debian/copyright159
-rw-r--r--debian/empathy-common.install4
-rw-r--r--debian/empathy.install9
-rw-r--r--debian/gbp.conf9
-rw-r--r--debian/indicators/empathy1
-rw-r--r--debian/nautilus-sendto-empathy.install1
-rw-r--r--debian/patches/01_lpi.patch74
-rw-r--r--debian/patches/02_notifications_focus.patch14
-rw-r--r--debian/patches/10_use_notify_osd_icons.patch21
-rw-r--r--debian/patches/11_empathy_accounts_category.patch16
-rw-r--r--debian/patches/20_libindicate.patch1652
-rw-r--r--debian/patches/21_login_indicators.patch58
-rw-r--r--debian/patches/23_idomessagedialog_for_voip_and_ft.patch208
-rw-r--r--debian/patches/31_really_raise_window.patch75
-rw-r--r--debian/patches/34_start_raised_execpt_in_session.patch35
-rw-r--r--debian/patches/36_chat_window_default_size.patch21
-rw-r--r--debian/patches/37_facebook_default.patch21
-rw-r--r--debian/patches/38_lp_569289.patch13
-rw-r--r--debian/patches/40_unity_launcher_count.patch282
-rw-r--r--debian/patches/41_unity_launcher_progress.patch159
-rw-r--r--debian/patches/series14
-rwxr-xr-xdebian/rules42
-rw-r--r--debian/source/format1
-rw-r--r--debian/source/options1
-rw-r--r--debian/update-patches.mk10
-rw-r--r--debian/watch2
30 files changed, 4352 insertions, 0 deletions
diff --git a/debian/README.source b/debian/README.source
new file mode 100644
index 000000000..1cb46541e
--- /dev/null
+++ b/debian/README.source
@@ -0,0 +1,58 @@
+Patches
+=======
+
+This package uses cdbs simple-patch-system to store modifications to the
+upstream source.
+
+To get the fully patched source: make -f debian/rules patch
+
+To revert to what's in git: make -f debian/rules unpatch
+
+To add a patch: obtain a diff and put it in debian/patches, or see below
+
+To remove an existing patch: delete it from debian/patches
+
+Packaging using git
+===================
+
+The repository contains an appropriate debian/gbp.conf to build this package
+using git-buildpackage. The debian branch contains the latest upstream versions
+(for unstable, or experimental while a freeze is in progress). The debian-lenny
+branch contains versions targeted for lenny, etc.
+
+Here's how to build it:
+
+ git clone git://git.debian.org/git/pkg-telepathy/empathy.git
+ cd empathy
+ git checkout debian
+ git-buildpackage -us -uc
+
+or for testing/stable branches like debian-lenny:
+
+ git clone git://git.debian.org/git/pkg-telepathy/empathy.git
+ cd empathy
+ git checkout debian-lenny
+ git-buildpackage -us -uc --git-debian-branch=debian-lenny
+
+The branch 'upstream' is a copy of the contents of upstream tarballs. To import
+upstream tarballs use:
+
+ git checkout debian
+ git-import-orig ~/empathy-2.x.tar.gz
+
+The branch 'debian-patches' is 'upstream' plus any patches needed for Debian.
+It should be rebased on 'upstream' after each upstream release:
+
+ git checkout debian-patches
+ git rebase upstream
+
+The preferred way of adding patches is to cherry pick from an upstream
+repository:
+
+ git remote add collabora \
+ git+ssh://git.collabora.co.uk/git/empathy.git
+ git fetch
+ git checkout debian-patches
+ git cherry-pick xxxxxxxxxxxxxx
+ git checkout debian
+ fakeroot debian/rules update-patches
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 000000000..1295f808c
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,1264 @@
+empathy (2.33.4+git.20110322.4c31c2-0ubuntu0+easton1) natty; urgency=low
+
+ * New upstream snapshot.
+ + debian/patches/23_idomessagedialog_for_voip_and_ft.patch
+ debian/patches/40_unity_launcher_count.patch:
+ - Refreshed.
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org> Tue, 22 Mar 2011 20:57:16 +0000
+
+empathy (2.33.4+git.20110318.9d0904-0ubuntu0+easton1) natty; urgency=low
+
+ * New upstream snapshot.
+ * Sync patches with Ubuntu.
+ * Refresh patches.
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org> Fri, 18 Mar 2011 19:00:06 +0000
+
+empathy (2.33.4+git.20110316.7bae28-0ubuntu0+easton1) natty; urgency=low
+
+ * New upstream snapshot.
+ + debian/control:
+ - Bump folks build dependencies.
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org> Wed, 16 Mar 2011 19:29:34 +0000
+
+empathy (2.33.3+git.20110314.0bb62c-0ubuntu0+easton1) natty; urgency=low
+
+ * Fix versioning, this is 2.33.3 + plus some changes.
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org> Mon, 14 Mar 2011 20:58:40 +0000
+
+empathy (2.33.3~git.20110314.0bb62c-0ubuntu0+easton1) natty; urgency=low
+
+ [ Sjoerd Simons ]
+ * debian/patches/23_idomessagedialog_for_voip_and_ft.patch
+ + Behave the same for SM and Call channels.
+
+ [ Emilio Pozuelo Monfort ]
+ * New upstream snapshot.
+ + debian/control:
+ - Bump libtelepathy-glib-dev and libgstreamer0.10-dev build-deps.
+
+ -- Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk> Mon, 14 Mar 2011 16:21:49 +0000
+
+empathy (2.33.3~git.20110310.40dfa0-1) natty; urgency=low
+
+ * New upstream snapshot with Skype modifications.
+
+ -- Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk> Wed, 09 Mar 2011 14:09:11 +0000
+
+empathy (2.33.2-0ubuntu2) natty; urgency=low
+
+ * debian/patches/23_idomessagedialog_for_voip_and_ft.patch
+ - Make incoming call and file transfer dialogs decorated
+
+ -- Ken VanDine <ken.vandine@canonical.com> Thu, 24 Feb 2011 15:52:19 -0500
+
+empathy (2.33.2-0ubuntu1) natty; urgency=low
+
+ * New upstream release
+ * -debian/patches/reword_subscription_dailog_to_be_less_technical.patch
+ - merged upstream
+ * debian/control
+ - Bumped build depends for tp-logger, tp-glib, folks and libunity-dev
+
+ -- Ken VanDine <ken.vandine@canonical.com> Thu, 24 Feb 2011 11:54:47 -0500
+
+empathy (2.33.1-0ubuntu4) natty; urgency=low
+
+ * debian/patches/41_unity_launcher_progress.patch
+ - Added support for file transfer progress in the unity launcher
+ * debian/patches/40_unity_launcher_count.patch
+ - renamed for consistency and clarity
+
+ -- Ken VanDine <ken.vandine@canonical.com> Tue, 15 Feb 2011 15:36:35 -0500
+
+empathy (2.33.1-0ubuntu3) natty; urgency=low
+
+ [ Brian Curtis ]
+ * debian/patches/40_libunity.patch
+ -add launcher support for empathy
+ * debian/changelog
+ -add libunity-dev to deps
+
+ [ Ken VanDine ]
+ * debian/patches/40_libunity.patch
+ - cleaned up some debugging messages
+ - unref the launcher
+
+ -- Brian Curtis <bcurtiswx@ubuntu.com> Mon, 14 Feb 2011 17:28:40 -0500
+
+empathy (2.33.1-0ubuntu2) natty; urgency=low
+
+ * debian/patches/23_idomessagedialog_for_voip_and_ft.patch
+ - Use IdoMessageDialog for incoming file transfers as well as voip
+
+ -- Ken VanDine <ken.vandine@canonical.com> Mon, 14 Feb 2011 15:48:48 -0500
+
+empathy (2.33.1-0ubuntu1) natty; urgency=low
+
+ [ Brian Curtis ]
+ * New Upstream Release
+ * debian/control
+ -bumped dep on folks, telepathy-glib and libnotify
+ * debian/patches
+ -removed patches now in source
+ -refreshed patches
+
+ [ Ken VanDine ]
+ * debian/patches/20_libindicate.patch
+ - Updated notification code to match the libnotify4-dev API
+ * debian/rules
+ - Explicitly disable location awareness
+
+ -- Ken VanDine <ken.vandine@canonical.com> Thu, 03 Feb 2011 12:17:02 -0500
+
+empathy (2.32.2-0ubuntu8) natty; urgency=low
+
+ * debian/patches/23_idomessagedialog_for_voip.patch
+ - Raise a IdoMessageDialog for incoming voip calls (LP: #440865)
+ * debian/control
+ - Added a new build depends on libido-0.1-dev, needed for IdoMessageDialog
+
+ -- Ken VanDine <ken.vandine@canonical.com> Tue, 01 Feb 2011 12:29:11 -0500
+
+empathy (2.32.2-0ubuntu7) natty; urgency=low
+
+ * debian/patches/00_git_conn_disc_notif.patch (LP: #582757)
+ * debian/patches/00_git_F2_opens_contact_info.patch (LP: #387991)
+ * debian/patches/00_git_tooltip_on_error_info.patch (LP: #681413)
+ * debian/rules
+ - added --with-ca-file='/etc/ssl/certs/ca-certificates.crt'
+
+ -- Brian Curtis <bcurtiswx@ubuntu.com> Tue, 25 Jan 2011 13:20:01 -0500
+
+empathy (2.32.2-0ubuntu6) natty; urgency=low
+
+ * debian/patches/22_tell_if_the_message_is_a_pending_one_or_not.patch:
+ * debian/patches/22_dont_display_notifications_for_pending_messages.patch:
+ - Don't display duplicate notifications. (LP: #666288)
+
+ -- Omer Akram <om26er@ubuntu.com> Mon, 17 Jan 2011 20:11:44 +0500
+
+empathy (2.32.2-0ubuntu5) natty; urgency=low
+
+ * debian/control
+ - Bumped build depends for libindicate and libindicate-gtk to >= 0.4.91
+ * debian/patches/20_libindicate.patch
+ - Updated to check for indicate-0.5
+
+ -- Ken VanDine <ken.vandine@canonical.com> Fri, 14 Jan 2011 12:52:27 -0600
+
+empathy (2.32.2-0ubuntu4) natty; urgency=low
+
+ * debian/control:
+ - Change build-depends from libwebkit-dev to libwebkitgtk-dev
+
+ -- Robert Ancell <robert.ancell@canonical.com> Mon, 10 Jan 2011 15:07:47 -0600
+
+empathy (2.32.2-0ubuntu3) natty; urgency=low
+
+ * debian/patches/00git_folks_api.patch:
+ - Update to latest folks API
+
+ [ Omer Akram ]
+ * debian/patches/enable_pidgin_imported_contacts.patch:
+ - Enable pidgin imported accounts by default. (LP: #622215)
+ * debian/patches/reword_subscription_dailog_to_be_less_technical.patch:
+ - Reword subscription request dialog to be less technical. (LP: #670197)
+
+ -- Robert Ancell <robert.ancell@canonical.com> Thu, 06 Jan 2011 14:32:31 +1100
+
+empathy (2.32.2-0ubuntu2) natty; urgency=low
+
+ * debian/patches/00git_folks_aliasable_groupable.patch:
+ * debian/patches/00git_individual_methods.patch:
+ - Use latest libfolks API
+
+ -- Robert Ancell <robert.ancell@canonical.com> Mon, 06 Dec 2010 16:14:51 +1100
+
+empathy (2.32.2-0ubuntu1) natty; urgency=low
+
+ * New upstream release
+
+ -- Robert Ancell <robert.ancell@canonical.com> Wed, 24 Nov 2010 17:18:51 +1100
+
+empathy (2.32.1-0ubuntu2) natty; urgency=low
+
+ * Version bump for natty upload
+
+ -- Ken VanDine <ken.vandine@canonical.com> Wed, 17 Nov 2010 10:05:40 -0500
+
+empathy (2.32.1-0ubuntu1) maverick-proposed; urgency=low
+
+ * New Upstream Release
+ - Empathy doesn't build with gcr-3 (Guillaume Desmottes)
+ - Empathy 2.32.x needs to require libnotify < 0.7 (Guillaume Desmottes)
+ - Empathy 2.32.x shouldn't support GTK 3 (Guillaume Desmottes)
+ - (LP: #655090), window resizes irreversibly when perfoming a contact
+ search (Guillaume Desmottes)
+ - Fixed (LP: #641949) Honour preference 'disable notifications when
+ busy or away'
+ - Updated translations
+ * patches/20_libindicate.patch
+ - fixed hunk failures
+
+ -- Brian Curtis <bcurtiswx@ubuntu.com> Tue, 16 Nov 2010 22:01:18 -0500
+
+empathy (2.32.0.1-0ubuntu1) maverick-proposed; urgency=low
+
+ * New upstream release (LP: #654981)
+ - auth client crashes when trying to connect (Cosimo Cecchi)
+ - show the "new message" icon regardless of focus, active tab (Guillaume Desmottes)
+ - Should leave fullscreen mode when call is disconnected (Guillaume Desmottes)
+ - doesn't check unique result (Guillaume Desmottes)
+ - Better heuristic to pick default individual (Guillaume Desmottes)
+ - Contacts list window triggers _NET_ACTIVE_WINDOW timestamp error from Metacity (Guillaume Desmottes)
+ - update Empathy to deprecation changes in GTK+ 2.22 (Diego Escalante Urrelo)
+ - Hitting redial doesn't clear error messages (Guillaume Desmottes)
+ - Empathy Loses ContactInfo data it doesn't support in the UI (Guillaume Desmottes)
+ - Always show status icon in contact right-click menu (for meta-contacts)
+ - Refers to a nonexistent UI item (Milo Casagrande)
+ - Recommended SIP provider no longer available (Milo Casagrande)
+
+ -- Ken VanDine <ken.vandine@canonical.com> Mon, 04 Oct 2010 12:03:51 -0400
+
+empathy (2.32.0-0ubuntu2) maverick; urgency=low
+
+ * debian/patches/91_git_fix_gtalk_for_new_accounts.patch:
+ - from upstream: fix empathy to be compatible with gtalk new accounts
+
+ -- Didier Roche <didrocks@ubuntu.com> Fri, 01 Oct 2010 16:06:56 +0200
+
+empathy (2.32.0-0ubuntu1) maverick; urgency=low
+
+ * New upstream release.
+ -(LP: #634892) Double contacts after adding new contact in group "Ungrouped" (Philip Withnall)
+ -Blacklist Haze's sip protocol (Guillaume Desmottes)
+ -Failed assertion in contact_widget_details_feature_prepared_cb() (Guillaume Desmottes)
+ -(LP: #638270) empathy-accounts assert failure: *** glibc detected *** /usr/bin/empathy-accounts: free(): invalid pointer: 0x0809d5b6 *** (Guillaume Desmottes)
+ -File missing from POTFILES.in (Gabor Kelemen)
+ -Untranslatable strings (Gabor Kelemen)
+ -Typo in user guide: witn (Gabor Kelemen)
+
+ -- Brian Curtis <bcurtiswx@ubuntu.com> Mon, 27 Sep 2010 10:21:30 -0400
+
+empathy (2.31.92-0ubuntu2) maverick; urgency=low
+
+ * debian/patches/20_libindicate.patch
+ - Don't use notify_notification_new_with_status_icon when the status
+ icon isn't visible (LP: #603526)
+
+ -- Ken VanDine <ken.vandine@canonical.com> Tue, 14 Sep 2010 12:24:49 -0400
+
+empathy (2.31.92-0ubuntu1) maverick; urgency=low
+
+ * New upstream release:
+ This is the GNOME 2.32 release candidate. A bunch of meta-contacts related
+ bugs have been fixed and the audio/video client has been improved to
+ reduce the bandwith used by the video stream.
+ We also use the stable API of the Conference, ServerTLSConnection and
+ TLSCertificate interfaces so you should upgrade to telepathy-gabble 0.9.18
+ if you want to use these features.
+ * debian/control:
+ - bump libtelepathy-glib-dev build-dep
+ * debian/patches/91_git_unref_empathyindividualview_later.patch:
+ - in upstream version
+
+ -- Didier Roche <didrocks@ubuntu.com> Tue, 14 Sep 2010 13:05:00 +0200
+
+empathy (2.31.91.1-0ubuntu3) maverick; urgency=low
+
+ * Depends on telepathy-logger (lp: #623516), recommends libdconf0
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Mon, 06 Sep 2010 22:56:52 +0200
+
+empathy (2.31.91.1-0ubuntu2) maverick; urgency=low
+
+ * debian/control:
+ - readd libebook1.2-dev build-dep as built with --with_eds (default value)
+
+ -- Didier Roche <didrocks@ubuntu.com> Fri, 03 Sep 2010 13:15:34 +0200
+
+empathy (2.31.91.1-0ubuntu1) maverick; urgency=low
+
+ * New upstream release
+ * debian/control:
+ - add libgcr-dev build-dep
+ * debian/patches/91_git_unref_empathyindividualview_later.patch:
+ - additional fix from git requested by upstream
+
+ -- Didier Roche <didrocks@ubuntu.com> Thu, 02 Sep 2010 12:40:03 +0200
+
+empathy (2.31.91-0ubuntu1) maverick; urgency=low
+
+ * New upstream release:
+ - Support metacontacts (Travis Treitter, Philip Treitter) (LP: #256478)
+ - Initial empathy account wizard (Welcome Screen) does not offer IRC as an
+ account (Guillaume Desmottes) (LP: #433714)
+ - Dragging and dropping a chat tab hides the original window (Guillaume
+ Desmottes) (LP: #512746)
+ - After upgrade to 2.31.90 (from 2.31.6) empathy does not list users of irc
+ chat (Guillaume Desmottes) (LP: #622684)
+ * debian/control:
+ - Bump build-depends on libgnome-keyring-dev, libfolks-dev,
+ libfolks-telepathy-dev, libnautilus-sendto-dev
+ - Add build-depends on libgnutls-dev
+ - Drop build-depends on libebook1.2-dev
+
+ -- Robert Ancell <robert.ancell@canonical.com> Tue, 31 Aug 2010 15:05:58 +1000
+
+empathy (2.31.90-1ubuntu1) maverick; urgency=low
+
+ * Merge with Debian experimental, remaining Ubuntu changes:
+ * debian/control:
+ - Build-depend on dh-autoreconf, gnome-common
+ - Drop geoclue/mapping build-depends (they are in Universe)
+ - Add indicator build-depends
+ - Add Vcz-Bzr link
+ - Don't recommend libdconf0 - we do that at a higher level
+ - Add Suggests on telepathy-idle
+ - Bump telepathy-butterfly, telepathy-haze to recommends
+ - Don't recommends the freedesktop sound theme we have an ubuntu one
+ * debian/rules:
+ - Use autoreconf.mk
+ - Enable libindicate
+ - Disable map and location
+ - Make sure favourite-contacts is disabled, it requires telepathy-logger
+ * debian/empathy.install:
+ - Install message indicator configuration
+ * debian/indicators/empathy:
+ - Message indicator configuration
+ * debian/patches/01_lpi.patch:
+ - Add Launchpad integration
+ * debian/patches/02_notifications_focus.patch:
+ - gsettings doesn't allow overwritting defaults yet to change the schemas
+ * debian/patches/10_use_notify_osd_icons.patch:
+ - Use the notify-osd image for new messages
+ * debian/patches/11_empathy_accounts_category.patch:
+ - Put empathy-accounts in correct category
+ * debian/patches/20_libindicate.patch:
+ - Integrate into messaging menu
+ * debian/patches/21_login_indicators.patch:
+ - Only display indicator for signon events if the preference is set
+ * debian/patches/31_really_raise_window.patch:
+ - Force focus of the window when selected from the indicator
+ * debian/patches/34_start_raised_execpt_in_session.patch:
+ - If not started with the session, we should always raise
+ * debian/patches/36_chat_window_default_size.patch:
+ - Make the default chat window size larger
+ * debian/patches/37_facebook_default.patch:
+ - Make facebook the default chat account type
+ * debian/patches/38_lp_569289.patch
+ - Set freenode as default IRC network for new IRC accounts
+
+ -- Robert Ancell <robert.ancell@canonical.com> Tue, 24 Aug 2010 12:55:07 +1000
+
+empathy (2.31.90-1) experimental; urgency=low
+
+ * New upstream release
+ * debian/control:
+ - Bump build-dependencies
+
+ -- Laurent Bigonville <bigon@debian.org> Thu, 19 Aug 2010 15:06:18 +0200
+
+empathy (2.31.6-1) experimental; urgency=low
+
+ * New upstream release
+ * debian/control:
+ - Bump Standards-Version to 3.9.1 (no further changes)
+ - Adjust build-dependencies
+
+ -- Laurent Bigonville <bigon@debian.org> Mon, 16 Aug 2010 23:14:39 +0200
+
+empathy (2.31.5.1-1) experimental; urgency=low
+
+ * New upstream release
+ - Install manpages provided by upstream
+ - Install new empathy-av component
+
+ -- Laurent Bigonville <bigon@debian.org> Tue, 13 Jul 2010 17:33:52 +0200
+
+empathy (2.31.4-1) experimental; urgency=low
+
+ * New upstream release
+ - debian/control: Adjust build-dependencies
+ * Bump Standards-Version to 3.9.0 (no further changes)
+ - debian/control: Use Breaks instead of Conflicts
+ * debian/empathy.install: Install dconf schema instead of the gconf one
+ * debian/rules: Pass --disable-schemas-compile to prevent schemas compiling
+ at build time.
+ * debian/control: Make empathy Recommends telepathy-logger and libdconf0
+
+ -- Laurent Bigonville <bigon@debian.org> Thu, 08 Jul 2010 12:04:18 +0200
+
+empathy (2.30.2-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Laurent Bigonville <bigon@debian.org> Sat, 26 Jun 2010 23:59:13 +0200
+
+empathy (2.30.1.1-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Laurent Bigonville <bigon@debian.org> Sun, 13 Jun 2010 19:06:19 +0200
+
+empathy (2.31.3-1) experimental; urgency=low
+
+ * New upstream release
+ - Bump telepathy-glib-dev build-dependency
+
+ -- Laurent Bigonville <bigon@debian.org> Tue, 08 Jun 2010 11:24:18 +0200
+
+empathy (2.31.2-2) experimental; urgency=low
+
+ * Add versionized depedency for gnome-icon-theme
+ * Add Breaks for telepathy-butterfly (<< 0.5.10) as the contacts don't
+ appear in the contact list with previous versions
+
+ -- Laurent Bigonville <bigon@debian.org> Tue, 25 May 2010 15:31:33 +0200
+
+empathy (2.31.2-1) experimental; urgency=low
+
+ * New upstream release
+
+ -- Laurent Bigonville <bigon@debian.org> Mon, 24 May 2010 19:41:14 +0200
+
+empathy (2.31.1-1) experimental; urgency=low
+
+ * New upstream release
+ - Bump libgtk2.0-dev and libtelepathy-glib-dev build-dep
+
+ -- Laurent Bigonville <bigon@debian.org> Sat, 08 May 2010 14:53:57 +0200
+
+empathy (2.30.1-2) unstable; urgency=low
+
+ * Explicitly set "compression = bzip2" in debian/source/options
+
+ -- Laurent Bigonville <bigon@debian.org> Sat, 08 May 2010 14:01:38 +0200
+
+empathy (2.30.1-1) unstable; urgency=low
+
+ * New upstream release
+ * Re-enable geoclue support on kfreebsd-* archs
+
+ -- Laurent Bigonville <bigon@debian.org> Sat, 01 May 2010 16:50:46 +0200
+
+empathy (2.30.0.2-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Laurent Bigonville <bigon@debian.org> Tue, 20 Apr 2010 17:57:54 +0200
+
+empathy (2.30.0.1-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Laurent Bigonville <bigon@debian.org> Fri, 09 Apr 2010 15:20:39 +0200
+
+empathy (2.30.0-1) experimental; urgency=low
+
+ * New upstream release
+ * debian/watch: use .bz2 file
+
+ -- Laurent Bigonville <bigon@debian.org> Sat, 03 Apr 2010 13:50:35 +0200
+
+empathy (2.29.93-1) experimental; urgency=low
+
+ * New upstream release
+
+ -- Laurent Bigonville <bigon@debian.org> Wed, 17 Mar 2010 21:28:57 +0100
+
+empathy (2.29.92-1) experimental; urgency=low
+
+ * New upstream release
+
+ -- Laurent Bigonville <bigon@debian.org> Sat, 13 Mar 2010 13:12:11 +0100
+
+empathy (2.29.91.2-1) experimental; urgency=low
+
+ * New upstream release
+ * debian/copyright: Update file
+
+ -- Laurent Bigonville <bigon@debian.org> Sun, 07 Mar 2010 14:42:56 +0100
+
+empathy (2.29.91-1) experimental; urgency=low
+
+ * New upstream release
+ - debian/empathy-accounts.1: Add manpage for empathy-accounts binary
+ - debian/empathy.install: Also install empathy-accounts.desktop
+ * Bump Standards-Version (no further changes)
+
+ -- Laurent Bigonville <bigon@debian.org> Mon, 22 Feb 2010 23:45:14 +0100
+
+empathy (2.29.90-1) experimental; urgency=low
+
+ * New upstream release
+
+ -- Laurent Bigonville <bigon@debian.org> Thu, 11 Feb 2010 20:27:11 +0100
+
+empathy (2.28.2-3) unstable; urgency=low
+
+ * debian/control:
+ - Recommends freedesktop-sound-theme for empathy package (Closes: #526137)
+
+ -- Laurent Bigonville <bigon@debian.org> Sun, 31 Jan 2010 20:45:36 +0100
+
+empathy (2.29.6-1) experimental; urgency=low
+
+ * New upstream release
+ - Should now build correctly with gcc-4.5 (Closes: #564979)
+ * debian/rules: Remove --enable-python flag
+
+ -- Laurent Bigonville <bigon@debian.org> Wed, 27 Jan 2010 23:39:10 +0100
+
+empathy (2.29.5.1-1) experimental; urgency=low
+
+ * New upstream release
+ - Bump libtelepathy-glib-dev build-dep
+ * debian/control:
+ - Suggests vino for empathy package (Closes: #562288)
+ * debian/gbp.conf: Use bzip2 compression for orig tarball
+ * Do not install empathy-accounts.1 and empathy-logs.1 manpages anymore
+
+ -- Laurent Bigonville <bigon@debian.org> Tue, 12 Jan 2010 23:47:02 +0100
+
+empathy (2.28.2-2) unstable; urgency=low
+
+ * debian/control:
+ - Suggests vino for empathy package (Closes: #562288)
+ - Add Recommends to allow -dbg package to pull each other (Closes: #564679)
+
+ -- Laurent Bigonville <bigon@debian.org> Tue, 12 Jan 2010 22:37:10 +0100
+
+empathy (2.29.4-1) experimental; urgency=low
+
+ * New upstream release
+ * Enable in-tree nautilus-sendto plugin
+ * debian/control:
+ - Use better short description
+ - Recommends freedesktop-sound-theme for empathy package (Closes: #526137)
+ * Use new source package version "3.0 (quilt)"
+
+ -- Laurent Bigonville <bigon@debian.org> Wed, 23 Dec 2009 00:10:21 +0100
+
+empathy (2.28.2-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Laurent Bigonville <bigon@debian.org> Tue, 15 Dec 2009 18:43:31 +0100
+
+empathy (2.28.1.2-2) unstable; urgency=low
+
+ * debian/control: Fix typo (Closes: #559673)
+
+ -- Laurent Bigonville <bigon@debian.org> Wed, 09 Dec 2009 18:14:50 +0100
+
+empathy (2.29.3-1) experimental; urgency=low
+
+ * New upstream release
+
+ -- Laurent Bigonville <bigon@debian.org> Tue, 01 Dec 2009 13:53:52 +0100
+
+empathy (2.28.1.2-1) unstable; urgency=low
+
+ * New upstream release
+ - Should now build correctly with --no-add-needed flag
+ (Closes: #554325)
+ * debian/control: Fix typo (packages->package) (Closes: #557373)
+
+ -- Laurent Bigonville <bigon@debian.org> Thu, 26 Nov 2009 06:33:51 +0100
+
+empathy (2.29.2-1) experimental; urgency=low
+
+ * Merge with debian unstable
+ * New upstream release
+ - Bump build-dependencies
+ - Should now build correctly with --no-add-needed flag
+ (Closes: #554325)
+ - IRC commands should now be passed to server (Closes: #549173)
+
+ -- Laurent Bigonville <bigon@debian.org> Mon, 16 Nov 2009 23:40:52 +0100
+
+empathy (2.28.1.1-4) unstable; urgency=low
+
+ * Add symbols file for arch where geoclue support is disabled
+
+ -- Laurent Bigonville <bigon@debian.org> Sat, 14 Nov 2009 20:45:54 +0100
+
+empathy (2.28.1.1-3) unstable; urgency=low
+
+ * Also do not try to build with geoclue support on non-linux arch
+
+ -- Laurent Bigonville <bigon@debian.org> Sat, 14 Nov 2009 19:25:08 +0100
+
+empathy (2.28.1.1-2) unstable; urgency=low
+
+ * Do not try to build with networkmanager support on non-linux arch
+
+ -- Laurent Bigonville <bigon@debian.org> Wed, 11 Nov 2009 22:56:43 +0100
+
+empathy (2.29.1-1) experimental; urgency=low
+
+ * New upstream release
+ - Drop megaphone applet
+ - Drop libempathy, libempathy-gtk and python-empathy packages
+ - Rename empathy-doc to empathy-common (Closes: #547904)
+ * debian/control:
+ - Fix typo
+ - packet -> package
+ - Add Recommends on yelp for empathy-common (Closes: #553524)
+ * Move GConf schema to empathy package
+
+ -- Laurent Bigonville <bigon@debian.org> Wed, 04 Nov 2009 18:27:30 +0100
+
+empathy (2.28.1.1-1) unstable; urgency=low
+
+ * New upstream bugfix release
+ * debian/patches/*: removed, all fixed upstream
+ * debian/control: Recommend empathy-doc instead of depending on it
+
+ -- Sjoerd Simons <sjoerd@debian.org> Mon, 26 Oct 2009 22:36:02 +0000
+
+empathy (2.28.1-2) unstable; urgency=low
+
+ * d/patches/0001-Ignoring-non-installed-languages.patch
+ + Added. Fix a crash when trying to spell-check using a dictionary that's
+ no longer installed. (from upstream git)
+ * d/patches/0002-empathy-protocol-chooser-don-t-cache-TpConnectionMan.patch
+ + Added. Prevent TpConnectionManager from being cached as it can be freed
+ under out feet. Fixes a crash while managing accounts (Closes: #551265)
+ (from upstream git)
+ * d/patches/0003-empathy-chat-window-Don-t-update-the-Contact-menu-if.patch,
+ d/patches/0004-Fix-crash-when-joining-a-chat-GTK_WIDGET_VISIBLE-is-.patch:
+ + Added. Fixes Empathy blocking when a notication is displayed while the
+ contact menu is open (from upstream git)
+
+ -- Sjoerd Simons <sjoerd@debian.org> Sun, 25 Oct 2009 19:04:54 +0000
+
+empathy (2.28.1-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/libempathy30.symbols: Updated.
+
+ -- Jonny Lamb <jonny@debian.org> Tue, 20 Oct 2009 13:59:06 +0100
+
+empathy (2.28.0.1-2) unstable; urgency=low
+
+ * Add libempathy30-dbg, libempathy-gtk28-dbg and empathy-dbg packages.
+ * debian/control: Add Conflicts and Replaces fields to
+ libempathy{30,-gtk28} packages to make upgrades easier. Thanks to
+ Andres Salomon <dilinger@collabora.co.uk> for the "patch".
+ (Closes: #548779)
+
+ -- Jonny Lamb <jonny@debian.org> Sat, 17 Oct 2009 12:34:49 +0100
+
+empathy (2.28.0.1-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Sjoerd Simons <sjoerd@debian.org> Sun, 04 Oct 2009 13:09:34 +0100
+
+empathy (2.28.0-1) unstable; urgency=low
+
+ [ Laurent Bigonville ]
+ * libempathy-gtk-dev: add missing Depends on libcanberra-gtk-dev
+
+ [ Jonny Lamb ]
+ * New upstream release.
+ * debian/control:
+ + Upped build-depend versions on libtelepathy-glib and libchamplain.
+
+ -- Jonny Lamb <jonny@debian.org> Mon, 21 Sep 2009 23:23:38 +0100
+
+empathy (2.27.92-1) experimental; urgency=low
+
+ * New upstream release
+ - Drop debian/patches/0001-Remove-libmissioncontrol-deps.patch:
+ fixed upstream
+ - Bump libraries soname and adjust .symbols files
+ * Split GNOME documentation out of arch-dependent package
+
+ -- Laurent Bigonville <bigon@debian.org> Wed, 09 Sep 2009 19:28:22 +0200
+
+empathy (2.27.91.1-3) experimental; urgency=low
+
+ * debian/control:
+ - Add missing build-deps
+ - Add missing dependencies to -dev packages (LP: #423174)
+ * Re-enable map support now that new versions of champlain and clutter
+ are in debian
+
+ -- Laurent Bigonville <bigon@debian.org> Thu, 03 Sep 2009 12:08:00 +0200
+
+empathy (2.27.91.1-2) experimental; urgency=low
+
+ * debian/control:
+ + Remove libtelepathy-dev dependency from libempathy-dev
+ + Remove libmissioncontrol-dev dependency from libempathy-dev
+ * debian/patches/0001-Remove-libmissioncontrol-deps.patch:
+ * Remove missioncontrol deps from the pc files, patch from upstream git
+
+ -- Sjoerd Simons <sjoerd@debian.org> Thu, 27 Aug 2009 10:20:15 +0100
+
+empathy (2.27.91.1-1) experimental; urgency=low
+
+ * New upstream release.
+ * debian/control:
+ + Upped dependencies as appropriate for the new release.
+ + Upped Standards-Version. (no changes)
+ + Upped sonames as appropriate.
+ + s/Gadu Gadu/Gadu-Gadu/g
+ + Change dep on libempathy29 to telepathy-mission-control-5.
+ * debian/rules:
+ + Use --with-connectivity instead of --enable-network-manager.
+ * Disable building with map as new enough clutter-gtk and champlain
+ packages aren't in the archive yet.
+ * debian/libempathy-common.install: Don't install profiles anymore.
+ * debian/empathy.install: Don't try to install omf files.
+ * debian/*.symbols: Updated.
+ * debian/{empathy,libempathy-common}.install: Update to include some new
+ files.
+
+ -- Jonny Lamb <jonny@debian.org> Wed, 26 Aug 2009 10:36:05 +0100
+
+empathy (2.27.5-1) experimental; urgency=low
+
+ * New Upstream Version
+ - Bump libraries soname and adjust .symbols files
+ * debian/control:
+ - Add geoclue-yahoo recommends for libempathy-gtk
+ - Use more meaningful desctiptions (LP: #259788)
+ * debian/update-patches.mk: Update script to work with recent git version
+ * Enable network manager support
+
+ -- Laurent Bigonville <bigon@debian.org> Tue, 04 Aug 2009 11:20:18 +0200
+
+empathy (2.27.3-2) experimental; urgency=low
+
+ * debian/rules: Remove duplicate include
+ * debian/control:
+ - Bump Standards-Version (no further changes)
+ - Drop all conflicts, packages not even in old-stable anymore
+ * Enable Adium themes support
+ - debian/rules: Pass --enable-webkit to configure
+ - debian/control: Add libwebkit-dev build-dep
+ - debian/libempathy-gtk24.symbols: Add new exported symbols
+ * Enable geoclue support
+ - debian/rules: Pass --enable-location to configure
+ - debian/control: Add libgeoclue-dev build-dep
+ - debian/libempathy-gtk24.symbols: Add new exported symbols
+ * Enable map (champlain) support
+ - debian/rules: Pass --enable-map to configure
+ - debian/control: Add libchamplain-0.3-dev, libchamplain-gtk-0.3-dev
+ and libclutter-gtk-0.8-dev build-dep
+
+ -- Laurent Bigonville <bigon@debian.org> Tue, 23 Jun 2009 11:10:25 +0200
+
+empathy (2.27.3-1) experimental; urgency=low
+
+ * New upstream release.
+ - Bump libraries soname and adjust .symbols files
+ * debian/control: Bump libtelepathy-glib-dev build-dep
+ * debian/libempathy-gtk-common.install: Add default adium theme
+
+ -- Laurent Bigonville <bigon@debian.org> Wed, 17 Jun 2009 20:38:21 +0200
+
+empathy (2.27.2-1) experimental; urgency=low
+
+ * New upstream release
+ - Bump libraries soname and adjust .symbols files
+
+ -- Laurent Bigonville <bigon@debian.org> Sun, 31 May 2009 16:52:39 +0200
+
+empathy (2.27.1.1-1) experimental; urgency=low
+
+ * New upstream release
+ - Bump libraries soname and adjust .symbols files
+ * debian/control:
+ - Bump libgtk2.0-dev and libtelepathy-glib-dev build-dep
+ - Bump libgtk2.0-dev dependency for libempathy-gtk-dev
+ - Remove all libglade references
+ * debian/libempathy-gtk-common.install: now install .ui files instead
+ of .glade files
+ * Bump debhelper version to 7
+
+ -- Laurent Bigonville <bigon@debian.org> Tue, 19 May 2009 14:18:13 +0200
+
+empathy (2.26.2-1) unstable; urgency=low
+
+ [ Jonny Lamb ]
+ * debian/control: Added haze and butterfly as empathy Suggests.
+
+ [ Laurent Bigonville ]
+ * New upstream release
+
+ -- Laurent Bigonville <bigon@debian.org> Mon, 18 May 2009 21:43:25 +0200
+
+empathy (2.26.1-1) unstable; urgency=low
+
+ * New upstream release
+ * debian/control: Add Homepage field
+
+ -- Laurent Bigonville <bigon@debian.org> Tue, 14 Apr 2009 11:44:14 +0200
+
+empathy (2.26.0-1) unstable; urgency=low
+
+ * New Upstream Version
+ - Bump libtelepathy-glib-dev build-dependency
+ - Bump libempathy soname and adjust .symbols file
+ * debian/control:
+ - Bump Standards-Version to 3.8.1 (no further changes)
+ - Remove telepathy-stream-engine recommends and conflicts
+ * python-empathy.install: Fix FTBFS with python >= 2.6
+
+ -- Laurent Bigonville <bigon@debian.org> Wed, 18 Mar 2009 13:18:54 +0100
+
+empathy (2.25.92-1) unstable; urgency=low
+
+ * New Upstream Version
+ * Bump libempathy soname again
+
+ -- Sjoerd Simons <sjoerd@debian.org> Tue, 03 Mar 2009 23:46:29 +0000
+
+empathy (2.25.91-2) unstable; urgency=low
+
+ [ Laurent Bigonville ]
+ * debian/control: Add minimal version for libtelepathy-farsight-dev build-dep
+
+ [ Jonny Lamb ]
+ * Upload to unstable.
+
+ -- Jonny Lamb <jonny@debian.org> Tue, 03 Mar 2009 18:05:50 +0000
+
+empathy (2.25.91-1) experimental; urgency=low
+
+ [ Sjoerd Simons ]
+ * debian/patches/0001-Set-initial-value-for-sound-pref-checkboxes.patch
+ - Removed, fixed upstream
+
+ [ Jonny Lamb ]
+ * New upstream release.
+ + Bumped libempathy{,-gtk} sonames.
+ * debian/gbp.conf: Removed no-create-orig field.
+ * debian/control:
+ + Added myself to Uploaders.
+ + Removed XS-Dm-Upload-Allowed field.
+ + Upped build-dep on libtelepathy-glib-dev to >= 0.7.21.
+ + Removed duplicate Section fields.
+ + Made short descriptions unique.
+ * debian/libempathy21.symbols: Updated symbols file.
+ * debian/libempathy-gtk19.symbols: Updated symbols file.
+ * debian/empathy-logs.1: Added new manpage.
+ * debian/copyright: Completely rewrote.
+
+ -- Jonny Lamb <jonny@debian.org> Fri, 27 Feb 2009 15:20:03 +0000
+
+empathy (2.25.4-1) experimental; urgency=low
+
+ [ Simon McVittie ]
+ * Switch packaging to git
+ * Add gbp.conf (for git-buildpackage) and `debian/rules update-patches`
+ target
+ * Add README.source
+
+ [ Sjoerd Simons ]
+ * New Upstream Version
+ * debian/control: Add libcanberra-gtk-dev to build-depends
+ * debian/control: Bump libempathy soname from 17 to 19
+ * debian/libempathy-gtk17.symbols: Update with new symbols
+ * debian/libempathy19.symbols: Update with new symbols
+ * debian/patches/0001-Set-initial-value-for-sound-pref-checkboxes.patch
+ - Added. Set the initial values of the sound preferences from the
+ configuration. (From upstream git)
+
+ -- Sjoerd Simons <sjoerd@debian.org> Wed, 07 Jan 2009 18:33:49 +0000
+
+empathy (2.25.3-1) experimental; urgency=low
+
+ * New upstream release
+ - Bump libempathy-gtk soname
+ - Fix symbols files
+ * debian/control:
+ - Bump libgtk2.0-dev build-dependency
+ - Drop libgnomeui-dev build-dep
+ * Drop debian/patches/64bit-build-fix.patch: fixed upstream
+
+ -- Laurent Bigonville <bigon@debian.org> Sat, 20 Dec 2008 21:45:15 +0100
+
+empathy (2.25.2-2) experimental; urgency=low
+
+ * debian/patches/64bit-build-fix.patch:
+ - Fix build on 64 bit platforms
+
+ -- Sjoerd Simons <sjoerd@debian.org> Thu, 04 Dec 2008 00:46:53 +0000
+
+empathy (2.25.2-1) experimental; urgency=low
+
+ * New upstream release.
+ - Bump libtelepathy-glib-dev build-dep and add libgnomeui-dev
+ - Bump soname of libempathy
+
+ -- Laurent Bigonville <bigon@debian.org> Mon, 01 Dec 2008 21:35:56 +0100
+
+empathy (2.24.1-1) experimental; urgency=low
+
+ * New upstream release.
+
+ -- Laurent Bigonville <bigon@debian.org> Mon, 20 Oct 2008 21:12:27 +0200
+
+empathy (2.24.0-1) experimental; urgency=low
+
+ * New upstream release.
+
+ -- Laurent Bigonville <bigon@debian.org> Mon, 22 Sep 2008 21:37:47 +0200
+
+empathy (2.23.92-1) experimental; urgency=low
+
+ * New upstream release
+ - Adjust libempathy-gtk15.symbols
+ * Use my debian.org address in Uploaders
+
+ -- Laurent Bigonville <bigon@debian.org> Tue, 09 Sep 2008 19:03:12 +0200
+
+empathy (2.23.90-2) experimental; urgency=low
+
+ * debian/libempathy14.symbols: Fix version of an exported symbol
+ * Use rarian-compat and librarian-dev instead of scrollkeeper as build-dep
+ * Bump build-deps and remove libtelepathy-dev (not needed anymore)
+ * Remove --enable-voip flags (voip enabled by default), rename
+ --enable-aspell to --enable-spell
+ * Add explicit build-depends against libglib2.0-dev
+ * Install gnome help and omf files in empathy package
+
+ -- Laurent Bigonville <bigon@bigon.be> Mon, 25 Aug 2008 08:04:11 +0200
+
+empathy (2.23.90-1) experimental; urgency=low
+
+ * New upstream release.
+
+ -- Dafydd Harries <daf@debian.org> Sun, 24 Aug 2008 22:03:36 +0100
+
+empathy (0.23.4-1) experimental; urgency=low
+
+ [ Laurent Bigonville ]
+ * Bump Standards-Version to 3.8.0 (no further changes)
+
+ [ Sjoerd Simons ]
+ * New upstream release
+ * Bumped soname of libempathy-gtk again and update symbols file
+ * Add a version depend on telepathy-glib-dev matching the configure.ac
+
+ -- Sjoerd Simons <sjoerd@debian.org> Sat, 02 Aug 2008 22:08:58 +0100
+
+empathy (0.23.3-3) unstable; urgency=low
+
+ * Use my debian.org address in Uploaders
+ * debian/patches/00empathy_486683.patch: Fix crash when adding SIP contacts
+ (Closes: #486683)
+
+ -- Laurent Bigonville <bigon@debian.org> Sat, 25 Oct 2008 00:30:02 +0200
+
+empathy (0.23.3-2) unstable; urgency=low
+
+ * Add recommend on gvfs-backends. These are used for the url handlers in the
+ chat window.
+ * debian/patches/00_mark_unknown_presence_id_as_unset.patch
+ + Added. Mark presence as unknown when the presence string isn't
+ recognized
+
+ -- Sjoerd Simons <sjoerd@debian.org> Sat, 02 Aug 2008 19:56:46 +0100
+
+empathy (0.23.3-1) unstable; urgency=low
+
+ [ Sjoerd Simons ]
+ * New upstream release (0.23.3)
+ * Bump libempathy and libempathy-gtk sonames
+ * debian/*.symbols: Remove the debian version number from all symbols
+
+ [ Laurent Bigonville ]
+ * New upstream release (0.23.2)
+ - Bump libempathy and libempathy-gtk soname and fix symbols files
+ * Add dbus-x11 dependency on empathy package (Closes: #480486)
+ * Add licence information about files libempathy-gtk/totem-subtitle-encoding.c
+ and libempathy-gtk/totem-subtitle-encoding.h
+
+ -- Sjoerd Simons <sjoerd@debian.org> Fri, 06 Jun 2008 17:14:31 +0100
+
+empathy (0.23.1-1) unstable; urgency=low
+
+ [ Laurent Bigonville ]
+ * debian/control: Add telepathy-stream-engine as a recommends for empathy
+ package
+
+ [ Sjoerd Simons ]
+ * New upstream release
+ * debian/control: Add conflict with older version of stream-engine
+ * debian/patches/00_fix_python_bindings.patch:
+ - Removed. Fixed upstream
+ * debian/patches/01_remove_unused_code.patch:
+ - Removed. Fixed upstream
+ * Bump libempathy and libempathy-gtk soname
+ * debian/control: Add build-depend on gnome-doc-utils
+
+ [ Simon McVittie ]
+ * Use my debian.org address in Uploaders
+
+ -- Sjoerd Simons <sjoerd@debian.org> Thu, 01 May 2008 11:42:57 +0200
+
+empathy (0.22.1-1) unstable; urgency=low
+
+ * debian/rules, debian/empathy.install: Enable VOIP support
+ * debian/empathy.install: Chat handler is now part of the main empathy
+ process
+ * debian/patches/00_fix_python_bindings.patch:
+ + Added. Don't try to import objects that don't exist anymore (from
+ upstream git) (Closes: #474260)
+ * debian/patches/01_remove_unused_code.patch:
+ + Added. Remove unused code. Fixes compilation errors with Gcc 4.3
+ (Closes: #466817)
+ * debian/libempathy-gtk11.symbols, debian/libempathy-gtk11.shlibs: Update
+ symbols and shlibs
+
+ -- Sjoerd Simons <sjoerd@debian.org> Sun, 06 Apr 2008 23:33:50 +0200
+
+empathy (0.22.0-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Sjoerd Simons <sjoerd@debian.org> Mon, 10 Mar 2008 16:39:07 +0100
+
+empathy (0.21.91-1) unstable; urgency=low
+
+ * New upstream release
+ * debian/patches/00_set_null_presence_message.patch:
+ - Removed. Merged upstream
+ * debian/control: Add xsltproc to build-depends
+ * Bump libempathy and libempathy-gtk soname to 11
+ * debian/control: Bump libtelepathy-dev build-depend to 0.3.1
+ * debian/libempathy-common.install: Add irc network definitions
+
+ -- Sjoerd Simons <sjoerd@debian.org> Mon, 03 Mar 2008 20:45:26 +0100
+
+empathy (0.21.90-2) unstable; urgency=low
+
+ * debian/*.symbols: Remove the debian versioning
+ * debian/patches/00_set_null_presence_message.patch:
+ - Added. If there is no presence-message, (re)set it to NULL. So the UI
+ can choose the right default message
+
+ -- Sjoerd Simons <sjoerd@debian.org> Sun, 10 Feb 2008 12:46:53 +0100
+
+empathy (0.21.90-1) unstable; urgency=low
+
+ * New upstream release
+ * Removed patches merge upstream:
+ - debian/patches/fix-pyftbfs.patch
+ - debian/patches/accounts-icons-path.patch
+ * Bump sonames for libempathy and libempathy-gtk
+
+ -- Sjoerd Simons <sjoerd@debian.org> Sat, 09 Feb 2008 23:25:59 +0100
+
+empathy (0.21.5.2-1) unstable; urgency=low
+
+ [ Laurent Bigonville ]
+ * New upstream release (0.21.5.2)
+ * Add XS-Dm-Upload-Allowed: yes, really
+ * Bump libmissioncontrol-client-dev build-dep version
+ * Bump soname of libempathy-gtk
+ * Drop debian/msn-haze.profile: merged upstream
+ * debian/patches/fix-pyftbfs.patch: Fix FTBFS of the python binding
+ (taken from upstream)
+ * debian/patches/accounts-icons-path.patch: Fix search path for icons (taken
+ from upstream)
+ * debian/rules: remove installed test program
+
+ [ Sjoerd Simons ]
+ * Add symbol files for libempathy and libempathy-gtk
+ * libempathy7: Bumped shlibs
+ * debian/libempathy-common.install: Install empathy-log-manager.xsl
+ * debian/libempathy-common, debian/libempathy-gtk-common.install: Install
+ empathy-chatroom-manager.dtd in libempathy-common instead of
+ libempathy-gtk-common
+ * debian/control: Let libempathy-common conflict with older versions of
+ libempathy-gtk-common
+ * debian/rules: Disable the building of tests
+
+ -- Sjoerd Simons <sjoerd@debian.org> Mon, 21 Jan 2008 20:28:49 +0100
+
+empathy (0.21.4-1) unstable; urgency=low
+
+ [ Laurent Bigonville ]
+ * New upstream release
+ * Bump Standards-Version to 3.7.3, no further changes.
+
+ [ Sjoerd Simons ]
+ * debian/patches/fix_setting_avatar.patch
+ - Added. Fix setting avatars
+ * debian/patches/listen_to_presence_changed.patch
+ - Added. Listen to the PresenceChanged signal from the MC instead of the
+ deprecated PresenceStatusActual.
+
+ -- Sjoerd Simons <sjoerd@debian.org> Sat, 05 Jan 2008 19:06:01 +0100
+
+empathy (0.21.3-1) unstable; urgency=low
+
+ * New upstream release
+ * Add XS-Dm-Upload-Allowed: yes
+ * Bump soname of both libraries
+ * Drop debian/patches/00_configure.patch: applied upstream
+ * Make -common packages arch:all and let the libs depends on
+ ${source:Version} of their respective -common packages again.
+ * Let the -dev packages depends on ${binary:Version} of their
+ respective lib packages.
+
+ -- Laurent Bigonville <bigon@bigon.be> Tue, 04 Dec 2007 00:00:31 +0100
+
+empathy (0.21.2-2) unstable; urgency=low
+
+ * debian/patches/00_configure.patch
+ - Added. Use the pkg-config file for X11 to get the right linker arguments
+ Fixes FTBFS (Closes: #451902)
+
+ -- Sjoerd Simons <sjoerd@debian.org> Wed, 21 Nov 2007 20:59:11 +0100
+
+empathy (0.21.2-1) unstable; urgency=low
+
+ [ Laurent Bigonville ]
+ * New upstream release, bump soname for both libraries
+ * Drop debian/patch/add-haze-profiles.patch and add debian/msn-haze.profile
+ to avoid patching autofoo, installing it via debian/rules
+ * debian/empathy.install: empathy.desktop is now installed in
+ /etc/xdg/autostart/
+ * debian/libempathy-gtk-common.install:
+ - Also install icons that are under /usr/share/empathy/icons/
+ * debian/control:
+ - Add gnome-icon-theme to libempathy-gtk-common dependencies
+ - Bump libmissioncontrol-client-dev build-dep version
+ * Add manpages for empathy and empathy-account,
+ thanks to Simon McVittie <smcv@ianadd.pseudorandom.co.uk> (Closes: #448620)
+ * Use now official Vcs-* field
+ * Install empathy-chat-chandler in /usr/lib/empathy/
+ * Disable voip support and remove recommends for tp-se, not stable enough yet
+ * Install .desktop file in /usr/share/applications
+
+ [ Sjoerd Simons ]
+ * debian/control: Let the libs depend on ${binary:Version} of their
+ respective -common packages.
+
+ -- Sjoerd Simons <sjoerd@debian.org> Fri, 16 Nov 2007 11:03:08 +0100
+
+empathy (0.14-1) unstable; urgency=low
+
+ [ Loic Minier ]
+ * Fix typo in control.
+
+ [ Laurent Bigonville ]
+ * New upstream version
+ - Drop debian/patches/disable-voip.patch, applied upstream
+ * Enable VOIP and add telepathy-stream-engine to Recommends
+
+ -- Laurent Bigonville <bigon@bigon.be> Mon, 01 Oct 2007 18:46:11 +0200
+
+empathy (0.13-1) unstable; urgency=low
+
+ [ Laurent Bigonville ]
+ * New upstream release, bump soname for libempathy and libempathy-gtk
+ - Drop build-dep on libgnomeui-dev
+ - Add build-dep on libpanel-applet2-dev
+ - Bump build-dep version of libgtk2.0-dev
+ - Build and install the megaphone applet
+ - Add libtelepathy-dev as build-dep
+ * Fix typo in libempathy-dev description
+ * debian/patches/add-haze-profiles.patch: ship .profile files to support
+ telepathy-haze (Closes: #444032)
+
+ [ Sjoerd Simons ]
+ * debian/patches/disable-voip.patch: Disable voip user interface elements as
+ their noops in this version.
+ * debian/copyright: Updated
+
+ -- Sjoerd Simons <sjoerd@debian.org> Sat, 29 Sep 2007 18:41:39 +0200
+
+empathy (0.12-2) unstable; urgency=low
+
+ * debian/control: Let the -common packages conflict and replace the old
+ empathy
+ * debian/control: Let libempathy-gtk-dev depends on libglade2-dev instead of
+ libglade-dev
+ * debian/control: Tighten depends of libempathy-gtk-dev a bit more
+
+ -- Sjoerd Simons <sjoerd@debian.org> Sat, 08 Sep 2007 21:00:58 +0200
+
+empathy (0.12-1) unstable; urgency=low
+
+ [ Sjoerd Simons ]
+ * New upstream release
+ * Conflict with cohoba and gossip-telepathy
+
+ [ Laurent Bigonville ]
+ * debian/control:
+ - Add myself as Uploaders
+ - Add libaspell-dev and iso-codes as build-dep and enable spellchecker
+ - Add XS-Vcs-Bzr field
+ - Bump mission-control build-dep
+ - Remove unneeded libmissioncontrol-sever builddep and rename
+ libmissioncontrol-dev to libmissioncontrol-client-dev
+
+ [ Loic Minier ]
+ * Tweak copyright.
+ * Wrap build-deps and deps.
+ * Use HTTP in watch file.
+ * Include CDBS' utils.mk.
+
+ [ Sjoerd Simons ]
+ * Added build-depend on libebook1.2-dev
+ * Split up empathy into a whole slew of packages
+ * Set linker flags to -Wl,-z,defs -Wl,-O1
+ * debian/rules: Call dh_pysupport on python-empathy
+ * debian/control, debian/rules: Explicitely enable the python bindings
+
+ -- Sjoerd Simons <sjoerd@debian.org> Sat, 25 Aug 2007 18:41:08 +0200
+
+empathy (0.8-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Sjoerd Simons <sjoerd@debian.org> Sat, 23 Jun 2007 14:45:31 +0100
+
+empathy (0.7-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Sjoerd Simons <sjoerd@debian.org> Mon, 11 Jun 2007 10:31:19 +0200
+
+empathy (0.6-1) unstable; urgency=low
+
+ [ Dafydd Harries ]
+ * Add watch file.
+
+ [ Sjoerd Simons ]
+ * New upstream release
+
+ -- Sjoerd Simons <sjoerd@debian.org> Mon, 04 Jun 2007 09:27:47 +0200
+
+empathy (0.5-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Sjoerd Simons <sjoerd@debian.org> Sat, 26 May 2007 19:02:41 +0200
+
+empathy (0.4-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Sjoerd Simons <sjoerd@debian.org> Sun, 20 May 2007 15:31:42 +0200
+
+empathy (0.3-1) unstable; urgency=low
+
+ * Initial release
+
+ -- Sjoerd Simons <sjoerd@debian.org> Mon, 14 May 2007 22:32:24 +0200
+
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 000000000..7f8f011eb
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+7
diff --git a/debian/control b/debian/control
new file mode 100644
index 000000000..4a84579af
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,127 @@
+Source: empathy
+Section: gnome
+Priority: optional
+Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian Telepathy maintainers <pkg-telepathy-maintainers@lists.alioth.debian.org>
+Uploaders: Sjoerd Simons <sjoerd@debian.org>,
+ Dafydd Harries <daf@debian.org>,
+ Simon McVittie <smcv@debian.org>,
+ Riccardo Setti <giskard@debian.org>,
+ Laurent Bigonville <bigon@debian.org>,
+ Jonny Lamb <jonny@debian.org>
+Build-Depends: cdbs,
+ debhelper (>= 7),
+ dh-autoreconf,
+ gnome-common,
+ rarian-compat,
+ librarian-dev,
+ libglib2.0-dev (>= 2.27.2),
+ libgtk2.0-dev (>= 2.22.0),
+ libgconf2-dev (>= 1.2.0),
+ libtelepathy-glib-dev (>= 0.14.1),
+ libtelepathy-logger-dev (>= 0.2.0),
+ libebook1.2-dev,
+ intltool,
+ libenchant-dev (>= 1.2.0),
+ iso-codes,
+ libgnutls-dev (>= 2.8.5),
+ xsltproc,
+ gnome-doc-utils (>= 0.17.3),
+ libcanberra-gtk-dev (>= 0.4),
+ libnotify4-dev (>= 0.7.0),
+ libx11-dev,
+ libgstfarsight0.10-dev,
+ libdbus-glib-1-dev,
+ libtelepathy-farsight-dev (>= 0.0.14),
+ libtelepathy-farstream-dev,
+ libgstreamer0.10-dev (>= 0.10.32),
+ libgstreamer-plugins-base0.10-dev,
+ libnm-glib-dev (>= 0.7) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386],
+ libnm-util-dev (>= 0.7) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386],
+ libwebkitgtk-dev,
+ libgnome-keyring-dev (>= 2.26.0),
+ libgcr-dev (>= 2.26.0),
+ libunique-dev (>= 1.1.2),
+ nautilus-sendto (>= 2.31.7),
+ libfolks-dev (>= 0.4.0),
+ libfolks-telepathy-dev (>= 0.4.0),
+ libindicate-dev (>= 0.4.91),
+ libindicate-gtk-dev (>= 0.4.91),
+ libido-0.1-dev,
+ liblaunchpad-integration-dev (>= 0.1.17),
+ libunity-dev (>= 3.4.6)
+Standards-Version: 3.9.1
+Vcs-Bzr: https://code.launchpad.net/~ubuntu-desktop/empathy/ubuntu
+Homepage: http://live.gnome.org/Empathy
+
+Package: empathy
+Architecture: any
+Depends: ${shlibs:Depends},
+ ${misc:Depends},
+ empathy-common (= ${source:Version}),
+ telepathy-mission-control-5,
+ gnome-icon-theme (>= 2.30.0),
+ dbus-x11,
+ telepathy-logger
+Recommends: telepathy-gabble,
+ telepathy-salut,
+ libdconf0,
+ gvfs-backends,
+ telepathy-haze,
+ telepathy-butterfly,
+ nautilus-sendto-empathy
+Suggests: telepathy-idle,
+ vino
+Replaces: libempathy-gtk-common
+Breaks: telepathy-butterfly (<< 0.5.10)
+Description: GNOME multi-protocol chat and call client
+ Instant messaging program supporting text, voice, video, file transfers
+ and inter-application communication over many different protocols,
+ including: AIM, MSN, Google Talk (Jabber/XMPP), Facebook, Yahoo!, Salut,
+ Gadu-Gadu, Groupwise, ICQ and QQ.
+ .
+ This package contains the Empathy IM application and account manager.
+
+Package: empathy-dbg
+Architecture: any
+Depends: ${misc:Depends}, empathy (= ${binary:Version})
+Section: debug
+Priority: extra
+Description: GNOME multi-protocol chat and call client (debug symbols)
+ Instant messaging program supporting text, voice, video, file transfers
+ and inter-application communication over many different protocols,
+ including: AIM, MSN, Google Talk (Jabber/XMPP), Facebook, Yahoo!, Salut,
+ Gadu-Gadu, Groupwise, ICQ and QQ.
+ .
+ This package contains debug symbols for the Empathy IM application and
+ account manager.
+
+Package: empathy-common
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: yelp
+Replaces: empathy (<< 2.27.92), empathy-doc, libempathy-common, libempathy-gtk-common
+Conflicts: empathy-doc, libempathy-common, libempathy-gtk-common
+Provides: empathy-doc, libempathy-common, libempathy-gtk-common
+Description: GNOME multi-protocol chat and call client (common files)
+ Instant messaging program supporting text, voice, video, file transfers
+ and inter-application communication over many different protocols,
+ including: AIM, MSN, Google Talk (Jabber/XMPP), Facebook, Yahoo!, Salut,
+ Gadu-Gadu, Groupwise, ICQ and QQ.
+ .
+ This package contains the architecture independent files for Empathy
+ IM application.
+
+Package: nautilus-sendto-empathy
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, empathy-common (= ${source:Version})
+Recommends: nautilus-sendto (>= 2.28.2-2)
+Replaces: nautilus-sendto (<< 2.28.2-2)
+Breaks: nautilus-sendto (<< 2.28.2-2)
+Description: GNOME multi-protocol chat and call client (nautilus-sendto plugin)
+ Instant messaging program supporting text, voice, video, file transfers
+ and inter-application communication over many different protocols,
+ including: AIM, MSN, Google Talk (Jabber/XMPP), Facebook, Yahoo!, Salut,
+ Gadu-Gadu, Groupwise, ICQ and QQ.
+ .
+ This package contains nautilus-sendto plugin for the Empathy IM application.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 000000000..5790a7cd2
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,159 @@
+This package was debianized by Sjoerd Simons <sjoerd@debian.org> on
+Mon, 14 May 2007 22:32:24 +0200.
+
+It was downloaded from:
+ http://ftp.gnome.org/pub/GNOME/sources/empathy/
+
+Upstream Authors:
+ Xavier Claessens <xclaesse@gmail.com>
+ Richard Hult <richard@imendio.com>
+ Michael Hallendal <micke@imendio.com>
+ Martyn Russell <martyn@imendio.com>
+ Raphaël Slinckx <raphael@slinckx.net>
+
+Files: *
+Copyright:
+ Copyright (C) 2000 Eazel, Inc.
+ Copyright (C) 2000-2005 Paolo Maggi
+ Copyright (C) 2002-2003 Jeroen Zwartepoorte
+ Copyright (C) 2002-2004 Marco Presenti Gritti
+ Copyright (C) 2002-2006 Imendio AB
+ Copyright (C) 2003-2004 Xan Lopez
+ Copyright (C) 2003 Bastien Nocera <hadess@hadess.net>
+ Copyright (C) 2004 Red Hat, Inc.
+ Copyright (C) 2004-2005 Martyn Russel
+ Copyright (C) 2004-2006 Christian Persch
+ Copyright (C) 2006 Xavier Claessens
+ Copyright (C) 2007-2008 Marco Barisione <marco@barisione.org>
+ Copyright (C) 2007 Raphael Slinckx <raphael@slinckx.net>
+ Copyright (C) 2007 Guillaume Desmottes
+ Copyright (C) 2007-2009 Collabora Ltd.
+License: GPL-2+
+ On Debian systems, the complete text of the GPL-2 can be found in
+ /usr/share/common-licenses/GPL-2.
+
+Files: libempathy-gtk/empathy-avatar-chooser.*
+Copyright:
+ Copyright (C) 2006-2007 Imendio AB.
+ Copyrihgt (C) 2007-2008 Collabora Ltd.
+License: GPL-2
+ On Debian systems, the complete text of the GPL-2 can be found in
+ /usr/share/common-licenses/GPL-2.
+
+Files: src/empathy-status-icon.*, src/empathy-event-manager.*,
+ src/empathy-tube-dispatch.*, src/empathy-call-window.*,
+ libempathy-gtk/empathy-video-src.*, libempathy-gtk/empathy-audio-src.*,
+ libempathy/empathy-call-factory.*, libempathy/empathy-tp-contact-list.*,
+ libempathy/empathy-dispatcher.*, libempathy/empathy-tp-file.*,
+ libempathy/empathy-irc-network-manager.*, libempathy/empathy-tp-call.*,
+ libempathy/empathy-tp-tube.*, libempathy/empathy-idle.*,
+ libempathy/empathy-debug.*, libempathy/empathy-account-manager.*,
+ libempathy/empathy-contact-factory.*, libempathy/empathy-tp-roomlist.*,
+ libempathy/empathy-contact-monitor.*, libempathy/empathy-tp-group.*,
+ libempathy/empathy-contact-manager.*, libempathy/empathy-tube-handler.*,
+ libempathy/empathy-tp-contact-factory.*, libempathy/empathy-contact-list.*,
+ libempathy/empathy-irc-server.*, libempathy/empathy-tp-chat.*,
+ libempathy/empathy-chatroom.*, libempathy/empathy-call-handler.*,
+ libempathy/empathy-dispatch-operation.*, libempathy-gtk/empathy-contact-dialogs.*,
+ libempathy-gtk/empathy-contact-selector.*, libempathy-gtk/empathy-contact-widget.*,
+ libempathy-gtk/empathy-profile-chooser.*, libempathy-gtk/empathy-audio-sink.*,
+ libempathy-gtk/empathy-cell-renderer-activatable.*, libempathy-gtk/empathy-account-widget-irc.*,
+ libempathy-gtk/empathy-account-widget-sip.*, libempathy-gtk/empathy-video-src.*,
+ libempathy-gtk/empathy-smiley-manager.*, libempathy-gtk/empathy-irc-network-dialog.*,
+ libempathy-gtk/empathy-contact-menu.*, libempathy-gtk/totem-subtitle-encoding.*,
+ libempathy-gtk/empathy-video-widget.*, libempathy-gtk/empathy-new-message-dialog.*,
+ libempathy-gtk/empathy-audio-src.*, tools/*
+Copyright:
+ Copyright (C) 2007-2009 Collabora Ltd.
+ Copyright (C) 2007 Xavier Claessens <xclaesse@gmail.com>
+ Copyright (C) 2007 Elliot Fairweather
+ Copyright (C) 2007 Nokia Corporation
+ Copyright (C) 2007 Marco Barisione <marco@barisione.org>
+ Copyright (C) 2007-2008 Guillaume Desmottes
+ Copyright (C) 2007 Raphael Slinckx <raphael@slinckx.net>
+ Copyright (C) 2001-2006 Bastien Nocera <hadess@hadess.net>
+License: LGPL-2.1+
+ On Debian systems, the complete text of the LGPL-2.1 can be found in
+ /usr/share/common-licenses/LGPL-2.1.
+
+Files: po/*
+Copyright:
+ Copyright 2002-2006 Free Software Foundation, Inc.
+ Copyright 2002-2003 Richard Hult <richard@imendio.com>
+ Copyright 2003-2004 Christian Rose <menthos@menthos.com>
+ Copyright 2006 Daniel Nylander <po@danielnylander.se>
+License: GPL-2
+ On Debian systems, the complete text of the GPL-2 can be found in
+ /usr/share/common-licenses/GPL-2.
+
+Files: help/*
+Copyright:
+ Copyright 2009 GNOME Documentation Project
+License: CC-BY-SA
+ THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
+
+ BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
+
+ 1. Definitions
+
+ 1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
+ 2. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License.
+ 3. "Creative Commons Compatible License" means a license that is listed at http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License.
+ 4. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
+ 5. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike.
+ 6. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
+ 7. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.
+ 8. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
+ 9. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
+ 10. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
+ 11. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.
+
+ 2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.
+
+ 3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
+
+ 1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
+ 2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
+ 3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
+ 4. to Distribute and Publicly Perform Adaptations.
+ 5.
+
+ For the avoidance of doubt:
+ 1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
+ 2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
+ 3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.
+
+The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.
+
+ 4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
+
+ 1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested.
+ 2. You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License.
+ 3. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
+ 4. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.
+
+ 5. Representations, Warranties and Disclaimer
+
+ UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
+
+ 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+ 7. Termination
+
+ 1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
+ 2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
+
+ 8. Miscellaneous
+
+ 1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
+ 2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
+ 3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+ 4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
+ 5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
+ 6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.
+
+Files: debian/*
+Copyright: Copyright 2007-2009 Sjoerd Simons <sjoerd@debian.org>
+License: GPL-2+
+ On Debian systems, the complete text of the GPL-2 can be found in
+ /usr/share/common-licenses/GPL-2.
diff --git a/debian/empathy-common.install b/debian/empathy-common.install
new file mode 100644
index 000000000..d3bfd1297
--- /dev/null
+++ b/debian/empathy-common.install
@@ -0,0 +1,4 @@
+usr/share/icons/
+usr/share/locale/
+usr/share/empathy/
+usr/share/gnome/help/empathy/
diff --git a/debian/empathy.install b/debian/empathy.install
new file mode 100644
index 000000000..8f2034509
--- /dev/null
+++ b/debian/empathy.install
@@ -0,0 +1,9 @@
+usr/bin/
+usr/lib/empathy/
+usr/share/man/man1/
+usr/share/applications/
+usr/share/dbus-1/services/
+usr/share/telepathy/clients/
+usr/share/GConf/gsettings/empathy.convert
+usr/share/glib-2.0/schemas/org.gnome.Empathy.gschema.xml
+../indicators/empathy /usr/share/indicators/messages/applications/
diff --git a/debian/gbp.conf b/debian/gbp.conf
new file mode 100644
index 000000000..7b1e75e34
--- /dev/null
+++ b/debian/gbp.conf
@@ -0,0 +1,9 @@
+[DEFAULT]
+debian-branch = debian
+upstream-branch = empathy-skype
+pristine-tar = True
+compression = bzip2
+
+[git-buildpackage]
+tarball-dir = ../tarballs/
+export-dir = ../build-area/
diff --git a/debian/indicators/empathy b/debian/indicators/empathy
new file mode 100644
index 000000000..babcd0b82
--- /dev/null
+++ b/debian/indicators/empathy
@@ -0,0 +1 @@
+/usr/share/applications/empathy.desktop
diff --git a/debian/nautilus-sendto-empathy.install b/debian/nautilus-sendto-empathy.install
new file mode 100644
index 000000000..a91c64936
--- /dev/null
+++ b/debian/nautilus-sendto-empathy.install
@@ -0,0 +1 @@
+usr/lib/nautilus-sendto/plugins/libnstempathy.so
diff --git a/debian/patches/01_lpi.patch b/debian/patches/01_lpi.patch
new file mode 100644
index 000000000..234872333
--- /dev/null
+++ b/debian/patches/01_lpi.patch
@@ -0,0 +1,74 @@
+=== modified file 'configure.ac'
+--- a/configure.ac
++++ b/configure.ac
+@@ -161,6 +161,7 @@
+ telepathy-glib >= $TELEPATHY_GLIB_REQUIRED
+ telepathy-logger-0.2 >= $TELEPATHY_LOGGER
+ x11
++ launchpad-integration
+ ])
+
+ PKG_CHECK_MODULES(YELL, [telepathy-yell])
+--- a/src/empathy-chat-window.c
++++ b/src/empathy-chat-window.c
+@@ -36,6 +36,9 @@
+ #include <glib/gi18n.h>
+ #include <libnotify/notification.h>
+
++/* Add launchpad hooks */
++#include <launchpad-integration.h>
++
+ #include <telepathy-glib/telepathy-glib.h>
+
+ #include <libempathy/empathy-contact.h>
+@@ -2090,6 +2093,9 @@
+ chat_window_chat_manager_chats_changed_cb (priv->chat_manager,
+ empathy_chat_manager_get_num_chats (priv->chat_manager),
+ window);
++
++ /* Add launchpad hooks */
++ launchpad_integration_add_ui (priv->ui_manager, "/chats_menubar/menu_help/LaunchpadItems");
+ }
+
+ EmpathyChatWindow *
+--- a/src/empathy-chat-window.ui
++++ b/src/empathy-chat-window.ui
+@@ -197,6 +197,7 @@
+ </menu>
+ <menu action="menu_help">
+ <menuitem action="menu_help_contents"/>
++ <placeholder name="LaunchpadItems"/>
+ <menuitem action="menu_help_about"/>
+ </menu>
+ </menubar>
+--- a/src/empathy-main-window.c
++++ b/src/empathy-main-window.c
+@@ -33,6 +33,9 @@
+ #include <telepathy-glib/util.h>
+ #include <folks/folks.h>
+
++/* Add launchpad hooks */
++#include <launchpad-integration.h>
++
+ #include <libempathy/empathy-contact.h>
+ #include <libempathy/empathy-idle.h>
+ #include <libempathy/empathy-utils.h>
+@@ -2112,6 +2115,8 @@
+ main_window_notify_contact_list_size_cb (priv->gsettings_ui,
+ EMPATHY_PREFS_UI_SHOW_AVATARS,
+ window);
++
++ launchpad_integration_add_ui (priv->ui_manager, "/menubar/help/LaunchpadItems");
+ }
+
+ GtkWidget *
+--- a/src/empathy-main-window.ui
++++ b/src/empathy-main-window.ui
+@@ -277,6 +277,7 @@
+ <menu action="help">
+ <menuitem action="help_contents"/>
+ <menuitem action="help_debug"/>
++ <placeholder name="LaunchpadItems"/>
+ <menuitem action="help_about"/>
+ </menu>
+ </menubar>
diff --git a/debian/patches/02_notifications_focus.patch b/debian/patches/02_notifications_focus.patch
new file mode 100644
index 000000000..1156207b2
--- /dev/null
+++ b/debian/patches/02_notifications_focus.patch
@@ -0,0 +1,14 @@
+## Description: add some description
+## Origin/Author: add some origin or author
+## Bug: bug URL
+--- a/data/org.gnome.Empathy.gschema.xml.in
++++ b/data/org.gnome.Empathy.gschema.xml.in
+@@ -153,7 +153,7 @@
+ <_description>Whether to show popup notifications when away or busy.</_description>
+ </key>
+ <key name="notifications-focus" type="b">
+- <default>false</default>
++ <default>true</default>
+ <_summary>Pop up notifications if the chat isn't focused</_summary>
+ <_description>Whether to show a popup notification when receiving a new message even if the chat is already opened, but not focused.</_description>
+ </key>
diff --git a/debian/patches/10_use_notify_osd_icons.patch b/debian/patches/10_use_notify_osd_icons.patch
new file mode 100644
index 000000000..09f3c7d05
--- /dev/null
+++ b/debian/patches/10_use_notify_osd_icons.patch
@@ -0,0 +1,21 @@
+Description: Use the notify-osd image for new messages
+Bug: https://bugs.edge.launchpad.net/ubuntu/karmic/+source/empathy/+bug/409828
+
+From 18170177bf037f682438ddcb93b8682563db7c64 Mon Sep 17 00:00:00 2001
+From: Robert Ancell <robert.ancell@canonical.com>
+Date: Thu, 17 Sep 2009 17:42:26 +1000
+Subject: [PATCH] Use the notify-osd image for new messages
+
+Index: empathy-2.31.3/libempathy-gtk/empathy-images.h
+===================================================================
+--- empathy-2.31.3.orig/libempathy-gtk/empathy-images.h 2010-06-18 12:19:59.454507811 +1000
++++ empathy-2.31.3/libempathy-gtk/empathy-images.h 2010-06-18 12:20:06.804510537 +1000
+@@ -36,7 +36,7 @@
+ #define EMPATHY_IMAGE_PENDING "empathy-pending"
+
+ #define EMPATHY_IMAGE_MESSAGE "im-message"
+-#define EMPATHY_IMAGE_NEW_MESSAGE "im-message-new"
++#define EMPATHY_IMAGE_NEW_MESSAGE "notification-message-im"
+ #define EMPATHY_IMAGE_TYPING "user-typing"
+ #define EMPATHY_IMAGE_CONTACT_INFORMATION "gtk-info"
+ #define EMPATHY_IMAGE_GROUP_MESSAGE "system-users"
diff --git a/debian/patches/11_empathy_accounts_category.patch b/debian/patches/11_empathy_accounts_category.patch
new file mode 100644
index 000000000..edacba337
--- /dev/null
+++ b/debian/patches/11_empathy_accounts_category.patch
@@ -0,0 +1,16 @@
+Description: Put empathy-accounts in correct category
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=611913
+
+Index: empathy-2.32.2/data/empathy-accounts.desktop.in.in
+===================================================================
+--- empathy-2.32.2.orig/data/empathy-accounts.desktop.in.in 2010-11-24 17:22:17.415693001 +1100
++++ empathy-2.32.2/data/empathy-accounts.desktop.in.in 2010-11-24 17:22:20.075693001 +1100
+@@ -7,7 +7,7 @@
+ StartupNotify=true
+ Terminal=false
+ Type=Application
+-Categories=GNOME;GTK;Settings;DesktopSettings;
++Categories=GNOME;GTK;Settings;X-GNOME-PersonalSettings;
+ X-GNOME-Settings-Panel=empathy-accounts
+ X-GNOME-Bugzilla-Bugzilla=GNOME
+ X-GNOME-Bugzilla-Product=empathy
diff --git a/debian/patches/20_libindicate.patch b/debian/patches/20_libindicate.patch
new file mode 100644
index 000000000..e9de8498e
--- /dev/null
+++ b/debian/patches/20_libindicate.patch
@@ -0,0 +1,1652 @@
+=== modified file 'configure.ac'
+--- a/configure.ac
++++ b/configure.ac
+@@ -56,6 +56,8 @@
+ NETWORK_MANAGER_REQUIRED=0.7.0
+ WEBKIT_REQUIRED=1.1.15
+ GNOME_CONTROL_CENTER_GTK3_REQUIRED=2.31.4
++INDICATE_REQUIRED=0.4.91
++INDICATE_GTK_REQUIRED=0.4.91
+
+ # telepathy-yell
+ prev_top_build_prefix=$ac_top_build_prefix
+@@ -481,6 +483,34 @@
+ AC_SUBST(MEEGO_LIBS)
+
+ # -----------------------------------------------------------
++# libindicate
++# -----------------------------------------------------------
++AC_ARG_ENABLE(libindicate,
++ AS_HELP_STRING([--enable-libindicate=@<:@no/yes/auto@:>@],
++ [build libindicate support]), ,
++ enable_libindicate=auto)
++
++if test "x$enable_libindicate" != "xno"; then
++ PKG_CHECK_MODULES(INDICATE,
++ [
++ indicate-0.5 >= $INDICATE_REQUIRED,
++ indicate-gtk-0.5 >= $INDICATE_GTK_REQUIRED
++ ], have_libindicate="yes", have_libindicate="no")
++
++ if test "x$have_libindicate" = "xyes"; then
++ AC_DEFINE(HAVE_LIBINDICATE, 1, [Define if you have libindicate])
++ fi
++else
++ have_libindicate=no
++fi
++
++if test "x$enable_libindicate" = "xyes" -a "x$have_libindicate" != "xyes"; then
++ AC_MSG_ERROR([Couldn't find libindicate.])
++fi
++
++AM_CONDITIONAL(HAVE_LIBINDICATE, test "x$have_libindicate" = "xyes")
++
++# -----------------------------------------------------------
+ # nautilus-sendto
+ # -----------------------------------------------------------
+ AC_ARG_ENABLE(nautilus-sendto,
+@@ -582,6 +612,7 @@
+ CA Cert Path................: ${GTLS_SYSTEM_CA_FILE}
+
+ Features:
++ Message indicator support (libindicate): ${have_libindicate}
+ Spell checking (enchant)....: ${have_enchant}
+ Display maps (libchamplain).: ${have_libchamplain}
+ Location awareness (Geoclue): ${have_geoclue}
+--- a/data/org.gnome.Empathy.gschema.xml.in
++++ b/data/org.gnome.Empathy.gschema.xml.in
+@@ -86,6 +86,11 @@
+ <_summary>The position for the chat window side pane</_summary>
+ <_description>The stored position (in pixels) of the chat window side pane.</_description>
+ </key>
++ <key name="use-libindicate" type="b">
++ <default>true</default>
++ <summary>Use the messaging indicator</summary>
++ <description>Whether or not to use the messaging indicator, if false the icon in the notification area will be displayed.</description>
++ </key>
+ </schema>
+ <schema id="org.gnome.Empathy.contacts" path="/apps/empathy/contacts/">
+ <key name="sort-criterium" type="s">
+--- a/libempathy-gtk/empathy-ui-utils.c
++++ b/libempathy-gtk/empathy-ui-utils.c
+@@ -1564,25 +1564,36 @@
+ Display *dpy;
+ GdkWindow *gdk_window;
+
+- gtk_status_icon_get_geometry (status_icon, NULL, &icon_location, NULL);
+- gdk_window = gtk_widget_get_window (GTK_WIDGET (window));
+- dpy = gdk_x11_drawable_get_xdisplay (gdk_window);
++ // If the status icon isn't visible (because indicators are used) then
++ // attempting to change the properties of the status icon doesn't work.
++ if (gtk_status_icon_get_visible (status_icon)) {
++ gtk_status_icon_get_geometry (status_icon, NULL, &icon_location, NULL);
++ gdk_window = gtk_widget_get_window (GTK_WIDGET (window));
++ dpy = gdk_x11_drawable_get_xdisplay (gdk_window);
+
+- data[0] = icon_location.x;
+- data[1] = icon_location.y;
+- data[2] = icon_location.width;
+- data[3] = icon_location.height;
++ data[0] = icon_location.x;
++ data[1] = icon_location.y;
++ data[2] = icon_location.width;
++ data[3] = icon_location.height;
+
+- XChangeProperty (dpy,
+- GDK_WINDOW_XID (gdk_window),
+- gdk_x11_get_xatom_by_name_for_display (
+- gdk_drawable_get_display (gdk_window),
+- "_NET_WM_ICON_GEOMETRY"),
+- XA_CARDINAL, 32, PropModeReplace,
+- (guchar *)&data, 4);
++ XChangeProperty (dpy,
++ GDK_WINDOW_XID (gdk_window),
++ gdk_x11_get_xatom_by_name_for_display (
++ gdk_drawable_get_display (gdk_window),
++ "_NET_WM_ICON_GEOMETRY"),
++ XA_CARDINAL, 32, PropModeReplace,
++ (guchar *)&data, 4);
++ }
+
+ gtk_window_set_skip_taskbar_hint (window, TRUE);
+- gtk_window_iconify (window);
++ // If the status icon isn't present then the WM will probably choose to
++ // iconfy to the taskbar, which doesn't look as good as the taskbar
++ // entry has just been removed. Just hide instead.
++ if (gtk_status_icon_get_visible (status_icon)) {
++ gtk_window_iconify (window);
++ } else {
++ gtk_widget_hide (GTK_WIDGET(window));
++ }
+ }
+
+ /* Takes care of moving the window to the current workspace. */
+--- a/libempathy/empathy-gsettings.h
++++ b/libempathy/empathy-gsettings.h
+@@ -71,6 +71,7 @@
+ #define EMPATHY_PREFS_UI_SHOW_AVATARS "show-avatars"
+ #define EMPATHY_PREFS_UI_SHOW_PROTOCOLS "show-protocols"
+ #define EMPATHY_PREFS_UI_COMPACT_CONTACT_LIST "compact-contact-list"
++#define EMPATHY_PREFS_UI_USE_LIBINDICATE "use-libindicate"
+ #define EMPATHY_PREFS_UI_CHAT_WINDOW_PANED_POS "chat-window-paned-pos"
+ #define EMPATHY_PREFS_UI_SHOW_OFFLINE "show-offline"
+
+--- a/po/POTFILES.in
++++ b/po/POTFILES.in
+@@ -97,6 +97,8 @@
+ [type: gettext/glade]src/empathy-ft-manager.ui
+ src/empathy-import-dialog.c
+ src/empathy-import-widget.c
++src/empathy-indicator.c
++src/empathy-indicator-manager.c
+ [type: gettext/glade]src/empathy-import-dialog.ui
+ src/empathy-import-widget.c
+ src/empathy-main-window.c
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -8,6 +8,7 @@
+ $(ERROR_CFLAGS) \
+ -I$(top_srcdir) \
+ -DG_LOG_DOMAIN=\"empathy\" \
++ -DDESKTOPDIR=\"$(datadir)/applications\" \
+ -DBIN_DIR=\"$(bindir)\" \
+ $(DISABLE_DEPRECATED) \
+ $(WARN_CFLAGS) \
+@@ -17,6 +18,7 @@
+ AM_CPPFLAGS = \
+ $(CPPFLAGS_COMMON) \
+ $(LIBNOTIFY_CFLAGS) \
++ $(INDICATE_CFLAGS) \
+ $(UNIQUE_CFLAGS) \
+ $(LIBCHAMPLAIN_CFLAGS) \
+ $(WEBKIT_CFLAGS) \
+@@ -27,6 +29,7 @@
+ $(top_builddir)/libempathy/libempathy.la \
+ $(top_builddir)/extensions/libemp-extensions.la \
+ $(LIBNOTIFY_LIBS) \
++ $(INDICATE_LIBS) \
+ $(UNIQUE_LIBS) \
+ $(EMPATHY_LIBS) \
+ $(GTK_LIBS) \
+@@ -200,6 +203,7 @@
+ $(LIBNOTIFY_LIBS) \
+ $(UNIQUE_LIBS) \
+ $(EMPATHY_LIBS) \
++ $(INDICATE_LIBS) \
+ $(LIBCHAMPLAIN_LIBS) \
+ $(WEBKIT_LIBS) \
+ $(NULL)
+@@ -232,6 +236,18 @@
+ $(autostart_DATA) \
+ $(ui_DATA)
+
++if HAVE_LIBINDICATE
++empathy_handwritten_source += \
++ empathy-indicator-manager.c \
++ empathy-indicator-manager.h \
++ empathy-indicator.c empathy-indicator.h
++else
++EXTRA_DIST += \
++ empathy-indicator-manager.c \
++ empathy-indicator-manager.h \
++ empathy-indicator.c empathy-indicator.h
++endif
++
+ if HAVE_LIBCHAMPLAIN
+ empathy_handwritten_source += \
+ empathy-map-view.c \
+--- a/src/empathy-chat-window.c
++++ b/src/empathy-chat-window.c
+@@ -63,6 +63,11 @@
+ #include "empathy-about-dialog.h"
+ #include "empathy-invite-participant-dialog.h"
+
++#ifdef HAVE_LIBINDICATE
++#include "empathy-indicator.h"
++#include "empathy-indicator-manager.h"
++#endif
++
+ #define DEBUG_FLAG EMPATHY_DEBUG_CHAT
+ #include <libempathy/empathy-debug.h>
+
+@@ -86,7 +91,11 @@
+ GtkWidget *dialog;
+ GtkWidget *notebook;
+ NotifyNotification *notification;
+-
++#ifdef HAVE_LIBINDICATE
++ EmpathyIndicatorManager *indicator_manager;
++ /* EmpathyChat -> EmpathyIndicator for that chat, if any */
++ GHashTable *indicators;
++#endif
+ GtkTargetList *contact_targets;
+ GtkTargetList *file_targets;
+
+@@ -1278,6 +1287,72 @@
+ }
+ }
+
++#ifdef HAVE_LIBINDICATE
++static void
++chat_window_indicator_activate_cb (EmpathyIndicator *indicator, guint timestamp,
++ EmpathyChat *chat)
++{
++ empathy_chat_window_present_chat (chat, timestamp);
++ empathy_indicator_hide (indicator);
++}
++
++static void
++chat_window_add_indicator (EmpathyChatWindow *window,
++ EmpathyMessage *message,
++ EmpathyChat *chat)
++{
++ EmpathyChatWindowPriv *priv = GET_PRIV (window);
++ EmpathyContact *sender;
++ const char *body;
++ gboolean use_libindicate;
++ EmpathyIndicator *indicator = NULL;
++ GSettings *gsettings;
++
++ gsettings = g_settings_new (EMPATHY_PREFS_UI_SCHEMA);
++ use_libindicate = g_settings_get_boolean (gsettings, EMPATHY_PREFS_UI_USE_LIBINDICATE);
++ g_object_unref (gsettings);
++
++ if (!use_libindicate) {
++ return;
++ }
++
++ sender = empathy_message_get_sender (message);
++ body = empathy_message_get_body (message);
++
++ indicator = g_hash_table_lookup (priv->indicators, chat);
++ if (indicator != NULL) {
++ DEBUG ("indicator exists");
++ empathy_indicator_update (indicator, body);
++ } else {
++ DEBUG ("indicator doesn't exist yet, creating a new indicator");
++ indicator = empathy_indicator_manager_create_indicator (priv->indicator_manager,
++ sender, body);
++ g_signal_connect (indicator, "activate",
++ G_CALLBACK (chat_window_indicator_activate_cb), chat);
++
++ g_hash_table_insert (priv->indicators, chat, indicator);
++ }
++ empathy_indicator_show (indicator);
++}
++
++static void
++chat_window_remove_indicator (EmpathyChatWindow *window, EmpathyChat *chat)
++{
++ EmpathyIndicator *indicator = NULL;
++ EmpathyChatWindowPriv *priv = GET_PRIV (window);
++
++ indicator = g_hash_table_lookup (priv->indicators, chat);
++
++ if ((indicator) && (indicator != NULL)) {
++ DEBUG ("indicator is %p", indicator);
++ empathy_indicator_hide (indicator);
++ g_hash_table_remove (priv->indicators, chat);
++ } else {
++ DEBUG ("indicator is NULL, nothing to remove");
++ }
++}
++#endif
++
+ static void
+ chat_window_show_or_update_notification (EmpathyChatWindow *window,
+ EmpathyMessage *message,
+@@ -1454,6 +1529,9 @@
+
+ empathy_sound_play (GTK_WIDGET (priv->dialog),
+ EMPATHY_SOUND_MESSAGE_INCOMING);
++#ifdef HAVE_LIBINDICATE
++ chat_window_add_indicator (window, message, chat);
++#endif
+
+ /* Pending messages have already been displayed in the approver, so we don't
+ * display a notification for those. */
+@@ -1526,6 +1604,10 @@
+ empathy_chat_messages_read (chat);
+
+ chat_window_update_chat_tab (chat);
++
++#ifdef HAVE_LIBINDICATE
++ chat_window_remove_indicator (window, chat);
++#endif
+ }
+
+ static void
+@@ -1642,6 +1724,11 @@
+ /* Update the title, since we now mark all unread messages as read. */
+ chat_window_update_chat_tab_full (priv->current_chat, FALSE);
+
++#ifdef HAVE_LIBINDICATE
++ /* Remove the indicator for the active chat */
++ chat_window_remove_indicator (window, priv->current_chat);
++#endif
++
+ return FALSE;
+ }
+
+@@ -1986,6 +2073,11 @@
+ g_object_unref (gui);
+
+ priv->chatroom_manager = empathy_chatroom_manager_dup_singleton (NULL);
++#ifdef HAVE_LIBINDICATE
++ priv->indicator_manager = empathy_indicator_manager_dup_singleton ();
++ priv->indicators = g_hash_table_new_full (g_direct_hash, g_direct_equal,
++ NULL, g_object_unref);
++#endif
+
+ priv->notebook = gtk_notebook_new ();
+ gtk_notebook_set_group (GTK_NOTEBOOK (priv->notebook), "EmpathyChatWindow");
+--- /dev/null
++++ b/src/empathy-indicator-manager.c
+@@ -0,0 +1,467 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
++/*
++ * Copyright (C) 2009 Canonical Ltd.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public
++ * License along with this program; if not, write to the
++ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
++ * Boston, MA 02110-1301 USA
++ *
++ * Authors: James Westby <james.westby@ubuntu.com>
++ *
++ */
++
++#include <config.h>
++
++#include <gtk/gtk.h>
++
++#include <libempathy/empathy-contact.h>
++#include <libempathy/empathy-dispatcher.h>
++#include <libempathy/empathy-utils.h>
++
++#include <libempathy-gtk/empathy-ui-utils.h>
++#include <libempathy-gtk/empathy-notify-manager.h>
++
++#include <telepathy-glib/util.h>
++
++#include "empathy-event-manager.h"
++#include "empathy-indicator.h"
++#include "empathy-indicator-manager.h"
++
++#include <libindicate/server.h>
++#include <libindicate/indicator.h>
++
++#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
++#include <libempathy/empathy-debug.h>
++
++#define INDICATOR_LOGIN_TIMEOUT 15
++#define EMPATHY_DESKTOP_PATH DESKTOPDIR "/empathy.desktop"
++
++#define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyIndicatorManager)
++
++enum {
++ SERVER_ACTIVATE,
++ LAST_SIGNAL
++};
++
++static guint signals[LAST_SIGNAL];
++
++typedef struct {
++ EmpathyEventManager *event_manager;
++ IndicateServer *indicate_server;
++ GSList *indicator_events;
++ GHashTable *login_timeouts;
++} EmpathyIndicatorManagerPriv;
++
++typedef struct {
++ EmpathyIndicator *indicator;
++ EmpathyEvent *event;
++} IndicatorEvent;
++
++typedef struct {
++ EmpathyIndicatorManager *manager;
++ EmpathyIndicator *indicator;
++} LoginData;
++
++G_DEFINE_TYPE (EmpathyIndicatorManager, empathy_indicator_manager, G_TYPE_OBJECT);
++
++static EmpathyIndicatorManager *manager_singleton = NULL;
++
++static EmpathyEvent *
++event_copy (EmpathyEvent *event)
++{
++ EmpathyEvent *ret = g_new0 (EmpathyEvent, 1);
++
++ ret->contact = g_object_ref (event->contact);
++ ret->icon_name = g_strdup (event->icon_name);
++ ret->header = g_strdup (event->header);
++ ret->message = g_strdup (event->message);
++ ret->must_ack = event->must_ack;
++
++ return ret;
++}
++
++static gboolean
++compare_events (EmpathyEvent *ev1, EmpathyEvent *ev2)
++{
++ return ((g_strcmp0 (ev1->icon_name, ev2->icon_name) == 0) &&
++ (g_strcmp0 (ev1->header, ev2->header) == 0) &&
++ (ev1->must_ack == ev2->must_ack) &&
++ (ev1->contact == ev2->contact));
++}
++
++static IndicatorEvent *
++indicator_event_new (EmpathyIndicator *indicator,
++ EmpathyEvent *event)
++{
++ IndicatorEvent *indicator_event;
++
++ indicator_event = g_slice_new0 (IndicatorEvent);
++ indicator_event->indicator = g_object_ref (indicator);
++ indicator_event->event = event_copy (event);
++
++ return indicator_event;
++}
++
++
++static void
++indicator_event_free (IndicatorEvent *indicator_event)
++{
++ g_object_unref (indicator_event->indicator);
++ g_free (indicator_event);
++}
++
++
++static void
++indicate_server_activate (IndicateServer *server, guint timestamp,
++ EmpathyIndicatorManager *manager)
++{
++ g_signal_emit (manager, signals[SERVER_ACTIVATE], 0, timestamp);
++}
++
++
++static void
++indicate_show_cb (EmpathyIndicator *indicator, guint timestamp,
++ EmpathyEvent *event)
++{
++ empathy_event_activate (event);
++}
++
++
++static void
++indicator_manager_event_added_cb (EmpathyEventManager *event_manager,
++ EmpathyEvent *event,
++ EmpathyIndicatorManager *manager)
++{
++ EmpathyIndicator *indicator = NULL;
++ EmpathyIndicatorManagerPriv *priv;
++ IndicatorEvent *indicator_event;
++
++ priv = GET_PRIV (manager);
++
++ DEBUG ("Event added");
++
++ if (event->contact == NULL)
++ return;
++
++ indicator = empathy_indicator_new (event->contact, event->message, "im");
++ if (indicator == NULL) {
++ return;
++ }
++
++ empathy_indicator_show (indicator);
++ g_signal_connect (G_OBJECT(indicator), "activate",
++ G_CALLBACK (indicate_show_cb),
++ event);
++ indicator_event = indicator_event_new (indicator, event);
++ g_object_unref (indicator);
++ priv->indicator_events = g_slist_prepend (priv->indicator_events,
++ indicator_event);
++}
++
++static void
++indicator_manager_event_removed_cb (EmpathyEventManager *event_manager,
++ EmpathyEvent *event,
++ EmpathyIndicatorManager *manager)
++{
++ EmpathyIndicatorManagerPriv *priv;
++ GSList *l;
++
++ priv = GET_PRIV (manager);
++
++ DEBUG ("Event removed");
++
++ for (l = priv->indicator_events; l; l = l->next)
++ {
++ IndicatorEvent *indicator_event;
++ indicator_event = l->data;
++
++ if (compare_events (indicator_event->event, event)) {
++ priv->indicator_events = g_slist_remove (priv->indicator_events,
++ indicator_event);
++ empathy_indicator_hide (indicator_event->indicator);
++ return;
++ }
++ }
++}
++
++
++static void
++indicator_manager_event_updated_cb (EmpathyEventManager *event_manager,
++ EmpathyEvent *event,
++ EmpathyIndicatorManager *manager)
++{
++ EmpathyIndicatorManagerPriv *priv;
++ GSList *l;
++
++ priv = GET_PRIV (manager);
++
++ for (l = priv->indicator_events; l; l = l->next)
++ {
++ IndicatorEvent *indicator_event;
++ indicator_event = l->data;
++ if (compare_events (indicator_event->event, event)) {
++ empathy_indicator_update (indicator_event->indicator,
++ event->message);
++ return;
++ }
++ }
++}
++
++
++/* Remove the login indicator when it times out */
++static gboolean
++indicate_login_timeout (gpointer data)
++{
++ LoginData *login_data;
++ EmpathyIndicator *e_indicator;
++ EmpathyIndicatorManager *manager;
++ EmpathyIndicatorManagerPriv *priv;
++
++ login_data = (LoginData *) data;
++ e_indicator = login_data->indicator;
++ manager = login_data->manager;
++ priv = GET_PRIV (manager);
++
++ empathy_indicator_hide (e_indicator);
++ g_hash_table_remove (priv->login_timeouts, e_indicator);
++
++ return FALSE;
++}
++
++
++static void
++indicate_login_cb (EmpathyIndicator *e_indicator, guint timestamp,
++ EmpathyIndicatorManager *manager)
++{
++ EmpathyIndicatorManagerPriv *priv;
++ GSList *events, *l;
++ EmpathyContact *contact;
++
++ priv = GET_PRIV (manager);
++
++ empathy_indicator_hide (e_indicator);
++ g_hash_table_remove (priv->login_timeouts, e_indicator);
++
++ contact = empathy_indicator_get_contact (e_indicator);
++ /* If the contact has an event activate it, otherwise the
++ * default handler of row-activated will be called. */
++ events = empathy_event_manager_get_events (priv->event_manager);
++ for (l = events; l; l = l->next) {
++ EmpathyEvent *event;
++
++ event = l->data;
++ if (event->contact == contact) {
++ empathy_event_activate (event);
++ return;
++ }
++ }
++
++ /* Else start a new conversation */
++ empathy_dispatcher_chat_with_contact (contact, timestamp);
++}
++
++
++EmpathyIndicatorManager *
++empathy_indicator_manager_dup_singleton (void)
++{
++ return g_object_new (EMPATHY_TYPE_INDICATOR_MANAGER, NULL);
++}
++
++
++static void
++indicator_manager_dispose (GObject *object)
++{
++ EmpathyIndicatorManagerPriv *priv;
++
++ priv = GET_PRIV (object);
++
++ if (priv->indicator_events) {
++ g_slist_foreach (priv->indicator_events, (GFunc) indicator_event_free,
++ NULL);
++ g_slist_free (priv->indicator_events);
++ priv->indicator_events = NULL;
++ }
++ if (priv->event_manager) {
++ g_object_unref (priv->event_manager);
++ priv->event_manager = NULL;
++ }
++ if (priv->indicate_server) {
++ g_object_unref (priv->indicate_server);
++ priv->indicate_server = NULL;
++ }
++ if (priv->login_timeouts) {
++ g_hash_table_unref (priv->login_timeouts);
++ priv->login_timeouts = NULL;
++ }
++
++ G_OBJECT_CLASS (empathy_indicator_manager_parent_class)->dispose (object);
++}
++
++
++static GObject *
++indicator_manager_constructor (GType type,
++ guint n_props,
++ GObjectConstructParam *props)
++{
++ GObject *retval;
++
++ if (manager_singleton != NULL) {
++ retval = g_object_ref (manager_singleton);
++ } else {
++ retval = G_OBJECT_CLASS (empathy_indicator_manager_parent_class)->constructor
++ (type, n_props, props);
++
++ manager_singleton = EMPATHY_INDICATOR_MANAGER (retval);
++ g_object_add_weak_pointer (retval, (gpointer) &manager_singleton);
++ }
++
++ return retval;
++}
++
++
++static void
++empathy_indicator_manager_class_init (EmpathyIndicatorManagerClass *klass)
++{
++ GObjectClass *object_class;
++
++ object_class = G_OBJECT_CLASS (klass);
++ object_class->dispose = indicator_manager_dispose;
++ object_class->constructor = indicator_manager_constructor;
++
++ signals[SERVER_ACTIVATE] =
++ g_signal_new ("server-activate",
++ G_TYPE_FROM_CLASS (klass),
++ G_SIGNAL_RUN_LAST,
++ 0,
++ NULL, NULL,
++ g_cclosure_marshal_VOID__UINT,
++ G_TYPE_NONE, 1, G_TYPE_UINT);
++
++ g_type_class_add_private (object_class, sizeof (EmpathyIndicatorManagerPriv));
++}
++
++
++static void
++empathy_indicator_manager_init (EmpathyIndicatorManager *manager)
++{
++ EmpathyIndicatorManagerPriv *priv;
++
++ priv = G_TYPE_INSTANCE_GET_PRIVATE (manager,
++ EMPATHY_TYPE_INDICATOR_MANAGER, EmpathyIndicatorManagerPriv);
++ manager->priv = priv;
++
++ priv->event_manager = empathy_event_manager_dup_singleton ();
++ priv->login_timeouts = g_hash_table_new_full (NULL, NULL,
++ (GDestroyNotify) g_object_unref, (GDestroyNotify) g_source_unref);
++ priv->indicate_server = indicate_server_ref_default ();
++ indicate_server_set_type (priv->indicate_server, "message.instant");
++ indicate_server_set_desktop_file (priv->indicate_server,
++ EMPATHY_DESKTOP_PATH);
++
++ g_signal_connect (priv->indicate_server,
++ INDICATE_SERVER_SIGNAL_SERVER_DISPLAY,
++ G_CALLBACK (indicate_server_activate),
++ manager);
++
++ g_signal_connect (priv->event_manager, "event-added",
++ G_CALLBACK (indicator_manager_event_added_cb),
++ manager);
++ g_signal_connect (priv->event_manager, "event-removed",
++ G_CALLBACK (indicator_manager_event_removed_cb),
++ manager);
++ g_signal_connect (priv->event_manager, "event-updated",
++ G_CALLBACK (indicator_manager_event_updated_cb),
++ manager);
++}
++
++void
++empathy_indicator_manager_set_server_visible (EmpathyIndicatorManager *manager,
++ gboolean visible)
++{
++ EmpathyIndicatorManagerPriv *priv;
++
++ priv = GET_PRIV (manager);
++ if (visible) {
++ DEBUG ("Show indicator");
++ indicate_server_show (priv->indicate_server);
++ } else {
++ DEBUG ("Hide indicator");
++ indicate_server_hide (priv->indicate_server);
++ }
++}
++
++
++EmpathyIndicator *
++empathy_indicator_manager_create_indicator (EmpathyIndicatorManager *manager,
++ EmpathyContact *sender,
++ const gchar *body)
++{
++ return empathy_indicator_new (sender, body, "im");
++}
++
++
++static LoginData *
++login_data_new (EmpathyIndicator *e_indicator,
++ EmpathyIndicatorManager *manager)
++{
++ LoginData *login_data;
++
++ login_data = g_slice_new0 (LoginData);
++ login_data->manager = g_object_ref (manager);
++ login_data->indicator = g_object_ref (e_indicator);
++
++ return login_data;
++}
++
++
++static void
++indicator_destroy_login_data (gpointer data)
++{
++ LoginData *login_data;
++
++ login_data = (LoginData *)data;
++
++ g_object_unref (login_data->manager);
++ g_object_unref (login_data->indicator);
++ g_slice_free (LoginData, login_data);
++}
++
++
++/* Add an indicator for someone logging in. This will be displayed for
++ * a short period only.
++ */
++void
++empathy_indicator_manager_add_login_indicator (EmpathyIndicatorManager *manager,
++ EmpathyContact *contact)
++{
++ EmpathyIndicatorManagerPriv *priv;
++ GSource *timeout;
++ EmpathyIndicator *e_indicator;
++ LoginData *login_data;
++
++ priv = GET_PRIV (manager);
++ e_indicator = empathy_indicator_new (contact, NULL, "login");
++ login_data = login_data_new (e_indicator, manager);
++
++ timeout = g_timeout_source_new_seconds (INDICATOR_LOGIN_TIMEOUT);
++ g_source_set_callback (timeout, indicate_login_timeout, login_data,
++ indicator_destroy_login_data);
++ g_source_attach (timeout, NULL);
++
++ g_hash_table_insert (priv->login_timeouts, e_indicator, timeout);
++
++ g_signal_connect (e_indicator, "activate",
++ G_CALLBACK (indicate_login_cb), manager);
++ empathy_indicator_show (e_indicator);
++}
+--- /dev/null
++++ b/src/empathy-indicator-manager.h
+@@ -0,0 +1,77 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
++/*
++ * Copyright (C) 2009 Canonical Ltd.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public
++ * License along with this program; if not, write to the
++ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
++ * Boston, MA 02110-1301 USA
++ *
++ * Authors: James Westby <james.westby@ubuntu.com>
++ *
++ */
++
++#ifndef __EMPATHY_INDICATOR_MANAGER_H__
++#define __EMPATHY_INDICATOR_MANAGER_H__
++
++#include <glib.h>
++
++#include <libempathy/empathy-contact.h>
++#include "empathy-indicator.h"
++
++G_BEGIN_DECLS
++
++#define EMPATHY_TYPE_INDICATOR_MANAGER \
++ (empathy_indicator_manager_get_type ())
++#define EMPATHY_INDICATOR_MANAGER(o) \
++ (G_TYPE_CHECK_INSTANCE_CAST ((o), EMPATHY_TYPE_INDICATOR_MANAGER, \
++ EmpathyIndicatorManager))
++#define EMPATHY_INDICATOR_MANAGER_CLASS(k) \
++ (G_TYPE_CHECK_CLASS_CAST((k), EMPATHY_TYPE_INDICATOR_MANAGER, \
++ EmpathyIndicatorManagerClass))
++#define EMPATHY_IS_INDICATOR_MANAGER(o) \
++ (G_TYPE_CHECK_INSTANCE_TYPE ((o), EMPATHY_TYPE_INDICATOR_MANAGER))
++#define EMPATHY_IS_INDICATOR_MANAGER_CLASS(k) \
++ (G_TYPE_CHECK_CLASS_TYPE ((k), EMPATHY_TYPE_INDICATOR_MANAGER))
++#define EMPATHY_INDICATOR_MANAGER_GET_CLASS(o) \
++ (G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_INDICATOR_MANAGER, \
++ EmpathyIndicatorManagerClass))
++
++typedef struct _EmpathyIndicatorManager EmpathyIndicatorManager;
++typedef struct _EmpathyIndicatorManagerClass EmpathyIndicatorManagerClass;
++
++struct _EmpathyIndicatorManager {
++ GObject parent;
++ gpointer priv;
++};
++
++struct _EmpathyIndicatorManagerClass {
++ GObjectClass parent_class;
++};
++
++GType empathy_indicator_manager_get_type (void) G_GNUC_CONST;
++EmpathyIndicatorManager *empathy_indicator_manager_dup_singleton (void);
++void empathy_indicator_manager_set_server_visible (
++ EmpathyIndicatorManager *manager,
++ gboolean visible);
++EmpathyIndicator *empathy_indicator_manager_create_indicator (
++ EmpathyIndicatorManager *manager,
++ EmpathyContact *sender,
++ const gchar *body);
++void empathy_indicator_manager_add_login_indicator (
++ EmpathyIndicatorManager *manager,
++ EmpathyContact *contact);
++
++G_END_DECLS
++
++#endif /* __EMPATHY_INDICATOR_MANAGER_H__ */
+--- /dev/null
++++ b/src/empathy-indicator.c
+@@ -0,0 +1,325 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
++/*
++ * Copyright (C) 2009 Canonical Ltd.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public
++ * License along with this program; if not, write to the
++ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
++ * Boston, MA 02110-1301 USA
++ *
++ * Authors: James Westby <james.westby@ubuntu.com>
++ *
++ */
++
++#include <gtk/gtk.h>
++
++#include <libempathy/empathy-contact.h>
++#include <libempathy/empathy-utils.h>
++
++#include <libempathy-gtk/empathy-ui-utils.h>
++#include <libempathy-gtk/empathy-notify-manager.h>
++
++#include "empathy-indicator.h"
++
++#include <libindicate/indicator.h>
++#include <libindicate-gtk/indicator.h>
++
++#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
++#include <libempathy/empathy-debug.h>
++
++#define GET_PRIV(obj) EMPATHY_GET_PRIV ((obj), EmpathyIndicator)
++
++enum {
++ PROP_0,
++ PROP_CONTACT,
++ PROP_BODY,
++ PROP_SUBTYPE,
++ PROP_VISIBLE
++};
++
++enum {
++ ACTIVATE,
++ LAST_SIGNAL
++};
++
++static guint signals[LAST_SIGNAL];
++
++typedef struct {
++ IndicateIndicator *indicator;
++ EmpathyContact *contact;
++ gchar *body;
++ gchar *subtype;
++} EmpathyIndicatorPriv;
++
++G_DEFINE_TYPE (EmpathyIndicator, empathy_indicator, G_TYPE_OBJECT)
++
++
++static void
++empathy_indicator_dispose (GObject *object)
++{
++ EmpathyIndicatorPriv *priv;
++
++ priv = GET_PRIV (object);
++
++ if (priv->indicator) {
++ g_object_unref (priv->indicator);
++ priv->indicator = NULL;
++ }
++ if (priv->contact) {
++ g_object_unref (priv->contact);
++ priv->contact = NULL;
++ }
++
++ G_OBJECT_CLASS (empathy_indicator_parent_class)->dispose (object);
++}
++
++
++static void
++empathy_indicator_finalize (GObject *object)
++{
++ EmpathyIndicatorPriv *priv;
++
++ priv = GET_PRIV (object);
++
++ g_free (priv->body);
++ g_free (priv->subtype);
++
++ G_OBJECT_CLASS (empathy_indicator_parent_class)->finalize (object);
++}
++
++static void
++indicate_show_cb (IndicateIndicator *indicator, guint timestamp,
++ EmpathyIndicator *e_indicator)
++{
++ g_signal_emit (e_indicator, signals[ACTIVATE], 0, timestamp);
++}
++
++
++static IndicateIndicator *
++empathy_indicator_get_indicator (EmpathyIndicator *e_indicator)
++{
++ EmpathyIndicatorPriv *priv;
++
++ priv = GET_PRIV (e_indicator);
++ if (priv->indicator)
++ return priv->indicator;
++
++ priv->indicator = indicate_indicator_new ();
++ g_assert (priv->indicator);
++ g_signal_connect (G_OBJECT (priv->indicator),
++ INDICATE_INDICATOR_SIGNAL_DISPLAY,
++ G_CALLBACK (indicate_show_cb),
++ e_indicator);
++
++ return priv->indicator;
++}
++
++
++static void
++empathy_indicator_set_property (GObject *object,
++ guint param_id,
++ const GValue *value,
++ GParamSpec *pspec)
++{
++ EmpathyIndicator *e_indicator;
++ EmpathyIndicatorPriv *priv;
++ IndicateIndicator *indicator;
++ GTimeVal time;
++ GdkPixbuf *pixbuf_avatar = NULL;
++
++ e_indicator = EMPATHY_INDICATOR (object);
++ priv = GET_PRIV (e_indicator);
++
++ indicator = empathy_indicator_get_indicator (e_indicator);
++
++ switch (param_id) {
++ case PROP_CONTACT:
++ priv->contact = g_object_ref (g_value_get_object (value));
++ g_assert (priv->contact);
++ indicate_indicator_set_property (indicator, "sender",
++ empathy_contact_get_alias (priv->contact));
++ /* get the scaled avatar (22,22) until LP bug #433143 is fixed then switch to
++ to letting indicate-messages handle the scaling by setting the size to 0, 0 */
++ pixbuf_avatar = empathy_pixbuf_avatar_from_contact_scaled (priv->contact, 22, 22);
++ if (pixbuf_avatar != NULL)
++ {
++ indicate_indicator_set_property_icon(indicator, "icon", pixbuf_avatar);
++ g_object_unref(G_OBJECT(pixbuf_avatar));
++ }
++ break;
++ case PROP_BODY:
++ if (priv->body)
++ g_free (priv->body);
++ priv->body = g_strdup (g_value_get_string (value));
++ indicate_indicator_set_property (indicator, "body", priv->body);
++ if (priv->body != NULL) {
++ g_get_current_time (&time);
++ indicate_indicator_set_property_time (indicator, "time", &time);
++ }
++ break;
++ case PROP_SUBTYPE:
++ if (priv->subtype)
++ g_free (priv->subtype);
++ priv->subtype = g_strdup (g_value_get_string (value));
++ indicate_indicator_set_property (indicator, "subtype", priv->subtype);
++ if (g_strcmp0 (priv->subtype, "login") != 0 ) {
++ indicate_indicator_set_property (indicator, "draw-attention", "true");
++ }
++ break;
++ case PROP_VISIBLE:
++ if (g_value_get_boolean (value))
++ indicate_indicator_show (indicator);
++ else
++ indicate_indicator_hide (indicator);
++ break;
++ default:
++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
++ break;
++ }
++}
++
++
++static void
++empathy_indicator_get_property (GObject *object,
++ guint param_id,
++ GValue *value,
++ GParamSpec *pspec)
++{
++ EmpathyIndicator *e_indicator;
++ EmpathyIndicatorPriv *priv;
++
++ e_indicator = EMPATHY_INDICATOR (object);
++ priv = GET_PRIV (e_indicator);
++
++ switch (param_id) {
++ case PROP_CONTACT:
++ g_value_set_object (value, priv->contact);
++ break;
++ case PROP_BODY:
++ g_value_set_string (value, priv->body);
++ break;
++ case PROP_SUBTYPE:
++ g_value_set_string (value, priv->subtype);
++ break;
++ case PROP_VISIBLE:
++ g_value_set_boolean (value, indicate_indicator_is_visible (priv->indicator));
++ break;
++ default:
++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
++ break;
++ }
++}
++
++
++static void
++empathy_indicator_class_init (EmpathyIndicatorClass *klass)
++{
++ GObjectClass *object_class;
++
++ object_class = G_OBJECT_CLASS (klass);
++
++ object_class->set_property = empathy_indicator_set_property;
++ object_class->get_property = empathy_indicator_get_property;
++ object_class->dispose = empathy_indicator_dispose;
++ object_class->finalize = empathy_indicator_finalize;
++
++ g_object_class_install_property (object_class, PROP_CONTACT,
++ g_param_spec_object ("contact",
++ "Contact",
++ "The contact being indicated",
++ EMPATHY_TYPE_CONTACT,
++ (G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)));
++ g_object_class_install_property (object_class, PROP_BODY,
++ g_param_spec_string ("body",
++ "Body",
++ "The text for this contact",
++ NULL,
++ (G_PARAM_READWRITE | G_PARAM_CONSTRUCT)));
++ g_object_class_install_property (object_class, PROP_SUBTYPE,
++ g_param_spec_string ("subtype",
++ "Subtype",
++ "The type of this indicator",
++ NULL,
++ (G_PARAM_READWRITE | G_PARAM_CONSTRUCT)));
++ g_object_class_install_property (object_class, PROP_VISIBLE,
++ g_param_spec_boolean ("visible",
++ "Visible",
++ "The visibility of this indicator",
++ FALSE,
++ G_PARAM_READWRITE));
++
++ signals[ACTIVATE] =
++ g_signal_new ("activate",
++ G_TYPE_FROM_CLASS (klass),
++ G_SIGNAL_RUN_LAST,
++ 0,
++ NULL, NULL,
++ g_cclosure_marshal_VOID__UINT,
++ G_TYPE_NONE, 1, G_TYPE_UINT);
++
++ g_type_class_add_private (object_class, sizeof (EmpathyIndicatorPriv));
++}
++
++
++static void
++empathy_indicator_init (EmpathyIndicator *e_indicator)
++{
++ e_indicator->priv = G_TYPE_INSTANCE_GET_PRIVATE (e_indicator,
++ EMPATHY_TYPE_INDICATOR,
++ EmpathyIndicatorPriv);
++}
++
++
++EmpathyIndicator *
++empathy_indicator_new (EmpathyContact *sender,
++ const gchar *body,
++ const gchar *subtype)
++{
++ DEBUG ("Creating a new indicator");
++ return g_object_new (EMPATHY_TYPE_INDICATOR, "contact", sender, "body", body,
++ "subtype", subtype, NULL);
++}
++
++
++void
++empathy_indicator_show (EmpathyIndicator *e_indicator)
++{
++ DEBUG ("Showing indicator %p", e_indicator);
++ g_object_set (e_indicator, "visible", TRUE, NULL);
++}
++
++
++void
++empathy_indicator_hide (EmpathyIndicator *e_indicator)
++{
++ DEBUG ("Hiding indicator %p", e_indicator);
++ g_object_set (e_indicator, "visible", FALSE, NULL);
++}
++
++
++void
++empathy_indicator_update (EmpathyIndicator *e_indicator,
++ const gchar *body)
++{
++ DEBUG ("Updating existing indicator %p", e_indicator);
++ g_object_set (e_indicator, "body", body, NULL);
++}
++
++
++EmpathyContact *
++empathy_indicator_get_contact (EmpathyIndicator *e_indicator)
++{
++ EmpathyContact *contact;
++ g_object_get (e_indicator, "contact", &contact, NULL);
++ return contact;
++}
+--- /dev/null
++++ b/src/empathy-indicator.h
+@@ -0,0 +1,65 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
++/*
++ * Copyright (C) 2009 Canonical Ltd.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public
++ * License along with this program; if not, write to the
++ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
++ * Boston, MA 02110-1301 USA
++ *
++ * Authors: James Westby <james.westby@ubuntu.com>
++ *
++ */
++
++#ifndef __EMPATHY_INDICATOR_H__
++#define __EMPATHY_INDICATOR_H__
++
++#include <glib.h>
++
++#include <libempathy/empathy-contact.h>
++
++G_BEGIN_DECLS
++
++#define EMPATHY_TYPE_INDICATOR (empathy_indicator_get_type ())
++#define EMPATHY_INDICATOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EMPATHY_TYPE_INDICATOR, EmpathyIndicator))
++#define EMPATHY_INDICATOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), EMPATHY_TYPE_INDICATOR, EmpathyIndicatorClass))
++#define EMPATHY_IS_INDICATOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EMPATHY_TYPE_INDICATOR))
++#define EMPATHY_IS_INDICATOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EMPATHY_TYPE_INDICATOR))
++#define EMPATHY_INDICATOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_INDICATOR, EmpathyIndicatorClass))
++
++typedef struct _EmpathyIndicator EmpathyIndicator;
++typedef struct _EmpathyIndicatorClass EmpathyIndicatorClass;
++
++struct _EmpathyIndicator {
++ GObject parent;
++ gpointer priv;
++};
++
++struct _EmpathyIndicatorClass {
++ GObjectClass parent_class;
++};
++
++GType empathy_indicator_get_type (void) G_GNUC_CONST;
++EmpathyIndicator *empathy_indicator_new (EmpathyContact *sender,
++ const gchar *body,
++ const gchar *type);
++void empathy_indicator_show (EmpathyIndicator *e_indicator);
++void empathy_indicator_hide (EmpathyIndicator *e_indicator);
++void empathy_indicator_update (EmpathyIndicator *e_indicator,
++ const gchar *body);
++EmpathyContact *empathy_indicator_get_contact (EmpathyIndicator *e_indicator);
++
++G_END_DECLS
++
++
++#endif /* __EMPATHY-INDICATOR_H__ */
+--- a/src/empathy-main-window.c
++++ b/src/empathy-main-window.c
+@@ -82,6 +82,10 @@
+ #include "empathy-ft-manager.h"
+ #include "empathy-migrate-butterfly-logs.h"
+
++#ifdef HAVE_LIBINDICATE
++#include "empathy-indicator-manager.h"
++#endif
++
+ #define DEBUG_FLAG EMPATHY_DEBUG_OTHER
+ #include <libempathy/empathy-debug.h>
+
+@@ -161,6 +165,10 @@
+
+ /* Actions that are enabled when there are connected accounts */
+ GList *actions_connected;
++#ifdef HAVE_LIBINDICATE
++ EmpathyIndicatorManager *indicator_manager;
++ GHashTable *indicator_timeouts;
++#endif
+
+ /* The idle event source to migrate butterfly's logs */
+ guint butterfly_log_migration_members_changed_id;
+@@ -433,11 +441,23 @@
+ EmpathyEvent *event,
+ EmpathyMainWindow *window)
+ {
++ EmpathyMainWindowPriv *priv = GET_PRIV (window);
++
+ if (event->contact) {
+ main_window_flash_start (window);
+ } else if (event->type == EMPATHY_EVENT_TYPE_AUTH) {
+ main_window_auth_display (window, event);
+ }
++
++ #ifdef HAVE_LIBINDICATE
++ if (event->type == EMPATHY_EVENT_TYPE_PRESENCE &&
++ tp_connection_presence_type_cmp_availability (empathy_contact_get_presence (event->contact),
++ TP_CONNECTION_PRESENCE_TYPE_OFFLINE) > 0) {
++ empathy_indicator_manager_add_login_indicator (priv->indicator_manager,
++ event->contact);
++ }
++ #endif
++
+ }
+
+ static void
+@@ -1004,6 +1024,10 @@
+ g_object_unref (priv->ui_manager);
+ g_object_unref (priv->chatroom_manager);
+
++#ifdef HAVE_LIBINDICATE
++ g_object_unref (priv->indicator_manager);
++#endif
++
+ g_object_unref (priv->gsettings_ui);
+ g_object_unref (priv->gsettings_contacts);
+
+@@ -2072,6 +2096,10 @@
+ l = l->next;
+ }
+
++#ifdef HAVE_LIBINDICATE
++ priv->indicator_manager = empathy_indicator_manager_dup_singleton ();
++#endif
++
+ /* Show offline ? */
+ show_offline = g_settings_get_boolean (priv->gsettings_ui,
+ EMPATHY_PREFS_UI_SHOW_OFFLINE);
+--- a/src/empathy-preferences.c
++++ b/src/empathy-preferences.c
+@@ -56,6 +56,7 @@
+
+ GtkWidget *checkbutton_show_smileys;
+ GtkWidget *checkbutton_show_contacts_in_rooms;
++ GtkWidget *checkbutton_use_libindicate;
+ GtkWidget *combobox_chat_theme;
+ GtkWidget *checkbutton_separate_chat_windows;
+ GtkWidget *checkbutton_events_notif_area;
+@@ -235,6 +236,16 @@
+ priv->checkbutton_show_smileys,
+ "active",
+ G_SETTINGS_BIND_DEFAULT);
++#ifdef HAVE_LIBINDICATE
++ g_settings_bind (priv->gsettings_ui,
++ EMPATHY_PREFS_UI_USE_LIBINDICATE,
++ priv->checkbutton_use_libindicate,
++ "active",
++ G_SETTINGS_BIND_DEFAULT);
++#else
++ gtk_widget_hide (GTK_WIDGET (priv->checkbutton_use_libindicate));
++#endif
++
+ g_settings_bind (priv->gsettings_chat,
+ EMPATHY_PREFS_CHAT_SHOW_CONTACTS_IN_ROOMS,
+ priv->checkbutton_show_contacts_in_rooms,
+@@ -890,6 +901,7 @@
+ "notebook", &priv->notebook,
+ "checkbutton_show_smileys", &priv->checkbutton_show_smileys,
+ "checkbutton_show_contacts_in_rooms", &priv->checkbutton_show_contacts_in_rooms,
++ "checkbutton_use_libindicate", &priv->checkbutton_use_libindicate,
+ "combobox_chat_theme", &priv->combobox_chat_theme,
+ "checkbutton_separate_chat_windows", &priv->checkbutton_separate_chat_windows,
+ "checkbutton_events_notif_area", &priv->checkbutton_events_notif_area,
+--- a/src/empathy-preferences.ui
++++ b/src/empathy-preferences.ui
+@@ -266,6 +266,20 @@
+ <property name="position">1</property>
+ </packing>
+ </child>
++ <child>
++ <object class="GtkCheckButton" id="checkbutton_use_libindicate">
++ <property name="label" translatable="yes">Show incoming messages in the messaging menu</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">2</property>
++ </packing>
++ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+--- a/src/empathy-status-icon.c
++++ b/src/empathy-status-icon.c
+@@ -29,6 +29,7 @@
+ #include <gdk/gdkkeysyms.h>
+ #include <glib/gi18n.h>
+
++#include <libnotify/notify.h>
+ #include <libnotify/notification.h>
+ #include <libnotify/notify.h>
+
+@@ -50,6 +51,12 @@
+ #include "empathy-preferences.h"
+ #include "empathy-event-manager.h"
+
++#ifdef HAVE_LIBINDICATE
++#include "empathy-indicator-manager.h"
++#include <libindicate/server.h>
++#include <libindicate/interests.h>
++#endif
++
+ #define DEBUG_FLAG EMPATHY_DEBUG_DISPATCHER
+ #include <libempathy/empathy-debug.h>
+
+@@ -74,6 +81,10 @@
+ GtkAction *show_window_item;
+ GtkAction *new_message_item;
+ GtkAction *status_item;
++#ifdef HAVE_LIBINDICATE
++ EmpathyIndicatorManager *indicator_manager;
++ IndicateServer *indicate_server;
++#endif
+ } EmpathyStatusIconPriv;
+
+ G_DEFINE_TYPE (EmpathyStatusIcon, empathy_status_icon, G_TYPE_OBJECT);
+@@ -424,6 +435,92 @@
+ empathy_window_present (GTK_WINDOW (priv->window));
+ }
+ }
++#ifdef HAVE_LIBINDICATE
++static void
++empathy_status_icon_set_visible (gboolean show_icon, EmpathyStatusIcon *icon)
++{
++ EmpathyStatusIconPriv *priv = GET_PRIV (icon);
++ gtk_status_icon_set_visible (priv->icon, show_icon);
++}
++
++static void
++empathy_indicator_interest_status_icon (gboolean icon_visibility,
++ EmpathyStatusIcon *icon)
++{
++ EmpathyStatusIconPriv *priv = GET_PRIV (icon);
++ EmpathyIndicatorManager *manager;
++ gboolean use_libindicate;
++
++ manager = empathy_indicator_manager_dup_singleton();
++ use_libindicate = g_settings_get_boolean (priv->gsettings_ui,
++ EMPATHY_PREFS_UI_USE_LIBINDICATE);
++
++ if (use_libindicate && !icon_visibility) {
++ empathy_indicator_manager_set_server_visible (manager, TRUE);
++ /* Hide the status icon so there are not two ways to access
++ * empathy.
++ */
++ DEBUG ("Hiding the icon, we are shown in the indicator");
++ empathy_status_icon_set_visible (FALSE, icon);
++ } else {
++ empathy_indicator_manager_set_server_visible (manager,
++ FALSE);
++ DEBUG ("Show the icon, we are not shown in the indicator");
++ empathy_status_icon_set_visible (TRUE, icon);
++ }
++}
++
++static void
++empathy_indicator_interest_added (IndicateServer * server,
++ IndicateInterests interest, EmpathyStatusIcon *icon)
++{
++ if (interest != INDICATE_INTEREST_SERVER_SIGNAL) {
++ return;
++ }
++ DEBUG ("Indicator received interest-added signal");
++ empathy_indicator_interest_status_icon(FALSE, icon);
++}
++
++static void
++empathy_indicator_interest_removed (IndicateServer * server,
++ IndicateInterests interest, EmpathyStatusIcon *icon)
++{
++ if (interest != INDICATE_INTEREST_SERVER_SIGNAL) {
++ return;
++ }
++
++ DEBUG ("Indicator received interest-removed signal");
++ empathy_indicator_interest_status_icon(TRUE, icon);
++}
++
++static void
++status_icon_set_use_libindicate (EmpathyStatusIcon *icon,
++ gboolean use_libindicate)
++{
++ EmpathyStatusIconPriv *priv = GET_PRIV (icon);
++
++ if (use_libindicate) {
++ empathy_indicator_manager_set_server_visible (priv->indicator_manager, TRUE);
++ } else {
++ empathy_indicator_manager_set_server_visible (priv->indicator_manager, FALSE);
++ empathy_status_icon_set_visible(TRUE, icon);
++ }
++}
++
++static void
++status_icon_notify_libindicate_cb (GSettings *gsettings,
++ const gchar *key,
++ gpointer user_data)
++{
++ EmpathyStatusIcon *icon = user_data;
++ EmpathyStatusIconPriv *priv = GET_PRIV (icon);
++ gboolean use_libindicate;
++
++ use_libindicate = g_settings_get_boolean (priv->gsettings_ui,
++ EMPATHY_PREFS_UI_USE_LIBINDICATE);
++ status_icon_set_use_libindicate (icon, use_libindicate);
++}
++#endif
+
+ static void
+ status_icon_notify_visibility_cb (GSettings *gsettings,
+@@ -443,10 +540,36 @@
+ EmpathyStatusIconPriv *priv = GET_PRIV (icon);
+ gboolean visible;
+
++
+ visible = gtk_window_is_active (priv->window);
++#ifdef HAVE_LIBINDICATE
++ gboolean use_libindicate;
++ use_libindicate = g_settings_get_boolean (priv->gsettings_ui,
++ EMPATHY_PREFS_UI_USE_LIBINDICATE);
++ if (use_libindicate) {
++ /* If indicators are used then we may very well not be active
++ * when toggled, as they are usually windows themselves. This
++ * makes it damn hard to toggle, so we just look at whether
++ * we are visible.
++ */
++ visible = GTK_WIDGET_VISIBLE (priv->window);
++ status_icon_set_visibility (icon, TRUE, TRUE);
++ return;
++ }
++#endif
++
+ status_icon_set_visibility (icon, !visible, TRUE);
+ }
+
++#ifdef HAVE_LIBINDICATE
++static void
++indicate_server_activate_cb (EmpathyIndicatorManager *manager,
++ guint timestamp, EmpathyStatusIcon *icon)
++{
++ status_icon_toggle_visibility (icon);
++}
++#endif
++
+ static void
+ status_icon_presence_changed_cb (EmpathyStatusIcon *icon)
+ {
+@@ -630,6 +753,9 @@
+ g_object_unref (priv->notify_mgr);
+ g_object_unref (priv->gsettings_ui);
+ g_object_unref (priv->window);
++#ifdef HAVE_LIBINDICATE
++ g_object_unref (priv->indicator_manager);
++#endif
+ }
+
+ static void
+@@ -690,6 +816,13 @@
+ G_CALLBACK (status_icon_notify_visibility_cb),
+ icon);
+
++#ifdef HAVE_LIBINDICATE
++ g_signal_connect (priv->gsettings_ui,
++ "changed::" EMPATHY_PREFS_UI_USE_LIBINDICATE,
++ G_CALLBACK (status_icon_notify_libindicate_cb),
++ icon);
++#endif
++
+ status_icon_create_menu (icon);
+
+ g_signal_connect_swapped (priv->account_manager,
+@@ -722,6 +855,9 @@
+ EmpathyStatusIconPriv *priv;
+ EmpathyStatusIcon *icon;
+ gboolean should_hide;
++#ifdef HAVE_LIBINDICATE
++ gboolean use_libindicate;
++#endif
+
+ g_return_val_if_fail (GTK_IS_WINDOW (window), NULL);
+
+@@ -729,6 +865,24 @@
+ priv = GET_PRIV (icon);
+
+ priv->window = g_object_ref (window);
++#ifdef HAVE_LIBINDICATE
++ priv->indicator_manager = empathy_indicator_manager_dup_singleton ();
++ priv->indicate_server = indicate_server_ref_default ();
++
++ g_signal_connect (priv->indicator_manager, "server-activate",
++ G_CALLBACK (indicate_server_activate_cb),
++ icon);
++
++ g_signal_connect (priv->indicate_server,
++ INDICATE_SERVER_SIGNAL_INTEREST_ADDED,
++ G_CALLBACK(empathy_indicator_interest_added),
++ icon);
++
++ g_signal_connect (priv->indicate_server,
++ INDICATE_SERVER_SIGNAL_INTEREST_REMOVED,
++ G_CALLBACK(empathy_indicator_interest_removed),
++ icon);
++#endif
+
+ g_signal_connect_after (priv->window, "key-press-event",
+ G_CALLBACK (status_icon_key_press_event_cb),
+@@ -745,6 +899,12 @@
+ should_hide = TRUE;
+ }
+
++#ifdef HAVE_LIBINDICATE
++ use_libindicate = g_settings_get_boolean (priv->gsettings_ui,
++ EMPATHY_PREFS_UI_USE_LIBINDICATE);
++ status_icon_set_use_libindicate (icon, use_libindicate);
++#endif
++
+ status_icon_set_visibility (icon, !should_hide, FALSE);
+
+ return icon;
diff --git a/debian/patches/21_login_indicators.patch b/debian/patches/21_login_indicators.patch
new file mode 100644
index 000000000..7ab13e29f
--- /dev/null
+++ b/debian/patches/21_login_indicators.patch
@@ -0,0 +1,58 @@
+Description: Only display indicator for signon events if the preference is set
+Bug: https://bugs.launchpad.net/bugs/533857
+
+=== modified file 'src/empathy-indicator-manager.c'
+Index: empathy-2.31.4/src/empathy-indicator-manager.c
+===================================================================
+--- empathy-2.31.4.orig/src/empathy-indicator-manager.c 2010-07-06 13:47:10.156662001 +1000
++++ empathy-2.31.4/src/empathy-indicator-manager.c 2010-07-06 13:47:57.146662001 +1000
+@@ -25,6 +25,7 @@
+
+ #include <gtk/gtk.h>
+
++#include <libempathy/empathy-gsettings.h>
+ #include <libempathy/empathy-contact.h>
+ #include <libempathy/empathy-dispatcher.h>
+ #include <libempathy/empathy-utils.h>
+@@ -449,19 +450,28 @@
+ GSource *timeout;
+ EmpathyIndicator *e_indicator;
+ LoginData *login_data;
++ gboolean contact_signon_notifications;
++ GSettings *gsettings;
+
+- priv = GET_PRIV (manager);
+- e_indicator = empathy_indicator_new (contact, NULL, "login");
+- login_data = login_data_new (e_indicator, manager);
++ gsettings = g_settings_new (EMPATHY_PREFS_NOTIFICATIONS_SCHEMA);
++ contact_signon_notifications = g_settings_get_boolean (gsettings, EMPATHY_PREFS_NOTIFICATIONS_CONTACT_SIGNIN);
++ g_object_unref (gsettings);
++
++ if (contact_signon_notifications) {
++ priv = GET_PRIV (manager);
++ e_indicator = empathy_indicator_new (contact, NULL, "login");
++ login_data = login_data_new (e_indicator, manager);
++
++ timeout = g_timeout_source_new_seconds (INDICATOR_LOGIN_TIMEOUT);
++ g_source_set_callback (timeout, indicate_login_timeout, login_data,
++ indicator_destroy_login_data);
++ g_source_attach (timeout, NULL);
++
++ g_hash_table_insert (priv->login_timeouts, e_indicator, timeout);
++
++ g_signal_connect (e_indicator, "activate",
++ G_CALLBACK (indicate_login_cb), manager);
++ empathy_indicator_show (e_indicator);
++ }
+
+- timeout = g_timeout_source_new_seconds (INDICATOR_LOGIN_TIMEOUT);
+- g_source_set_callback (timeout, indicate_login_timeout, login_data,
+- indicator_destroy_login_data);
+- g_source_attach (timeout, NULL);
+-
+- g_hash_table_insert (priv->login_timeouts, e_indicator, timeout);
+-
+- g_signal_connect (e_indicator, "activate",
+- G_CALLBACK (indicate_login_cb), manager);
+- empathy_indicator_show (e_indicator);
+ }
diff --git a/debian/patches/23_idomessagedialog_for_voip_and_ft.patch b/debian/patches/23_idomessagedialog_for_voip_and_ft.patch
new file mode 100644
index 000000000..823c0818c
--- /dev/null
+++ b/debian/patches/23_idomessagedialog_for_voip_and_ft.patch
@@ -0,0 +1,208 @@
+=== modified file 'configure.ac'
+--- a/configure.ac
++++ b/configure.ac
+@@ -44,6 +44,7 @@
+ TELEPATHY_GLIB_REQUIRED=0.14.1
+ TELEPATHY_LOGGER=0.2.0
+ UNIQUE_REQUIRED=1.1.2
++IDO_REQUIRED=0.1.14
+
+ # Optionnal deps
+ CLUTTER_GTK_REQUIRED=0.10
+@@ -162,6 +163,7 @@
+ libxml-2.0
+ telepathy-glib >= $TELEPATHY_GLIB_REQUIRED
+ telepathy-logger-0.2 >= $TELEPATHY_LOGGER
++ libido-0.1 >= $IDO_REQUIRED
+ x11
+ launchpad-integration
+ ])
+--- a/src/empathy-event-manager.c
++++ b/src/empathy-event-manager.c
+@@ -48,6 +48,9 @@
+ #include <libempathy-gtk/empathy-contact-dialogs.h>
+ #include <libempathy-gtk/empathy-sound.h>
+
++#include <libido/idomessagedialog.h>
++#include <libempathy-gtk/empathy-ui-utils.h>
++
+ #include "empathy-event-manager.h"
+ #include "empathy-main-window.h"
+
+@@ -470,6 +473,7 @@
+ }
+ }
+
++
+ static void
+ event_manager_call_window_confirmation_dialog_response_cb (GtkDialog *dialog,
+ gint response, gpointer user_data)
+@@ -490,13 +494,75 @@
+ }
+
+ static void
++event_channel_process_ft_func (EventPriv *event)
++{
++ GtkWidget *dialog;
++ GtkWidget *button;
++ GtkWidget *image;
++ gint width, height;
++ GdkPixbuf *avatar;
++
++ if (event->approval->dialog != NULL)
++ {
++ gtk_window_present (GTK_WINDOW (event->approval->dialog));
++ return;
++ }
++
++ dialog = ido_message_dialog_new (NULL,
++ GTK_DIALOG_MODAL,
++ GTK_MESSAGE_QUESTION,
++ GTK_BUTTONS_NONE,
++ _("Incoming file transfer from %s"),
++ empathy_contact_get_alias (event->approval->contact));
++ gtk_message_dialog_format_secondary_markup (GTK_WINDOW (dialog), _("%s is sending you a file. Do you want to accept it?"),
++ empathy_contact_get_alias (event->approval->contact));
++
++ avatar = empathy_pixbuf_avatar_from_contact_scaled (event->approval->contact, 48, 48);
++ if (avatar != NULL)
++ {
++ image = gtk_image_new_from_pixbuf (avatar);
++ } else {
++ /* Set image of the dialog */
++ image = gtk_image_new_from_icon_name (EMPATHY_IMAGE_DOCUMENT_SEND,
++ GTK_ICON_SIZE_DIALOG);
++ }
++
++ gtk_message_dialog_set_image (GTK_MESSAGE_DIALOG (dialog), image);
++ gtk_widget_show (image);
++
++ gtk_dialog_set_default_response (GTK_DIALOG (dialog),
++ GTK_RESPONSE_OK);
++
++ button = gtk_dialog_add_button (GTK_DIALOG (dialog),
++ _("_Reject"), GTK_RESPONSE_REJECT);
++ image = gtk_image_new_from_icon_name ("stop",
++ GTK_ICON_SIZE_BUTTON);
++ gtk_button_set_image (GTK_BUTTON (button), image);
++
++ button = gtk_dialog_add_button (GTK_DIALOG (dialog),
++ _("_Accept"), GTK_RESPONSE_ACCEPT);
++
++ image = gtk_image_new_from_icon_name ("filesaveas.png", GTK_ICON_SIZE_BUTTON);
++ gtk_button_set_image (GTK_BUTTON (button), image);
++
++ g_signal_connect (dialog, "response",
++ G_CALLBACK (event_manager_call_window_confirmation_dialog_response_cb),
++ event->approval);
++
++ gtk_widget_show (dialog);
++
++ event->approval->dialog = dialog;
++}
++
++static void
+ event_channel_process_voip_func (EventPriv *event)
+ {
+ GtkWidget *dialog;
+ GtkWidget *button;
+ GtkWidget *image;
+ gboolean video;
+- gchar *title;
++ gint width, height;
++ GdkPixbuf *avatar;
+
+ if (event->approval->dialog != NULL)
+ {
+@@ -522,33 +588,33 @@
+ return;
+ }
+
+- dialog = gtk_message_dialog_new (NULL, 0,
+- GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE,
+- video ? _("Incoming video call"): _("Incoming call"));
+-
+- gtk_message_dialog_format_secondary_text (
+- GTK_MESSAGE_DIALOG (dialog), video ?
+- _("%s is video calling you. Do you want to answer?"):
+- _("%s is calling you. Do you want to answer?"),
+- empathy_contact_get_alias (event->approval->contact));
+-
+- title = g_strdup_printf (_("Incoming call from %s"),
+- empathy_contact_get_alias (event->approval->contact));
+-
+- gtk_window_set_title (GTK_WINDOW (dialog), title);
+- g_free (title);
+-
+- /* Set image of the dialog */
+- if (video)
++ dialog = ido_message_dialog_new (NULL,
++ GTK_DIALOG_MODAL,
++ GTK_MESSAGE_QUESTION,
++ GTK_BUTTONS_NONE,
++ video ? _("Incoming video call from %s"): _("Incoming call from %s"), empathy_contact_get_alias (event->approval->contact));
++ gtk_message_dialog_format_secondary_markup (GTK_WINDOW (dialog), video ?
++ _("%s is video calling you. Do you want to answer?"):
++ _("%s is calling you. Do you want to answer?"),
++ empathy_contact_get_alias (event->approval->contact));
++
++ avatar = empathy_pixbuf_avatar_from_contact_scaled (event->approval->contact, 48, 48);
++ if (avatar != NULL)
++ {
++ image = gtk_image_new_from_pixbuf (avatar);
++ } else {
++ /* Set image of the dialog */
++ if (video)
+ {
+ image = gtk_image_new_from_icon_name (EMPATHY_IMAGE_VIDEO_CALL,
+ GTK_ICON_SIZE_DIALOG);
+ }
+- else
++ else
+ {
+ image = gtk_image_new_from_icon_name (EMPATHY_IMAGE_VOIP,
+ GTK_ICON_SIZE_DIALOG);
+ }
++ }
+
+ gtk_message_dialog_set_image (GTK_MESSAGE_DIALOG (dialog), image);
+ gtk_widget_show (image);
+@@ -934,7 +1000,7 @@
+ event_manager_add (approval->manager, NULL,
+ approval->contact, EMPATHY_EVENT_TYPE_TRANSFER,
+ EMPATHY_IMAGE_DOCUMENT_SEND, header, NULL,
+- approval, event_channel_process_func, NULL);
++ approval, event_channel_process_ft_func, NULL);
+
+ /* FIXME better sound for incoming file transfers ?*/
+ empathy_sound_play (window, EMPATHY_SOUND_CONVERSATION_NEW);
+--- a/src/empathy-indicator-manager.c
++++ b/src/empathy-indicator-manager.c
+@@ -144,6 +144,12 @@
+ EmpathyEvent *event,
+ EmpathyIndicatorManager *manager)
+ {
++ if (event->type == EMPATHY_EVENT_TYPE_VOIP
++ || event->type == EMPATHY_EVENT_TYPE_CALL
++ || event->type == EMPATHY_EVENT_TYPE_TRANSFER) {
++ return;
++ }
++
+ EmpathyIndicator *indicator = NULL;
+ EmpathyIndicatorManagerPriv *priv;
+ IndicatorEvent *indicator_event;
+--- a/src/empathy-status-icon.c
++++ b/src/empathy-status-icon.c
+@@ -193,6 +193,12 @@
+ }
+
+ if (priv->event) {
++ if (priv->event->type == EMPATHY_EVENT_TYPE_VOIP
++ || priv->event->type == EMPATHY_EVENT_TYPE_CALL
++ || priv->event->type == EMPATHY_EVENT_TYPE_TRANSFER) {
++ empathy_event_activate (priv->event);
++ return;
++ }
+ gchar *message_esc = NULL;
+ gboolean has_x_canonical_append;
+ NotifyNotification *notification = priv->notification;
diff --git a/debian/patches/31_really_raise_window.patch b/debian/patches/31_really_raise_window.patch
new file mode 100644
index 000000000..253570aad
--- /dev/null
+++ b/debian/patches/31_really_raise_window.patch
@@ -0,0 +1,75 @@
+Description: Force focus of the window when selected from the indicator
+Bug: https://bugs.launchpad.net/bugs/442389
+
+=== modified file 'libempathy-gtk/empathy-ui-utils.c'
+--- a/libempathy-gtk/empathy-ui-utils.c
++++ b/libempathy-gtk/empathy-ui-utils.c
+@@ -1596,6 +1596,41 @@
+ }
+ }
+
++/* Really raise the window, even if the window manager doesn't agree */
++static void
++really_activate_window (GtkWindow *window)
++{
++ Screen *screen;
++ Time timestamp;
++ XEvent xev;
++
++ g_return_if_fail (GTK_IS_WINDOW (window));
++
++ screen = GDK_SCREEN_XSCREEN (gtk_widget_get_screen (GTK_WIDGET (window)));
++ timestamp = GDK_CURRENT_TIME;
++
++ xev.xclient.type = ClientMessage;
++ xev.xclient.serial = 0;
++ xev.xclient.send_event = True;
++ xev.xclient.display = GDK_DISPLAY ();
++ xev.xclient.window = GDK_WINDOW_XWINDOW (GTK_WIDGET (window)->window);
++ xev.xclient.message_type = gdk_x11_get_xatom_by_name ("_NET_ACTIVE_WINDOW");
++ xev.xclient.format = 32;
++ xev.xclient.data.l[0] = 2; /* Pager client type */
++ xev.xclient.data.l[1] = timestamp;
++ xev.xclient.data.l[2] = 0;
++ xev.xclient.data.l[3] = 0;
++ xev.xclient.data.l[4] = 0;
++
++ gdk_error_trap_push ();
++ XSendEvent (GDK_DISPLAY (),
++ RootWindowOfScreen (screen),
++ False,
++ SubstructureRedirectMask | SubstructureNotifyMask,
++ &xev);
++ gdk_error_trap_pop ();
++}
++
+ /* Takes care of moving the window to the current workspace. */
+ void
+ empathy_window_present_with_time (GtkWindow *window,
+@@ -1630,6 +1665,7 @@
+
+ gtk_window_set_skip_taskbar_hint (window, FALSE);
+ gtk_window_deiconify (window);
++ really_activate_window (window);
+ }
+
+ void
+--- a/src/empathy-event-manager.c
++++ b/src/empathy-event-manager.c
+@@ -47,6 +47,7 @@
+ #include <libempathy-gtk/empathy-images.h>
+ #include <libempathy-gtk/empathy-contact-dialogs.h>
+ #include <libempathy-gtk/empathy-sound.h>
++#include <libempathy-gtk/empathy-ui-utils.h>
+
+ #include <libido/idomessagedialog.h>
+ #include <libempathy-gtk/empathy-ui-utils.h>
+@@ -504,7 +505,7 @@
+
+ if (event->approval->dialog != NULL)
+ {
+- gtk_window_present (GTK_WINDOW (event->approval->dialog));
++ empathy_window_present (GTK_WINDOW (event->approval->dialog));
+ return;
+ }
+
diff --git a/debian/patches/34_start_raised_execpt_in_session.patch b/debian/patches/34_start_raised_execpt_in_session.patch
new file mode 100644
index 000000000..e83aa7408
--- /dev/null
+++ b/debian/patches/34_start_raised_execpt_in_session.patch
@@ -0,0 +1,35 @@
+Description: If not started with the session, we should always raise
+Bug: bugs.launchpad.net/bugs/503052
+
+=== modified file 'src/empathy-status-icon.c'
+--- a/src/empathy-status-icon.c
++++ b/src/empathy-status-icon.c
+@@ -864,6 +864,9 @@
+ #ifdef HAVE_LIBINDICATE
+ gboolean use_libindicate;
+ #endif
++ const gchar *desktop_autostart_id;
++
++ desktop_autostart_id = g_getenv ("DESKTOP_AUTOSTART_ID");
+
+ g_return_val_if_fail (GTK_IS_WINDOW (window), NULL);
+
+@@ -899,8 +902,16 @@
+ icon);
+
+ if (!hide_contact_list) {
+- should_hide = g_settings_get_boolean (priv->gsettings_ui,
+- EMPATHY_PREFS_UI_MAIN_WINDOW_HIDDEN);
++ /* If not started with the session, we should raise the window.
++ https://bugs.launchpad.net/ubuntu/+source/empathy/+bug/503052 */
++ if (desktop_autostart_id == NULL) {
++ DEBUG ("Not started with session, showing contact list");
++ should_hide = FALSE;
++ } else {
++ DEBUG ("Auto-started with session, so honor the previous known state");
++ should_hide = g_settings_get_boolean (priv->gsettings_ui,
++ EMPATHY_PREFS_UI_MAIN_WINDOW_HIDDEN);
++ }
+ } else {
+ should_hide = TRUE;
+ }
diff --git a/debian/patches/36_chat_window_default_size.patch b/debian/patches/36_chat_window_default_size.patch
new file mode 100644
index 000000000..302026fa4
--- /dev/null
+++ b/debian/patches/36_chat_window_default_size.patch
@@ -0,0 +1,21 @@
+Description: Make the default chat window size larger
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=612216
+Bug-Ubuntu: https://bugs.edge.launchpad.net/ubuntu/+source/empathy/+bug/509756
+
+https://bugzilla.gnome.org/show_bug.cgi?id=612216
+=== modified file 'src/empathy-chat-window.ui'
+Index: empathy-2.31.3/src/empathy-chat-window.ui
+===================================================================
+--- empathy-2.31.3.orig/src/empathy-chat-window.ui 2010-06-18 16:29:28.536792269 +1000
++++ empathy-2.31.3/src/empathy-chat-window.ui 2010-06-18 16:38:13.768792269 +1000
+@@ -206,8 +206,8 @@
+ <object class="GtkWindow" id="chat_window">
+ <property name="title" translatable="yes">Chat</property>
+ <property name="role">chat</property>
+- <property name="default_width">350</property>
+- <property name="default_height">250</property>
++ <property name="default_width">580</property>
++ <property name="default_height">480</property>
+ <child>
+ <object class="GtkVBox" id="chat_vbox">
+ <property name="visible">True</property>
diff --git a/debian/patches/37_facebook_default.patch b/debian/patches/37_facebook_default.patch
new file mode 100644
index 000000000..95b852989
--- /dev/null
+++ b/debian/patches/37_facebook_default.patch
@@ -0,0 +1,21 @@
+Descrption: Make facebook the default chat account type, it is the most popular now and fits with our Social From the Start theme for Lucid
+Author: ?
+
+=== modified file 'libempathy-gtk/empathy-protocol-chooser.c'
+--- old/libempathy-gtk/empathy-protocol-chooser.c 2010-03-16 13:30:07 +0000
++++ new/libempathy-gtk/empathy-protocol-chooser.c 2010-03-16 13:36:37 +0000
+@@ -137,10 +137,10 @@
+ COL_IS_FACEBOOK, &is_facebook,
+ -1);
+
+- if (is_gtalk || is_facebook)
++ if (is_facebook)
++ cmp = -1;
++ else
+ cmp = 1;
+- else
+- cmp = -1;
+ }
+ }
+
+
diff --git a/debian/patches/38_lp_569289.patch b/debian/patches/38_lp_569289.patch
new file mode 100644
index 000000000..9b89f578b
--- /dev/null
+++ b/debian/patches/38_lp_569289.patch
@@ -0,0 +1,13 @@
+=== modified file 'libempathy-gtk/empathy-irc-network-chooser.c'
+--- old/libempathy-gtk/empathy-irc-network-chooser.c 2011-02-24 17:01:06 +0000
++++ new/libempathy-gtk/empathy-irc-network-chooser.c 2011-02-24 17:08:47 +0000
+@@ -40,7 +40,7 @@
+
+ #include "empathy-irc-network-chooser.h"
+
+-#define DEFAULT_IRC_NETWORK "irc.gimp.org"
++#define DEFAULT_IRC_NETWORK "chat.freenode.net"
+ #define DEFAULT_IRC_PORT 6667
+ #define DEFAULT_IRC_SSL FALSE
+
+
diff --git a/debian/patches/40_unity_launcher_count.patch b/debian/patches/40_unity_launcher_count.patch
new file mode 100644
index 000000000..ed35e5c51
--- /dev/null
+++ b/debian/patches/40_unity_launcher_count.patch
@@ -0,0 +1,282 @@
+=== modified file 'configure.ac'
+--- a/configure.ac
++++ b/configure.ac
+@@ -59,6 +59,7 @@
+ GNOME_CONTROL_CENTER_GTK3_REQUIRED=2.31.4
+ INDICATE_REQUIRED=0.4.91
+ INDICATE_GTK_REQUIRED=0.4.91
++UNITY_REQUIRED=3.4.0
+
+ # telepathy-yell
+ prev_top_build_prefix=$ac_top_build_prefix
+@@ -506,12 +507,41 @@
+ fi
+
+ if test "x$enable_libindicate" = "xyes" -a "x$have_libindicate" != "xyes"; then
+- AC_MSG_ERROR([Couldn't find libindicate.])
++ AC_MSG_ERROR([Could not find libindicate.])
+ fi
+
+ AM_CONDITIONAL(HAVE_LIBINDICATE, test "x$have_libindicate" = "xyes")
+
+ # -----------------------------------------------------------
++# libunity
++# -----------------------------------------------------------
++AC_ARG_ENABLE(libunity,
++ AS_HELP_STRING([--enable-libunity=@<:@no/yes/auto@:>@],
++ [build libunity support]), ,
++ enable_libunity=auto)
++
++if test "x$enable_unity" != "xno"; then
++ PKG_CHECK_MODULES(UNITY,
++ [
++ unity >= $UNITY_REQUIRED
++ ], have_unity="yes", have_unity="no")
++
++ if test "x$have_unity" = "xyes"; then
++ AC_DEFINE(HAVE_UNITY, 1, [Define if you have unity])
++ fi
++else
++ have_unity=no
++fi
++
++if test "x$enable_unity" = "xyes" -a "x$have_unity" != "xyes"; then
++ AC_MSG_ERROR([Could not find libunity.])
++fi
++
++AM_CONDITIONAL(HAVE_UNITY, test "x$have_unity" = "xyes")
++AC_SUBST([UNITY_CFLAGS])
++AC_SUBST([UNITY_LIBS])
++
++# -----------------------------------------------------------
+ # nautilus-sendto
+ # -----------------------------------------------------------
+ AC_ARG_ENABLE(nautilus-sendto,
+@@ -614,6 +644,7 @@
+
+ Features:
+ Message indicator support (libindicate): ${have_libindicate}
++ Unity panel support (unity).: ${have_unity}
+ Spell checking (enchant)....: ${have_enchant}
+ Display maps (libchamplain).: ${have_libchamplain}
+ Location awareness (Geoclue): ${have_geoclue}
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -19,6 +19,7 @@
+ $(CPPFLAGS_COMMON) \
+ $(LIBNOTIFY_CFLAGS) \
+ $(INDICATE_CFLAGS) \
++ $(UNITY_CFLAGS) \
+ $(UNIQUE_CFLAGS) \
+ $(LIBCHAMPLAIN_CFLAGS) \
+ $(WEBKIT_CFLAGS) \
+@@ -30,6 +31,7 @@
+ $(top_builddir)/extensions/libemp-extensions.la \
+ $(LIBNOTIFY_LIBS) \
+ $(INDICATE_LIBS) \
++ $(UNITY_LIBS) \
+ $(UNIQUE_LIBS) \
+ $(EMPATHY_LIBS) \
+ $(GTK_LIBS) \
+@@ -204,6 +206,7 @@
+ $(UNIQUE_LIBS) \
+ $(EMPATHY_LIBS) \
+ $(INDICATE_LIBS) \
++ $(UNITY_LIBS) \
+ $(LIBCHAMPLAIN_LIBS) \
+ $(WEBKIT_LIBS) \
+ $(NULL)
+--- a/src/empathy-chat-window.c
++++ b/src/empathy-chat-window.c
+@@ -71,6 +71,10 @@
+ #define DEBUG_FLAG EMPATHY_DEBUG_CHAT
+ #include <libempathy/empathy-debug.h>
+
++#ifdef HAVE_UNITY
++#include <unity.h>
++#endif
++
+ /* Macro to compare guint32 X timestamps, while accounting for wrapping around
+ */
+ #define X_EARLIER_OR_EQL(t1, t2) \
+@@ -96,6 +100,9 @@
+ /* EmpathyChat -> EmpathyIndicator for that chat, if any */
+ GHashTable *indicators;
+ #endif
++#ifdef HAVE_UNITY
++ UnityLauncherEntry *launcher;
++#endif
+ GtkTargetList *contact_targets;
+ GtkTargetList *file_targets;
+
+@@ -1329,8 +1336,19 @@
+ sender, body);
+ g_signal_connect (indicator, "activate",
+ G_CALLBACK (chat_window_indicator_activate_cb), chat);
+-
+ g_hash_table_insert (priv->indicators, chat, indicator);
++#ifdef HAVE_UNITY
++ if (priv->launcher != NULL)
++ {
++ gint count = g_hash_table_size (priv->indicators);
++ DEBUG ("unity launcher: count is now %d", count);
++ if (count > 0)
++ {
++ unity_launcher_entry_set_count (priv->launcher, count);
++ unity_launcher_entry_set_count_visible (priv->launcher, TRUE);
++ }
++ }
++#endif
+ }
+ empathy_indicator_show (indicator);
+ }
+@@ -1347,6 +1365,25 @@
+ DEBUG ("indicator is %p", indicator);
+ empathy_indicator_hide (indicator);
+ g_hash_table_remove (priv->indicators, chat);
++#ifdef HAVE_UNITY
++ if (priv->launcher != NULL)
++ {
++ gint count = g_hash_table_size (priv->indicators);
++ DEBUG ("unity launcher: count is %d", count);
++ if (count > 0)
++ {
++ DEBUG ("unity launcher: setting count to %d", count);
++ unity_launcher_entry_set_count (priv->launcher, count);
++ unity_launcher_entry_set_count_visible (priv->launcher, TRUE);
++ } else {
++ unity_launcher_entry_set_count (priv->launcher, count);
++ DEBUG ("unity launcher: hiding count");
++ unity_launcher_entry_set_count_visible (priv->launcher, FALSE);
++ }
++ }
++#endif
++
++
+ } else {
+ DEBUG ("indicator is NULL, nothing to remove");
+ }
+@@ -1980,6 +2017,11 @@
+ priv->chat_manager = NULL;
+ }
+
++ if (priv->launcher) {
++ g_object_unref (priv->launcher);
++ priv->launcher = NULL;
++ }
++
+ chat_windows = g_list_remove (chat_windows, window);
+ gtk_widget_destroy (priv->dialog);
+
+@@ -2078,6 +2120,9 @@
+ priv->indicators = g_hash_table_new_full (g_direct_hash, g_direct_equal,
+ NULL, g_object_unref);
+ #endif
++#ifdef HAVE_UNITY
++ priv->launcher = unity_launcher_entry_get_for_desktop_id ("empathy.desktop");
++#endif
+
+ priv->notebook = gtk_notebook_new ();
+ gtk_notebook_set_group (GTK_NOTEBOOK (priv->notebook), "EmpathyChatWindow");
+--- a/src/empathy-indicator-manager.c
++++ b/src/empathy-indicator-manager.c
+@@ -45,6 +45,10 @@
+ #define DEBUG_FLAG EMPATHY_DEBUG_OTHER
+ #include <libempathy/empathy-debug.h>
+
++#ifdef HAVE_UNITY
++#include <unity.h>
++#endif
++
+ #define INDICATOR_LOGIN_TIMEOUT 15
+ #define EMPATHY_DESKTOP_PATH DESKTOPDIR "/empathy.desktop"
+
+@@ -62,6 +66,9 @@
+ IndicateServer *indicate_server;
+ GSList *indicator_events;
+ GHashTable *login_timeouts;
++#ifdef HAVE_UNITY
++ UnityLauncherEntry *launcher;
++#endif
+ } EmpathyIndicatorManagerPriv;
+
+ typedef struct {
+@@ -174,6 +181,20 @@
+ g_object_unref (indicator);
+ priv->indicator_events = g_slist_prepend (priv->indicator_events,
+ indicator_event);
++#ifdef HAVE_UNITY
++ if (priv->launcher == NULL)
++ {
++ return;
++ }
++ gint count = g_slist_length (priv->indicator_events);
++ DEBUG ("unity launcher: count is %d", count);
++ if (count > 0)
++ {
++ unity_launcher_entry_set_count (priv->launcher, count);
++ unity_launcher_entry_set_count_visible (priv->launcher, TRUE);
++ }
++#endif
++
+ }
+
+ static void
+@@ -197,6 +218,26 @@
+ priv->indicator_events = g_slist_remove (priv->indicator_events,
+ indicator_event);
+ empathy_indicator_hide (indicator_event->indicator);
++#ifdef HAVE_UNITY
++ if (priv->launcher == NULL)
++ {
++ DEBUG ("unity launcher: launcher is NULL");
++ return;
++ }
++
++ gint count = g_slist_length (priv->indicator_events);
++ DEBUG ("unity launcher: count is %d", count);
++ if (count > 0)
++ {
++ DEBUG ("unity launcher: setting count to %d", count);
++ unity_launcher_entry_set_count (priv->launcher, count);
++ unity_launcher_entry_set_count_visible (priv->launcher, TRUE);
++ } else {
++ unity_launcher_entry_set_count (priv->launcher, count);
++ DEBUG ("unity launcher: hiding count");
++ unity_launcher_entry_set_count_visible (priv->launcher, FALSE);
++ }
++#endif
+ return;
+ }
+ }
+@@ -213,6 +254,8 @@
+
+ priv = GET_PRIV (manager);
+
++ DEBUG ("Event updated");
++
+ for (l = priv->indicator_events; l; l = l->next)
+ {
+ IndicatorEvent *indicator_event;
+@@ -307,6 +350,10 @@
+ g_object_unref (priv->indicate_server);
+ priv->indicate_server = NULL;
+ }
++ if (priv->launcher) {
++ g_object_unref (priv->launcher);
++ priv->launcher = NULL;
++ }
+ if (priv->login_timeouts) {
+ g_hash_table_unref (priv->login_timeouts);
+ priv->login_timeouts = NULL;
+@@ -381,6 +428,10 @@
+ G_CALLBACK (indicate_server_activate),
+ manager);
+
++#ifdef HAVE_UNITY
++ priv->launcher = unity_launcher_entry_get_for_desktop_id ("empathy.desktop");
++#endif
++
+ g_signal_connect (priv->event_manager, "event-added",
+ G_CALLBACK (indicator_manager_event_added_cb),
+ manager);
diff --git a/debian/patches/41_unity_launcher_progress.patch b/debian/patches/41_unity_launcher_progress.patch
new file mode 100644
index 000000000..b4735fd70
--- /dev/null
+++ b/debian/patches/41_unity_launcher_progress.patch
@@ -0,0 +1,159 @@
+=== modified file 'src/empathy-ft-manager.c'
+--- old/src/empathy-ft-manager.c 2011-02-15 17:11:00 +0000
++++ new/src/empathy-ft-manager.c 2011-02-16 21:48:36 +0000
+@@ -46,6 +46,8 @@
+
+ #include "empathy-ft-manager.h"
+
++#include <unity.h>
++
+ enum
+ {
+ COL_PERCENT,
+@@ -65,6 +67,7 @@
+ GtkWidget *open_button;
+ GtkWidget *abort_button;
+ GtkWidget *clear_button;
++ UnityLauncherEntry *launcher;
+ } EmpathyFTManagerPriv;
+
+ enum
+@@ -83,6 +86,53 @@
+ static void ft_handler_hashing_started_cb (EmpathyFTHandler *handler,
+ EmpathyFTManager *manager);
+
++static gchar * ft_manager_format_progress_bytes_and_percentage (
++ guint64 current,
++ guint64 total,
++ gdouble speed,
++ int *percentage);
++
++static void
++ft_update_unity_launcher (EmpathyFTManager *manager)
++{
++ EmpathyFTManagerPriv *priv;
++
++ priv = GET_PRIV (manager);
++ g_return_if_fail (priv->launcher != NULL);
++
++ guint64 current_bytes = 0;
++ guint64 total_bytes = 0;
++ int percentage;
++ gdouble progress;
++ GHashTableIter iter;
++ gpointer handler;
++
++ g_hash_table_iter_init (&iter, priv->ft_handler_to_row_ref);
++ while (g_hash_table_iter_next (&iter, &handler, NULL))
++ {
++ if (!empathy_ft_handler_is_completed (handler) &&
++ !empathy_ft_handler_is_cancelled (handler))
++ {
++ current_bytes = current_bytes + empathy_ft_handler_get_transferred_bytes (handler);
++ total_bytes = total_bytes + empathy_ft_handler_get_total_bytes (handler);
++ }
++ }
++ ft_manager_format_progress_bytes_and_percentage (current_bytes, total_bytes, -1, &percentage);
++
++ progress = percentage;
++ progress = progress / 100;
++
++ unity_launcher_entry_set_progress (priv->launcher, progress);
++ if (progress > 0 && progress < 100)
++ {
++ unity_launcher_entry_set_progress_visible (priv->launcher, TRUE);
++ }
++ else
++ {
++ unity_launcher_entry_set_progress_visible (priv->launcher, FALSE);
++ }
++}
++
+ static gchar *
+ ft_manager_format_interval (guint interval)
+ {
+@@ -392,6 +442,8 @@
+ COL_PERCENT, percentage,
+ -1);
+
++ ft_update_unity_launcher (manager);
++
+ gtk_tree_path_free (path);
+
+ }
+@@ -458,6 +510,8 @@
+ ft_manager_clear_handler_time (manager, row_ref);
+ ft_manager_update_buttons (manager);
+
++ ft_update_unity_launcher (manager);
++
+ g_free (message);
+ }
+
+@@ -465,6 +519,7 @@
+ do_real_transfer_done (EmpathyFTManager *manager,
+ EmpathyFTHandler *handler)
+ {
++ EmpathyFTManagerPriv *priv;
+ const char *contact_name;
+ const char *filename;
+ char *first_line, *second_line, *message;
+@@ -474,6 +529,8 @@
+ GtkRecentManager *recent_manager;
+ GFile *file;
+
++ priv = GET_PRIV (manager);
++
+ row_ref = ft_manager_get_row_from_handler (manager, handler);
+ g_return_if_fail (row_ref != NULL);
+
+@@ -499,6 +556,8 @@
+ ft_manager_update_handler_message (manager, row_ref, message);
+ ft_manager_clear_handler_time (manager, row_ref);
+
++ ft_update_unity_launcher (manager);
++
+ /* update buttons */
+ ft_manager_update_buttons (manager);
+
+@@ -535,6 +594,8 @@
+ DEBUG ("Transfer done, no hashing");
+
+ do_real_transfer_done (manager, handler);
++
++ ft_update_unity_launcher (manager);
+ }
+
+ static void
+@@ -576,6 +637,8 @@
+ EmpathyTpFile *tp_file,
+ EmpathyFTManager *manager)
+ {
++ EmpathyFTManagerPriv *priv;
++ priv = GET_PRIV (manager);
+ guint64 transferred_bytes, total_bytes;
+
+ DEBUG ("Transfer started");
+@@ -1054,6 +1117,12 @@
+
+ g_hash_table_destroy (priv->ft_handler_to_row_ref);
+
++ if (priv->launcher != NULL)
++ {
++ g_object_unref(priv->launcher);
++ priv->launcher = NULL;
++ }
++
+ G_OBJECT_CLASS (empathy_ft_manager_parent_class)->finalize (object);
+ }
+
+@@ -1071,6 +1140,8 @@
+ g_direct_equal, (GDestroyNotify) g_object_unref,
+ (GDestroyNotify) gtk_tree_row_reference_free);
+
++ priv->launcher = unity_launcher_entry_get_for_desktop_id ("empathy.desktop");
++
+ ft_manager_build_ui (manager);
+ }
+
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 000000000..3670f45d4
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,14 @@
+01_lpi.patch
+02_notifications_focus.patch
+10_use_notify_osd_icons.patch
+11_empathy_accounts_category.patch
+20_libindicate.patch
+21_login_indicators.patch
+23_idomessagedialog_for_voip_and_ft.patch
+31_really_raise_window.patch
+34_start_raised_execpt_in_session.patch
+36_chat_window_default_size.patch
+37_facebook_default.patch
+38_lp_569289.patch
+40_unity_launcher_count.patch
+41_unity_launcher_progress.patch
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 000000000..9c6586c59
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,42 @@
+#!/usr/bin/make -f
+
+DEB_DH_INSTALL_SOURCEDIR=debian/tmp
+
+include /usr/share/cdbs/1/rules/autoreconf.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/gnome.mk
+
+# List any files which are not installed
+include /usr/share/cdbs/1/rules/utils.mk
+common-binary-post-install-arch:: list-missing
+
+# Ensure at build time that the library has no dependencies on undefined
+# symbols, and speed up loading.
+#LDFLAGS += -Wl,-z,defs -Wl,-O1
+
+DEB_CONFIGURE_EXTRA_FLAGS := --enable-spell \
+ --enable-libindicate \
+ --disable-Werror
+ --disable-tests \
+ --disable-schemas-compile \
+ --enable-webkit \
+ --enable-map=no \
+ --enable-location=no \
+ --enable-favourite-contacts=no \
+ --enable-nautilus-sendto \
+ --enable-call \
+ --with-ca-file='/etc/ssl/certs/ca-certificates.crt'
+
+DEB_DBG_PACKAGE_empathy = empathy-dbg
+
+DEB_BUILD_ARCH_OS := $(shell dpkg-architecture -qDEB_BUILD_ARCH_OS)
+
+ifeq ($(DEB_BUILD_ARCH_OS),linux)
+ DEB_CONFIGURE_EXTRA_FLAGS += --with-connectivity=nm --enable-location=no
+else ifeq ($(DEB_BUILD_ARCH_OS),kfreebsd)
+ DEB_CONFIGURE_EXTRA_FLAGS += --with-connectivity=no --enable-location=no
+else
+ DEB_CONFIGURE_EXTRA_FLAGS += --with-connectivity=no --enable-location=no
+endif
+
+include $(CURDIR)/debian/update-patches.mk
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 000000000..163aaf8d8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/source/options b/debian/source/options
new file mode 100644
index 000000000..8f04d6dd0
--- /dev/null
+++ b/debian/source/options
@@ -0,0 +1 @@
+compression = "bzip2"
diff --git a/debian/update-patches.mk b/debian/update-patches.mk
new file mode 100644
index 000000000..55569f66a
--- /dev/null
+++ b/debian/update-patches.mk
@@ -0,0 +1,10 @@
+update-patches:
+ mkdir -p $(CURDIR)/debian/patches
+ rm -f $(CURDIR)/debian/patches/*.patch
+ git format-patch -o $(CURDIR)/debian/patches debian-patches ^upstream
+ for patch in $$(ls $(CURDIR)/debian/patches/*.patch) ; \
+ do \
+ lines=$$(cat $$patch | wc -l) ; \
+ head -n $$(($$lines - 3)) $$patch > $${patch}.chomped ; \
+ mv $${patch}.chomped $$patch ; \
+ done
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 000000000..2258304b2
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,2 @@
+version=3
+http://ftp.gnome.org/pub/GNOME/sources/empathy/([0-9.]+)/empathy-(.*).tar.bz2