...
 
Commits (180)
Gajim 0.14 (XX)
Gajim 0.14.4 (22 July 2011)
* Fix translation issue
* other minor fixes
Gajim 0.14.3 (19 June 2011)
* Fix history viewer
* Fix closing roster window
* Prevent some erros with metacontacts
Gajim 0.14.2 (07 June 2011)
* Fix CPU usage when testing file transfer proxies
* Fix invalid XML char regex
* Fix subscription request window handling
* Fix URL display in chat message banner
* Other minor bugfixes
Gajim 0.14.1 (26 October 2010)
* Fix changing account name
* Fix sending XHTML
* Fix GnomeKayring usage
* Fix some GPG bugs
* Minor bugfixes
Gajim 0.14 (02 September 2010)
* Jingle audio / video chat
* Improve Startup time
......
......@@ -68,7 +68,7 @@
<h2>Running Gajim</h2>
<p>Just do <em>gajim</em> or you can run Gajim from your GNOME/Xfce/KDE/whatever menus.<br/><br/>
or if you didn't 'make install' you can also run from gajim folder with<em>./launch.sh</em></p>
or if you use hg version and you didn't 'make install' you can also run from gajim folder with<em>./launch.sh</em></p>
<hr />
<h3>Note for hg users</h3>
<p>You will need GNU autotools in order to install Gajim from svn. This includes:</p>
......
AC_INIT([Gajim - A Jabber Instant Messager],
[0.13.90],[http://trac.gajim.org/],[gajim])
[0.14.4],[http://trac.gajim.org/],[gajim])
AC_PREREQ([2.59])
AC_CONFIG_HEADER(config.h)
......
......@@ -6,6 +6,7 @@
<property name="border_width">12</property>
<property name="title" translatable="yes">Gajim: Account Creation Wizard</property>
<property name="resizable">False</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_wizard_window_destroy"/>
<child>
<object class="GtkVBox" id="vbox77">
......
......@@ -18,6 +18,7 @@
<property name="border_width">12</property>
<property name="title" translatable="yes">Accounts</property>
<property name="default_width">800</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_accounts_window_destroy"/>
<signal name="key_press_event" handler="on_accounts_window_key_press_event"/>
<child>
......
......@@ -6,6 +6,7 @@
<property name="border_width">6</property>
<property name="title" translatable="yes">Add New Contact</property>
<property name="resizable">False</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_add_new_contact_window_destroy"/>
<signal name="key_press_event" handler="on_add_new_contact_window_key_press_event"/>
<child>
......
......@@ -6,6 +6,7 @@
<property name="visible">True</property>
<property name="border_width">6</property>
<property name="title" translatable="yes">Ad-hoc Commands - Gajim</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_adhoc_commands_window_destroy"/>
<child>
<object class="GtkVBox" id="vbox1">
......
......@@ -8,6 +8,7 @@
<property name="role">ace</property>
<property name="default_width">650</property>
<property name="default_height">540</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_advanced_configuration_window_destroy"/>
<child>
<object class="GtkVBox" id="vbox70">
......
......@@ -5,6 +5,7 @@
<object class="GtkWindow" id="blocked_contacts_window">
<property name="visible">True</property>
<property name="title" translatable="yes">Blocked Contacts</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_blocked_contacts_window_destroy"/>
<child>
<object class="GtkVBox" id="vbox1">
......
......@@ -6,6 +6,7 @@
<property name="visible">True</property>
<property name="border_width">5</property>
<property name="title" translatable="yes">Invite Friends!</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_chat_to_muc_window_destroy"/>
<signal name="key_press_event" handler="on_chat_to_muc_window_key_press_event"/>
<child>
......
......@@ -7,6 +7,7 @@
<property name="title" translatable="yes">Room Configuration</property>
<property name="default_width">650</property>
<property name="default_height">450</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_data_form_window_destroy"/>
<child>
<object class="GtkVBox" id="vbox68">
......@@ -34,7 +35,7 @@
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="instructions_label">
<object class="GtkLabel" id="title_label">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="wrap">True</property>
......@@ -47,7 +48,7 @@
</packing>
</child>
<child>
<object class="GtkHSeparator" id="hseparator15">
<object class="GtkHSeparator" id="title_hseparator">
<property name="visible">True</property>
</object>
<packing>
......@@ -65,7 +66,7 @@
</packing>
</child>
<child>
<object class="GtkHSeparator" id="hseparator14">
<object class="GtkHSeparator" id="config_hseparator">
<property name="visible">True</property>
</object>
<packing>
......
......@@ -7,7 +7,7 @@
<property name="title" translatable="yes">Edit Groups</property>
<property name="modal">True</property>
<property name="default_height">290</property>
<property name="type_hint">normal</property>
<property name="type_hint">dialog</property>
<signal name="response" handler="on_edit_groups_dialog_response"/>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox6">
......
......@@ -8,6 +8,7 @@
<property name="title" translatable="yes">Features</property>
<property name="default_width">300</property>
<property name="default_height">530</property>
<property name="type_hint">dialog</property>
<child>
<object class="GtkVBox" id="vbox1">
<property name="visible">True</property>
......
......@@ -5,6 +5,7 @@
<object class="GtkWindow" id="file_transfers_window">
<property name="border_width">12</property>
<property name="title" translatable="yes">File Transfers</property>
<property name="type_hint">dialog</property>
<child internal-child="accessible">
<object class="AtkObject" id="file_transfers_window-atkobject">
<property name="AtkObject::accessible-name" translatable="yes">File Transfers</property>
......@@ -40,11 +41,11 @@
</object>
</child>
<signal name="button_press_event" handler="on_transfers_list_button_press_event"/>
<signal name="motion_notify_event" handler="on_transfers_list_motion_notify_event"/>
<signal name="button_release_event" handler="on_transfers_list_button_release_event"/>
<signal name="key_press_event" handler="on_transfers_list_key_press_event"/>
<signal name="leave_notify_event" handler="on_transfers_list_leave_notify_event"/>
<signal name="motion_notify_event" handler="on_transfers_list_motion_notify_event"/>
<signal name="row_activated" handler="on_transfers_list_row_activated"/>
<signal name="button_release_event" handler="on_transfers_list_button_release_event"/>
</object>
</child>
</object>
......
......@@ -4,7 +4,7 @@
<!-- interface-naming-policy toplevel-contextual -->
<object class="GtkListStore" id="liststore1">
<columns>
<!-- column-name item text -->
<!-- column-name item -->
<column type="gchararray"/>
</columns>
<data>
......@@ -25,6 +25,7 @@
<object class="GtkWindow" id="gajim_themes_window">
<property name="border_width">12</property>
<property name="title" translatable="yes">Gajim Themes Customization</property>
<property name="type_hint">dialog</property>
<child>
<object class="GtkVBox" id="vbox97">
<property name="visible">True</property>
......@@ -326,6 +327,7 @@
<property name="visible">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="position">2</property>
</packing>
</child>
......
......@@ -5,6 +5,7 @@
<object class="GtkWindow" id="groups_post_window">
<property name="visible">True</property>
<property name="title" translatable="yes">Create new post</property>
<property name="type_hint">dialog</property>
<child>
<object class="GtkVBox" id="vbox1">
<property name="visible">True</property>
......
......@@ -285,7 +285,6 @@ If you plan to do massive deletions, please make sure Gajim is not running. Gene
<property name="visible">True</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<property name="accel_group">accelgroup1</property>
</object>
</child>
</object>
......@@ -346,5 +345,4 @@ If you plan to do massive deletions, please make sure Gajim is not running. Gene
<action-widget response="-5">save_button</action-widget>
</action-widgets>
</object>
<object class="GtkAccelGroup" id="accelgroup1"/>
</interface>
......@@ -5,6 +5,7 @@
<object class="GtkWindow" id="join_groupchat_window">
<property name="border_width">6</property>
<property name="title" translatable="yes">Join Group Chat</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_join_groupchat_window_destroy"/>
<signal name="key_press_event" handler="on_join_groupchat_window_key_press_event"/>
<child>
......
......@@ -13,6 +13,7 @@
<property name="title" translatable="yes">Manage Bookmarks</property>
<property name="default_width">550</property>
<property name="default_height">300</property>
<property name="type_hint">dialog</property>
<child>
<object class="GtkVBox" id="vbox86">
<property name="visible">True</property>
......
......@@ -7,6 +7,7 @@
<property name="title" translatable="yes">PEP Service Configuration</property>
<property name="default_width">350</property>
<property name="default_height">150</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_manage_pep_services_window_destroy"/>
<child>
<object class="GtkVBox" id="vbox1">
......
......@@ -4,7 +4,7 @@
<!-- interface-naming-policy toplevel-contextual -->
<object class="GtkListStore" id="liststore1">
<columns>
<!-- column-name item text -->
<!-- column-name item -->
<column type="gchararray"/>
</columns>
<data>
......@@ -22,6 +22,7 @@
<object class="GtkWindow" id="manage_proxies_window">
<property name="border_width">12</property>
<property name="title" translatable="yes">Manage Proxy Profiles</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_manage_proxies_window_destroy"/>
<child>
<object class="GtkVBox" id="vbox87">
......@@ -49,8 +50,8 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="headers_visible">False</property>
<signal name="key_press_event" handler="on_proxies_treeview_key_press_event"/>
<signal name="cursor_changed" handler="on_proxies_treeview_cursor_changed"/>
<signal name="key_press_event" handler="on_proxies_treeview_key_press_event"/>
</object>
</child>
</object>
......
......@@ -6,6 +6,7 @@
<property name="width_request">400</property>
<property name="height_request">350</property>
<property name="border_width">6</property>
<property name="type_hint">dialog</property>
<signal name="delete_event" handler="on_manage_sounds_window_delete_event"/>
<child>
<object class="GtkVBox" id="vbox1">
......
......@@ -120,6 +120,7 @@
<property name="border_width">6</property>
<property name="title" translatable="yes">Preferences</property>
<property name="role">preferences</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_preferences_window_destroy"/>
<signal name="key_press_event" handler="on_preferences_window_key_press_event"/>
<child>
......@@ -1356,8 +1357,8 @@ $T will be replaced by auto-not-available timeout</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="headers_visible">False</property>
<signal name="key_press_event" handler="on_msg_treeview_key_press_event"/>
<signal name="cursor_changed" handler="on_msg_treeview_cursor_changed"/>
<signal name="key_press_event" handler="on_msg_treeview_key_press_event"/>
</object>
</child>
</object>
......
......@@ -6,6 +6,7 @@
<property name="visible">True</property>
<property name="border_width">6</property>
<property name="title" translatable="yes">Privacy List</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_privacy_list_edit_window_destroy"/>
<child>
<object class="GtkVBox" id="main_vbox">
......
......@@ -6,6 +6,7 @@
<property name="visible">True</property>
<property name="border_width">12</property>
<property name="title" translatable="yes">window1</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_privacy_lists_first_window_destroy"/>
<child>
<object class="GtkVBox" id="vbox1">
......@@ -167,7 +168,7 @@
</object>
<object class="GtkListStore" id="liststore1">
<columns>
<!-- column-name item text -->
<!-- column-name item -->
<column type="gchararray"/>
</columns>
</object>
......
......@@ -4,6 +4,7 @@
<!-- interface-naming-policy toplevel-contextual -->
<object class="GtkWindow" id="profile_window">
<property name="title" translatable="yes">Personal Information</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_profile_window_destroy"/>
<signal name="key_press_event" handler="on_profile_window_key_press_event"/>
<child>
......
......@@ -4,6 +4,7 @@
<!-- interface-naming-policy toplevel-contextual -->
<object class="GtkWindow" id="remove_account_window">
<property name="border_width">6</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_remove_account_window_destroy"/>
<child>
<object class="GtkVBox" id="vbox69">
......
......@@ -4,6 +4,7 @@
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="roster_item_exchange_window">
<property name="title" translatable="yes">Roster Item Exchange</property>
<property name="type_hint">dialog</property>
<child>
<object class="GtkVBox" id="vbox1">
<property name="visible">True</property>
......
......@@ -5,6 +5,7 @@
<object class="GtkWindow" id="search_window">
<property name="border_width">12</property>
<property name="title" translatable="yes">Search</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_search_window_destroy"/>
<signal name="key_press_event" handler="on_search_window_key_press_event"/>
<child>
......
......@@ -13,6 +13,7 @@
<property name="role">Service Discovery</property>
<property name="default_width">550</property>
<property name="default_height">420</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_service_discovery_window_destroy"/>
<child>
<object class="GtkVBox" id="vbox11">
......
......@@ -5,6 +5,7 @@
<object class="GtkWindow" id="service_registration_window">
<property name="border_width">6</property>
<property name="title" translatable="yes">Register to</property>
<property name="type_hint">dialog</property>
<child>
<object class="GtkVBox" id="vbox12">
<property name="visible">True</property>
......
......@@ -5,6 +5,8 @@
<object class="GtkWindow" id="subscription_request_window">
<property name="border_width">12</property>
<property name="title" translatable="yes">Subscription Request</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_subscription_request_window_destroy"/>
<child>
<object class="GtkVBox" id="vbox10">
<property name="visible">True</property>
......
......@@ -7,7 +7,7 @@
<property name="title" translatable="yes">Synchronise contacts</property>
<property name="default_width">350</property>
<property name="default_height">300</property>
<property name="type_hint">normal</property>
<property name="type_hint">dialog</property>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox7">
<property name="visible">True</property>
......
......@@ -7,7 +7,7 @@
<property name="title" translatable="yes">Synchronise : select contacts</property>
<property name="default_width">400</property>
<property name="default_height">300</property>
<property name="type_hint">normal</property>
<property name="type_hint">dialog</property>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox7">
<property name="visible">True</property>
......
......@@ -5,6 +5,7 @@
<object class="GtkWindow" id="vcard_information_window">
<property name="border_width">12</property>
<property name="title" translatable="yes">Contact Information</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_vcard_information_window_destroy"/>
<signal name="key_press_event" handler="on_vcard_information_window_key_press_event"/>
<child>
......
......@@ -6,6 +6,7 @@
<property name="border_width">12</property>
<property name="title">Contact Information</property>
<property name="resizable">False</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_zeroconf_information_window_destroy"/>
<signal name="key_press_event" handler="on_zeroconf_information_window_key_press_event"/>
<child>
......
......@@ -2552,3 +2552,26 @@ O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V
um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh
NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14=
-----END CERTIFICATE-----
Deutsche Telekom Root CA 2
-----BEGIN CERTIFICATE-----
MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEc
MBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2Vj
IFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENB
IDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5MjM1OTAwWjBxMQswCQYDVQQGEwJE
RTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxl
U2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290
IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEU
ha88EOQ5bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhC
QN/Po7qCWWqSG6wcmtoIKyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1Mjwr
rFDa1sPeg5TKqAyZMg4ISFZbavva4VhYAUlfckE8FQYBjl2tqriTtM2e66foai1S
NNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aKSe5TBY8ZTNXeWHmb0moc
QqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTVjlsB9WoH
txa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAP
BgNVHRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC
AQEAlGRZrTlk5ynrE/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756Abrsp
tJh6sTtU6zkXR34ajgv8HzFZMQSyzhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpa
IzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8rZ7/gFnkm0W09juwzTkZmDLl
6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4Gdyd1Lx+4ivn+
xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
Cm26OWMohpLzGITY+9HPBVZkVw==
-----END CERTIFICATE-----
This diff is collapsed.
......@@ -3,4 +3,7 @@ gajim for Debian
If you want to use OpenPGP in gajim, you have to install python-gnupginterface.
For video chat support, you have to install python-farsight.
-- Yann Le Boulanger <asterix@lagaule.org>, Mon, 20 Jun 2005 12:02:31 +0200
-- Julien Valroff <julien@debian.org> Sat, 07 May 2011 13:50:27 +0200
gajim (0.13.90-1) unstable; urgency=low
gajim (0.14.4-1) unstable; urgency=low
* New upstream release. Closes: #637071
* Fixes weird error. Closes: #632226
* Stop suggesting unused python-sexy. Closes: #633301
* Modify 00_debian-copying.diff to also not install ChangeLog file.
dh_changelogs will do it.
-- Yann Leboulanger <asterix@lagaule.org> Fri, 22 Jul 2011 12:56:30 +0200
gajim (0.14.3-1) unstable; urgency=low
* New upstream release.
* Fix closing roster window. Closes: #630315
-- Yann Leboulanger <asterix@lagaule.org> Sat, 24 Jul 2010 10:25:26 +0200
-- Yann Leboulanger <asterix@lagaule.org> Sun, 19 Jun 2011 21:46:09 +0200
gajim (0.14.2-1) unstable; urgency=low
* New upstream release.
* Fix CPU usage when testing file transfer proxies. Closes: #626576
-- Yann Leboulanger <asterix@lagaule.org> Tue, 07 Jun 2011 19:30:43 +0200
gajim (0.14.1-1) unstable; urgency=low
[ Yann Leboulanger ]
* New upstream release. Closes: #604966
* Correctly sanitize menuentries in chat window action context menu.
Closes: #574839
* Fix traceback when closing file request dialog. Closes: #587186
* Recommend python-openssl >= 0.9. Closes: #594772
* Improve a string. Closes: #553527
* Fix cancelling file transfer. Closes: #587679
[ Julien Valroff ]
* Switch to dh from CDBS and drop unused (build-)dependencies.
* Switch to dh_python2 from pysupport. Closes: #616819
* Drop useless debian/dirs.
* Switch to 3.0 (quilt) source format.
* Update Standards-Version to 3.9.2.
* Remove useless and unused shlibs:Depends substvar.
* Add a note about python-farsight in README.Debian.
* Add patch and use dh_autoreconf to remove build-dependencies on
python-dev, python-gtk2-dev and libgtk2.0-dev.
-- Yann Leboulanger <asterix@lagaule.org> Sat, 07 May 2011 16:01:37 +0200
gajim (0.13.4-1) unstable; urgency=low
......
......@@ -2,20 +2,17 @@ Source: gajim
Section: net
Priority: optional
Maintainer: Yann Leboulanger <asterix@lagaule.org>
Build-Depends: debhelper (>= 7), cdbs (>= 0.4.43), python-support (>= 0.7.1), python-dev, libgtk2.0-dev, python-gtk2-dev, gettext (>= 0.17-4), intltool (>= 0.40.1), imagemagick
Build-Conflicts: python2.3
XS-Python-Version: >= 2.5
Standards-Version: 3.8.3
Build-Depends: debhelper (>= 7.0.50~), python (>= 2.6.6-3~), dh-autoreconf, gettext (>= 0.17-4), intltool (>= 0.40.1), imagemagick, libglib2.0-dev
Standards-Version: 3.9.2
Homepage: http://www.gajim.org
Vcs-Hg: http://hg.gajim.org/gajim/
Vcs-Browser: http://hg.gajim.org/gajim/file
Package: gajim
Architecture: all
XB-Python-Version: ${python:Versions}
Depends: ${misc:Depends}, ${shlibs:Depends}, ${python:Depends}, python-support (>= 0.7.1), python-glade2 (>= 2.12.0), python-gtk2 (>= 2.12.0), dnsutils
Recommends: dbus, python-dbus, notification-daemon, python-gnupginterface, python-openssl, python-crypto
Suggests: python-gconf, python-gnome2, nautilus-sendto, avahi-daemon, python-avahi, network-manager, libgtkspell0, aspell-en, python-gnomekeyring, gnome-keyring, python-sexy, python-kerberos (>= 1.1), texlive-latex-base, dvipng, python-farsight, gstreamer0.10-plugins-ugly
Depends: ${misc:Depends}, ${python:Depends}, python-gtk2 (>= 2.16.0), dnsutils
Recommends: dbus, python-dbus, notification-daemon, python-gnupginterface, python-openssl (>= 0.9), python-crypto
Suggests: python-gconf, python-gnome2, nautilus-sendto, avahi-daemon, python-avahi, network-manager, libgtkspell0, aspell-en, python-gnomekeyring, gnome-keyring, python-kerberos (>= 1.1), texlive-latex-base, dvipng, python-farsight, gstreamer0.10-plugins-ugly
Description: Jabber client written in PyGTK
Gajim is a Jabber client. It has a tabbed user interface with normal chats,
group chats, and has many features such as, TLS, GPG, SSL, multiple accounts,
......
......@@ -7,10 +7,9 @@ It was downloaded from:
Upstream Authors:
- Alexander Cherniuk <ts33kr@gmail.com>
- Yann Le Boulanger <asterix@lagaule.org>
- Jonathan Schleifer <js-gajim@webkeks.org>
Copyright: (c) 2003-2010 Gajim Team
Copyright: (c) 2003-2011 Gajim Team
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
......
usr/bin
usr/share/gajim
usr/share/man/man1
usr/share/pixmaps
usr/share/applications
usr/share/menu
usr/share/lintian/overrides
usr/lib/gajim
debian/gajim.xpm usr/share/pixmaps
Index: Makefile.am
===================================================================
--- Makefile.am (revision 7202)
+++ Makefile.am (working copy)
@@ -9,7 +9,6 @@
Description: don't install useless COPYING file
Forwarded: not-neded
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,8 +7,6 @@
docfilesdir = $(docdir)
docfiles_DATA = README \
README.html \
ChangeLog \
- ChangeLog \
- COPYING \
THANKS \
THANKS.artists \
AUTHORS
--- Makefile.in
+++ Makefile.in
@@ -273,7 +273,6 @@
--- a/Makefile.in
+++ b/Makefile.in
@@ -298,8 +298,6 @@
docfilesdir = $(docdir)
docfiles_DATA = README \
README.html \
ChangeLog \
- ChangeLog \
- COPYING \
THANKS \
THANKS.artists \
AUTHORS
Description: don't require python headers to remove build-dep on python-dev and python-gtk2-dev
Author: Yann Leboulanger <asterix@lagaule.org>
Origin: upstream,http://hg.gajim.org/gajim/diff/252bb3cf2c59/configure.ac
Last-Update: 2011-05-07
--- a/configure.ac
+++ b/configure.ac
@@ -36,25 +36,10 @@
AM_NLS
-dnl ****
-dnl pygtk and gtk+
-dnl ****
-PKG_CHECK_MODULES([PYGTK], [gtk+-2.0 >= 2.16.0 pygtk-2.0 >= 2.16.0])
-AC_SUBST(PYGTK_CFLAGS)
-AC_SUBST(PYGTK_LIBS)
-PYGTK_DEFS=`$PKG_CONFIG --variable=defsdir pygtk-2.0`
-AC_SUBST(PYGTK_DEFS)
-
-AM_PATH_PYTHON([2.5])
-if test "x$PYTHON" = "x:"; then
- AC_MSG_ERROR([Python not found])
-fi
-
ACLOCAL_AMFLAGS="\${ACLOCAL_FLAGS}"
AC_SUBST(ACLOCAL_AMFLAGS)
-AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)])
-AC_SUBST([PYTHON_INCLUDES])
+AM_PATH_PYTHON([2.5])
dnl ****
dnl enable installation in python-2.x/site-packages/gajim
00_debian-copying.diff
01_configure-ac.diff
#!/usr/bin/make -f
DEB_PYTHON_SYSTEM=pysupport
# Debhelper must be included before python-distutils to use
# # # dh_python / dh_pycentral / dh_pysupport
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/rules/simple-patchsys.mk
include /usr/share/cdbs/1/class/autotools.mk
%:
dh $@ --with python2,autoreconf
DEB_CONFIGURE_EXTRA_FLAGS := --prefix=/usr
DEB_MAKE_BUILD_TARGET := all
DEB_MAKE_INSTALL_TARGET = install DESTDIR=$(DEB_DESTDIR)
# test target is broken
override_dh_auto_test:
binary-install/gajim::
rm $(DEB_DESTDIR)/usr/share/gajim/src/common/GnuPGInterface.py*
dh_pysupport -pgajim
convert $(DEB_DESTDIR)/usr/share/icons/hicolor/64x64/apps/gajim.png -resize 32x32 $(DEB_DESTDIR)/usr/share/pixmaps/gajim.xpm
override_dh_auto_configure:
convert icons/hicolor/64x64/apps/gajim.png -resize 32x32 debian/gajim.xpm
dh_auto_configure
override_dh_auto_install:
dh_auto_install
rm debian/gajim/usr/share/gajim/src/common/GnuPGInterface.py*
override_dh_auto_clean:
-rm -f debian/gajim.xpm
dh_auto_clean
......@@ -146,48 +146,49 @@ Section "Gajim" SecGajim
File "THANKS.artists"
SetOutPath "$INSTDIR\bin"
File "bin\cairo._cairo.pyd"
File "bin\_ctypes.pyd"
File "bin\gobject._gobject.pyd"
File "bin\gtk._gtk.pyd"
File "bin\_hashlib.pyd"
File "bin\_socket.pyd"
File "bin\_sqlite3.pyd"
File "bin\_ssl.pyd"
File "bin\_win32sysloader.pyd"
File "bin\Crypto.Cipher.AES.pyd"
File "bin\atk.pyd"
File "bin\bz2.pyd"
File "bin\OpenSSL.crypto.pyd"
File "bin\cairo._cairo.pyd"
File "bin\Crypto.Cipher.AES.pyd"
File "bin\Crypto.Hash.SHA256.pyd"
File "bin\Crypto.Random.OSRNG.winrandom.pyd"
File "bin\Crypto.Util._counter.pyd"
File "bin\gajim.exe"
File "bin\gio._gio.pyd"
File "bin\glib._glib.pyd"
File "bin\gobject._gobject.pyd"
File "bin\gtk._gtk.pyd"
File "bin\history_manager.exe"
File "bin\OpenSSL.crypto.pyd"
File "bin\libeay32.dll"
File "bin\library.zip"
File "bin\libxml2.dll"
File "bin\msvcr71.dll"
File "bin\pangocairo.pyd"
File "bin\pango.pyd"
File "bin\pyexpat.pyd"
File "bin\python25.dll"
File "bin\pywintypes25.dll"
File "bin\python26.dll"
File "bin\pywintypes26.dll"
File "bin\OpenSSL.rand.pyd"
File "bin\select.pyd"
File "bin\sqlite3.dll"
File "bin\ssleay32.dll"
File "bin\OpenSSL.SSL.pyd"
File "bin\unicodedata.pyd"
File "bin\w9xpopen.exe"
File "bin\win32api.pyd"
File "bin\win32file.pyd"
File "bin\win32pipe.pyd"
File "bin\winsound.pyd"
File "bin\zlib1.dll"
File /r "bin\docutils"
File "msvcr90.dll"
WriteRegStr HKCU "Software\Gajim" "" $INSTDIR
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Gajim" "DisplayName" "Gajim"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Gajim" "UninstallString" "$INSTDIR\Uninstall.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Gajim" "DisplayIcon" "$INSTDIR\bin\Gajim.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Gajim" "DisplayVersion" "0.12.1"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Gajim" "DisplayVersion" "0.14.4"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Gajim" "URLInfoAbout" "http://www.gajim.org/"
WriteUninstaller "$INSTDIR\Uninstall.exe"
......@@ -209,6 +210,9 @@ Section "Gajim" SecGajim
File /r "data\other"
File /r "data\pixmaps"
File /r "data\sounds"
SetOutPath "$INSTDIR\icons"
File /r "icons\hicolor"
SectionEnd
Section "Gtk+ 2" SecGtk
......@@ -641,40 +645,40 @@ Section "Uninstall"
Delete "$INSTDIR\bin\_hashlib.pyd"
Delete "$INSTDIR\bin\_socket.pyd"
Delete "$INSTDIR\bin\_sqlite3.pyd"
Delete "$INSTDIR\bin\_sqlite.pyd"
Delete "$INSTDIR\bin\_ssl.pyd"
Delete "$INSTDIR\bin\_win32sysloader.pyd"
Delete "$INSTDIR\bin\atk.pyd"
Delete "$INSTDIR\bin\bz2.pyd"
Delete "$INSTDIR\bin\cairo._cairo.pyd"
Delete "$INSTDIR\bin\Crypto.Cipher.AES.pyd"
Delete "$INSTDIR\bin\Crypto.Hash.SHA256.pyd"
Delete "$INSTDIR\bin\Crypto.Random.OSRNG.winrandom.pyd"
Delete "$INSTDIR\bin\Crypto.Util._counter.pyd"
Delete "$INSTDIR\bin\gajim.exe"
Delete "$INSTDIR\bin\gio._gio.pyd"
Delete "$INSTDIR\bin\glib._glib.pyd"
Delete "$INSTDIR\bin\gobject._gobject.pyd"
Delete "$INSTDIR\bin\gtk._gtk.pyd"
Delete "$INSTDIR\bin\history_manager.exe"
Delete "$INSTDIR\bin\libeay32.dll"
Delete "$INSTDIR\bin\library.zip"
Delete "$INSTDIR\bin\libxml2.dll"
Delete "$INSTDIR\bin\msvcr71.dll"
Delete "$INSTDIR\bin\OpenSSL.crypto.pyd"
Delete "$INSTDIR\bin\OpenSSL.rand.pyd"
Delete "$INSTDIR\bin\OpenSSL.SSL.pyd"
Delete "$INSTDIR\bin\pangocairo.pyd"
Delete "$INSTDIR\bin\pango.pyd"
Delete "$INSTDIR\bin\pangocairo.pyd"
Delete "$INSTDIR\bin\pyexpat.pyd"
Delete "$INSTDIR\bin\python25.dll"
Delete "$INSTDIR\bin\pywintypes25.dll"
Delete "$INSTDIR\bin\python26.dll"
Delete "$INSTDIR\bin\pywintypes26.dll"
Delete "$INSTDIR\bin\select.pyd"
Delete "$INSTDIR\bin\sqlite3.dll"
Delete "$INSTDIR\bin\ssleay32.dll"
Delete "$INSTDIR\bin\unicodedata.pyd"
Delete "$INSTDIR\bin\w9xpopen.exe"
Delete "$INSTDIR\bin\win32api.pyd"
Delete "$INSTDIR\bin\win32file.pyd"
Delete "$INSTDIR\bin\win32pipe.pyd"
Delete "$INSTDIR\bin\winsound.pyd"
Delete "$INSTDIR\bin\zlib1.dll"
RMDir /r "$INSTDIR\bin\docutils"
RMDir "$INSTDIR\bin"
Delete "$INSTDIR\bin\msvcr90.dll"
RMDir /r "$INSTDIR\bin"
RMDir /r "$INSTDIR\data\gui"
RMDir /r "$INSTDIR\data\moods"
RMDir /r "$INSTDIR\data\activities"
......@@ -695,6 +699,8 @@ Section "Uninstall"
RMDir /r "$INSTDIR\data\iconsets\transports"
RMDir "$INSTDIR\data\iconsets"
RMDir "$INSTDIR\data"
RMDir /r "$INSTDIR\icons\hicolor"
RMDir "$INSTDIR\icons"
RMDir /r "$INSTDIR\po\be"
RMDir /r "$INSTDIR\po\be@latin"
RMDir /r "$INSTDIR\po\bg"
......
#!/bin/sh
if [ ! $PYTHON ]; then
PYTHON="python";
fi
cd "$(dirname $0)/src"
exec python -OOt gajim.py "$@"
exec $PYTHON -OOt gajim.py "$@"
......@@ -43,8 +43,8 @@ AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
[AC_REQUIRE([AM_PATH_PYTHON])
AC_MSG_CHECKING(for headers required to compile python extensions)
dnl deduce PYTHON_INCLUDES
py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
py_prefix=`$PYTHON -c "import sys; print(sys.prefix)"`
py_exec_prefix=`$PYTHON -c "import sys; print(sys.exec_prefix)"`
PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
if test "$py_prefix" != "$py_exec_prefix"; then
PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -19,70 +19,43 @@
## along with Gajim. If not, see <http://www.gnu.org/licenses/>.
##
from distutils.core import setup
import py2exe
from cx_Freeze import setup, Executable
import glob
import sys
import os
docutils_files = []
def fill_docutils_files(folder, base=u'docutils'):
docutils_files.append((base, glob.glob(os.path.join(folder, base, '*.pyc'))))
for path in os.listdir(os.path.join(folder, base)):
if os.path.isdir(os.path.join(folder, base, path)):
fill_docutils_files(folder, base=os.path.join(base, path))
try:
import docutils.readers
import docutils.writers.html4css1
import docutils.languages
except ImportError:
pass
else:
fill_docutils_files(os.path.join(sys.prefix, 'Lib', 'site-packages'))
docutils_files.append((os.path.join('docutils', 'writers', 'html4css1'),
glob.glob(os.path.join(sys.prefix, 'Lib', 'site-packages', 'docutils',
'writers', 'html4css1', '*.css'))))
sys.path.append('src')
# Use local gtk folder instead of the one in PATH that is not latest gtk
if 'gtk' in os.listdir('.'):
sys.path.append('gtk/bin')
opts = {
'py2exe': {
# ConfigParser,UserString,roman are needed for docutils
'includes': ('pango,atk,gobject,cairo,pangocairo,gtk.keysyms,'
'encodings,encodings.*,ConfigParser,UserString'),
'dll_excludes': [
options = {
'build_exe': {
'includes': ['gtk.keysyms'],
'base': 'Win32GUI',
'bin_excludes': [
'iconv.dll', 'intl.dll', 'libatk-1.0-0.dll',
'libgdk_pixbuf-2.0-0.dll', 'libgdk-win32-2.0-0.dll',
'libgio-2.0-0.dll',
'libglib-2.0-0.dll', 'libgmodule-2.0-0.dll',
'libgobject-2.0-0.dll', 'libgthread-2.0-0.dll',
'libgtk-win32-2.0-0.dll', 'libpango-1.0-0.dll',
'libpangowin32-1.0-0.dll', 'libcairo-2.dll',
'libpangocairo-1.0-0.dll', 'libpangoft2-1.0-0.dll',
],
'excludes': [
'docutils'
],
'optimize': 2,
}
}
}
setup(
name='Gajim',
version='0.12.1',
version='0.14.4',
description='A full featured Jabber client',
author='Gajim Development Team',
url='http://www.gajim.org/',
download_url='http://www.gajim.org/downloads.php',
license='GPL',
windows=[{'script': 'src/gajim.py',
'icon_resources': [(1, 'data/pixmaps/gajim.ico')]},
{'script': 'src/history_manager.py',
'icon_resources': [(1, 'data/pixmaps/gajim.ico')]}],
options=opts,
data_files=docutils_files,
options=options,
executables=[Executable('src/gajim.py', icon='data/pixmaps/gajim.ico'),
Executable('src/history_manager.py', icon='data/pixmaps/gajim.ico')],
)
......@@ -570,7 +570,7 @@ class CommandWindow:
cmdnode.setAttr('sessionid', self.sessionid)
if self.data_form_widget.data_form:
cmdnode.addChild(node=self.data_form_widget.data_form)
cmdnode.addChild(node=self.data_form_widget.data_form.get_purged())
def callback(response):
# FIXME: move to connection_handlers.py
......
This diff is collapsed.
......@@ -120,7 +120,7 @@ class CommandTools:
Add given text to the input history, so user can scroll through
it using ctrl + up/down arrow keys.
"""
self.save_sent_message(text)
self.save_message(text, 'sent')
@property
def connection(self):
......
......@@ -24,6 +24,7 @@
##
import os
import shutil
import sys
import stat
......@@ -248,13 +249,11 @@ def check_and_possibly_move_config():
if not os.path.exists(src):
continue
print 'moving %s to %s' % (src, dst)
os.renames(src, dst)
shutil.move(src, dst)
gajim.logger.init_vars()
gajim.logger.attach_cache_database()
def check_and_possibly_create_paths():
check_and_possibly_move_config()
LOG_DB_PATH = logger.LOG_DB_PATH
LOG_DB_FOLDER, LOG_DB_FILE = os.path.split(LOG_DB_PATH)
......@@ -310,6 +309,15 @@ def check_and_possibly_create_paths():
print _('Gajim will now exit')
sys.exit()
if not os.path.exists(CACHE_DB_FOLDER):
create_path(CACHE_DB_FOLDER)
elif os.path.isfile(CACHE_DB_FOLDER):
print _('%s is a file but it should be a directory') % CACHE_DB_FOLDER
print _('Gajim will now exit')
sys.exit()
check_and_possibly_move_config()
if not os.path.exists(LOG_DB_PATH):
create_log_db()
gajim.logger.init_vars()
......@@ -318,13 +326,6 @@ def check_and_possibly_create_paths():
print _('Gajim will now exit')
sys.exit()
if not os.path.exists(CACHE_DB_FOLDER):
create_path(CACHE_DB_FOLDER)
elif os.path.isfile(CACHE_DB_FOLDER):
print _('%s is a file but it should be a directory') % CACHE_DB_FOLDER
print _('Gajim will now exit')
sys.exit()
if not os.path.exists(CACHE_DB_PATH):
create_cache_db()
gajim.logger.attach_cache_database()
......
......@@ -166,8 +166,8 @@ class Config:
'change_roster_title': [ opt_bool, True, _('Add * and [n] in roster title?')],
'restore_lines': [opt_int, 4, _('How many lines to remember from previous conversation when a chat tab/window is reopened.')],
'restore_timeout': [opt_int, 60, _('How many minutes should last lines from previous conversation last.')],
'muc_restore_lines': [opt_int, 20, _('How many lines to request to server when entering a groupchat.')],
'muc_restore_timeout': [opt_int, 60, _('How many minutes back to request logs when a entering a groupchat.')],
'muc_restore_lines': [opt_int, 20, _('How many lines to request to server when entering a groupchat. -1 means no limit')],
'muc_restore_timeout': [opt_int, 60, _('How many minutes back to request logs when a entering a groupchat. -1 means no limit')],
'muc_autorejoin_timeout': [opt_int, 1, _('How many seconds to wait before trying to autorejoin to a conference you are being disconnected from. Set to 0 to disable autorejoining.')],
'muc_autorejoin_on_kick': [opt_bool, False, 'Should autorejoin be activated when we are being kicked from a conference?'],
'send_on_ctrl_enter': [opt_bool, False, _('Send message on Ctrl+Enter and with Enter make new line (Mirabilis ICQ Client default behaviour).')],
......@@ -270,7 +270,7 @@ class Config:
'attach_notifications_to_systray': [opt_bool, False, _('If True, notification windows from notification-daemon will be attached to systray icon.')],
'check_idle_every_foo_seconds': [opt_int, 2, _('Choose interval between 2 checks of idleness.')],
'latex_png_dpi': [opt_str, '108', _('Change the value to change the size of latex formulas displayed. The higher is larger.') ],
'uri_schemes': [opt_str, 'aaa aaas acap cap cid crid data dav dict dns fax file ftp go gopher h323 http https icap im imap info ipp iris iris.beep iris.xpc iris.xpcs iris.lwz ldap mid modem msrp msrps mtqp mupdate news nfs nntp opaquelocktoken pop pres rtsp service shttp sip sips snmp soap.beep soap.beeps tag tel telnet tftp thismessage tip tv urn vemmi xmlrpc.beep xmlrpc.beeps z39.50r z39.50s about cvs daap ed2k feed fish git iax2 irc ircs ldaps magnet mms rsync ssh svn sftp smb webcal', _('Valid uri schemes. Only schemes in this list will be accepted as "real" uri. (mailto and xmpp are handled separately)'), True],
'uri_schemes': [opt_str, 'aaa:// aaas:// acap:// cap:// cid: crid:// data: dav: dict:// dns: fax: file:/ ftp:// geo: go: gopher:// h323: http:// https:// iax: icap:// im: imap:// info: ipp:// iris: iris.beep: iris.xpc: iris.xpcs: iris.lwz: ldap:// mid: modem: msrp:// msrps:// mtqp:// mupdate:// news: nfs:// nntp:// opaquelocktoken: pop:// pres: prospero:// rtsp:// service: shttp:// sip: sips: sms: snmp:// soap.beep:// soap.beeps:// tag: tel: telnet:// tftp:// thismessage:/ tip:// tv: urn:// vemmi:// xmlrpc.beep:// xmlrpc.beeps:// z39.50r:// z39.50s:// about: apt: cvs:// daap:// ed2k:// feed: fish:// git:// iax2: irc:// ircs:// ldaps:// magnet: mms:// rsync:// ssh:// svn:// sftp:// smb:// webcal://', _('Valid uri schemes. Only schemes in this list will be accepted as "real" uri. (mailto and xmpp are handled separately)'), True],
'ask_offline_status_on_connection': [ opt_bool, False, _('Ask offline status message to all offline contacts when connection to an accoutn is established. WARNING: This causes a lot of requests to be sent!') ],
'shell_like_completion': [ opt_bool, False, _('If True, completion in groupchats will be like a shell auto-completion')],
'show_self_contact': [opt_str, 'when_other_resource', _('When is self contact row displayed. Can be "always", "when_other_resource" or "never"'), True],
......
......@@ -1318,6 +1318,9 @@ class Connection(CommonConnection, ConnectionHandlers):
self.on_connect_auth(con)
self.on_connect_auth = None
else:
if not gajim.config.get_per('accounts', self.name, 'savepass'):
# Forget password, it's wrong
self.password = None
gajim.log.debug("Couldn't authenticate to %s" % self._hostname)
self.disconnect(on_purpose = True)
self.dispatch('STATUS', 'offline')
......@@ -2056,16 +2059,22 @@ class Connection(CommonConnection, ConnectionHandlers):
self.add_lang(p)
if not change_nick:
t = p.setTag(common.xmpp.NS_MUC + ' x')
last_date = self.last_history_time[room_jid]
if last_date == 0:
last_date = time.time() - gajim.config.get(
'muc_restore_timeout') * 60
else:
last_date = min(last_date, time.time() - gajim.config.get(
'muc_restore_timeout') * 60)
last_date = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime(last_date))
t.setTag('history', {'maxstanzas': gajim.config.get(
'muc_restore_lines'), 'since': last_date})
tags = {}
timeout = gajim.config.get('muc_restore_timeout') * 60
if timeout >= 0:
last_date = self.last_history_time[room_jid]
if last_date == 0:
last_date = time.time() - timeout
else:
last_date = min(last_date, time.time() - timeout)
last_date = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime(
last_date))
tags['since'] = last_date
nb = gajim.config.get('muc_restore_lines')
if nb >= 0:
tags['maxstanzas'] = nb
if tags:
t.setTag('history', tags)
if password:
t.setTagData('password', password)
self.connection.send(p)
......@@ -2284,6 +2293,9 @@ class Connection(CommonConnection, ConnectionHandlers):
self._disconnectedReconnCB()
def _reconnect_alarm(self):
if not gajim.config.get_per('accounts', self.name, 'active'):
# Account may have been disabled
return
if self.time_to_reconnect:
if self.connected < 2:
self._reconnect()
......
......@@ -348,22 +348,24 @@ class ConnectionDisco:
'pep':
self.pep_supported = True
break
if features.__contains__(common.xmpp.NS_VCARD):
self.vcard_supported = True
if features.__contains__(common.xmpp.NS_PUBSUB):
self.pubsub_supported = True
if features.__contains__(common.xmpp.NS_PUBSUB_PUBLISH_OPTIONS):
self.pubsub_publish_options_supported = True
else:
# Remove stored bookmarks accessible to everyone.
our_jid = gajim.get_jid_from_account(self.name)
self.send_pb_purge(our_jid, 'storage:bookmarks')
self.send_pb_delete(our_jid, 'storage:bookmarks')
if features.__contains__(common.xmpp.NS_BYTESTREAM):
our_jid = helpers.parse_jid(gajim.get_jid_from_account(self.name) +\
'/' + self.server_resource)
if features.__contains__(common.xmpp.NS_VCARD):
self.vcard_supported = True
if features.__contains__(common.xmpp.NS_PUBSUB):
self.pubsub_supported = True
if features.__contains__(
common.xmpp.NS_PUBSUB_PUBLISH_OPTIONS):
self.pubsub_publish_options_supported = True
else:
# Remove stored bookmarks accessible to everyone.
our_jid = gajim.get_jid_from_account(self.name)
self.send_pb_purge(our_jid, 'storage:bookmarks')
self.send_pb_delete(our_jid, 'storage:bookmarks')
if features.__contains__(common.xmpp.NS_BYTESTREAM) and \
gajim.config.get_per('accounts', self.name, 'use_ft_proxies'):
our_jid = helpers.parse_jid(gajim.get_jid_from_account(
self.name) + '/' + self.server_resource)
gajim.proxy65_manager.resolve(jid, self.connection, our_jid,
self.name)
self.name)
if features.__contains__(common.xmpp.NS_MUC) and is_muc:
type_ = transport_type or 'jabber'
self.muc_jid[type_] = jid
......@@ -600,7 +602,11 @@ class ConnectionVcard:
# We do as if it comes from the fake_jid
frm = groupchat_jid
our_jid = gajim.get_jid_from_account(self.name)
if not iq_obj.getTag('vCard') or iq_obj.getType() == 'error':
if (not iq_obj.getTag('vCard') and iq_obj.getType() == 'result') or\
iq_obj.getType() == 'error':
if id_ in self.groupchat_jids:
frm = self.groupchat_jids[id_]
del self.groupchat_jids[id_]
if frm and frm != our_jid:
# Write an empty file
self._save_vcard_to_hd(frm, '')
......@@ -819,6 +825,8 @@ class ConnectionHandlersBase:
def _LastResultCB(self, con, iq_obj):
log.debug('LastResultCB')
qp = iq_obj.getTag('query')
if not qp:
return
seconds = qp.getAttr('seconds')
status = qp.getData()
try:
......@@ -1135,7 +1143,8 @@ ConnectionCaps, ConnectionHandlersBase, ConnectionJingle):
log.warn('Invalid JID: %s, ignoring it' % conf.getAttr('jid'))
continue
if bm not in self.bookmarks:
bm_jids = [b['jid'] for b in self.bookmarks]
if bm['jid'] not in bm_jids:
self.bookmarks.append(bm)
if storage_type == 'xml':
# We got a bookmark that was not in pubsub
......@@ -1252,7 +1261,7 @@ ConnectionCaps, ConnectionHandlersBase, ConnectionJingle):
namespace=common.xmpp.NS_TIME_REVISED)
qp.setTagData('utc', strftime('%Y-%m-%dT%H:%M:%SZ', gmtime()))
isdst = localtime().tm_isdst
zone = -(timezone, altzone)[isdst] / 60
zone = -(timezone, altzone)[isdst]</