File: packaging.rst

package info (click to toggle)
quodlibet 4.6.0-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 18,016 kB
  • sloc: python: 85,817; sh: 385; xml: 110; makefile: 91
file content (149 lines) | stat: -rw-r--r-- 3,595 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
.. _PackagingGuide:

Packaging Guide
===============

This page is directed at distributions, packagers and developers. Please
:ref:`contact us <Contact>` if there is anything unclear / out of date /
missing. For license & copyright information see :ref:`license`

Existing Packaging
------------------

The following distributions package Quod Libet:

* Arch Linux: https://www.archlinux.org/packages/extra/any/quodlibet/
* Debian: https://packages.debian.org/source/sid/quodlibet
* Fedora: https://admin.fedoraproject.org/pkgdb/package/rpms/quodlibet/

The Ubuntu PPA / unstable repo builds are automated by the following scripts:

https://github.com/quodlibet/ppa-scripts


.. _Dependencies:

Mandatory Runtime Dependencies
------------------------------

The following software is needed to start Ex Falso or Quod Libet.

* **Python** (>= 3.8)
* **PyGObject** including **cairo support** (>= 3.18)
* **pycairo** (>= 1.8)
* **mutagen** (>= 1.34)
* **GTK+** (>= 3.18)
* **libsoup** (>= 3.0)
* On OS X only: **PyObjC**
* **feedparser**

For icons a complete **icon theme** is needed, preferably with symbolic icons. 
For example **adwaita-icon-theme**.

For playback support in Quod Libet one of the following two is needed:

GStreamer
^^^^^^^^^

Required:
    * **GStreamer** (>= 1.8) + **typelibs**
    * **GStreamer Plugins Base**: Vorbis, Alsa, ...

Optional but recommended:
    * **GStreamer Plugins Good**: Pulseaudio, FLAC, Jack, ...
    * **GStreamer Plugins Ugly**: MP3 (mad), ...
    * **GStreamer Plugins Bad**: MP3 (mpg123), MP4, Opus, ...
    * **GStreamer libav/ffmpeg**: WMA, ...

Xine
^^^^

* **xine-lib** 1.1 or 1.2 (the shared library, no Python bindings)


Optional Runtime Dependencies
-----------------------------

**dbus-python**:
    * Enables the DBus interface
    * Multimedia key support under GNOME

**libkeybinder-3.0** + **typelib**:
    * Multimedia key support under non Gnome setups

**libgtksourceview-3** + **typelib**:
    * Undo/Redo support for multiline text fields

**libmodplug1**:
    * For MOD support


Plugin Dependencies
-------------------

All plugin dependencies are optional and will only prevent the corresponding
plugin from loading.

**notification-daemon** (or any other implementation of the dbus spec):
    * For the notification plugin

**GStreamer Plugins Good**:
    * For the replaygain plugin

**GStreamer Plugins Bad**:
    * For the acoustid plugin

**rygel**:
    * The uPnP media server

**webkit2gtk** (== 4.0) + **typelibs**:
    * For the Lyrics Window plugin

**libappindicator-gtk3** + **typelibs**:
    * For the Tray Icon plugin under Ubuntu Unity and KDE Plasma

Python libraries
^^^^^^^^^^^^^^^^
These can be installed with pip (as well as OS-level packages in some places).

**dbus-python**:
    * "Browse Folders"
    * Screensaver plugins
    * uPnP server
    * Gnome search provider
    * gajim status updater
    * MPRIS
    * ...

**paho-mqtt**
    * For the MQTT plugin

**musicbrainzngs** (>= 0.6):
    * For the Musicbrainz plugin

**soco** (>0.27):
    * For the Sonos plugins

**pypresence**:
    * For the Discord plugin

Build Dependencies
------------------

* **Python** >= 3.8 (stdlib only)
* **gettext** >= 0.19.8 for translations.
* (optional) **sphinx** >= 1.3

For user documentation ``setup.py build_sphinx`` can be used to create the
HTML user guide and put it in the build directory in the ``sphinx``
subdirectory. This is not part of the default build process and requires
**sphinx**.


Testing Dependencies
--------------------

* The build dependencies
* **pytest**
* **flake8**
* **polib**