+<p><b>IMPORTANT</b>: you should read <a
+href="README.upgrades.html">README.upgrades</a> before upgrading.</p>
+
+<h2>Changes up to version 5.2</h2>
+
+<div class=section>
+
+ <h3>PulseAudio Support</h3>
+
+ <div class=section>
+
+ <p>PulseAudio is now supported, if the support library is available at
+ build time. It is the default for client applications, reflecting its
+ widespread use in desktop environments.</p>
+
+ <p>Volume setting is not currently supported when PulseAudio is in
+ use.</p>
+
+ </div>
+
+ <h3>Changes To RTP Support</h3>
+
+ <div class=section>
+
+ <p>Disobedience now has a menu to select the network playback API.</p>
+
+ <p><code>disorder-playrtp</code> now selects playback API using
+ a <code>--api</code> option. The old API-selection options remain
+ available but are deprecated and will be removed in the future.</p>
+
+ <p>RTP playback can now transmit to multiple unicast destinations, added
+ and removed on demand. This is controlled by the new <code>rtp_mode</code>
+ option. The motivating use case is a bridged network with high- and
+ low-capacity components. However it is may also be useful in a routed
+ network without multicast routing support.</p>
+
+ </div>
+
+ <h3>GStreamer support</h3>
+
+ <div class=section>
+
+ <p>If it's detected at <tt>configure</tt> time, a new decoder
+ program <tt>disorder-gstdecode</tt> is built. It uses the GStreamer
+ library for audio decoding and sample-rate conversion, among other
+ features.
+
+ <p>The decoder has a number of options for controlling the sample-rate and
+ audio format conversion, allowing various tradeoffs between quality and
+ processor time. (High-quality conversion can consume more processor time
+ than decoding, so this is potentially useful on very a small device such as
+ a Raspberry Pi.</p>
+
+ <p>The GStreamer decoder can also use ReplayGain information stored in
+ audio files' metadata to adjust playback volume, so that tracks with very
+ wide dynamic range don't sound really quiet in comparison. This
+ information can be added using tools such as <tt>mp3gain</tt>,
+ <tt>vorbisgain</tt>, or <tt>metaflac</tt>. This is turned on by default if
+ you use the decoder; you can choose between per-album or per-track
+ settings, or turn it off entirely, using command-line options.</p>
+
+ <p>The GStreamer decoder is not used by default, but it can be enabled
+ easily enough by dropping something like the following into the server
+ configuration file:
+ <pre>
+ player
+ player *.flac execraw /usr/sbin/disorder-gstdecode -ralbum -f-8.0
+ player *.mp2 execraw /usr/sbin/disorder-gstdecode -ralbum -f-8.0
+ player *.mp3 execraw /usr/sbin/disorder-gstdecode -ralbum -f-8.0
+ player *.ogg execraw /usr/sbin/disorder-gstdecode -ralbum -f-8.0
+ player *.wav execraw /usr/sbin/disorder-gstdecode -ralbum -f-8.0
+ </pre>
+ </p>
+
+ <h3>Bug fixes</h3>
+
+ <div class=section>
+
+ <ul>
+ <li>The CGI program now checks user passwords even when it runs as the
+ main jukebox user(!).</li>
+
+ <li>DisObedience doesn't crash when search terms change under its
+ feet.</li>
+
+ <li>The CGI program doesn't crash on some POST requests.
+ </ul>
+
+ </div>
+
+</div>
+
+<h2>Changes up to version 5.1.1</h2>
+
+ <div class=section>
+
+ <h3>Bug fixes</h3>
+
+ <div class=section>
+
+ <ul>
+ <li><code>player</code> and <code>tracklength</code> can now be used
+ without arguments to clear the lists, as per the documentation.</li>
+
+ <li>Tracks without a player are forgotten upon rescan.</li>
+
+ <li>The speaker process avoids splitting frames.</li>
+ </ul>
+
+ <p>Thanks to Mark Wooding and Joe Birr-Pixton.</p>
+
+ </div>
+
+ </div>
+
+<h2>Changes up to version 5.1</h2>
+
+<div class=section>
+
+ <h3>Removable Device Support</h3>
+
+ <div class=section>
+
+ <p>The server will now automatically initiate a rescan when a filesystem is
+ mounted or unmounted. (Use the <tt>mount_rescan</tt> option if you want to
+ suppress this behavior.)</p>
+
+ <p>The server takes care not to hold audio files open unnecessarily, so
+ that devices can be unmounted even if tracks from them are currently being
+ buffered.</p>
+
+ </div>
+
+ <h3>Disobedience</h3>
+
+ <div class=section>
+
+ <p>You can now edit the <tt>required-tags</tt> and <tt>prohibited-tags</tt>
+ global preferences in Disobedience
+ (<a href="http://code.google.com/p/disorder/issues/detail?id=29">issue
+ #29</a>).</p>
+
+ <p>The “Manage users” option is now more reliably greyed out if
+ it will not work. This depends on a server change too, so it may still be
+ wrong if a new Disobedience is used against an old server.</p>
+
+ <p>A <tt>.desktop</tt> file is now shipped, making Disobedience visible as
+ an application in freedesktop.org-compliant systems.</p>
+
+ </div>
+
+ <h3>Backups</h3>
+
+ <div class=section>
+
+ <p>The Debian package now includes a cronjob that backs up the database
+ daily. See <tt>/etc/cron.d/disorder</tt>. You can put settings
+ in <tt>/etc/default/disorder</tt> to turn this off or to control how long
+ the backups are kept for.</p>
+
+ <p>The <tt>disorder-dump -r</tt> option was broken.</p>
+
+ <p><tt>disorder-dump</tt> now gets permissions right automatically (<a
+ href="http://code.google.com/p/disorder/issues/detail?id=56">issue
+ #56</a>).</p>
+
+ </div>
+
+ <h3>General</h3>
+
+ <div class=section>
+
+ <p>Unicode support has been upgraded to <a
+ href="http://www.unicode.org/versions/Unicode6.0.0/">Unicode
+ 6.0.0</a>.</p>
+
+ <p>Client programs no longer depend on libdb.</p>
+
+ <p>The following have been removed:</p>
+
+ <ul>
+
+ <li>The <tt>allow</tt>, <tt>gap</tt>, <tt>lock</tt>, <tt>prefsync</tt>,
+ <tt>restrict</tt>, <tt>trust</tt> configuration commands. If they still
+ appear in your configuration file then the server will not start.</li>
+
+ <li>The <tt>columns</tt> web interface option. It will generate an
+ message in your error log but otherwise be ignored.</li>
+
+ <li>The <tt>--wait-for-device</tt> player option. If it still appears in
+ any player commands, they will not work.</li>
+
+ <li>Support for automatically importing pre-3.0 users.</li>
+
+ </ul>
+
+ <p>Various minor bug fixes.</p>
+
+ </div>
+
+</div>
+
+<h2>Changes up to version 5.0.3</h2>
+
+<div class=section>
+
+<p><b>Security</b>: Local connections can no longer create and delete users
+unless they are properly authorized.</p>
+
+</div>
+
+<h2>Changes up to version 5.0.2</h2>
+
+<div class=section>
+
+<p>The login form now indicates that a cookie will be set.</p>
+
+</div>
+
+<h2>Changes up to version 5.0.1</h2>
+
+<div class=section>
+
+<h3>Disobedience</h3>
+
+<div class=section>
+
+<p>The sense of the Control → Playing menu item was fixed.</p>
+
+</div>
+
+</div>
+
+<h2>Changes up to version 5.0</h2>