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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
INSTALLATION OF NUVOLA PLAYER
* Report bugs at https://bugs.launchpad.net/nuvola-player
* Ask questions at https://answers.launchpad.net/nuvola-player
* Discuss at https://launchpad.net/~nuvola-player-devel
=== 1. Noteworthy changes ===
Nuvola Player 2.1
* New dependency: gstreamer 0.10 or 1.0. You have to use the same GStreamer
API version that is used by the webkitgtk-3.0 library on your system.
* Added information about necessary plug-ins for playback in the section
Dependencies (2).
* Added --with-gstreamer=1.0 to noteworthy options in the section Configure
build process (3).
* Some unit test require environment with X Server and DBus session. You can
use `xvfb-run -a dbus-launch ./waf build` if you cannot use real
X Server and DBus session (e.g. build farms).
* Removed ./waf configure options: --dynamic-proxy, --web-cache, --dock_manager,
--mpris, --nuvola-client, --media-keys, --lyrics-fetching.
=== 2. Dependencies ===
Bellow you can see a list of minimal and required dependencies. Many of these
dependencies should be already available in an official repository of your
distribution, otherwise you can download them from their websites.
Nuvola Player has almost all features enabled by default, so you may have to
disable some of them if you cannot satisfy extra dependencies. The build script
should suggest you which features to turn off:
-----------8<---------
...
Configuration status : FAIL
* Unable to satisfy dependency glib-2.0 >= 2.26
* Feature Dock Manager support requires gio-2.0 >= 2.26 and glib-2.0 >= 2.26.
You can disable it by a flag --no-dock-manager.
* Feature MPRIS support requires gio-2.0 >= 2.26 and glib-2.0 >= 2.26.
You can disable it by a flag --no-mpris.
* Feature console client requires gio-2.0 >= 2.26 and glib-2.0 >= 2.26.
You can disable it by a flag --no-nuvola-client.
* Feature support for media keys requires gio-2.0 >= 2.26 and glib-2.0 >= 2.26.
You can disable it by a flag --no-media-keys.
...
-----------8<---------
Minimal dependencies:
Programs (build time):
gcc http://gcc.gnu.org/
valac >= 0.14.2 https://live.gnome.org/Vala
python2 >= 2.5 http://python.org/
pkg-config http://www.freedesktop.org/wiki/Software/pkg-config
msgfmt http://www.gnu.org/software/gettext/
perl http://www.perl.org/
intltool-merge http://ftp.gnome.org/pub/gnome/sources/intltool/
rsvg-convert https://live.gnome.org/LibRsvg
Programs (run time):
xdg-utils http://portland.freedesktop.org/xdg-utils-1.0/
Libraries (and their C header files in build time):
gee-1.0 >= 0.6 https://live.gnome.org/Libgee/
x11 >= 0.5 http://www.x.org/wiki/
gtk+-3.0 >= 3.4 http://www.gtk.org/
gdk-3.0 >= 3.4 http://www.gtk.org/
libsoup-2.4 >= 2.38 https://live.gnome.org/LibSoup
webkitgtk-3.0 >= 1.8 http://webkitgtk.org/
javascriptcoregtk-3.0 >= 1.8 http://webkitgtk.org/
glib-2.0 >= 2.32 http://www.gtk.org/
gio-2.0 >= 2.32 http://www.gtk.org/
gstreamer0.10 >= 0.10 http://gstreamer.freedesktop.org/
or gstreamer1.0 >= 1.0
Note: You have to use the same GStreamer API version that is used by
the webkitgtk-3.0 library on your system.
Extra dependencies:
Programs (build time):
scour http://codedread.com/scour/
Programs (run time):
tsocks http://tsocks.sourceforge.net/
Libraries (and their C header files in build time):
libnotify >= 0.7 http://ftp.gnome.org/pub/GNOME/sources/libnotify/
json-glib-1.0 >= 0.7 https://live.gnome.org/JsonGlib/
unity >= 3.0 https://launchpad.net/libunity
dbusmenu-glib-0.4 >= 0.4 https://launchpad.net/dbusmenu
Plug-ins for playback:
* A Flash plugin compatible with GTK+ 3
https://answers.launchpad.net/nuvola-player/+faq/2107
* A MP3 decoder for GStreamer
Best: GStreamer Fluendo MP3 decoder.
http://www.fluendo.com/shop/product/fluendo-mp3-decoder/
Good: GStreamer Ugly Plugins Set contains decoder "mad"
http://gstreamer.freedesktop.org/
Worse: GStreamer Bad Plugins Set contains decoder "mpg123"
http://gstreamer.freedesktop.org/
=== 3. Configure build process ===
Run command `./waf configure [OPTIONS]` or `python2 ./waf configure [OPTIONS]`
to configure the build process.
Noteworthy options (./waf --help for all options):
--with-gstreamer=1.0
Build with GStreamer 1.0 API. You have to use the same Gstreamer API version
that is used by the webkitgtk-3.0 library on your system.
--prefix=/usr
change an installation prefix to /usr:
--no-unity-quick-list
--no-...
disable some features if you cannot satisfy some extra dependencies
=== 4. Trigger the build process ===
Run command `./waf build` to build Nuvola Player. Some unit test require
environment with X Server and DBus session. You can use fake X Server
and temporary DBus session if you cannot use real X Server and DBus session
(e.g. build farms): `xvfb-run -a dbus-launch ./waf build`.
=== 5. Run Nuvola Player from source directory (optional) ===
You can use `./nuvolaplayer.wrapper` to run Nuvola Player from source directory.
=== 6. Trigger installation ===
Run command `./waf install` as root to install Nuvola Player.
=== 7. Stable vs Unstable builds ===
Stable build are build without debug symbols by default:
$ ./waf configure --no-debug-symbols build && ls -l build/nuvola*
...
'build' finished successfully (0.035s)
-rwxrwxr-x 1 fenryxo fenryxo 645083 2012-07-01 18:58 build/nuvolaplayer*
-rwxrwxr-x 1 fenryxo fenryxo 44010 2012-07-01 18:58 build/nuvolaplayer-client*
Unstable builds contains debugging symbols by default, so they can have bigger
memory usage and may run slower:
$ ./waf configure --debug-symbols build && ls -l build/nuvola*
...
'build' finished successfully (5.998s)
-rwxrwxr-x 1 fenryxo fenryxo 15150710 2012-07-01 19:03 build/nuvolaplayer
-rwxrwxr-x 1 fenryxo fenryxo 297170 2012-07-01 19:02 build/nuvolaplayer-client
=== 8. Clean build environment ===
When the build fails, try to clean the build environment:
$ ./waf distclean configure build
|