+<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>
+
+</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>
+
+ <div class=section>
+
+ <h3>Server</h3>
+
+ <div class=section>
+
+ <p>The <tt>device</tt> configuration option now works under OS X.
+ Devices may
+ be specified either by UID or name. Fixes <a
+ href="http://code.google.com/p/disorder/issues/detail?id=27">Issue
+ 27</a>.</p>
+
+ <p>Gapless play should be more reliable, and playback latency over RTP
+ should be a bit lower. Note though that all the sound output code has
+ been reorganized and in some cases completely rewritten, so it's possible
+ that bugs may have been (re-)introduced. Decoding of scratches is also
+ initiated ahead of time, giving more reliable playback.</p>
+
+ <p>The <tt>command</tt> backend now (optionally) sends silence instead
+ of suspending writes when a pause occurs or no track is playing.</p>
+
+ <p>If <a href="http://www.mega-nerd.com/SRC/">libsamplerate</a> is
+ available at build time then that will be used instead of invoking
+ <a href="http://sox.sourceforge.net/">SoX</a>. SoX support will be
+ removed in a future version.</p>
+
+ <p>The libao plugin has been removed, because the plugin API is not
+ usable in libao 1.0.0.</p>
+
+ <p>Playlists are now supported. These allow a collection of tracks to be
+ prepared offline and played as a unit.</p>
+
+ </div>
+
+ <h3>Disobedience</h3>
+
+ <div class=section>
+
+ <p>Multiple tracks can now be dragged in the queue in a single operation.
+ Furthermore, it is now possible to drag tracks from the
+ “Recent”, “Added” and “Choose” tabs
+ to the queue.</p>
+
+ <p>Disobedience now supports playlist editing and has a compact mode,
+ available from the <b>Control</b> menu.</p>
+
+ <p>Disobedience has a <a href="disobedience/manual/index.html">new
+ manual</a>.</p>
+
+ </div>
+
+ <h3>Web Interface</h3>
+
+ <div class=section>
+
+ <p>Confirmation URLs should be cleaner (and in particular not end
+ with punctuation). (Please see <a
+ href="README.upgrades.html">README.upgrades</a> for more about this.)</p>
+
+ </div>
+
+ <h3>RTP Player</h3>
+
+ <div class=section>
+
+ <p>There is a new <tt>--command</tt> option which allows the RTP player
+ to send audio data to a user-chosen command instead of an audio API. See
+ the man page for details.</p>
+
+ <p>The <tt>--device</tt> option to <tt>disorder-playrtp</tt> now works
+ under OS X (as above).</p>
+
+ </div>
+
+ <h3>General</h3>
+
+ <div class=section>
+
+ <p>IPv6 should now work. Network address specifications
+ (<tt>listen</tt>, <tt>connect</tt> etc) can now be prefixed with
+ <tt>-4</tt> or <tt>-6</tt> to force use
+ of IPv4 or IPv6, though normally this should not be needed.</p>
+
+ <p>Unicode support has been upgraded to <a
+ href="http://www.unicode.org/versions/Unicode5.1.0/">Unicode
+ 5.1.0</a>.</p>
+
+ <p>Various elements of the source code have been
+ rationalized.</p>
+
+ </div>
+
+ <h3>Bugs fixed</h3>
+
+ <div class=section>
+
+ <table class=bugs>
+ <tr>
+ <th>ID</th>
+ <th>Description</th>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=22">#22</a></td>
+ <td>Background decoders interact badly with server reload</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=27">#27</a></td>
+ <td>Mac DisOrder uses wrong sound device</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=30">#30</a></td>
+ <td>mini disobedience interface</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=32">#32</a></td>
+ <td>Excessively verbose log chatter on shutdown</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=33">#33</a></td>
+ <td>(Some) plugins need -lm.</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=39">#39</a></td>
+ <td>Double bind() non-multicast AF_INET</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=40">#40</a></td>
+ <td>Missing stub function</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=41">#41</a></td>
+ <td>Missing includes for timeval</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=42">#42</a></td>
+ <td>syntax error in empeg_host section</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=43">#43</a></td>
+ <td>decoder segfault with FLAC 1.2.1</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=44">#44</a></td>
+ <td>gcc 4.3.2-1ubuntu12 SUYB patch</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=45">#45</a></td>
+ <td>disobedience doesn't configure its back end</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=46">#46</a></td>
+ <td>Sort search results in web interface</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=48">#48</a></td>
+ <td>build-time dependency on <tt>oggdec</tt> removed</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=49">#49</a></td>
+ <td>Disobedience's 'When' column gets out of date</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=51">#51</a></td>
+ <td>Improved speaker process robustness</td>
+ </tr>
+
+ <tr>
+ <td>(none)</td>
+ <td>“found track in no collection” messages for scratches
+ are now suppressed</td>
+ </tr>
+
+ <tr>
+ <td>(none)</td>
+ <td>Disobedience would sometimes fail to notice when a track
+ started, leading to its display getting out of date.</td>
+ </tr>
+
+ </table>
+ </div>
+ </div>
+