Installation dependencies
=========================

The official installers for Windows and OSX should already come with/install
the necessary dependencies for base functionality to work.

.. note:: Plugin dependencies should be listed in their description

Core dependencies
-----------------

Essential:

* python3 >= 3.8
* python3-bsddb3 (required to migrate data from Exaile 4.1.4 and earlier)
* gtk+ >= 3.24
* gstreamer (>= 1.16)
* gstreamer-plugins-base (>= 1.16)
* gstreamer-plugins-good (>= 1.16)
* python3-mutagen (>= 1.44)
* python3-dbus
* GI typelib files for GTK+, GStreamer (including gstreamer-plugins-base) and cairo and their python bindings

  * Packages on Debian and Ubuntu:

    * python3-gi >= 3.36
    * python3-gi-cairo
    * gir1.2-gtk-3.0
    * gir1.2-gstreamer-1.0
    * gir1.2-gst-plugins-base-1.0

  * Packages on Fedora:

    * python3-cairo
    * python3-gobject >= 3.24
    * python3-gstreamer1

Optional dependencies
---------------------

Translation:

* gettext

Documentation:

* sphinx
* sphinx_rtd_theme
* help2man

Device detection:

* udisks2

CD info:

* python-libdiscid or python-discid (optional on linux, required to use musicbrainz)
* python-musicbrainzngs (optional)

DAAP plugins (daapserver and daapclient):

* spydaap (python3), e.g. from https://github.com/exaile/spydaap or https://pypi.org/project/spydaap/
* python-zeroconf is an optional dependency of daapclient to enable share auto-discovery

Last.FM integration:

* pylast (python3)

Lyrics from lyricsmania.com (lyricsmania):

* lxml (python3)

Musicbrainz covers:

* musicbrainzngs (python3)

Podcast plugin:

* feedparser (python3)

Wikipedia info:

* webkit2gtk3 + its GI typelib

Xlib-based hotkeys:

* keybinder3 + its GI typelib

Scalable icons:

* librsvg2

Native Notifications:

* libnotify

Recording streams:

* streamripper

Moodbar plugin:

* moodbar from https://github.com/exaile/moodbar

BPM Counter plugin:

* bpmdetect from gstreamer1-plugins-bad

Test dependencies:

* pytest (python3)

