~fenryxo/nuvola-player/trunk

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