Skip to content
Snippets Groups Projects
README.md 5.68 KiB
Newer Older
[[_TOC_]]

## Requirements
Philipp Hörist's avatar
Philipp Hörist committed

### Runtime Requirements

- [cairo](https://gitlab.freedesktop.org/cairo/cairo) (>=1.16.0)
- [cryptography](https://pypi.org/project/cryptography/) (>=3.4.8)
- [css-parser](https://pypi.org/project/css-parser/)
- [emoji](https://pypi.org/project/emoji/) (>=2.6.0)
- [GLib](https://gitlab.gnome.org/GNOME/glib) (>=2.66.0)
- [Gtk4](https://gitlab.gnome.org/GNOME/gtk) (>=4.14.0)
- [GtkSourceView5](https://gitlab.gnome.org/GNOME/gtksourceview)
- [keyring](https://pypi.org/project/keyring/)
- [nbxmpp](https://pypi.org/project/nbxmpp/) (>=5.0.4)
- [omemo-dr](https://dev.gajim.org/gajim/omemo-dr) (>=1.0.0)
- [packaging](https://pypi.org/project/packaging/)
- [Pango](https://gitlab.gnome.org/GNOME/pango) (>=1.50.0)
- [Pillow](https://pypi.org/project/Pillow/) (>=9.1.0)
- [precis_i18n](https://pypi.org/project/precis-i18n/)
- [pycairo](https://pypi.org/project/pycairo/)
- [PyGObject](https://pypi.org/project/PyGObject/) (>=3.42.0)
- [Python](https://www.python.org/) (>=3.10)
- [qrcode](https://pypi.org/project/qrcode/) (>=7.3.1)
- [setuptools](https://pypi.org/project/setuptools/) (>=65.0.0)
- [SQLAlchemy](https://pypi.org/project/SQLAlchemy/) (>=2.0.0)
- [sqlite](https://www.sqlite.org/) (>=3.35.0)
- [PyWinRT](https://github.com/pywinrt/pywinrt) (Only on Windows)
- [windows-toasts](https://github.com/DatGuy1/Windows-Toasts) (Only on Windows)
Philipp Hörist's avatar
Philipp Hörist committed

### Optional Runtime Requirements

Philipp Hörist's avatar
Philipp Hörist committed
- D-Bus running to have gajim-remote working
- [sentry-sdk](https://pypi.org/project/sentry-sdk/) for Sentry error reporting to dev.gajim.org (users decide whether to send reports or not)
- [libspelling](https://gitlab.gnome.org/GNOME/libspelling) and hunspell-LANG where lang is your locale eg. en, fr etc
- [libsecret](https://gitlab.gnome.org/GNOME/libsecret/) for GNOME Keyring or KDE support as password storage
- [GUPnP-IGD](https://gitlab.gnome.org/GNOME/gupnp) for better NAT traversing
- [NetworkManager](https://gitlab.freedesktop.org/NetworkManager/NetworkManager) for network lose detection
- [GeoClue](https://gitlab.freedesktop.org/geoclue/geoclue) for sharing your location
- [GSound](https://gitlab.gnome.org/GNOME/gsound) for sound on Linux

#### For Video and Audio Calls

- [Farstream](https://gitlab.freedesktop.org/farstream/farstream)
- [GStreamer](https://gitlab.freedesktop.org/gstreamer/gstreamer)
- [gst-plugins-base](https://gitlab.freedesktop.org/gstreamer/gst-plugins-base)
- [gst-plugins-ugly](https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly)
- [gst-libav](https://gitlab.freedesktop.org/gstreamer/gst-libav)
Philipp Hörist's avatar
Philipp Hörist committed

#### For Voice Messages

- [GStreamer](https://gitlab.freedesktop.org/gstreamer/gstreamer)
- [gst-plugins-base](https://gitlab.freedesktop.org/gstreamer/gst-plugins-base)
- [gst-plugins-good](https://gitlab.freedesktop.org/gstreamer/gst-plugins-good)

### Build Requirements
Philipp Hörist's avatar
Philipp Hörist committed

- [setuptools](https://pypi.org/project/setuptools/) (>=65.0.0)
- [gettext](https://savannah.gnu.org/projects/gettext/)
Philipp Hörist's avatar
Philipp Hörist committed

To build Gajim a PEP517 build frontend like pip (https://pip.pypa.io/en/stable/) or build (https://pypa-build.readthedocs.io/en/stable/) must be used.

The build frontend takes care of installing all python build requirements. Beware `gettext` is not a python library and cannot be installed by the build frontend.

## Building

### Building the metadata files and translation
usage: make.py build [-h] [--dist {unix,flatpak,flatpak-nightly,win}]
Afterwards metadata files can be found in `dist/metadata` folder. 
### Building the wheel

This is only necessary if you need the wheel, otherwise you can skip to the Installing section.

#### Using `build`

```bash
python -m build -w
```

#### Using `pip`

```bash
pip wheel --no-deps --use-pep517 -w dist .
```

## Installing

### Installing with `pip`

```bash
pip install .
```

### Installing the wheel

```bash
pip install dist/name_of_wheel.whl
```

### Installing the metadata files (Unix only)

```bash
$ ./make.py install -h

usage: make.py install [-h] [--dist {unix,flatpak,flatpak-nightly}] [--prefix PREFIX]

options:
  -h, --help            show this help message and exit
  --dist {unix,flatpak,flatpak-nightly}
                        Distribution
  --prefix PREFIX       The path prefix for installation (e.g. "/usr")
```
- `python -m unittest discover -s test`
- `python -m unittest ./test/gtk/gui_file.py` (for testing GUI files)
## Packages and install instructions
Philipp Hörist's avatar
Philipp Hörist committed

Robin Candau's avatar
Robin Candau committed
- [Arch Linux](https://www.archlinux.org/packages/extra/any/gajim/)
- [Debian](https://packages.debian.org/stable/gajim)
- [Fedora](https://packages.fedoraproject.org/pkgs/gajim/)
- [Ubuntu](https://packages.ubuntu.com/gajim)
- [FreeBSD](https://www.freshports.org/net-im/gajim/)
André's avatar
André committed

see [README](./flatpak/README.md)

### Snapshots
André's avatar
André committed
- [Daily Linux](https://www.gajim.org/downloads/snap/)
Philipp Hörist's avatar
Philipp Hörist committed
- [Daily Windows](https://gajim.org/downloads/snap/win)

see [Wiki](https://dev.gajim.org/gajim/gajim/-/wikis/help/Gajim-on-macOS)
## Developing
Philipp Hörist's avatar
Philipp Hörist committed

Philipp Hörist's avatar
Philipp Hörist committed
To create a virtualenv you can execute
Philipp Hörist's avatar
Philipp Hörist committed

Philipp Hörist's avatar
Philipp Hörist committed

Be sure all install requirements are available.

Philipp Hörist's avatar
Philipp Hörist committed
Afterwards activate the virtual environment with
André's avatar
André committed
    ./launch.py
Philipp Hörist's avatar
Philipp Hörist committed

Philipp Hörist's avatar
Philipp Hörist committed

Philipp Hörist's avatar
Philipp Hörist committed
see [README](./win/README.md)

## Miscellaneous
Philipp Hörist's avatar
Philipp Hörist committed

### Debugging
Philipp Hörist's avatar
Philipp Hörist committed

André's avatar
André committed
Execute gajim with `--verbose`
Philipp Hörist's avatar
Philipp Hörist committed

Philipp Hörist's avatar
Philipp Hörist committed

- [FAQ](https://dev.gajim.org/gajim/gajim/wikis/help/gajimfaq)
- [Wiki](https://dev.gajim.org/gajim/gajim/wikis/home)

That is all, **enjoy**!

André's avatar
André committed
(C) 2003-2024
Philipp Hörist's avatar
Philipp Hörist committed
The Gajim Team
[https://gajim.org](https://gajim.org)

André's avatar
André committed
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.