Commit 1de5bffd authored by Tanguy Ortolo's avatar Tanguy Ortolo

Upstream release 0.15.3

parent fc88cfac
Gajim 0.15.3 (17 March 2013)
* Better handling of SSL errors
* Better handling of canceling file transfer
* Improve farstream calls
* Minor fixes and improvements
Gajim 0.15.2 (30 October 2012)
* Show punycode encoded urls if they contain non-ascii chars
* Fix crash when pressing Esc in chat window
* Support Network Manager 0.9
* decrypt GPG messages in the correct order
Gajim 0.15.1 (29 August 2012)
* Switch from python-farsight to python-farstream
* improve performences
* improve performances
* Fix roster filter with unicode chars
* Fix connection to msn jabber server
* Fix some GPG issues
......
......@@ -1775,7 +1775,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
LD="${LD-ld} -m elf_i386_fbsd"
;;
x86_64-*linux*)
LD="${LD-ld} -m elf_i386"
case `/usr/bin/file conftest.o` in
*x86-64*)
LD="${LD-ld} -m elf32_x86_64"
;;
*)
LD="${LD-ld} -m elf_i386"
;;
esac
;;
ppc64-*linux*|powerpc64-*linux*)
LD="${LD-ld} -m elf32ppclinux"
......@@ -2139,7 +2146,8 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
;;
*)
lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
if test -n "$lt_cv_sys_max_cmd_len"; then
if test -n "$lt_cv_sys_max_cmd_len" && \
test undefined != "$lt_cv_sys_max_cmd_len"; then
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
else
......
#!/usr/bin/env bash
gajimversion="0.15.1"
gajimversion="0.15.3"
if [ -d ".hg" ]; then
node=$(hg tip --template "{node}")
hgversion="-${node:0:12}"
......
......@@ -70,7 +70,7 @@
# compiler: $LTCC
# compiler flags: $LTCFLAGS
# linker: $LD (gnu? $with_gnu_ld)
# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.1
# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.2
# automake: $automake_version
# autoconf: $autoconf_version
#
......@@ -80,7 +80,7 @@
PROGRAM=libtool
PACKAGE=libtool
VERSION="2.4.2 Debian-2.4.2-1.1"
VERSION="2.4.2 Debian-2.4.2-1.2"
TIMESTAMP=""
package_revision=1.3337
......
......@@ -590,7 +590,7 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Gajim - A Jabber Instant Messager'
PACKAGE_TARNAME='gajim'
PACKAGE_VERSION='0.15.1'
PACKAGE_VERSION='0.15.3'
PACKAGE_STRING='Gajim - A Jabber Instant Messager "version-set-in-hgversion"'
PACKAGE_BUGREPORT='http://trac.gajim.org/'
PACKAGE_URL=''
......@@ -1576,7 +1576,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
Gajim - A Jabber Instant Messager configure 0.15.1
Gajim - A Jabber Instant Messager configure 0.15.3
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -1945,7 +1945,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by Gajim - A Jabber Instant Messager $as_me 0.15.1, which was
It was created by Gajim - A Jabber Instant Messager $as_me 0.15.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
......@@ -2766,7 +2766,7 @@ fi
# Define the identity of the package.
PACKAGE='gajim'
VERSION='0.15.1'
VERSION='0.15.3'
cat >>confdefs.h <<_ACEOF
......@@ -6242,7 +6242,8 @@ else
;;
*)
lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
if test -n "$lt_cv_sys_max_cmd_len"; then
if test -n "$lt_cv_sys_max_cmd_len" && \
test undefined != "$lt_cv_sys_max_cmd_len"; then
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
else
......@@ -7778,7 +7779,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
LD="${LD-ld} -m elf_i386_fbsd"
;;
x86_64-*linux*)
LD="${LD-ld} -m elf_i386"
case `/usr/bin/file conftest.o` in
*x86-64*)
LD="${LD-ld} -m elf32_x86_64"
;;
*)
LD="${LD-ld} -m elf_i386"
;;
esac
;;
ppc64-*linux*|powerpc64-*linux*)
LD="${LD-ld} -m elf32ppclinux"
......@@ -14819,7 +14827,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by Gajim - A Jabber Instant Messager $as_me 0.15.1, which was
This file was extended by Gajim - A Jabber Instant Messager $as_me 0.15.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -14885,7 +14893,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
Gajim - A Jabber Instant Messager config.status 0.15.1
Gajim - A Jabber Instant Messager config.status 0.15.3
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
......
[Desktop Entry]
Categories=Network;InstantMessaging;GTK;GNOME;
_Name=Gajim Instant Messenger
_Name=Gajim
_GenericName=Jabber IM Client
_Comment=A GTK+ Jabber client
Version=1.0
......
<?xml version="1.0"?>
<?xml version="1.0" encoding="UTF-8"?>
<!--
This file lists the open XMPP servers registered with the XSF.
The format of this file is defined by the Service Discovery
......@@ -6,76 +6,4 @@
To add your server to the list, follow the instructions at
http://xmpp.org/services/register.shtml
-->
<query>
<item jid="0nl1ne.at"/>
<item jid="binaryfreedom.info"/>
<item jid="boese-ban.de"/>
<item jid="brauchen.info"/>
<item jid="cassilis.net"/>
<item jid="chatmask.com"/>
<item jid="climm.org"/>
<item jid="codingteam.net"/>
<item jid="darkdna.net"/>
<item jid="default.rs"/>
<item jid="deshalbfrei.org"/>
<item jid="draugr.de"/>
<item jid="im.apinc.org"/>
<item jid="im.flosoft.biz"/>
<item jid="internet-exception.de"/>
<item jid="jabber.ccc.de"/>
<item jid="jabber.chaotic.de"/>
<item jid="jabber.co.nz"/>
<item jid="jabber.cz"/>
<item jid="jabber.fourecks.de"/>
<item jid="jabber.fsinf.at"/>
<item jid="jabber.hot-chilli.net"/>
<item jid="jabber.iitsp.com"/>
<item jid="jabber.i-pobox.net"/>
<item jid="jabber.loudas.com"/>
<item jid="jabber.minus273.org"/>
<item jid="jabber.no"/>
<item jid="jabber.org"/>
<item jid="jabber.rootbash.com"/>
<item jid="jabber.rueckgr.at"/>
<item jid="jabber.scha.de"/>
<item jid="jabber.second-home.de"/>
<item jid="jabber.sow.as"/>
<item jid="jabber.tmkis.com"/>
<item jid="jabber.yeahnah.co.nz"/>
<item jid="jabber-br.org"/>
<item jid="jabber-hispano.org"/>
<item jid="jabberbr.com"/>
<item jid="jabberd.eu"/>
<item jid="jabberes.org"/>
<item jid="jabberim.de"/>
<item jid="jabbim.com"/>
<item jid="jabbim.cz"/>
<item jid="jabbim.pl"/>
<item jid="jabbim.sk"/>
<item jid="jabme.de"/>
<item jid="jabster.pl"/>
<item jid="jaim.at"/>
<item jid="lethyro.net"/>
<item jid="limun.org"/>
<item jid="linuxlovers.at"/>
<item jid="macjabber.de"/>
<item jid="na-di.de"/>
<item jid="neko.im"/>
<item jid="netmindz.net"/>
<item jid="njs.netlab.cz"/>
<item jid="pandion.im"/>
<item jid="programmer-art.org"/>
<item jid="richim.org"/>
<item jid="sternenschweif.de"/>
<item jid="swissjabber.ch"/>
<item jid="ubuntu-jabber.de"/>
<item jid="thiessen.im"/>
<item jid="thiessen.it"/>
<item jid="thiessen.org"/>
<item jid="ubuntu-jabber.net"/>
<item jid="verdammung.org"/>
<item jid="xabber.de"/>
<item jid="xmpp.jp"/>
<item jid="xmppnet.de"/>
<item jid="zsim.de"/>
</query>
<query xmlns:reg="urn:xmpp:vcard:registration:1"><item jid="0nl1ne.at"/><item jid="blah.im"/><item jid="boese-ban.de"/><item jid="brauchen.info"/><item jid="chatme.im"/><item jid="chrome.pl"/><item jid="climm.org"/><item jid="coderollers.com"/><item jid="codingteam.net"/><item jid="comm.unicate.me"/><item jid="deshalbfrei.org"/><item jid="draugr.de"/><item jid="einfachjabber.de"/><item jid="forumanalogue.fr"/><item jid="im.apinc.org"/><item jid="im.flosoft.biz"/><item jid="internet-exception.de"/><item jid="jabb3r.net"/><item jid="jabber-br.org"/><item jid="jabber-hosting.de"/><item jid="jabber.at"/><item jid="jabber.ccc.de"/><item jid="jabber.chaotic.de"/><item jid="jabber.co.nz"/><item jid="jabber.cz"/><item jid="jabber.de"/><item jid="jabber.earth.li"/><item jid="jabber.etighichat.com"/><item jid="jabber.fourecks.de"/><item jid="jabber.gate31.net"/><item jid="jabber.hot-chilli.net"/><item jid="jabber.i-pobox.net"/><item jid="jabber.iitsp.com"/><item jid="jabber.loudas.com"/><item jid="jabber.me"/><item jid="jabber.meta.net.nz"/><item jid="jabber.minus273.org"/><item jid="jabber.no-sense.net"/><item jid="jabber.no"/><item jid="jabber.rootbash.com"/><item jid="jabber.rueckgr.at"/><item jid="jabber.scha.de"/><item jid="jabber.schnied.net"/><item jid="jabber.second-home.de"/><item jid="jabber.smash-net.org"/><item jid="jabber.sow.as"/><item jid="jabber.theforest.us"/><item jid="jabber.tmkis.com"/><item jid="jabber.yeahnah.co.nz"/><item jid="jabberd.eu"/><item jid="jabberes.org"/><item jid="jabbim.com"/><item jid="jabbim.cz"/><item jid="jabbim.pl"/><item jid="jabbim.sk"/><item jid="jabin.org"/><item jid="jabme.de"/><item jid="jabster.pl"/><item jid="jaim.at"/><item jid="jappix.com"/><item jid="jisshi.com"/><item jid="labnote.org"/><item jid="lightwitch.org"/><item jid="limun.org"/><item jid="macjabber.de"/><item jid="mayplaces.com"/><item jid="na-di.de"/><item jid="neko.im"/><item jid="netmindz.net"/><item jid="njs.netlab.cz"/><item jid="palita.net"/><item jid="pandion.im"/><item jid="pidgin.su"/><item jid="programmer-art.org"/><item jid="prosody.de"/><item jid="richim.org"/><item jid="rkquery.de"/><item jid="sss.chaoslab.ru"/><item jid="sternenschweif.de"/><item jid="swissjabber.ch"/><item jid="swissjabber.de"/><item jid="swissjabber.eu"/><item jid="swissjabber.li"/><item jid="swissjabber.org"/><item jid="tcweb.org"/><item jid="tekst.me"/><item jid="thiessen.im"/><item jid="thiessen.it"/><item jid="thiessen.org"/><item jid="tigase.im"/><item jid="twattle.net"/><item jid="ubuntu-jabber.de"/><item jid="ubuntu-jabber.net"/><item jid="univers-libre.net"/><item jid="verdammung.org"/><item jid="wtfismyip.com"/><item jid="xabber.de"/><item jid="xmpp-hosting.de"/><item jid="xmpp.jp"/><item jid="xmppnet.de"/><item jid="zauris.ru"/><item jid="zsim.de"/></query>
......@@ -39,11 +39,15 @@ Var StartMenuFolder
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
;Show all languages, despite user's codepage
!define MUI_LANGDLL_ALLLANGUAGES
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "Italian"
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "Hebrew"
!insertmacro MUI_RESERVEFILE_LANGDLL
; English
......@@ -58,9 +62,7 @@ LangString DESC_SecGajim ${LANG_ENGLISH} "Installs the main Gajim files."
LangString DESC_SecGtk ${LANG_ENGLISH} "Installs Gtk+ 2 (necessary to run Gajim)."
LangString DESC_SecDesktopIcon ${LANG_ENGLISH} "If set, a shortcut for Gajim will be created on the desktop."
LangString DESC_SecAutostart ${LANG_ENGLISH} "If set, Gajim will be automatically started when Windows starts."
LangString STR_Installed ${LANG_ENGLISH} "Apparently, Gajim is already installed."
LangString STR_Uninstall ${LANG_ENGLISH} "Launch Uninstaller"
LangString STR_Cancel ${LANG_ENGLISH} "Cancel"
LangString STR_Installed ${LANG_ENGLISH} "Apparently, Gajim is already installed. Uninstall it?"
LangString STR_Running ${LANG_ENGLISH} "It appears that Gajim is currently running.$\n\
Please quit Gajim and restart the uninstaller."
......@@ -76,9 +78,7 @@ LangString DESC_SecGajim ${LANG_FRENCH} "Installer les fichiers principaux de Ga
LangString DESC_SecGtk ${LANG_FRENCH} "Installer Gtk+ 2 (ncessaire Gajim)."
LangString DESC_SecDesktopIcon ${LANG_FRENCH} "Si selectionn, un raccourci pour Gajim sera cr sur le bureau."
LangString DESC_SecAutostart ${LANG_FRENCH} "Si activ, Gajim sera automatiquement lanc au dmarrage de Windows."
LangString STR_Installed ${LANG_FRENCH} "Gajim est apparement dja install."
LangString STR_Uninstall ${LANG_FRENCH} "Lancer la Dsinstallation"
LangString STR_Cancel ${LANG_FRENCH} "Annuler"
LangString STR_Installed ${LANG_FRENCH} "Gajim est apparement dj install. Lancer la dsinstallation ?"
LangString STR_Running ${LANG_FRENCH} "Gajim est apparament lanc.$\n\
Fermez-le et redmarrez le dsinstallateur."
......@@ -94,9 +94,7 @@ LangString DESC_SecGajim ${LANG_GERMAN} "Installiert die Hauptdateien von Gajim.
LangString DESC_SecGtk ${LANG_GERMAN} "Installert Gtk+ 2 (notwendig um Gajim zu benutzen)."
LangString DESC_SecDesktopIcon ${LANG_GERMAN} "Wenn dies aktiviert wird, wird ein Icon fr Gajim auf dem Desktop erstellt."
LangString DESC_SecAutostart ${LANG_GERMAN} "Gajim wird automatisch gestartet, sowie Windows startet, wenn dies aktivier wird."
LangString STR_Installed ${LANG_GERMAN} "Gajim scheint bereits installiert zu sein."
LangString STR_Uninstall ${LANG_GERMAN} "Deinstallations-Programm starten"
LangString STR_Cancel ${LANG_GERMAN} "Abbrechen"
LangString STR_Installed ${LANG_GERMAN} "Gajim is apparently already installed. Uninstall it?"
LangString STR_Running ${LANG_GERMAN} "Es scheint, dass Gajim bereits luft.$\n\
Bitte beenden Sie es und starten Sie den Installer erneut.."
......@@ -112,9 +110,7 @@ LangString DESC_SecGajim ${LANG_ITALIAN} "Installa i file principali di Gajim."
LangString DESC_SecGtk ${LANG_ITALIAN} "Installa Gtk+ 2 (necessario per eseguire Gajim)."
LangString DESC_SecDesktopIcon ${LANG_ITALIAN} "Se selezionato, un'icona verr creata sul desktop."
LangString DESC_SecAutostart ${LANG_ITALIAN} "Se selezionato, Gajim sar eseguito all'avvio di Windows."
LangString STR_Installed ${LANG_ITALIAN} "Gajim is apparently already installed."
LangString STR_Uninstall ${LANG_ITALIAN} "Launch Uninstall"
LangString STR_Cancel ${LANG_ITALIAN} "Cancel"
LangString STR_Installed ${LANG_ITALIAN} "Gajim is apparently already installed. Uninstall it?"
LangString STR_Running ${LANG_ITALIAN} "It appears that Gajim is currently running.$\n\
Close it and restart uninstaller."
......@@ -130,11 +126,24 @@ LangString DESC_SecGajim ${LANG_RUSSIAN} "
LangString DESC_SecGtk ${LANG_RUSSIAN} " Gtk+ 2 ( Gajim)."
LangString DESC_SecDesktopIcon ${LANG_RUSSIAN} " , Gajim."
LangString DESC_SecAutostart ${LANG_RUSSIAN} " , Gajim Windows."
LangString STR_Installed ${LANG_RUSSIAN} "Gajim is apparently already installed."
LangString STR_Uninstall ${LANG_RUSSIAN} "Launch Uninstall"
LangString STR_Cancel ${LANG_RUSSIAN} "Cancel"
LangString STR_Running ${LANG_RUSSIAN} "It appears that Gajim is currently running.$\n\
Close it and restart uninstaller."
LangString STR_Installed ${LANG_RUSSIAN} ", Gajim . ?"
LangString STR_Running ${LANG_RUSSIAN} ", Gajim .$\n ."
; Hebrew
LangString NAME_Emoticons ${LANG_HEBREW} ""
LangString NAME_Iconsets ${LANG_HEBREW} " "
LangString NAME_Languages ${LANG_HEBREW} ""
LangString NAME_SecLanguagesOther ${LANG_HEBREW} ""
LangString NAME_Themes ${LANG_HEBREW} " "
LangString NAME_SecDesktopIcon ${LANG_HEBREW} " "
LangString NAME_SecAutostart ${LANG_HEBREW} " Gajim Windows "
LangString DESC_SecGajim ${LANG_HEBREW} " Gajim ."
LangString DESC_SecGtk ${LANG_HEBREW} " Gtk+ 2 ( Gajim)."
LangString DESC_SecDesktopIcon ${LANG_HEBREW} " , Gajim ."
LangString DESC_SecAutostart ${LANG_HEBREW} " , Gajim Windows ."
LangString STR_Installed ${LANG_HEBREW} " , Gajim . ?"
LangString STR_Running ${LANG_HEBREW} " Gajim .$\n\
Gajim ."
Section "Gajim" SecGajim
SectionIn RO
......@@ -191,7 +200,7 @@ Section "Gajim" SecGajim
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.15.1"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Gajim" "DisplayVersion" "0.15.3"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Gajim" "URLInfoAbout" "http://www.gajim.org/"
WriteUninstaller "$INSTDIR\Uninstall.exe"
......@@ -354,6 +363,7 @@ Section $(NAME_SecLanguagesOther) SecLanguagesOther
File /r "po\eo"
File /r "po\eu"
File /r "po\gl"
File /r "po\he"
File /r "po\hr"
File /r "po\lt"
File /r "po\nb"
......@@ -598,6 +608,7 @@ Section "Uninstall"
RMDir /r "$INSTDIR\po\eu"
RMDir /r "$INSTDIR\po\fr"
RMDir /r "$INSTDIR\po\gl"
RMDir /r "$INSTDIR\po\he"
RMDir /r "$INSTDIR\po\hr"
RMDir /r "$INSTDIR\po\it"
RMDir /r "$INSTDIR\po\lt"
......@@ -678,11 +689,7 @@ launch:
IntOp $0 $0 - 2
strcpy $1 $R0 $0 1
IfFileExists $1 +1 NotInstalled
messagebox::show MB_DEFBUTTON4|MB_TOPMOST "Gajim" \
"0,103" \
$(STR_Installed) \
$(STR_Uninstall) $(STR_Cancel)
Pop $R1
MessageBox MB_YESNO|MB_DEFBUTTON2|MB_TOPMOST $(STR_Installed) IDNO Quit
StrCmp $R1 2 Quit +1
ExecWait '$R0 _?=$INSTDIR' $R2
StrCmp $R2 0 +1 Quit
......@@ -691,12 +698,7 @@ NotInstalled:
; Check to see if new installer (NSIS)already installed
ReadRegStr $R3 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Gajim" "UninstallString"
IfFileExists $R3 +1 ReallyNotInstalled
messagebox::show MB_DEFBUTTON4|MB_TOPMOST "Gajim" \
"0,103" \
$(STR_Installed) \
$(STR_Uninstall) $(STR_Cancel)
Pop $R4
MessageBox MB_YESNO|MB_DEFBUTTON2|MB_TOPMOST $(STR_Installed) IDNO Quit
StrCmp $R4 2 Quit +1
ExecWait '$R3 _?=$INSTDIR' $R5
StrCmp $R5 0 ReallyNotInstalled Quit
......
define([AC_PACKAGE_VERSION], [0.15.1])
define([AC_PACKAGE_VERSION], [0.15.3])
......@@ -301,8 +301,9 @@
<object class="GtkCheckButton" id="check_update">
<property name="label" translatable="yes">Check update after start</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_focus">False</property>
<property name="receives_default">False</property>
<property name="focus_on_click">False</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="on_check_update_toggled"/>
</object>
......@@ -311,6 +312,21 @@
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="TLS">
<property name="label" translatable="yes">Use TLS transport</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="receives_default">False</property>
<property name="focus_on_click">False</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="on_tls_toggled"/>
</object>
<packing>
<property name="expand">False</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
......
[info]
name: Plugin Installer
short_name: plugin_installer
version: 0.10.4
version: 0.11.1
description: Install and upgrade plugins from ftp
authors: Denis Fomin <fominde@gmail.com>
Yann Leboulanger <asterix@lagaule.org>
homepage: http://trac-plugins.gajim.org/wiki/PluginInstallerPlugin
max_gajim_version: 0.15.9
......@@ -63,7 +63,8 @@ class PluginInstaller(GajimPlugin):
self.description = _('Install and upgrade plugins from ftp')
self.config_dialog = PluginInstallerPluginConfigDialog(self)
self.config_default_values = {'ftp_server': ('ftp.gajim.org', ''),
'check_update': (True, ''),}
'check_update': (True, ''),
'TLS': (True, ''),}
self.window = None
self.progressbar = None
self.available_plugins_model = None
......@@ -98,7 +99,7 @@ class PluginInstaller(GajimPlugin):
'\n%s') % plugins_str, on_response_yes=open_update)
def ftp_connect(self):
if sys.version_info[:2] > (2, 6):
if sys.version_info[:2] > (2, 6) and self.config['TLS'] :
con = ftplib.FTP_TLS(self.config['ftp_server'])
con.login()
con.prot_p()
......@@ -118,15 +119,23 @@ class PluginInstaller(GajimPlugin):
zip_file = zipfile.ZipFile(ftp.buffer_)
manifest_list = zip_file.namelist()
for filename in manifest_list:
ftp.config.readfp(zip_file.open(filename))
local_version = ftp.get_plugin_version(ftp.config.get(
config = ConfigParser.ConfigParser()
config.readfp(zip_file.open(filename))
if not config.has_section('info'):
continue
opts = config.options('info')
if 'name' not in opts or 'version' not in opts or \
'description' not in opts or 'authors' not in opts or \
'homepage' not in opts:
continue
local_version = ftp.get_plugin_version(config.get(
'info', 'name'))
if local_version:
local = convert_version_to_list(local_version)
remote = convert_version_to_list(ftp.config.get('info',
remote = convert_version_to_list(config.get('info',
'version'))
if remote > local:
to_update.append(ftp.config.get('info', 'name'))
to_update.append(config.get('info', 'name'))
con.quit()
gobject.idle_add(self.warn_update, to_update)
except Exception, e:
......@@ -450,7 +459,6 @@ class Ftp(threading.Thread):
self.window = plugin.window
self.progressbar = plugin.progressbar
self.model = plugin.available_plugins_model
self.config = ConfigParser.ConfigParser()
self.buffer_ = io.BytesIO()
self.remote_dirs = None
self.append_to_model = True
......@@ -494,13 +502,22 @@ class Ftp(threading.Thread):
gobject.idle_add(self.progressbar.set_text,
_('Reading "%s"') % dir_)
self.config.readfp(zip_file.open(filename))
config = ConfigParser.ConfigParser()
config.readfp(zip_file.open(filename))
if not config.has_section('info'):
continue
opts = config.options('info')
if 'name' not in opts or 'version' not in opts or \
'description' not in opts or 'authors' not in opts or \
'homepage' not in opts:
continue
local_version = self.get_plugin_version(
self.config.get('info', 'name'))
config.get('info', 'name'))
upgrade = False
if self.upgrading and local_version:
local = convert_version_to_list(local_version)
remote = convert_version_to_list(self.config.get('info',
remote = convert_version_to_list(config.get('info',
'version'))
if remote > local:
upgrade = True
......@@ -522,11 +539,11 @@ class Ftp(threading.Thread):
local_dir = os.path.join(user_dir, dir_)
gobject.idle_add(self.model_append, [def_icon, dir_,
self.config.get('info', 'name'), local_version,
self.config.get('info', 'version'), upgrade,
self.config.get('info', 'description'),
self.config.get('info', 'authors'),
self.config.get('info', 'homepage'), ])
config.get('info', 'name'), local_version,
config.get('info', 'version'), upgrade,
config.get('info', 'description'),
config.get('info', 'authors'),
config.get('info', 'homepage'), ])
self.ftp.quit()
gobject.idle_add(self.progressbar.set_fraction, 0)
if self.remote_dirs:
......@@ -620,6 +637,7 @@ class PluginInstallerPluginConfigDialog(GajimPluginConfigDialog):
widget.set_text(str(self.plugin.config['ftp_server']))
self.xml.get_object('check_update').set_active(
self.plugin.config['check_update'])
self.xml.get_object('TLS').set_active(self.plugin.config['TLS'])
def on_hide(self, widget):
widget = self.xml.get_object('ftp_server')
......@@ -627,3 +645,6 @@ class PluginInstallerPluginConfigDialog(GajimPluginConfigDialog):
def on_check_update_toggled(self, widget):
self.plugin.config['check_update'] = widget.get_active()
def on_tls_toggled(self, widget):
self.plugin.config['TLS'] = widget.get_active()
This diff is collapsed.
......@@ -1806,7 +1806,7 @@ msgstr ""
#: ../data/gui/preferences_window.ui.h:29
msgid "Allow sound when I'm _busy"
msgstr "Tillat lys når jeg er _opptatt"
msgstr "Tillat lyd når jeg er _opptatt"
#: ../data/gui/preferences_window.ui.h:30
#, fuzzy
......
......@@ -1581,6 +1581,7 @@ class ChatControl(ChatControlBase):
self.handlers[id_] = widget
self.dtmf_window = self.xml.get_object('dtmf_window')
self.dtmf_window.get_child().set_direction(gtk.TEXT_DIR_LTR)
id_ = self.dtmf_window.connect('focus-out-event',
self.on_dtmf_window_focus_out_event)
self.handlers[id_] = self.dtmf_window
......
......@@ -133,7 +133,12 @@ try:
for i in range(0, cnt):
ext = cert.get_extension(i)
if ext.get_short_name() == 'subjectAltName':
r = _parse_asn1(ext.get_data())
try:
r = _parse_asn1(ext.get_data())
except:
log.error('Wrong data in certificate: subjectAltName=%s' % \
ext.get_data())
continue
if 'otherName' in r:
if oid_xmppaddr in r['otherName']:
for host in r['otherName'][oid_xmppaddr]:
......
......@@ -177,7 +177,7 @@ class Config:
'last_roster_visible': [opt_bool, True],
'key_up_lines': [opt_int, 25, _('How many lines to store for Ctrl+KeyUP.')],
'version': [ opt_str, defs.version ], # which version created the config
'search_engine': [opt_str, 'http://www.google.com/search?&q=%s&sourceid=gajim'],
'search_engine': [opt_str, 'https://www.google.com/search?&q=%s&sourceid=gajim'],
'dictionary_url': [opt_str, 'WIKTIONARY', _("Either custom url with %s in it where %s is the word/phrase or 'WIKTIONARY' which means use wiktionary.")],
'always_english_wikipedia': [opt_bool, False],
'always_english_wiktionary': [opt_bool, True],
......@@ -463,6 +463,8 @@ class Config:
}, {}),
'rooms': ({
'speller_language': [ opt_str, '', _('Language for which we want to check misspelled words')],
'muc_restore_lines': [opt_int, -2, _('How many lines to request from server when entering a groupchat. -1 means no limit, -2 means global value')],
'muc_restore_timeout': [opt_int, -2, _('How many minutes back to request logs when a entering a groupchat. -1 means no limit, -2 means global value')],
}, {}),
'plugins': ({
'active': [opt_bool, False, _('State whether plugins should be activated on exit (this is saved on Gajim exit). This option SHOULD NOT be used to (de)activate plug-ins. Use GUI instead.')],
......
......@@ -1171,6 +1171,8 @@ class Connection(CommonConnection, ConnectionHandlers):
port = self._current_host['port']
cacerts = os.path.join(common.gajim.DATA_DIR, 'other', 'cacerts.pem')
if not os.path.exists(cacerts):
cacerts = ''
mycerts = common.gajim.MY_CACERTS
secure_tuple = (self._current_type, cacerts, mycerts)
......@@ -1311,45 +1313,51 @@ class Connection(CommonConnection, ConnectionHandlers):
try:
errnum = con.Connection.ssl_errnum
except AttributeError:
errnum = -1 # we don't have an errnum
if errnum > 0 and str(errnum) not in gajim.config.get_per('accounts',
self.name, 'ignore_ssl_errors').split():
text = _('The authenticity of the %s certificate could be invalid.'
) % hostname
if errnum in ssl_error:
text += _('\nSSL Error: <b>%s</b>') % ssl_error[errnum]
else:
text += _('\nUnknown SSL error: %d') % errnum
gajim.nec.push_incoming_event(SSLErrorEvent(None, conn=self,
error_text=text, error_num=errnum,
cert=con.Connection.ssl_cert_pem,
fingerprint=con.Connection.ssl_fingerprint_sha1,
certificate=con.Connection.ssl_certificate))
return True
errnum = [] # we don't have an errnum
i = 0
for er in errnum:
if er > 0 and str(er) not in gajim.config.get_per('accounts',
self.name, 'ignore_ssl_errors').split():
text = _('The authenticity of the %s certificate could be '
'invalid.') % hostname
if er in ssl_error:
text += _('\nSSL Error: <b>%s</b>') % ssl_error[er]
else:
text += _('\nUnknown SSL error: %d') % er
gajim.nec.push_incoming_event(SSLErrorEvent(None, conn=self,
error_text=text, error_num=er,
cert=con.Connection.ssl_cert_pem[i],
fingerprint=con.Connection.ssl_fingerprint_sha1[i],
certificate=con.Connection.ssl_certificate[i]))
return True
i += 1
if hasattr(con.Connection, 'ssl_fingerprint_sha1'):
saved_fingerprint = gajim.config.get_per('accounts', self.name,
'ssl_fingerprint_sha1')
if saved_fingerprint:
# Check sha1 fingerprint
if con.Connection.ssl_fingerprint_sha1 != saved_fingerprint:
if con.Connection.ssl_fingerprint_sha1[-1] != saved_fingerprint:
gajim.nec.push_incoming_event(FingerprintErrorEvent(None,
conn=self, certificate=con.Connection.ssl_certificate,
new_fingerprint=con.Connection.ssl_fingerprint_sha1))
conn=self,
certificate=con.Connection.ssl_certificate[-1],
new_fingerprint=con.Connection.ssl_fingerprint_sha1[
-1]))
return True
else:
gajim.config.set_per('accounts', self.name,
'ssl_fingerprint_sha1', con.Connection.ssl_fingerprint_sha1)
if not check_X509.check_certificate(con.Connection.ssl_certificate,
hostname) and '100' not in gajim.config.get_per('accounts',
'ssl_fingerprint_sha1',
con.Connection.ssl_fingerprint_sha1[-1])
if not check_X509.check_certificate(con.Connection.ssl_certificate[
-1], hostname) and '100' not in gajim.config.get_per('accounts',
self.name, 'ignore_ssl_errors').split():
txt = _('The authenticity of the %s certificate could be '
'invalid.\nThe certificate does not cover this domain.') % \
hostname
gajim.nec.push_incoming_event(SSLErrorEvent(None, conn=self,
error_text=txt, error_num=100,
cert=con.Connection.ssl_cert_pem,
fingerprint=con.Connection.ssl_fingerprint_sha1,
certificate=con.Connection.ssl_certificate))
cert=con.Connection.ssl_cert_pem[-1],
fingerprint=con.Connection.ssl_fingerprint_sha1[-1],
certificate=con.Connection.ssl_certificate[-1]))
return True
self._register_handlers(con, con_type)
......@@ -1654,7 +1662,7 @@ class Connection(CommonConnection, ConnectionHandlers):
# If we are not resuming, we ask for discovery info
# and archiving preferences
if not self.sm.resuming:
if not self.sm.supports_sm or (not self.sm.resuming and self.sm.enabled):
self.request_message_archiving_preferences()
self.discoverInfo(gajim.config.get_per('accounts', self.name,
'hostname'), id_prefix='Gajim_')
......@@ -1669,7 +1677,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self._stun_servers = self._hosts = [i for i in result_array]
def _request_privacy(self):
if not gajim.account_is_connected(self.name):
if not gajim.account_is_connected(self.name) or not self.connection:
return
iq = common.xmpp.Iq('get', common.xmpp.NS_PRIVACY, xmlns = '')
id_ = self.connection.getAnID()
......@@ -1875,26 +1883,30 @@ class Connection(CommonConnection, ConnectionHandlers):
form_node=obj.form_node, original_message=obj.original_message,
delayed=obj.delayed, callback=cb)
def send_contacts(self, contacts, jid):
def send_contacts(self, contacts, jid, fjid, type_='message'):
"""
Send contacts with RosterX (Xep-0144)
"""
if not gajim.account_is_connected(self.name):
return
if len(contacts) == 1:
msg = _('Sent contact: "%s" (%s)') % (contacts[0].get_full_jid(),
if type_ == 'message':
if len(contacts) == 1:
msg = _('Sent contact: "%s" (%s)') % (contacts[0].get_full_jid(),
contacts[0].get_shown_name())
else:
msg = _('Sent contacts:')
for contact in contacts: