+++ /dev/null
-* Changes up to version 3.1
-
-** Server
-
-The 'gap' directive will no longer work. It could be restored if there
-is real demand.
-
-*** Event Scheduling
-
-It is now possible to schedule events to occur in the future. Currently
-the supported actions are playing a specific track, and changing a
-global preference (thus allowing e.g. random play to be turned on or
-off). See the schedule-* commands described in disorder(1).
-
-*** Random Track Choice
-
-This has been completely rewritten to support new features:
- - tracks in the recently-played list or in the queue are no longer
- eligible for random choice
- - there is a new 'weight' track preference allowing for non-uniform
- track selection. See disorder(1) for details.
- - there is a new configuration item replay_min defining the minimum
- time before a played track can be picked at random. The default is
- 8 hours (which matches the earlier behaviour).
- - recently added tracks are biased up; see new_bias and new_bias_age
- in disorder_config(5).
-
-*** Web Interface
-
-This has been largely rewritten. The most immediate benefits are:
- - the search page is integrated into the choose page, and includes
- links to parent directories
- - if you try to do something you have insufficient rights for,
- instead of getting an error page or nothing happening, you are
- redirected to the login page
-
-Customizers should find their lives easier: the syntax is less onerous,
-it is possible to define macros to avoid repetition, and the
-documentation is less monolithic.
-
-** Disobedience
-
-There is now a new user management window. From here you can add and
-remove users or modify their settings.
-
-Relatedly, the server will only allow remote user management if you set
-remote_userman to 'yes'.
-
-** Miscellaneous
-
-scripts/setup now honors command line options, and can set up network
-play as well as the local default sound device.
-
-** Bugs Fixed
-
- #2 Search results should link to directories
- #6 Schedule tracks for a particular time
-#10 Non-uniform track selection
-#11 Bias random selection to newly added tracks
-#13 Default encoding for debian setup scripts
-#16 Cookie expiry causes user to be silently logged out and not
- subsequently redirected to login page
-#20 Broken aliasing rules
-
-* Changes up to version 3.0.2
-
-Builds --without-server should work again.
-
-The web interface is a bit more liberal in the cookie value syntax it
-will accept.
-
-Clients fail more gracefully if no password is available.
-
-* Changes up to version 3.0.1
-
-Debian upgrades from 2.0.x should now work better.
-
-* Changes up to version 3.0
-
-Important! See README.upgrades when upgrading.
-
-** Platforms And Installation
-
-Mac OS X and FreeBSD are somewhat supported. There is now a bash script
-in scripts/setup which will automate the setup after 'make install'.
-
-** Server
-
-Users are now stored in the database rather than a configuration file.
-
-The server now has a built-in list of stopwords and players, so only
-additions to these need be mentioned in the configuration file.
-
-The default inter-track gap is now 0s.
-
-How sound is played is now controlled via the new 'api' configuration
-command. This also controls how the volume is set, which now works with
-ALSA as well as OSS.
-
-A bug in the MP3 decoder was fixed (also in 2.0.4).
-
-** Web Interface
-
-The web interface now uses cookies to remember user identity, and allows
-online registration of new users. Also it is no longer necessary to
-manually specify the URL of the web interface (but you can override it
-if you don't like the value it figures out).
-
-It is possible to allow users to register via the web interface.
-
-The web interface's browser support has been improved. It has been
-tested with Firefox 2, Safari 3, Konqueror 3, Internet Explorer 7 and
-Opera 9.
-
-** Disobedience
-
-A bug which would cause a crash if you attempt to rearrange the queue
-while no track was playing has been fixed. There is a new 'deselect all
-tracks' option, mirroring 'select all tracks.
-
-* Changes up to version 2.0
-
-** General
-
-Tracks can now have tags associated with them. See tags in disorder(1)
-or the preferences documentation for the web interface or Disobedience.
-
-The search facility knows how to limit results by tag (see search
-documentation for any interface) as well as by word search. It is
-possible to limit random play by tag (see required-tags and
-prohibited-tags in disorder_config(5)).
-
-Unicode support is improved. Case-folding and word breaking now follows
-the rules given in the Unicode standard (with a bit of tailoring in the
-latter case).
-
-** Disobedience
-
-There is a new client, 'Disobedience', that depends on the GTK+ library.
-Feedback on the interface would be very welcome.
-
-** Web Interface
-
-The "New" screen display tracks recently added to the database. From
-here they can be played or their preferences changed.
-
-Long track names are truncated so they fit better on the screen. Hover
-for the full name.
-
-** Network Play
-
-DisOrder can broadcast audio over a network, allowing it to be played on
-multiple client machines. See README.streams for details.
-
-** Server
-
-Slow file lookups are cached in the server. This should help
-installations with large collections and/or slow platforms.
-
-The 'enabled' and 'random_enabled' configuration options are now gone.
-Instead the state survives from one run of the server to the next.
-'disable now' is gone as well - if you want to emulate it disable
-playing and then scratch the current track.
-
-The 'pick' plugin has been abolished. All the logic formerly done there
-is now built into the server, where it can be done much more
-efficiently.
-
-'tracklength' plugins must be explicitly specified.
-
-A bug where removing a collection (from the configuration) could cause a
-crash when random play was enabled has been fixed.
-
-A new configuration option 'queue_pad' allows the number of random
-tracks kept on the queue to be controlled.
-
-There is a new utility disorder-decode which can decode OGG, MP3, WAV
-and FLAC. The example config file uses it.
-
-Database statistics are computed in a subprocess so that the main server
-(and all clients) are not blocked for the duration.
-
-** disorderfm
-
-There is a new command line tool called 'disorderfm' which is designed
-for filename translation on (for instance) digital audio repositories.
-It is not yet feature-complete. See its man page for additional
-details.
-
-** Build And Configuration
-
-You can control which components are built with new --with options. See
-README.
-
-options.transform and the 'transform' web option have gone, replaced
-with a 'transform' configuration command. Both this and 'namepart' are
-now optional.
-
-** Thanks
-
-Ross Younger, Colin Watson, Michael Stevens and Mark Wooding all
-contributed in some way to this release.
-
-* Changes up to version 1.5.1
-
-** Web Interface
-
-Correct regexp for non-alpha tracks.
-
-* Changes up to version 1.5
-
-** Web Interface
-
-Regexp-based filtering of tracks (for instance as used by the initial
-'Choose' page) now does the regexp matching in the server, limiting the
-amount of data transferred to the web interface only to be discarded.
-
-** Client
-
-Regexp-base filtering of tracks is now available to the command line
-client.
-
-** Server
-
-New server_nice, speaker_nice and rescan_nice configuration options
-allow independent control of process priorities.
-
-Scratches are now attributed to the user who requested them.
-
-Bugs fixed:
- A file descriptor was leaked for each track played.
- The amount of a track played so far was not reported.
- The speaker process could crash on underrun.
- The server would crash if you paused a non-pause capable track.
- Regexp matching in the file and directory list commands was not
- reliable.
- Handling of variable-argument commands in the client was broken.
-
-* Changes up to version 1.4
-
-** General
-
-Raw format players are now supported. See README.upgrades and
-README.raw for details. This allows pausing and eliminating the
-inter-track gap.
-
-Pausing is also supported with suitably modified standalone player
-plugins, though none of the supplied ones are capable of this.
-
-When random play is enabled the randomly picked track now appears in the
-queue, and can be moved around the queue, removed from it, etc.
-
-** Web Interface
-
-Switches (random play, pause, ...) are now presented as a
-fixed-appearance switch with an adjacent state indicator.
-
-The 'Manage' screen has new buttons to move tracks to the head or tail
-of the queue.
-
-You can now edit the preferences for all the tracks in an album in a
-single screen, rather than having to visit each separately. For the
-time being the raw preferences editing has gone; it can be reintroduced
-on some form if there is demand. (You can still edit raw preferences
-from the command line.)
-
-Labels are now documented in options.labels rather than
-disorder_config(5).
-
-** Server
-
-If you tried to start up on any empty database with random play enabled
-the server would exit with an error.
-
-The server no longer risks failing if you strace its player
-subprocesses.
-
-It was possible for the server to hang when a 'reconfigure' command was
-issued. This should no longer be the case.
-
-The default signal to forcibly terminate players is now SIGKILL.
-
-** Plugins
-
-Plugins must now declare a type word. This allows them to document
-whether they are a standalone player or a raw-format player, and whether
-they support pausing. They can also arrange to get setup and cleanup
-calls in the main server. See disorder(3) for more details.
-
-* Changes up to version 1.3
-
-** Dependencies
-
-Berkeley DB 4.2 is no longer supported. Use 4.3.
-
-** Client
-
-There is a new 'authorize' command to simplify the addition of local
-users. Please report successes as well as failures.
-
-There is a new 'resolve' command to return the real track name behind an
-alias.
-
-The 'rescan' command no longer takes an argument.
-
-** Server
-
-The track database code has been largely rewritten to improve
-maintainability.
-
-There is a new 'lock' directive. By default the server uses a lockfile
-to prevent multiple copies of itself running simultaneously; this can be
-inhibited e.g. if you are using a filesystem that does not support
-locking and are confident you can prevent concurrent running yourself.
-
-Aliases for track names, constructed from trackname_display_
-preferences, now appear in the virtual filesystem.
-
-The server now executes a subprocess for the rescan operation. It also
-runs a separate deadlock manager.
-
-Standard output and standard error from subprocesses are now logged.
-This is handy if you need to figure out why a player failed unexpectedly
-but might lead to huge log files if you have needlessly verbose players.
-
-** Web Interface
-
-Enable/disable buttons are now colored to reflect current state.
-
-Entering numeric volume values (rather than clicking on the arrows) now
-works.
-
-Connection errors are reported more gracefully.
-
-** Plugins
-
-Scanner plugins are now always invoked in a subprocess.
-
-disorder_track_count() and disorder_track_getn() are no longer
-available. Instead use disorder_track_random().
-
-Plugins are now opened with RTLD_NOW, so link errors are detected
-immediately.
-
-** Tools
-
-disorder-dump now insists on the input/output file being a named regular
-file, rather than using stdin or stdout.
-
-** Other
-
-Some missing files have been added, and some notes added regarding
-getting text encoding right.
-
-* Changes up to version 1.2
-
-See README.upgrades when upgrading to this version.
-
-** Bugs Fixed
-
-Avoid accumulating overlarge recently played list.
-
-When the server was stopped, the currently playing track would not be
-added to the recently played list. This has been fixed.
-
-Reloading the 'volume' page no longer repeats the last volume-changing
-action.
-
-The search facility now works properly for multiple hits within a single
-artist or album.
-
-** Server
-
-New namepart directive replaces web interface's trackname-part. There
-are associated changes to the protocol and clients.
-
-The number of database queries per candidate match required when
-searching has been reduced.
-
-The operator can control the signal used to scratch playing tracks. The
-default has been changed to SIGINT from SIGKILL.
-
-The 'log' command now provides a formalised event log, rather than raw
-access to the server's ordinary log output.
-
-** Web Interface Changes
-
-*** Choosing Tracks
-
-When picking a track the client now stays on the same screen rather than
-redirecting back to the 'Playing' screen. So that the user gets
-feedback from their action, playing and queued tracks are now marked as
-such in the track picking screen.
-
-It is possible to revert to the old behaviour by removing the back=
-argument from the choose.html and search.html templates (and optionally
-the trackstate lines).
-
-*** Search
-
-Non-ASCII characters are now properly supported in search terms.
-
-*** Syntax
-
-The template syntax has been changed slightly to ignore whitespace in
-certain places.
-
-*** Miscellaneous
-
-Some formerly textual buttons are now replaced by images (with ALT text
-reflecting the old value). The stylesheet is now a .css file (installed
-in the same place as the images) rather than being embedded into every
-template.
-
-Artist and album names in the playing and recently-played lists are now
-links to the corresponding directory.
-
-More functions are now available from the 'manage' screen.
-
-The menus are now (by default) across the top of the screen instead of
-down the side. Set the 'menu' label to 'sidebar' to restore the old
-appearance. 'Volume' is not present in this new menu, use 'Manage'
-instead (or edit the template).
-
-** tkdisorder
-
-tkdisorder now displays artist, album and title in the queue and
-recently played widgets, rather than just the title (as formerly).
-
-* Changes up to version 1.1
-
-** Bugs Fixed
-
-Corrected various problems with UTF-8 parsing.
-
-In the web interface, "The Beatles" (etc) are now grouped under 'B' not
-'T' when grouping tracks by initial letter.
-
-** Server
-
-The list of recently played tracks is now preserved across server
-restarts.
-
-Track IDs are more compact.
-
-Versions of libdb before 4.2 are no longer supported. 4.2 and 4.3 both
-work now. 4.2 support will be removed in some future release.
-
-Prehistoric backwards-compatibility logic removed. Only affects people
-upgrading from long before 1.0 (who should upgrade to 1.0 and then to
-1.1.)
-
-** Command Line
-
-Tracks can be moved in the queue from the command line.
-
-'disorder queue' now reports track IDs.
-
-$pkgdatadir/completion.bash provides tab completion over commands and
-options.
-
-** Web Interface
-
-New 'cooked' preferences interface saves users having to know arcane
-details of trackname preferences and so on. Non-ASCII characters are
-now properly supported in this context.
-
-CGI arguments to the web interface are now checked for UTF-8 compliance.
-
-Local Variables:
-mode:outline
-fill-column:72
-End:
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<title>DisOrder Change History</title>
+<style type="text/css">
+body {
+ color: black;
+ background-color: white;
+ font-family: times,serif;
+ font-weight: normal;
+ font-size: 12pt;
+ font-variant: normal
+}
+
+div.section {
+ margin-left:1em
+}
+
+h1 {
+ background-color: #e0ffe0;
+ font-family: helvetica,sans-serif;
+ padding: 0.2em
+}
+
+h2 {
+ background-color: #e0ffe0;
+ font-family: helvetica,sans-serif;
+ padding: 0.2em
+}
+
+h3 {
+ background-color: #f0f0f0;
+ font-family: helvetica,sans-serif;
+ padding: 0.2em
+}
+
+h4 {
+ font-family: helvetica,sans-serif
+}
+
+table.bugs {
+ width: 100%
+}
+
+table.bugs th {
+ text-align: left
+}
+
+span.command {
+ font-family: monospace
+}
+</style>
+</head>
+
+<body>
+<h1>DisOrder Change History</h1>
+
+<p>This file documents recent user-visible changes to DisOrder.</p>
+
+<h2>Changes up to version 3.1</h2>
+
+<div class=section>
+
+ <h3>Server</h3>
+
+<div class=section>
+
+ <p>The <tt>gap</tt> directive will no longer work. It could be
+ restored if there is real demand.</p>
+
+ <h4>Event Scheduling</h4>
+
+<div class=section>
+
+ <p>It is now possible to schedule events to occur in the future.
+ Currently the supported actions are playing a specific track, and
+ changing a global preference (thus allowing e.g. random play to be
+ turned on or off). See the <tt>schedule-*</tt>
+ commands described in disorder(1).</p>
+
+</div>
+
+<h4>Random Track Choice</h4>
+
+<div class=section>
+
+ <p>This has been completely rewritten to support new features:</p>
+
+ <ul>
+
+ <li>tracks in the recently-played list or in the queue are no longer
+ eligible for random choice.</li>
+
+ <li>there is a new <tt>weight</tt> track preference allowing for
+ non-uniform track selection. See disorder(1) for details.</li>
+
+ <li>there is a new configuration item <tt>replay_min</tt> defining
+ the minimum time before a played track can be picked at random.
+ The default is 8 hours (which matches the earlier behaviour).</li>
+
+ <li>recently added tracks are biased up; see <tt>new_bias</tt> and
+ <tt>new_bias_age</tt> in disorder_config(5).</li>
+
+ </ul>
+
+</div>
+
+<h4>Web Interface</h4>
+
+<div class=section>
+
+ <p>This has been largely rewritten. The most immediate benefits are:</p>
+
+ <ul>
+
+ <li>the search page is integrated into the choose page, and
+ includes links to parent directories.</li>
+
+ <li>if you try to do something you have insufficient rights for,
+ instead of getting an error page or nothing happening, you are
+ redirected to the login page.</li>
+
+ </ul>
+
+ <p>Customizers should find their lives easier: the syntax is less onerous, it
+ is possible to define macros to avoid repetition, and the documentation is
+ less monolithic (see disorder.cgi(8) as a starting point).</p>
+
+</div>
+
+</div>
+
+<h3>Disobedience</h3>
+
+<div class=section>
+
+ <p>There is now a new user management window. From here you can add and
+ remove users or modify their settings.</p>
+
+ <p>Relatedly, the server will only allow remote user management if you set
+ <tt>remote_userman</tt> to <tt>yes</tt>.</p>
+
+</div>
+
+<h3>Miscellaneous</h3>
+
+<div class=section>
+
+ <p><tt>scripts/setup</tt> now honors command line options, and can
+ set up network play as well as the local default sound device.</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=2">#2</a></td>
+ <td>Search results should link to directories</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=6">#6</a></td>
+ <td>Schedule tracks for a particular time</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=10">#10</a></td>
+ <td>Non-uniform track selection</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=11">#11</a></td>
+ <td>Bias random selection to newly added tracks</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=13">#13</a></td>
+ <td>Default encoding for debian setup scripts</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=16">#16</a></td>
+ <td>Cookie expiry causes user to be silently logged out and not
+ subsequently redirected to login page</td>
+ </tr>
+
+ <tr>
+ <td><a href="http://code.google.com/p/disorder/issues/detail?id=20">#20</a></td>
+ <td>Broken aliasing rules</td>
+ </tr>
+
+ </table>
+
+</div>
+
+</div>
+
+<h2>Changes up to version 3.0.2</h2>
+
+<div class=section>
+
+ <p>Builds <tt>--without-server</tt> should work again.</p>
+
+ <p>The web interface is a bit more liberal in the cookie value
+ syntax it will accept.</p>
+
+ <p>Clients fail more gracefully if no password is available.</p>
+
+</div>
+
+<h2>Changes up to version 3.0.1</h2>
+
+<div class=section>
+
+ <p>Debian upgrades from 2.0.x should now work better.</p>
+
+</div>
+
+<h2>Changes up to version 3.0</h2>
+
+<div class=section>
+
+ <p><b>Important</b>! See <a
+ href="README.upgrades">README.upgrades</a> when upgrading.</p>
+
+ <h3>Platforms And Installation</h3>
+
+<div class=section>
+
+ <p>Mac OS X and FreeBSD are somewhat supported. There is now a bash
+ script in <tt>scripts/setup</tt> which will automate the setup after
+ <tt>make install</tt>.</p>
+
+</div>
+
+<h3>Server</h3>
+
+<div class=section>
+
+ <p>Users are now stored in the database rather than a configuration
+ file.</p>
+
+ <p>The server now has a built-in list of stopwords and players, so
+ only additions to these need be mentioned in the configuration file.</p>
+
+ <p>The default inter-track gap is now 0s.</p>
+
+ <p>How sound is played is now controlled via the new <tt>api</tt>
+ configuration command. This also controls how the volume is set,
+ which now works with ALSA as well as OSS.</p>
+
+ <p>A bug in the MP3 decoder was fixed (also in 2.0.4).</p>
+
+</div>
+
+<h3>Web Interface</h3>
+
+<div class=section>
+
+ <p>The web interface now uses cookies to remember user identity, and
+ allows online registration of new users. Also it is no longer
+ necessary to manually specify the URL of the web interface (but you
+ can override it if you don't like the value it figures out).</p>
+
+ <p>It is possible to allow users to register via the web interface.</p>
+
+ <p>The web interface's browser support has been improved. It has
+ been tested with Firefox 2, Safari 3, Konqueror 3, Internet Explorer
+ 7 and Opera 9.</p>
+
+</div>
+
+<h3>Disobedience</h3>
+
+<div class=section>
+
+ <p>A bug which would cause a crash if you attempt to rearrange the
+ queue while no track was playing has been fixed. There is a new
+ 'deselect all tracks' option, mirroring 'select all tracks.</p>
+
+</div>
+
+</div>
+
+<!--
+Local Variables:
+fill-column:79
+End:
+-->