...
 
Commits (702)
syntax: glob
*.orig
*.swp
*.gmo
*.in
*.m4
......@@ -15,6 +16,8 @@ po/POTFILES
po/stamp-it
stamp-h1
Makefile
__pycache__/
src/gtk/
syntax: regexp
^config\.*
......
CURRENT DEVELOPERS:
Alexander Cherniuk (ts33kr AT gmail.com)
Yann Leboulanger (asterix AT lagaule.org)
Jonathan Schleifer (js-gajim AT webkeks.org)
PAST DEVELOPERS:
Stefan Bethge (stefan AT lanpartei.de)
Alexander Cherniuk (ts33kr AT gmail.com)
Stephan Erb (steve-e AT h3c.de)
Vincent Hanquez (tab AT snarc.org)
Dimitur Kirov (dkirov AT gmail.com)
Nikos Kouremenos (kourem AT gmail.com)
Julien Pivotto (roidelapluie AT gmail.com)
Jonathan Schleifer (js-gajim AT webkeks.org)
Travis Shirk (travis AT pobox.com)
Brendan Taylor (whateley AT gmail.com)
Jean-Marie Traissard (jim AT lapin.org)
Gajim 0.16 ()
Gajim 0.16.7 (30 January 2017)
* Better compatibility with XEP-0191: Blocking Command
* Windows Credential Vault is used for password storage on Windows
* Gajim now depends on python-gnupg for PGP encryption
* Add portable installer for Windows
* Remove usage of demandimport
* Many minor bugfixes
Gajim 0.16.6 (02 October 2016)
* Fix using gpg2
* Improve message receipts usage
* Improve roster filtering
* several minor bugs
Gajim 0.16.5 (28 December 2015)
* Improve MAM implementation
* Improve security on connexion and for roster managment
* Ability for emoticons to be sorted in menu
Gajim 0.16.4 (26 September 2015)
* Fix trusting GPG keys
* Ability to disable synchronization of logs with server
* Improve MAM usage
Gajim 0.16.3 (31 July 2015)
* Fix reading secret file
* Fix reconnection after suspend
* Fix sending GPG-encrypted file to non-trusted key
Gajim 0.16.2 (24 July 2015)
* improve Zeroconf under windows and with IPv6
* Fix errors with GnuPG
* Minor fixes and improvements
Gajim 0.16.1 (28 February 2015)
* Fix sending Zeroconf messages
* Make ipython compatible to version >= 1.0
* Support XEP-0313 MAM
* Minor fixes and improvements
Gajim 0.16 (04 October 2014)
* Improve File transfer support by adding Jingle file transfer
* use external python-nbxmpp library
* improve security
* Improve audio / Video calls and add screensharing feature
* Support audio under windows
* Support systemd-logind
* Support XEP-0308 Last message correction
* Support XEP-0224 Attention
* Support XEP-0191 Blocking command
* Better LTR languages support
* Support XEP-0249 Direct Invitation
* Better RTL languages support
* use host command to resolve SRV records if it is available
Gajim 0.15.4 (25 May 2013)
......
......@@ -5,7 +5,6 @@ ACLOCAL_AMFLAGS = -I m4
bin_SCRIPTS = scripts/gajim scripts/gajim-history-manager scripts/gajim-remote
EXTRA_DIST = \
README.html \
THANKS.artists \
autogen.sh \
intltool-extract.in \
......
see README.html
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Gajim - Read Me</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<h1>Gajim Read Me</h1>
<p>Welcome to Gajim and thank you for trying out our client.</p>
<h2>Runtime Requirements</h2>
<ul>
<li>python2.5 or higher</li>
<li>pygtk2.22 or higher</li>
<li>python-nbxmpp</li>
</ul>
<h2>Optional Runtime Requirements</h2>
<ul>
<li><a href="http://pyopenssl.sourceforge.net/">PyOpenSSL</a> (python-pyopenssl package in Debian) (>=0.12) for <em>secure</em> SSL/TLS. Python's default SSL is insecure, so this package is highly recommended!</li>
<li>python-pyasn1 to check SSL/TLS certificate</li>
<li>python-crypto to enable End to end encryption</li>
<li>python-gnupg to enable GPG encryption</li>
<li>For idle module, libxss library</li>
<li>For zeroconf (bonjour), the "enable link-local messaging" checkbox, you need dbus-glib, python-avahi</li>
<li>dnsutils (or whatever package provides the nslookup binary) for SRV support</li>
<li>gtkspell and aspell-LANG where lang is your locale eg. en, fr etc</li>
<li>gnome-python-desktop (for GnomeKeyring support as password storage)</li>
<li>kwalletcli (for support of KDE Wallet as password storage)</li>
<li>notification-daemon or notify-python (and D-Bus) to get cooler popups</li>
<li>D-Bus running to have gajim-remote working. Some distributions split dbus-x11, which is needed for dbus to work with Gajim. Version >= 0.80 is required.</li>
<li>python-dbus bindings (>=0.81)</li>
<li>python-kerberos to use GSSAPI authentification. Note: version1.1 or higher is required</li>
</ul>
<p>Some distributions also split too much python standard library. I know SUSE does. In such distros you also need python-xml the xml lib that *comes* with python and not pyxml or whatever.</p>
<h2>Compile-time Requirements</h2>
<ul>
<li>intltool (>= 0.40.1)</li>
</ul>
<p><strong>NOTE:</strong> If you still have problems compiling, you may want to try removing the gtk1 series of the above dependencies.</p>
<h2>Installation Procedure</h2>
<ol>
<li>tar jxvf gajim-version.tar.bz2</li>
<li>cd gajim</li>
<li>./configure</li>
<li>make (builds translations)</li>
<li>su -c make install</li>
</ol>
<p>To specify where to install do:</p>
<pre>
./configure --prefix=custom_path
</pre>
<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 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>
<ul>
<li>automake &gt;= 1.8 </li>
<li>autoconf &gt;= 2.59 </li>
<li>libtool</li>
<li>intltool-0.40.1 </li>
<li>pkgconfig &gt;= 0.19</li>
</ul>
<p>steps to compile gajim:</p>
<pre>
$ ./autogen.sh
$ ./configure
$ make
</pre>
<p>Alternatively, if you don't want to install all these packages, you can get a nightly snapshot from <a href="http://www.gajim.org/downloads/snap/">here</a> and procede as usual:</p>
<pre>
$ ./configure
$ make
</pre>
<h2>Uninstallation Procedure</h2>
<pre>
su -c make uninstall
</pre>
<p>this will try to remove Gajim from the default directories.
If you want to remove it from custom directory provide it as:
</p>
<pre>
./configure --prefix=custom_path
make uninstall
</pre>
<h2>Miscellaneous</h2>
<h3>XML &amp; Debugging</h3>
<p>If you want to see the xml stanzas and/or help us debugging
you're advised to enable verbose via advanced configuration window.
If you don't want to make this permanent, execute gajim with --verbose
everytime you want to have verbose output.</p>
<h3>FAQ/Wiki</h3>
<p>FAQ can be found at <a href="http://trac.gajim.org/wiki/GajimFaq">http://trac.gajim.org/wiki/GajimFaq</a><br/>
Wiki can be found at <a href="http://trac.gajim.org/wiki">http://trac.gajim.org/wiki</a></p>
<p>That is all, <strong>enjoy!</strong></p>
<p>
<br/>
<br/>
<br/>
(C) 2003-2012<br/>
The Gajim Team<br/>
http://gajim.org<br/>
<br/>
<br/>
PS.
We use original art and parts of sounds and other art from Psi, Gossip,
Gnomebaker, Gaim and some icons from various gnome-icons
(mostly Dropline Etiquette) we found at art.gnome.org
If you think we're violating a license please inform us. Thank you.</p>
</body></html>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Gajim - Read Me</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<h1>Gajim Read Me</h1>
<p>Welcome to Gajim and thank you for trying out our client.</p>
<h2>Runtime Requirements</h2>
<ul>
<li>python2.5 or higher</li>
<li>pygtk2.22 or higher</li>
<li>python-nbxmpp</li>
</ul>
<h2>Optional Runtime Requirements</h2>
<ul>
<li><a href="http://pyopenssl.sourceforge.net/">PyOpenSSL</a> (python-pyopenssl package in Debian) (>=0.12) for <em>secure</em> SSL/TLS. Python's default SSL is insecure, so this package is highly recommended!</li>
<li>python-pyasn1 to check SSL/TLS certificate</li>
<li>python-crypto to enable End to end encryption</li>
<li>For idle module, libxss library</li>
<li>For zeroconf (bonjour), the "enable link-local messaging" checkbox, you need dbus-glib, python-avahi</li>
<li>dnsutils (or whatever package provides the nslookup binary) for SRV support</li>
<li>gtkspell and aspell-LANG where lang is your locale eg. en, fr etc</li>
<li>gnome-python-desktop (for GnomeKeyring support as password storage)</li>
<li>kwalletcli (for support of KDE Wallet as password storage)</li>
<li>notification-daemon or notify-python (and D-Bus) to get cooler popups</li>
<li>D-Bus running to have gajim-remote working. Some distributions split dbus-x11, which is needed for dbus to work with Gajim. Version >= 0.80 is required.</li>
<li>python-dbus bindings (>=0.81)</li>
<li>python-kerberos to use GSSAPI authentification. Note: version1.1 or higher is required</li>
</ul>
<p>Some distributions also split too much python standard library. I know SUSE does. In such distros you also need python-xml the xml lib that *comes* with python and not pyxml or whatever.</p>
<h2>Compile-time Requirements</h2>
<ul>
<li>intltool (>= 0.40.1)</li>
</ul>
<p><strong>NOTE:</strong> If you still have problems compiling, you may want to try removing the gtk1 series of the above dependencies.</p>
<h2>Installation Procedure</h2>
<ol>
<li>tar jxvf gajim-version.tar.bz2</li>
<li>cd gajim</li>
<li>./configure</li>
<li>make (builds translations)</li>
<li>su -c make install</li>
</ol>
<p>To specify where to install do:</p>
<pre>
./configure --prefix=custom_path
</pre>
<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 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>
<ul>
<li>automake &gt;= 1.8 </li>
<li>autoconf &gt;= 2.59 </li>
<li>libtool</li>
<li>intltool-0.40.1 </li>
<li>pkgconfig &gt;= 0.19</li>
</ul>
<p>steps to compile gajim:</p>
<pre>
$ ./autogen.sh
$ ./configure
$ make
</pre>
<p>Alternatively, if you don't want to install all these packages, you can get a nightly snapshot from <a href="http://www.gajim.org/downloads/snap/">here</a> and procede as usual:</p>
<pre>
$ ./configure
$ make
</pre>
<h2>Uninstallation Procedure</h2>
<pre>
su -c make uninstall
</pre>
<p>this will try to remove Gajim from the default directories.
If you want to remove it from custom directory provide it as:
</p>
<pre>
./configure --prefix=custom_path
make uninstall
</pre>
<h2>Miscellaneous</h2>
<h3>XML &amp; Debugging</h3>
<p>If you want to see the xml stanzas and/or help us debugging
you're advised to enable verbose via advanced configuration window.
If you don't want to make this permanent, execute gajim with --verbose
everytime you want to have verbose output.</p>
<h3>FAQ/Wiki</h3>
<p>FAQ can be found at <a href="http://trac.gajim.org/wiki/GajimFaq">http://trac.gajim.org/wiki/GajimFaq</a><br/>
Wiki can be found at <a href="http://trac.gajim.org/wiki">http://trac.gajim.org/wiki</a></p>
<p>That is all, <strong>enjoy!</strong></p>
<p>
<br/>
<br/>
<br/>
(C) 2003-2012<br/>
The Gajim Team<br/>
http://gajim.org<br/>
<br/>
<br/>
PS.
We use original art and parts of sounds and other art from Psi, Gossip,
Gnomebaker, Gaim and some icons from various gnome-icons
(mostly Dropline Etiquette) we found at art.gnome.org
If you think we're violating a license please inform us. Thank you.</p>
</body></html>
Transifex.net Token Verification
=================================
The list of tokens bellow guarantee the respective users to be able to enable
submission on components using the following repository url:
ssh://hg.gajim.org/gajim
Tokens:
JzQjKFEfvEhybB3vKxvsNYfusnpxWth3 / asterix
......@@ -35,6 +35,7 @@ Petr Menšík
Sergey Kuleshov
Stavros Giannouris
Stian B. Barmen
Thilo Molitor
Thomas Klein-Hitpaß
Urtzi Alfaro
Witold Kieraś
......
environment:
matrix:
- PYTHON: "C:\\Python27"
branches:
only:
- gajim_0.16
clone_depth: 1
# Print Login Data for RDP Session on Build VM, in case the build has errors
# init:
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
install:
- git clone --depth=1 --branch=master https://dev.gajim.org/gajim/gajim-plugins.git c:\projects\gajim-plugins
- git clone https://dev.gajim.org/gajim/gtk-windows-bin.git c:\projects\gtk
# Download & Install Dependencys
- ps: c:\\projects\\gajim\\dependencys.ps1
- msiexec /i C:\cairo.msi /quiet
- msiexec /i C:\pygobject.msi /quiet
- msiexec /i C:\pygtk.msi /quiet
- msiexec /i C:\pygoocanvas.msi /quiet
- msiexec /i C:\bonjour.msi /quiet
- set PATH=C:\\MinGW\\bin;%PATH%
- "%PYTHON%\\python.exe -m pip install --upgrade pip"
- "%PYTHON%\\python.exe -m pip install -r c:\\projects\\gajim\\requirements.txt"
- ps: Add-Content C:\Python27\Lib\site-packages\google\__init__.py " "
- "%PYTHON%\\python.exe -m pip install --no-dependencies python-axolotl"
- "%PYTHON%\\python.exe -m pip install --global-option=build_ext --global-option --compiler=mingw32 python-axolotl-curve25519"
# Prepare Build Dir
- cd c:\projects\gajim\
- xcopy . ..\gajim_built /e /i
- cd ..\gajim_built
# Copy Shipped Plugins
- xcopy ..\gajim-plugins\plugin_installer plugins\plugin_installer /e /i
# Compile Translation Strings
- cmd: for %%l in (po\*.po) do mkdir po\%%~nl & mkdir po\%%~nl\LC_MESSAGES & msgfmt -o po\%%~nl\LC_MESSAGES\gajim.mo %%l
# Make Gajim.exe
- "%PYTHON%\\python.exe setup_win32.py build_exe"
- move build\exe.win32-2.7 .
- rmdir build
- rename exe.win32-2.7 bin
# Add GTK files so we can make the Installer
- xcopy ..\gtk bin\gtk /e /i
# Make Installer
- ps: '& "C:\Program Files (x86)\NSIS\makensis.exe" gajim.nsi'
- ps: '& "C:\Program Files (x86)\NSIS\makensis.exe" gajim-portable.nsi'
# Push Installer Exe
- ps: $env:TIME_STRING=(get-date -UFormat "%Y-%m-%d").ToString()
- ps: Push-AppveyorArtifact Gajim.exe -FileName "Gajim-0.16.7-$($env:TIME_STRING).exe"
- ps: Push-AppveyorArtifact Gajim-Portable.exe -FileName "Gajim-portable-0.16.7-$($env:TIME_STRING).exe"
build: off
deploy:
# FTP deployment provider settings
- provider: FTP
protocol: ftp
host: panoramix.gajim.org
username:
secure: SNcOJDhUtBjfddbKXudE2w==
password:
secure: tQkYbcUb6nChCp0cdqo4CA==
folder: win_snap
active_mode: false
beta: true # enable alternative FTP library for 'ftp' and 'ftps' modes
debug: true
#!/usr/bin/env bash
gajimversion="0.15.4"
gajimversion="0.16.7"
if [ -d ".hg" ]; then
node=$(hg tip --template "{node}")
hgversion="-${node:0:12}"
......@@ -14,10 +14,10 @@
echo "[encoding: UTF-8]" > po/POTFILES.in \
&& for p in `ls data/gui/*.ui`; do echo "[type: gettext/glade]$p" >> \
po/POTFILES.in; done \
&& ls -1 data/gajim.desktop.in.in \
&& ls -1 data/gajim.desktop.in.in data/gajim-remote.desktop.in.in \
src/*.py src/common/*.py src/command_system/*.py src/command_system/implementation/*.py src/common/zeroconf/*.py src/plugins/*.py | grep -v ipython_view.py >> \
po/POTFILES.in \
&& echo -e "data/gajim.desktop.in\nsrc/ipython_view.py" > po/POTFILES.skip || exit 1
&& echo -e "data/gajim.desktop.in\ndata/gajim-remote.desktop.in\nsrc/ipython_view.py" > po/POTFILES.skip || exit 1
if [ $(find plugins/ -name '*.py' | wc -l) -gt 0 ];then
ls -1 plugins/*/*.py plugins/*/*.ui >> po/POTFILES.skip
fi
......@@ -31,6 +31,10 @@
mkdir -p config
if [ "$NO_AUTOTOOLS_RUN" ]; then
exit 0
fi
intltoolize --force --automake \
&& aclocal -I ./m4 \
&& $LIBTOOLIZE --copy --force --automake \
......
# -*- shell-script-mode -*-
[Meta]
RootName: @dnspython.org/dnspython
DisplayName: dnspython is a DNS toolkit for Python
ShortName: dnspython
Skeleton-Author: Filippos Papadopoulos <filip@cs.uoi.gr>
Skeleton-Version: 1
[Notes]
Returns the full version e.g 1.3.3
[Test]
INTERFACE_VERSIONS=`python - <<EOF
try:
import dns.version
print dns.version.version
except:
pass
EOF
`
SOFTWARE_VERSIONS="$INTERFACE_VERSIONS"
[Meta]
RootName: @glade.gnome.org/libglade
DisplayName: Glade user interface loader library
ShortName: libglade
Skeleton-Author: Mike Hearn <mike@theoretic.com>
Skeleton-Version: 1
[Notes]
This skeleton only detects libglade1 and 2, which are assigned interface numbers 1 and 2 respectively
[Test]
testForLib libglade.so.0 && INTERFACE_VERSIONS="1"
testForLib libglade-2.0.so.0 && INTERFACE_VERSIONS="2 $INTERFACE_VERSIONS"
# -*- shell-script-mode -*-
[Meta]
RootName: @gnome.org/pyglade
DisplayName: Python bindings for Glade
ShortName: pyglade
Skeleton-Author: Filippos Papadopoulos <filip@cs.uoi.gr>
Skeleton-Version: 1
[Notes]
Pyglade is bundled within pygtk sources so they have the same versions
[Test]
testForPythonModule gtk.glade
if [[ "$?" != "0" ]]; then
INTERFACE_VERSIONS=""
else
INTERFACE_VERSIONS=`python - <<EOF
try:
import pygtk
import gtk.glade
print "%i.%i" % (gtk.pygtk_version[0], gtk.pygtk_version[1])
except:
pass
EOF
`
fi
SOFTWARE_VERSIONS="$INTERFACE_VERSIONS"
# -*- shell-script-mode -*-
[Meta]
RootName: @gnome.org/pygtk
DisplayName: Python bindings for GTK+
ShortName: pygtk
Skeleton-Author: Tom Cato Amundsen <tca@gnu.org>
Skeleton-Version: 1
[Notes]
Matchces GTK2 interface versioning
[Test]
INTERFACE_VERSIONS=`python - <<EOF
try:
import pygtk
pygtk.require("2.0")
import gtk
print "%i.%i" % (gtk.pygtk_version[0], gtk.pygtk_version[1])
except:
pass
EOF
`
SOFTWARE_VERSIONS="$INTERFACE_VERSIONS"
# -*- shell-script-mode -*-
[Meta]
RootName: @gtk.org/gtk
DisplayName: GTK+ user interface toolkit
ShortName: gtk+
Skeleton-Author: Hongli Lai <h.lai@chello.nl>
Skeleton-Version: 1
[Notes]
Interface versions correspond to GTK released versions, as GTK version
numbering sensibly tracks the interfaces, ie GTK2.2 has an interface
version of 2.2, not 2.1 as would be the normal rules.
Earliest detected version is GTK 1.2
[Test]
testForLib libgtk-1.2.so.0 && INTERFACE_VERSIONS=" 1.2"
gtk2versions=`testForLib -v libgtk-x11-2.0.so.0`
for v in $gtk2versions; do
minor=$( IFS=.; v=( $v ); echo ${v[1]} )
minor=$[ $minor / 100 ]
INTERFACE_VERSIONS="2.$minor $INTERFACE_VERSIONS"
done
SOFTWARE_VERSIONS="$INTERFACE_VERSIONS" # this time......
# -*- shell-script-mode -*-
[Meta]
RootName: @gtkspell.sourceforge.net/gtkspell
DisplayName: GtkSpell Spell Checking Library
ShortName: gtkspell
Skeleton-Author: Timothy Ringenbach <omarvo@hotmail.com>
Skeleton-Version: 1
Repository: http://www.gajim.org/downloads/gtkspell.xml
[Notes]
This skeleton does not set SOFTWARE_VERSIONS
Interface versions start at 0.
[Test]
INTERFACE_VERSIONS=`testForLib -i libgtkspell.so`
# -*- shell-script-mode -*-
[Meta]
RootName: @pydns.sourceforge.net/pydns
DisplayName: PyDNS provides a python module for performing DNS queries
ShortName: pydns
Skeleton-Author: Filippos Papadopoulos <filip@cs.uoi.gr>
Skeleton-Version: 1
[Notes]
[Test]
INTERFACE_VERSIONS=`python - <<EOF
try:
import DNS
print DNS.__version__
except:
pass
EOF
`
SOFTWARE_VERSIONS="$INTERFACE_VERSIONS"
# -*- shell-script-mode -*-
[Meta]
RootName: @pysqlite.org/pysqlite
DisplayName: Python interface for the SQLite
ShortName: pysqlite
Skeleton-Author: Filippos Papadopoulos <filip@cs.uoi.gr>
Skeleton-Version: 1
[Notes]
pysqlite is a Python DB-API 2.0 interface for the SQLite embedded relational database engine
[Test]
INTERFACE_VERSIONS=`python - <<EOF
try:
import pysqlite2.dbapi2 as sql
print sql.version
except:
pass
EOF
`
SOFTWARE_VERSIONS="$INTERFACE_VERSIONS"
# -*- shell-script-mode -*-
[Meta]
RootName: @python.org/python-xml
DisplayName: Python bindings for XML
ShortName: python-xml
Skeleton-Author: Filippos Papadopoulos <filip@cs.uoi.gr>
Skeleton-Version: 1
[Notes]
Distros like SuSE split some features of core python (like xml) to python-xml e.t.c
So python-xml must have the same versions as python
[Test]
SOFTWARE_VERSIONS=$( locateCommand python -V 2>&1 | cut -f2 -d' ' )
testForPythonModule xml
if [[ "$?" != "0" ]]; then
INTERFACE_VERSIONS=""
else
INTERFACE_VERSIONS=$( echo $SOFTWARE_VERSIONS | awk -F. '{print $1 "." $2}' )
fi
[Meta]
RootName: @python.org/python
DisplayName: Python language runtime
ShortName: python
Skeleton-Author: Mike Hearn <mike@theoretic.com>
Skeleton-Version: 1
[Notes]
INTERFACE_VERSIONS are set to match the currently installed version using the "python" executable name.
For instance, python 2.2 causes INTERFACE_VERSIONS to contain "2.2 2.1 2.0". This skeleton assumes python1 and python2 are not parallel installed.
SOFTWARE_VERSIONS is set to the result of python -V
[Test]
SOFTWARE_VERSIONS=$( locateCommand python -V 2>&1 | cut -f2 -d' ' )
if [[ "$?" != "0" ]]; then
INTERFACE_VERSIONS=""
else
INTERFACE_VERSIONS=$( echo $SOFTWARE_VERSIONS | awk -F. '{print $1 "." $2}' )
fi
# -*-shell-script-*-
[Meta]
RootName: @gajim.org/gajim:$SOFTWAREVERSION
DisplayName: Gajim Jabber Client
ShortName: gajim
Maintainer: The Gajim Developers <gajim-devel-subscribe@gajim.org>
Packager: Filippos Papadopoulos <psybases@gmail.com>
Summary: Gajim is a Jabber client written in Python.
URL: http://www.gajim.org/
License: GNU General Public License, Version 2
SoftwareVersion: 0.12-alpha1
AutopackageTarget: 1.0
PackageVersion: 1
# Only uncomment InterfaceVersion if your package exposes interfaces to other software,
# for instance if it includes DSOs or python/perl modules. See the developer guide for more info,
# or ask on autopackage-dev if you don't understand interface versioning in autopackage.
#
# InterfaceVersion: 0.0
[Description]
Gajim is a jabber client written in PyGTK. The goal of Gajim is to provide a full featured and easy to use xmpp
client for the GTK+ users. Gajim does not require GNOME to run, eventhough it exists with it nicely. Gajim is
released under the GNU General Public License. Features: Tabbed chat windows, Groupchat support (with MUC protocol),
File tranfers, Emoticons, URL grabber, Systray icon, GPG support, Multiple accounts support and much more!
[BuildPrepare]
prepareBuild
[BuildUnprepare]
unprepareBuild
[Imports]
echo '*' | import
import <<EOF
EOF
[Prepare]
# Dependency checking
#PyGTK 2.4 requires python 2.3
require @python.org/python 2.4
require @python.org/python-xml 2.4
require @gtk.org/gtk 2.6
require @gnome.org/pygtk 2.5
require @gnome.org/pyglade 2.5
require @glade.gnome.org/libglade 2
require @pysqlite.org/pysqlite 2
recommend @gtkspell.sourceforge.net/gtkspell 0
if ! require @dnspython.org/dnspython 1; then
recommend @pydns.sourceforge.net/pydns 2
fi
#recommend @dnspython.org/dnspython 1
#recommend @pydns.sourceforge.net/pydns 2
[Install]
# Put your installation script here
copyFiles lib/gajim "$PREFIX/lib"
copyFiles share/gajim "$PREFIX/share/"
copyFiles share/doc "$PREFIX/share/"
installLocale share/locale
installIcon share/pixmaps/gajim.png
installIcon share/pixmaps/gajim_about.png
installDesktop "Network/Instant Messaging" share/applications/gajim.desktop
installMan 1 share/man/man1/gajim.1 share/man/man1/gajim-remote.1
#In the following safeSed we assume that the original Makefile is a bit modified so that to be relocatable by AP
#so you have to manually remove the sed in Makefile for AP to work
safeSed bin/gajim "s!PREFIX!$PREFIX!g"
safeSed bin/gajim-remote "s!PREFIX!$PREFIX!g"
locateCommand python
safeSed bin/gajim "s!PYBIN!$lc_location!g"
safeSed bin/gajim-remote "s!PYBIN!$lc_location!g"
installExe bin/*
#chmod +x "$PREFIX/bin/gajim"
#chmod +x "$PREFIX/bin/gajim-remote"
[Uninstall]
# Usually just the following line is enough to uninstall everything
uninstallFromLog
rmdir /S /Q gajim_built
rmdir /S /Q ..\gajim_built
mkdir gajim_built
hg archive gajim_built
xcopy ..\gajim-plugins\plugin_installer gajim_built\plugins\plugin_installer /e /i
copy msgfmt.exe gajim_built
copy gettextsrc.dll gajim_built
copy gettextlib.dll gajim_built
copy msvcr90.dll gajim_built
cd gajim_built
REM for libglade-2.0.0.dll
PATH=..\src\gtk\bin;%PATH%
xcopy . ..\gajim_built /e /i
xcopy ..\gajim-plugins\plugin_installer ..\gajim_built\plugins\plugin_installer /e /i
cd ..\gajim_built
c:\python27\python.exe setup_win32.py build_exe
move build\exe.win32-2.7 .
rename exe.win32-2.7 bin
copy ..\LIBEAY32.dll bin
copy ..\SSLEAY32.dll bin
mkdir bin\gtk
cd ../src/gtk
hg archive ..\..\gajim_built\bin\gtk
cd ../../gajim_built/
REM for msgfmt
PATH=bin\gtk\bin;%PATH%
xcopy ..\gtk bin\gtk /e /i
for %%l in (po\*.po) do mkdir po\%%~nl & mkdir po\%%~nl\LC_MESSAGES & msgfmt -o po\%%~nl\LC_MESSAGES\gajim.mo %%l
"C:\Program Files\NSIS\makensis" gajim.nsi
"C:\Program Files (x86)\NSIS\makensis" gajim.nsi
cd ..
\ No newline at end of file
cd ..
......@@ -73,6 +73,7 @@ AC_CONFIG_FILES([
data/activities/Makefile
icons/Makefile
data/gajim.desktop.in
data/gajim-remote.desktop.in
data/defs.py
src/Makefile
scripts/gajim
......
......@@ -2,7 +2,7 @@ SUBDIRS = gui emoticons pixmaps iconsets moods activities
@INTLTOOL_DESKTOP_RULE@
desktopdir = $(datadir)/applications
desktop_in_files = gajim.desktop.in.in
desktop_in_files = gajim.desktop.in.in gajim-remote.desktop.in.in
desktop_DATA = $(desktop_in_files:.desktop.in.in=.desktop)
installdefsdir = $(gajim_srcdir)/common
......@@ -12,7 +12,9 @@ soundsdir = $(pkgdatadir)/data/sounds
sounds_DATA = $(srcdir)/sounds/*.wav
otherdir = $(pkgdatadir)/data/other
other_DATA = other/servers.xml other/cacerts.pem
other_DATA = other/servers.xml other/dh4096.pem
# other/cacert.pem is used only on Windows. On Unix platforms
# use CA certificates installed in /etc/ssl/certs
man_MANS = gajim.1 gajim-remote.1 gajim-history-manager.1
......@@ -27,6 +29,6 @@ EXTRA_DIST = $(desktop_in_files) \
DISTCLEANFILES = $(desktop_DATA) \
$(installdefs_DATA)
CLEANFILES = gajim.desktop
CLEANFILES = gajim.desktop gajim-remote.desktop
MAINTAINERCLEANFILES = Makefile.in
# coding=utf-8
emoticons = {
'smile.png': [':-)', ':)'],
'coolglasses.png': ['B-)', '(H)'],
'wink.gif': [';-)', ';)'],
'biggrin.png': [':-D', ':D'],
'unhappy.png': [':-(', ':('],
'cry.gif': [":'-(", ":'(", ';-(', ';(', ";'-("],
'frowning.png': [':-/', ':/', ':-\\', ':\\', ':-S', ':S'],
'blush.png': [':-$', ':$'],
'angry.png': [':-@', ':@'],
'bat.gif': [':-[', ':['],
'kiss.png': [':-{}', ':-*', ':*', '(K)'],
'stare.png': [':-|', ':|'],
'devil.png': [']:->', '>:-)', '>:)', '(6)'],
'tongue.png': [':-P', ':P', ':-þ', ':þ'],
'oh.png': ['=-O', ':-O', ':O'],
'heart.png': ['<3', '(L)', '*IN LOVE*'],
'pussy.png': ['(@)'],
'cuffs.png': ['(%)'],
'moon.png': ['(S)'],
'lamp.png': ['(I)'],
'music.png': ['(8)'],
'beer.png': ['(B)', '*DRINK*'],
'brflower.png': ['(W)'],
'boy.png': ['(Z)'],
'girl.png': ['(X)'],
'mail.png': ['(E)'],
'thumbdown.png': ['(N)'],
'photo.png': ['(P)'],
'thumbup.png': ['(Y)', '*THUMBS UP*'],
'hugleft.png': ['(})'],
'brheart.png': ['</3', '(U)'],
'flower.png': ['@}->--', '(F)'],
'drink.png': ['(D)'],
'phone.png': ['(T)'],
'coffee.png': ['(C)'],
'hugright.png': ['({)'],
'star.png': ['(*)'],
'rainbow.png': ['(R)'],
'cigarette.gif': ['(ci)'],
'cake.gif': ['(^)'],
'dontknow.gif': [':^)'],
'eyeroll.gif': ['8-)'],
'lightning.gif': ['(li)'],
'party.gif': ['<:o)'],
'sleepy.gif': ['|-)'],
'think.gif': ['*-)'],
'puke.gif': [':-!'],
}
from collections import OrderedDict
emoticons = OrderedDict((
('smile.png', [':-)', ':)']),
('coolglasses.png', ['B-)', '(H)']),
('wink.gif', [';-)', ';)']),
('biggrin.png', [':-D', ':D']),
('unhappy.png', [':-(', ':(']),
('cry.gif', [":'-(", ":'(", ';-(', ';(', ";'-("]),
('frowning.png', [':-/', ':/', ':-\\', ':\\', ':-S', ':S']),
('blush.png', [':-$', ':$']),
('angry.png', [':-@', ':@']),
('bat.gif', [':-[', ':[']),
('kiss.png', [':-{}', ':-*', ':*', '(K)']),
('stare.png', [':-|', ':|']),
('devil.png', [']:->', '>:-)', '>:)', '(6)']),
('tongue.png', [':-P', ':P', ':-þ', ':þ']),
('oh.png', ['=-O', ':-O', ':O']),
('heart.png', ['<3', '(L)', '*IN LOVE*']),
('pussy.png', ['(@)']),
('cuffs.png', ['(%)']),
('moon.png', ['(S)']),
('lamp.png', ['(I)']),
('music.png', ['(8)']),
('beer.png', ['(B)', '*DRINK*']),
('brflower.png', ['(W)']),
('boy.png', ['(Z)']),
('girl.png', ['(X)']),
('mail.png', ['(E)']),
('thumbdown.png', ['(N)']),
('photo.png', ['(P)']),
('thumbup.png', ['(Y)', '*THUMBS UP*']),
('hugleft.png', ['(})']),
('brheart.png', ['</3', '(U)']),
('flower.png', ['@}->--', '(F)']),
('drink.png', ['(D)']),
('phone.png', ['(T)']),
('coffee.png', ['(C)']),
('hugright.png', ['({)']),
('star.png', ['(*)']),
('rainbow.png', ['(R)']),
('cigarette.gif', ['(ci)']),
('cake.gif', ['(^)']),
('dontknow.gif', [':^)']),
('eyeroll.gif', ['8-)']),
('lightning.gif', ['(li)']),
('party.gif', ['<:o)']),
('sleepy.gif', ['|-)']),
('think.gif', ['*-)']),
('puke.gif', [':-!']),
))
# coding=utf-8
emoticons = {
'smile.png': [':-)', ':)'],
'coolglasses.png': ['8-)', 'B-)', '(H)'],
'wink.png': [';-)', ';)'],
'biggrin.png': [':-D', ':D'],
'unhappy.png': [':-(', ':('],
'cry.png': [":'-(", ":'(", ';-(', ';(', ";'-("],
'frowning.png': [':-/', ':/', ':-\\', ':\\', ':-S', ':S'],
'blush.png': [':-$', ':$'],
'angry.png': [':-@', ':@'],
'bat.png': [':-[', ':['],
'kiss.png': [':-{}', ':-*', ':*', '(K)'],
'stare.png': [':-|', ':|'],
'devil.png': [']:->', '>:-)', '>:)', '(6)'],
'tongue.png': [':-P', ':P', ':-þ', ':þ'],
'oh.png': ['=-O', ':-O', ':O'],
'heart.png': ['<3', '(L)', '*IN LOVE*'],
'lion.png': [':3', '>:3'],
'pussy.png': ['(@)', '=^.^='],
'cuffs.png': ['(%)'],
'moon.png': ['(S)'],
'lamp.png': ['(I)'],
'music.png': ['(8)'],
'beer.png': ['(B)', '*DRINK*'],
'brflower.png': ['(W)'],
'boy.png': ['(Z)'],
'girl.png': ['(X)'],
'mail.png': ['(E)'],
'thumbdown.png': ['(N)'],
'photo.png': ['(P)'],
'thumbup.png': ['(Y)', '*THUMBS UP*'],
'hugleft.png': ['(})'],
'brheart.png': ['</3', '(U)'],
'flower.png': ['@}->--', '(F)'],
'drink.png': ['(D)'],
'phone.png': ['(T)'],
'coffee.png': ['(C)'],
'hugright.png': ['({)'],
'star.png': ['(*)'],
'rainbow.png': ['(R)'],
'puke.png': [':-!'],
}
from collections import OrderedDict
emoticons = OrderedDict((
('smile.png', [':-)', ':)']),
('coolglasses.png', ['8-)', 'B-)', '(H)']),
('wink.png', [';-)', ';)']),
('biggrin.png', [':-D', ':D']),
('unhappy.png', [':-(', ':(']),
('cry.png', [":'-(", ":'(", ';-(', ';(', ";'-("]),
('frowning.png', [':-/', ':/', ':-\\', ':\\', ':-S', ':S']),
('blush.png', [':-$', ':$']),
('angry.png', [':-@', ':@']),
('bat.png', [':-[', ':[']),
('kiss.png', [':-{}', ':-*', ':*', '(K)']),
('stare.png', [':-|', ':|']),
('devil.png', [']:->', '>:-)', '>:)', '(6)']),
('tongue.png', [':-P', ':P', ':-þ', ':þ']),
('oh.png', ['=-O', ':-O', ':O']),
('heart.png', ['<3', '(L)', '*IN LOVE*']),
('lion.png', [':3', '>:3']),
('pussy.png', ['(@)', '=^.^=']),
('cuffs.png', ['(%)']),
('moon.png', ['(S)']),
('lamp.png', ['(I)']),
('music.png', ['(8)']),
('beer.png', ['(B)', '*DRINK*']),
('brflower.png', ['(W)']),
('boy.png', ['(Z)']),
('girl.png', ['(X)']),
('mail.png', ['(E)']),
('thumbdown.png', ['(N)']),
('photo.png', ['(P)']),
('thumbup.png', ['(Y)', '*THUMBS UP*']),
('hugleft.png', ['(})']),
('brheart.png', ['</3', '(U)']),
('flower.png', ['@}->--', '(F)']),
('drink.png', ['(D)']),
('phone.png', ['(T)']),
('coffee.png', ['(C)']),
('hugright.png', ['({)']),
('star.png', ['(*)']),
('rainbow.png', ['(R)']),
('puke.png', [':-!']),
))
# coding=utf-8
emoticons = {
'smile.png': [':-)', ':)'],
'coolglasses.png': ['8-)', 'B-)', '(H)'],
'wink.png': [';-)', ';)'],
'biggrin.png': [':-D', ':D'],
'unhappy.png': [':-(', ':('],
'cry.png': [":'-(", ":'(", ';-(', ';(', ";'-("],
'frowning.png': [':-/', ':/', ':-\\', ':\\', ':-S', ':S'],
'blush.png': [':-$', ':$'],
'angry.png': [':-@', ':@'],
'bat.png': [':-[', ':['],
'kiss.png': [':-{}', ':-*', ':*', '(K)'],
'stare.png': [':-|', ':|'],
'devil.png': [']:->', '>:-)', '>:)', '(6)'],
'tongue.png': [':-P', ':P', ':-þ', ':þ'],
'oh.png': ['=-O', ':-O', ':O'],
'heart.png': ['<3', '(L)', '*IN LOVE*'],
'lion.png': [':3', '>:3'],
'pussy.png': ['(@)', '=^.^='],
'cuffs.png': ['(%)'],
'moon.png': ['(S)'],
'lamp.png': ['(I)'],
'music.png': ['(8)'],
'beer.png': ['(B)', '*DRINK*'],
'brflower.png': ['(W)'],
'boy.png': ['(Z)'],
'girl.png': ['(X)'],
'mail.png': ['(E)'],
'thumbdown.png': ['(N)'],
'photo.png': ['(P)'],
'thumbup.png': ['(Y)', '*THUMBS UP*'],
'hugleft.png': ['(})'],
'brheart.png': ['</3', '(U)'],
'flower.png': ['@}->--', '(F)'],
'drink.png': ['(D)'],
'phone.png': ['(T)'],
'coffee.png': ['(C)'],
'hugright.png': ['({)'],
'star.png': ['(*)'],
'rainbow.png': ['(R)'],
'puke.png': [':-!'],
}
from collections import OrderedDict
emoticons = OrderedDict((
('smile.png', [':-)', ':)']),
('coolglasses.png', ['8-)', 'B-)', '(H)']),
('wink.png', [';-)', ';)']),
('biggrin.png', [':-D', ':D']),
('unhappy.png', [':-(', ':(']),
('cry.png', [":'-(", ":'(", ';-(', ';(', ";'-("]),
('frowning.png', [':-/', ':/', ':-\\', ':\\', ':-S', ':S']),
('blush.png', [':-$', ':$']),
('angry.png', [':-@', ':@']),
('bat.png', [':-[', ':[']),
('kiss.png', [':-{}', ':-*', ':*', '(K)']),
('stare.png', [':-|', ':|']),
('devil.png', [']:->', '>:-)', '>:)', '(6)']),
('tongue.png', [':-P', ':P', ':-þ', ':þ']),
('oh.png', ['=-O', ':-O', ':O']),
('heart.png', ['<3', '(L)', '*IN LOVE*']),
('lion.png', [':3', '>:3']),
('pussy.png', ['(@)', '=^.^=']),
('cuffs.png', ['(%)']),
('moon.png', ['(S)']),
('lamp.png', ['(I)']),
('music.png', ['(8)']),
('beer.png', ['(B)', '*DRINK*']),
('brflower.png', ['(W)']),
('boy.png', ['(Z)']),
('girl.png', ['(X)']),
('mail.png', ['(E)']),
('thumbdown.png', ['(N)']),
('photo.png', ['(P)']),
('thumbup.png', ['(Y)', '*THUMBS UP*']),
('hugleft.png', ['(})']),
('brheart.png', ['</3', '(U)']),
('flower.png', ['@}->--', '(F)']),
('drink.png', ['(D)']),
('phone.png', ['(T)']),
('coffee.png', ['(C)']),
('hugright.png', ['({)']),
('star.png', ['(*)']),
('rainbow.png', ['(R)']),
('puke.png', [':-!']),
))
# coding=utf-8
emoticons = {
'angel.png': ['O:-)', 'o:-)', '0:-)'],
'curl-lip.png': [':-)', ':)', '=)'],
'sarcastic.png': [';D', ';-D'],
'sad.png': [':-(', ':(', '=('],
'wink.png': [';-)', ';)'],
'tongue.png': [':-P', ':P', ':-p', ':p'],
'glasses-cool': ['8-)', 'B-)', '(H)'],
'laugh.png': [':-D', ':D'],
'embarrassed.png': [':-[', ':['],
'shout.png': ['=-O', ':-O', ':O'],
'kiss.png': [':-{}', ':-*', ':*', '(K)'],
'crying.png': [":'-(", ":'(", ';-(', ';(', ";'-("],
'shut-mouth': [':-X'],
'hypnotized.png': ['%)', '%-)'],
'freaked-out.png': [':o'],
'thinking.png': [':-|', ':|'],
'arrogant.png': [':-/', ':/', ':-\\', ':\\', ':-S', ':S'],
'devil.png': [':->', ']:->', '>:-)', '>:)', '(6)'],
'musical-note.png': ['[:-}'],
'sick.png': [':-!'],
'giggle.png': ['*JOKINGLY*'],
'cute.png': ['*KISSED*'],
'sleepy.png': ['*TIRED*'],
'terror.png': ['*STOP*'],
'handshake.png': ['*KISSING*'],
'rose.png': ['@}->--', '(F)'],
'good.png': ['(Y)', '*THUMBS UP*'],
'beer.png': ['(B)', '*DRINK*'],
'love.png': ['<3', '(L)', '*IN LOVE*'],
'bomb.png': ['@='],
'question.png': ['*HELP*'],
'cowboy.png': ['\m/'],
'fingers-crossed.png': ['*OK*'],
'alien.png': ['*WASSUP*'],
'disapointed.png': ['*SORRY*'],
'clap.png': ['*BRAVO*'],
'rotfl.png': ['*ROFL*'],
'dont-know.png': ['*PARDON*'],
'confused.png': ['*NO*'],
'silly.png': ['*CRAZY*'],
'doh.png': ['*DONT_KNOW*'],
'party.png': ['*DANCE*'],
'dance.png': ['*YAHOO*'],
'victory.png': ['*HI*'],
'go-away.png': ['*BYE*'],
'smirk.png': ['*YES*'],
'pissed-off.png': ['*WALL*'],
'mail.png': ['*WRITE*', '(E)'],
'tremble.png': ['*SCRATCH*'],
}
from collections import OrderedDict
emoticons = OrderedDict((
('angel.png', ['O:-)', 'o:-)', '0:-)']),
('curl-lip.png', [':-)', ':)', '=)']),
('sarcastic.png', [';D', ';-D']),
('sad.png', [':-(', ':(', '=(']),
('wink.png', [';-)', ';)']),
('tongue.png', [':-P', ':P', ':-p', ':p']),
('glasses-cool', ['8-)', 'B-)', '(H)']),
('laugh.png', [':-D', ':D']),
('embarrassed.png', [':-[', ':[']),
('shout.png', ['=-O', ':-O', ':O']),
('kiss.png', [':-{}', ':-*', ':*', '(K)']),
('crying.png', [":'-(", ":'(", ';-(', ';(', ";'-("]),
('shut-mouth', [':-X']),
('hypnotized.png', ['%)', '%-)']),
('freaked-out.png', [':o']),
('thinking.png', [':-|', ':|']),
('arrogant.png', [':-/', ':/', ':-\\', ':\\', ':-S', ':S']),
('devil.png', [':->', ']:->', '>:-)', '>:)', '(6)']),
('musical-note.png', ['[:-}']),
('sick.png', [':-!']),
('giggle.png', ['*JOKINGLY*']),
('cute.png', ['*KISSED*']),
('sleepy.png', ['*TIRED*']),
('terror.png', ['*STOP*']),
('handshake.png', ['*KISSING*']),
('rose.png', ['@}->--', '(F)']),
('good.png', ['(Y)', '*THUMBS UP*']),
('beer.png', ['(B)', '*DRINK*']),
('love.png', ['<3', '(L)', '*IN LOVE*']),
('bomb.png', ['@=']),
('question.png', ['*HELP*']),
('cowboy.png', ['\m/']),
('fingers-crossed.png', ['*OK*']),
('alien.png', ['*WASSUP*']),
('disapointed.png', ['*SORRY*']),
('clap.png', ['*BRAVO*']),
('rotfl.png', ['*ROFL*']),
('dont-know.png', ['*PARDON*']),
('confused.png', ['*NO*']),
('silly.png', ['*CRAZY*']),
('doh.png', ['*DONT_KNOW*']),
('party.png', ['*DANCE*']),
('dance.png', ['*YAHOO*']),
('victory.png', ['*HI*']),
('go-away.png', ['*BYE*']),
('smirk.png', ['*YES*']),
('pissed-off.png', ['*WALL*']),
('mail.png', ['*WRITE*', '(E)']),
('tremble.png', ['*SCRATCH*']),
))