1.. _PackagingGuide: 2 3Packaging Guide 4=============== 5 6This page is directed at distributions, packagers and developers. Please 7:ref:`contact us <Contact>` if there is anything unclear / out of date / 8missing. For license & copyright information see :ref:`license` 9 10Existing Packaging 11------------------ 12 13The following distributions package Quod Libet: 14 15* Arch Linux: https://www.archlinux.org/packages/extra/any/quodlibet/ 16* Debian: https://packages.debian.org/source/sid/quodlibet 17* Fedora: https://admin.fedoraproject.org/pkgdb/package/rpms/quodlibet/ 18 19The Ubuntu PPA / unstable repo builds are automated by the following scripts: 20 21https://github.com/quodlibet/ppa-scripts 22 23 24.. _Dependencies: 25 26Non-Optional Runtime Dependencies 27--------------------------------- 28 29The following software is needed to start Ex Falso or Quod Libet. 30 31* **Python** (>= 3.5) 32* **PyGObject** including **cairo support** (>= 3.18) 33* **pycairo** (>= 1.8) 34* **mutagen** (>= 1.34) 35* **GTK+** (>= 3.18) 36* **libsoup** (>= 2.52) 37* On OS X only: **PyObjC** 38* **feedparser** 39 40For icons a complete **icon theme** is needed, preferably with symbolic icons. 41For example **adwaita-icon-theme**. 42 43For playback support in Quod Libet one of the following two is needed: 44 45GStreamer 46^^^^^^^^^ 47 48Required: 49 * **GStreamer** (>= 1.8) + **typelibs** 50 * **GStreamer Plugins Base**: Vorbis, Alsa, ... 51 52Optional but recommended: 53 * **GStreamer Plugins Good**: Pulseaudio, FLAC, Jack, ... 54 * **GStreamer Plugins Ugly**: MP3 (mad), ... 55 * **GStreamer Plugins Bad**: MP3 (mpg123), MP4, Opus, ... 56 * **GStreamer libav/ffmpeg**: WMA, ... 57 58Xine 59^^^^ 60 61* **xine-lib** 1.1 or 1.2 (the shared library, no Python bindings) 62 63 64Optional Runtime Dependencies 65----------------------------- 66 67**dbus-python**: 68 * Enables the DBus interface 69 * Multimedia key support under GNOME 70 71**libkeybinder-3.0** + **typelib**: 72 * Multimedia key support under non Gnome setups 73 74**libgtksourceview-3** + **typelib**: 75 * Undo/Redo support for multiline text fields 76 77**libmodplug1**: 78 * For MOD support 79 80 81Plugin Dependencies 82------------------- 83 84All plugin dependencies are optional and will only prevent the corresponding 85plugin from loading. 86 87**notification-daemon** (or any other implementation of the dbus spec): 88 * For the notification plugin 89 90**python-musicbrainzngs** (>= 0.5): 91 * For the musicbrainz plugin 92 93**GStreamer Plugins Good**: 94 * For the replaygain plugin 95 96**GStreamer Plugins Bad**: 97 * For the acoustid plugin 98 99**python-dbus**: 100 * "Browse Folders" 101 * Screensaver plugins 102 * uPnP server 103 * Gnome search provider 104 * gajim status updater 105 * MPRIS 106 * ... 107 108**rygel**: 109 * The uPnP media server 110 111**pynotify**: 112 * For the auto library update plugin 113 114**webkit2gtk** (== 4.0) + **typelibs**: 115 * For the Lyrics Window plugin 116 117**libappindicator-gtk3** + **typelibs**: 118 * For the Tray Icon plugin under Ubuntu Unity and KDE Plasma 119 120 121Build Dependencies 122------------------ 123 124* **Python** >= 3.5 (stdlib only) 125* **gettext** >= 0.19.8 for translations. 126* (optional) **sphinx** >= 1.3 127 128For user documentation ``setup.py build_sphinx`` can be used to create the 129HTML user guide and put it in the build directory in the ``sphinx`` 130subdirectory. This is not part of the default build process and requires 131**sphinx**. 132 133 134Testing Dependencies 135-------------------- 136 137* The build dependencies 138* **pytest** 139* **pyflakes** 140* **pycodestyle** 141* **polib** 142