The general procedure is:
- * stop the old daemon, e.g. with
- /etc/init.d/disorder stop
- * build and install the new version as described in the README
+ * stop the old daemon: /etc/init.d/disorder stop
+ * back up your database directory (example below)
+ * build and install the new version as described in the README. Remember to
+ install the new version of the web interface too.
* update the configuration files (see below)
* start the new daemon, e.g. with
/etc/init.d/disorder start
explicitly mentioned; a version number like 1.1 implicitly includes
all 1.1.x versions.
-* 1.5 -> 1.6
+If you install from .deb files then much of this work is automated.
+
+* 2.0 -> 3.0
+
+** Authentication
+
+Users are now stored in the database rather than in 'allow' directives in a
+private configuration file. 'allow' is still understood in this version, but
+is only used to populate the database on startup. After the first (successful)
+run of the server the remaining 'allow' directives should be deleted.
+
+'restrict' and 'trust' are replaced by a system of per-user rights. The
+default user rights are based on the 'restrict' setting, and the rights of
+users created frow 'allow' directives preserve the meaning of 'trust', but
+after the first run you should remove these directives and (optionally) add a
+'default_rights' directive.
+
+'allow', 'restrict' and 'trust' will stop working entirely in a future version
+but for now they will generate harmless error messages. Remove them and the
+error messages will go away.
+
+See README for new setup instructions for the web interface.
+
+** Other Server Configuration
+
+Sensible defaults for 'stopword', 'player' and 'tracklength' are now built into
+the server. If you haven't modified the values from the example or Debian
+configuration files then you can remove them.
+
+'gap' now defaults to 0 seconds instead of 2.
+
+The sound output API is now configured with the 'api' command although
+'speaker_backend' still works. If you use 'api alsa' then you may need to
+change your 'mixer' and 'channel' settings.
+
+** Web Interface
+
+The web interface no longer uses HTTP basic authentication and the web server
+configuration imposing access control on it should be removed. Users now log
+in using their main DisOrder password and the one in the htpassed file is now
+obsolete. You should revisit the web interface setup instructions in README
+from scratch.
+
+** Checklist
+
+ * delete default 'stopword', 'player' and 'tracklength' directives
+ * set 'gap' if you want a non-0 inter-track gap
+ * set 'api' and maybe 'mixer' and 'channel'
+ * perhaps add 'default_rights' directive
+ * delete 'allow', 'restrict' and 'trust' directives after first run
+ * follow new web interface setup in README
+
+* 1.4/1.5 -> 2.0
** 'transform' and 'namepart' directives
sensible defaults being built in. So if you were already using the default
values you can just delete all instances of both.
-** enabled' and 'random_enabled' directives
+See disorder_config(5) for the default values. Hopefuly they will be suitable
+for many configurations. Please do send feedback.
+
+** 'enabled' and 'random_enabled' directives
These have been removed. Instead the state persists from one run of the server
-to the next.
+to the next. If they appear in your configuration file they must be removed;
+the server will not start if they are present.
+
+** Database upgrade
+
+It is strongly recommended that you back up your database before performing the
+upgrade. For example, as root, with the server STOPPED:
+ cd /var/disorder
+ mkdir BACKUP
+ cp -p * BACKUP
+
+To restore, again as root:
+ cd /var/disorder
+ rm *
+ cp -p BACKUP/* .
+
+The first thing the server does when upgrading from 1.5 is run the
+disorder-dbupgrade program. This is necessary to modify any non-ASCII track
+names to meet the latest version's stricter normalization practices. The
+upgrade should succeed automatically; if not it should leave an error message
+in syslog.
* 1.3 -> 1.4