chiark / gitweb /
README, debian/control: Deprecate `sox' support.
[disorder] / CHANGES.html
CommitLineData
2ea2b361 1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
b0a578cb
RK
2<html>
3<head>
4<title>DisOrder Change History</title>
2ea2b361 5<link rel=StyleSheet type="text/css" href="docs.css">
b0a578cb
RK
6</head>
7
8<body>
9<h1>DisOrder Change History</h1>
10
d8b95785
RK
11<p>This file documents recent user-visible changes to <a
12 href="http://www.greenend.org.uk/rjk/disorder/">DisOrder</a>.</p>
13
2ea2b361
RK
14<p><b>IMPORTANT</b>: you should read <a
15href="README.upgrades.html">README.upgrades</a> before upgrading.</p>
16
d9bc9ccd
RK
17<h2>Changes up to version 5.2</h2>
18
19<div class=section>
20
2f575936 21 <h3>PulseAudio Support</h3>
d9bc9ccd
RK
22
23 <div class=section>
24
25 <p>PulseAudio is now supported, if the support library is available at
26 build time. It is the default for client applications, reflecting its
27 widespread use in desktop environments.</p>
28
2f575936 29 <p>Volume setting is not currently supported when PulseAudio is in
d9bc9ccd
RK
30 use.</p>
31
32 </div>
33
2f575936 34 <h3>Changes To RTP Support</h3>
d9bc9ccd
RK
35
36 <div class=section>
37
38 <p>Disobedience now has a menu to select the network playback API.</p>
39
2f575936
RK
40 <p><code>disorder-playrtp</code> now selects playback API using
41 a <code>--api</code> option. The old API-selection options remain
42 available but are deprecated and will be removed in the future.</p>
d9bc9ccd 43
2f575936
RK
44 <p>RTP playback can now transmit to multiple unicast destinations, added
45 and removed on demand. This is controlled by the new <code>rtp_mode</code>
46 option. The motivating use case is a bridged network with high- and
47 low-capacity components. However it is may also be useful in a routed
48 network without multicast routing support.</p>
d9bc9ccd
RK
49
50 </div>
51
c764e832
MW
52 <h3>GStreamer support</h3>
53
54 <div class=section>
55
56 <p>If it's detected at <tt>configure</tt> time, a new decoder
57 program <tt>disorder-gstdecode</tt> is built. It uses the GStreamer
58 library for audio decoding and sample-rate conversion, among other
59 features.
60
61 <p>The decoder has a number of options for controlling the sample-rate and
62 audio format conversion, allowing various tradeoffs between quality and
63 processor time. (High-quality conversion can consume more processor time
64 than decoding, so this is potentially useful on very a small device such as
65 a Raspberry Pi.</p>
66
67 <p>The GStreamer decoder can also use ReplayGain information stored in
68 audio files' metadata to adjust playback volume, so that tracks with very
69 wide dynamic range don't sound really quiet in comparison. This
70 information can be added using tools such as <tt>mp3gain</tt>,
71 <tt>vorbisgain</tt>, or <tt>metaflac</tt>. This is turned on by default if
72 you use the decoder; you can choose between per-album or per-track
73 settings, or turn it off entirely, using command-line options.</p>
74
75 <p>The GStreamer decoder is not used by default, but it can be enabled
76 easily enough by dropping something like the following into the server
77 configuration file:
78 <pre>
79 player
80 player *.flac execraw /usr/sbin/disorder-gstdecode -ralbum -f-8.0
81 player *.mp2 execraw /usr/sbin/disorder-gstdecode -ralbum -f-8.0
82 player *.mp3 execraw /usr/sbin/disorder-gstdecode -ralbum -f-8.0
83 player *.ogg execraw /usr/sbin/disorder-gstdecode -ralbum -f-8.0
84 player *.wav execraw /usr/sbin/disorder-gstdecode -ralbum -f-8.0
85 </pre>
86 </p>
87
0e5e68c3
MW
88 <h3>Bug fixes</h3>
89
90 <div class=section>
91
92 <ul>
93 <li>The CGI program now checks user passwords even when it runs as the
94 main jukebox user(!).</li>
95
96 <li>DisObedience doesn't crash when search terms change under its
97 feet.</li>
98
99 <li>The CGI program doesn't crash on some POST requests.
100 </ul>
101
102 </div>
103
d9bc9ccd
RK
104</div>
105
d8d79f78 106<h2>Changes up to version 5.1.1</h2>
d875f8dd
RK
107
108 <div class=section>
109
110 <h3>Bug fixes</h3>
111
112 <div class=section>
113
114 <ul>
115 <li><code>player</code> and <code>tracklength</code> can now be used
116 without arguments to clear the lists, as per the documentation.</li>
117
118 <li>Tracks without a player are forgotten upon rescan.</li>
119
120 <li>The speaker process avoids splitting frames.</li>
121 </ul>
122
123 <p>Thanks to Mark Wooding and Joe Birr-Pixton.</p>
124
125 </div>
126
127 </div>
128
5bb003c8
RK
129<h2>Changes up to version 5.1</h2>
130
131<div class=section>
132
133 <h3>Removable Device Support</h3>
134
135 <div class=section>
136
137 <p>The server will now automatically initiate a rescan when a filesystem is
8488cf7d
RK
138 mounted or unmounted. (Use the <tt>mount_rescan</tt> option if you want to
139 suppress this behavior.)</p>
5bb003c8
RK
140
141 <p>The server takes care not to hold audio files open unnecessarily, so
142 that devices can be unmounted even if tracks from them are currently being
143 buffered.</p>
144
145 </div>
146
5568dfa8
RK
147 <h3>Disobedience</h3>
148
149 <div class=section>
150
151 <p>You can now edit the <tt>required-tags</tt> and <tt>prohibited-tags</tt>
152 global preferences in Disobedience
153 (<a href="http://code.google.com/p/disorder/issues/detail?id=29">issue
154 #29</a>).</p>
155
164f2e93
RK
156 <p>The &ldquo;Manage users&rdquo; option is now more reliably greyed out if
157 it will not work. This depends on a server change too, so it may still be
158 wrong if a new Disobedience is used against an old server.</p>
51827ce3
RK
159
160 <p>A <tt>.desktop</tt> file is now shipped, making Disobedience visible as
161 an application in freedesktop.org-compliant systems.</p>
164f2e93 162
5568dfa8
RK
163 </div>
164
7823bd97
RK
165 <h3>Backups</h3>
166
167 <div class=section>
168
169 <p>The Debian package now includes a cronjob that backs up the database
170 daily. See <tt>/etc/cron.d/disorder</tt>. You can put settings
171 in <tt>/etc/default/disorder</tt> to turn this off or to control how long
172 the backups are kept for.</p>
173
174 <p>The <tt>disorder-dump -r</tt> option was broken.</p>
175
5568dfa8 176 <p><tt>disorder-dump</tt> now gets permissions right automatically (<a
7823bd97
RK
177 href="http://code.google.com/p/disorder/issues/detail?id=56">issue
178 #56</a>).</p>
179
5568dfa8
RK
180 </div>
181
b1dd58fc
RK
182 <h3>General</h3>
183
184 <div class=section>
185
186 <p>Unicode support has been upgraded to <a
187 href="http://www.unicode.org/versions/Unicode6.0.0/">Unicode
188 6.0.0</a>.</p>
4019fe4d
RK
189
190 <p>Client programs no longer depend on libdb.</p>
7823bd97 191
657fdb79
RK
192 <p>The following have been removed:</p>
193
194 <ul>
195
196 <li>The <tt>allow</tt>, <tt>gap</tt>, <tt>lock</tt>, <tt>prefsync</tt>,
197 <tt>restrict</tt>, <tt>trust</tt> configuration commands. If they still
198 appear in your configuration file then the server will not start.</li>
199
200 <li>The <tt>columns</tt> web interface option. It will generate an
201 message in your error log but otherwise be ignored.</li>
202
203 <li>The <tt>--wait-for-device</tt> player option. If it still appears in
204 any player commands, they will not work.</li>
205
206 <li>Support for automatically importing pre-3.0 users.</li>
207
208 </ul>
209
7823bd97 210 <p>Various minor bug fixes.</p>
b1dd58fc
RK
211
212 </div>
213
f3ae6953
RK
214</div>
215
68a78d16
RK
216<h2>Changes up to version 5.0.3</h2>
217
218<div class=section>
219
220<p><b>Security</b>: Local connections can no longer create and delete users
221unless they are properly authorized.</p>
222
223</div>
224
06bedf43
RK
225<h2>Changes up to version 5.0.2</h2>
226
227<div class=section>
228
229<p>The login form now indicates that a cookie will be set.</p>
230
231</div>
232
9b68b94f
RK
233<h2>Changes up to version 5.0.1</h2>
234
235<div class=section>
236
237<h3>Disobedience</h3>
238
239<div class=section>
240
241<p>The sense of the Control &#x2192; Playing menu item was fixed.</p>
242
243</div>
244
5bb003c8
RK
245</div>
246
64360021 247<h2>Changes up to version 5.0</h2>
f5fd9a6b
RK
248
249 <div class=section>
250
f207f710
RK
251 <h3>Server</h3>
252
f5fd9a6b
RK
253 <div class=section>
254
fe33cfc0 255 <p>The <tt>device</tt> configuration option now works under OS X.
7cd4dd21 256 Devices may
f207f710 257 be specified either by UID or name. Fixes <a
f5fd9a6b
RK
258 href="http://code.google.com/p/disorder/issues/detail?id=27">Issue
259 27</a>.</p>
f207f710 260
f71fc3ab 261 <p>Gapless play should be more reliable, and playback latency over RTP
6762ac8a 262 should be a bit lower. Note though that all the sound output code has
f71fc3ab 263 been reorganized and in some cases completely rewritten, so it's possible
900fa0b8
RK
264 that bugs may have been (re-)introduced. Decoding of scratches is also
265 initiated ahead of time, giving more reliable playback.</p>
7cd4dd21
RK
266
267 <p>The <tt>command</tt> backend now (optionally) sends silence instead
268 of suspending writes when a pause occurs or no track is playing.</p>
c3feb35b
RK
269
270 <p>If <a href="http://www.mega-nerd.com/SRC/">libsamplerate</a> is
271 available at build time then that will be used instead of invoking
317dc3e8
RK
272 <a href="http://sox.sourceforge.net/">SoX</a>. SoX support will be
273 removed in a future version.</p>
c3feb35b 274
6a213ecb
RK
275 <p>The libao plugin has been removed, because the plugin API is not
276 usable in libao 1.0.0.</p>
86541f5a 277
79ab6bd2
RK
278 <p>Playlists are now supported. These allow a collection of tracks to be
279 prepared offline and played as a unit.</p>
280
7cd4dd21
RK
281 </div>
282
6a7eb118
RK
283 <h3>Disobedience</h3>
284
285 <div class=section>
286
69c456f3
RK
287 <p>Multiple tracks can now be dragged in the queue in a single operation.
288 Furthermore, it is now possible to drag tracks from the
289 &ldquo;Recent&rdquo;, &ldquo;Added&rdquo; and &ldquo;Choose&rdquo; tabs
290 to the queue.</p>
6a7eb118 291
c2f51940
RK
292 <p>Disobedience now supports playlist editing and has a compact mode,
293 available from the <b>Control</b> menu.</p>
79ab6bd2 294
67b1beae
RK
295 <p>Disobedience has a <a href="disobedience/manual/index.html">new
296 manual</a>.</p>
297
6a7eb118
RK
298 </div>
299
7cd4dd21
RK
300 <h3>Web Interface</h3>
301
302 <div class=section>
53710d44 303
7cd4dd21
RK
304 <p>Confirmation URLs should be cleaner (and in particular not end
305 with punctuation). (Please see <a
2ea2b361 306 href="README.upgrades.html">README.upgrades</a> for more about this.)</p>
533272be 307
f207f710
RK
308 </div>
309
310 <h3>RTP Player</h3>
311
312 <div class=section>
313
314 <p>There is a new <tt>--command</tt> option which allows the RTP player
315 to send audio data to a user-chosen command instead of an audio API. See
316 the man page for details.</p>
317
318 <p>The <tt>--device</tt> option to <tt>disorder-playrtp</tt> now works
319 under OS X (as above).</p>
f5fd9a6b
RK
320
321 </div>
7cd4dd21
RK
322
323 <h3>General</h3>
f5fd9a6b 324
7cd4dd21
RK
325 <div class=section>
326
327 <p>IPv6 should now work. Network address specifications
328 (<tt>listen</tt>, <tt>connect</tt> etc) can now be prefixed with
329 <tt>-4</tt> or <tt>-6</tt> to force use
330 of IPv4 or IPv6, though normally this should not be needed.</p>
331
2cb9bc5f
RK
332 <p>Unicode support has been upgraded to <a
333 href="http://www.unicode.org/versions/Unicode5.1.0/">Unicode
334 5.1.0</a>.</p>
335
7cd4dd21
RK
336 <p>Various elements of the source code have been
337 rationalized.</p>
338
339 </div>
340
f5fd9a6b
RK
341 <h3>Bugs fixed</h3>
342
343 <div class=section>
344
345 <table class=bugs>
346 <tr>
347 <th>ID</th>
348 <th>Description</th>
349 </tr>
417ef7de
RK
350
351 <tr>
352 <td><a href="http://code.google.com/p/disorder/issues/detail?id=22">#22</a></td>
353 <td>Background decoders interact badly with server reload</td>
354 </tr>
355
f5fd9a6b
RK
356 <tr>
357 <td><a href="http://code.google.com/p/disorder/issues/detail?id=27">#27</a></td>
358 <td>Mac DisOrder uses wrong sound device</td>
359 </tr>
360
548c9cba 361 <tr>
2ea2b361 362 <td><a href="http://code.google.com/p/disorder/issues/detail?id=30">#30</a></td>
548c9cba
RK
363 <td>mini disobedience interface</td>
364 </tr>
365
bbaed9ec 366 <tr>
2ea2b361 367 <td><a href="http://code.google.com/p/disorder/issues/detail?id=32">#32</a></td>
bbaed9ec
RK
368 <td>Excessively verbose log chatter on shutdown</td>
369 </tr>
370
7cd4dd21 371 <tr>
2ea2b361 372 <td><a href="http://code.google.com/p/disorder/issues/detail?id=33">#33</a></td>
7cd4dd21
RK
373 <td>(Some) plugins need -lm.</td>
374 </tr>
6762ac8a
RK
375
376 <tr>
2ea2b361 377 <td><a href="http://code.google.com/p/disorder/issues/detail?id=39">#39</a></td>
6762ac8a
RK
378 <td>Double bind() non-multicast AF_INET</td>
379 </tr>
380
381 <tr>
2ea2b361 382 <td><a href="http://code.google.com/p/disorder/issues/detail?id=40">#40</a></td>
6762ac8a
RK
383 <td>Missing stub function</td>
384 </tr>
385
386 <tr>
2ea2b361 387 <td><a href="http://code.google.com/p/disorder/issues/detail?id=41">#41</a></td>
6762ac8a
RK
388 <td>Missing includes for timeval</td>
389 </tr>
390
391 <tr>
2ea2b361 392 <td><a href="http://code.google.com/p/disorder/issues/detail?id=42">#42</a></td>
6762ac8a
RK
393 <td>syntax error in empeg_host section</td>
394 </tr>
395
93379b3d 396 <tr>
2ea2b361 397 <td><a href="http://code.google.com/p/disorder/issues/detail?id=43">#43</a></td>
93379b3d
RK
398 <td>decoder segfault with FLAC 1.2.1</td>
399 </tr>
400
6762ac8a 401 <tr>
2ea2b361 402 <td><a href="http://code.google.com/p/disorder/issues/detail?id=44">#44</a></td>
6762ac8a
RK
403 <td>gcc 4.3.2-1ubuntu12 SUYB patch</td>
404 </tr>
405
406 <tr>
2ea2b361 407 <td><a href="http://code.google.com/p/disorder/issues/detail?id=45">#45</a></td>
6762ac8a
RK
408 <td>disobedience doesn't configure its back end</td>
409 </tr>
fa667301 410
d53ef367 411 <tr>
2ea2b361 412 <td><a href="http://code.google.com/p/disorder/issues/detail?id=46">#46</a></td>
d53ef367
RK
413 <td>Sort search results in web interface</td>
414 </tr>
415
fa667301 416 <tr>
2ea2b361 417 <td><a href="http://code.google.com/p/disorder/issues/detail?id=48">#48</a></td>
fa667301
RK
418 <td>build-time dependency on <tt>oggdec</tt> removed</td>
419 </tr>
420
e03df0a5 421 <tr>
2ea2b361 422 <td><a href="http://code.google.com/p/disorder/issues/detail?id=49">#49</a></td>
e03df0a5
RK
423 <td>Disobedience's 'When' column gets out of date</td>
424 </tr>
425
de38ab9b
RK
426 <tr>
427 <td><a href="http://code.google.com/p/disorder/issues/detail?id=51">#51</a></td>
428 <td>Improved speaker process robustness</td>
429 </tr>
430
900fa0b8
RK
431 <tr>
432 <td>(none)</td>
433 <td>&ldquo;found track in no collection&rdquo; messages for scratches
434 are now suppressed</td>
435 </tr>
436
37e94d5c
RK
437 <tr>
438 <td>(none)</td>
439 <td>Disobedience would sometimes fail to notice when a track
440 started, leading to its display getting out of date.</td>
441 </tr>
442
f5fd9a6b 443 </table>
f5fd9a6b
RK
444 </div>
445 </div>
446
a0e78d96 447<h2>Changes up to version 4.3</h2>
d8b95785
RK
448
449 <div class=section>
450
451 <h3>Disobedience</h3>
452
453 <div class=section>
454
455 <p>A bug was fixed in the calculation of how much of the track had
e02f9807
RK
456 played. This would lead to the counter showing incorrect values in
457 various situations.</p>
d8b95785
RK
458
459 <p>Disobedience's icons have been changed to larger, more colorful
460 ones. The SVG source is included if you want to fiddle with them.</p>
461
a0e78d96
RK
462 <p>&ldquo;Select all&rdquo; is now no longer available in the choose
463 tab. Instead there is a new &ldquo;Select children&rdquo; option which
464 selects the file children of a single subdirectory.</p>
465
d8b95785
RK
466 </div>
467
6151ae7e
RK
468 <h3>Server</h3>
469
470 <div class=section>
471
472 <p>The selection bias for newly added tracks was reduced by half. You
473 can put it back to the old very neophilic value with
474 &ldquo;<tt>new_bias 900000</tt>&rdquo; in the config file.</p>
475
ff45af7c
RK
476 <p>It is now possible to &lsquo;adopt&rsquo; randomly picked tracks.
477 Disobedience and the command-line client support this but the web
478 interface does not.</p>
479
e02f9807
RK
480 <p>The default track name parsing was modified to handle filenames
481 generated by iTunes.</p>
482
6151ae7e
RK
483 </div>
484
10a6c925 485 <h3>Miscellaneous</h3>
d8b95785
RK
486
487 <div class=section>
488
10a6c925
RK
489 <p><tt>disorderfm</tt> now preserves directory permissions.</p>
490
e7eb3a27
RK
491 <p>DisOrder is now licensed under <a
492 href="http://www.gnu.org/licenses/gpl-3.0.html">GPL v3</a>. The main
493 goal is to prohibit <a
494 href="http://en.wikipedia.org/wiki/Tivoization">Tivoization</a>.</p>
495
d8b95785 496 <p>The build system will now automatically cope with Fink's broken GTK+
e02f9807
RK
497 packages. There are a number of improvements to the Debian
498 packaging.</p>
d8b95785 499
74cfbeaa
RK
500 <p>DisOrder now builds on 64-bit Linux systems.</p>
501
e02f9807 502 <p>There are various minor fixes.</p>
d8b95785
RK
503
504 </div>
505
e02f9807
RK
506 <h3>Bugs fixed</h3>
507
508 <div class=section>
509
510 <table class=bugs>
511 <tr>
512 <th>ID</th>
513 <th>Description</th>
514 </tr>
515
516 <tr>
517 <td><a href="http://code.google.com/p/disorder/issues/detail?id=24">#24</a></td>
518 <td>Fails to build on ubuntu 8.10</td>
519 </tr>
520 <tr>
521 <td><a href="http://code.google.com/p/disorder/issues/detail?id=26">#26</a></td>
522 <td>Disobedience shows wrong track elapsed time after a pause</td>
523 </tr>
524 </table>
525
526 </div>
d8b95785 527 </div>
b0a578cb 528
eb2a1fe9
RK
529<h2>Changes up to version 4.2</h2>
530
531<div class=section>
532
533 <h3>Disobedience</h3>
534
535 <div class=section>
536
537 <p>The login window now has a 'remote' switch. If this is turned off
538 then Disobedience will connect to a local server. Formerly it would
539 always use TCP/IP.</p>
540
541 <p>The Delete and backspace keys will now remove tracks from the queue.
542 Escape will now dismiss the properties, users or login windows and return
543 now works in the login and properties windows.</p>
544
545 </div>
546
547 <h3>Documentation</h3>
548
549 <div class=section>
550
551 <p>Track and global preferences are now described in a new
552 <b>disorder_preferences</b>(5) man page.</p>
553
554 </div>
cc5b0a8e
RK
555
556 <h3>Bugs fixed</h3>
557
558 <div class=section>
559
560 <table class=bugs>
561 <tr>
562 <th>ID</th>
563 <th>Description</th>
564 </tr>
565
566 <tr>
567 <td><a href="http://code.google.com/p/disorder/issues/detail?id=21">#21</a></td>
568 <td>CGI should use PATH_INFO more sensibly</td>
569 </tr>
570 </table>
571
572 </div>
eb2a1fe9
RK
573</div>
574
575
68210888
RK
576<h2>Changes up to version 4.1.1</h2>
577
578<div class=section>
579
580 <p>Disobedience's &ldquo;Login&rdquo; window now works when you are logged
581 in.</p>
582
583</div>
584
452ad6ba
RK
585<h2>Changes up to version 4.1</h2>
586
587<div class=section>
588
589 <h3>Disobedience</h3>
590
591 <div class=section>
592
593 <p>Disobedience has been largely rewritten:</p>
594
595 <ul>
596
597 <li>All the tabs now use native GTK+ list/tree widgets, resulting in
598 greater speed in some cases and more consistency with other GTK+
599 applications.</li>
600
601 <li>You can now use type-ahead find in the choose tab. The initiation
602 of a search is delayed slightly to avoid lots of updates when you're
603 half way through entering search terms.</li>
604
605 <li>The choose tab now shows track lengths.</li>
606
607 <li>Many buttons are now more reliably made insensitive when they can't
608 be used.</li>
30f2f8c9
RK
609
610 <li>You can now play tracks off the recent tab.</li>
611
452ad6ba
RK
612 </ul>
613
614 <p>Disobedience attempts to cope with servers from older versions, up to
615 a point, but this is not well tested and it's best to keep the server
616 fully up to date.</p>
617
618 </div>
619
620 <h3>Server</h3>
621
622 <div class=section>
623
624 <p>When a track shares a directory with its alias, the real track name is
625 now returned instead of the alias (the opposite way round to the previous
626 behaviour).</p>
627
628 </div>
629</div>
630
32918782
RK
631<h2>Changes up to version 4.0.2</h2>
632
633<div class=section>
634
635 <p>Corrected web browser linked from Disobedience.</p>
636
637</div>
638
f03d4184
RK
639<h2>Changes up to version 4.0.1</h2>
640
641<div class=section>
642
643 <p>Libtool and Automake now install the CGI correctly. As part of this,
644 <tt>cgidir</tt> has been renamed to <tt>cgiexecdir</tt>. The configure
645 script will report an error if you try to use the old name.</p>
646
647</div>
648
0ba75c7f 649<h2>Changes up to version 4.0</h2>
b0a578cb
RK
650
651<div class=section>
652
653 <h3>Server</h3>
654
655<div class=section>
656
657 <p>The <tt>gap</tt> directive will no longer work. It could be
658 restored if there is real demand.</p>
659
660 <h4>Event Scheduling</h4>
661
662<div class=section>
663
664 <p>It is now possible to schedule events to occur in the future.
665 Currently the supported actions are playing a specific track, and
666 changing a global preference (thus allowing e.g. random play to be
667 turned on or off). See the <tt>schedule-*</tt>
668 commands described in disorder(1).</p>
669
670</div>
671
672<h4>Random Track Choice</h4>
673
674<div class=section>
675
676 <p>This has been completely rewritten to support new features:</p>
677
678 <ul>
679
680 <li>tracks in the recently-played list or in the queue are no longer
681 eligible for random choice.</li>
682
683 <li>there is a new <tt>weight</tt> track preference allowing for
684 non-uniform track selection. See disorder(1) for details.</li>
685
686 <li>there is a new configuration item <tt>replay_min</tt> defining
687 the minimum time before a played track can be picked at random.
688 The default is 8 hours (which matches the earlier behaviour).</li>
689
690 <li>recently added tracks are biased up; see <tt>new_bias</tt> and
691 <tt>new_bias_age</tt> in disorder_config(5).</li>
692
693 </ul>
694
695</div>
696
697<h4>Web Interface</h4>
698
699<div class=section>
700
701 <p>This has been largely rewritten. The most immediate benefits are:</p>
702
703 <ul>
704
705 <li>the search page is integrated into the choose page, and
706 includes links to parent directories.</li>
707
708 <li>if you try to do something you have insufficient rights for,
709 instead of getting an error page or nothing happening, you are
710 redirected to the login page.</li>
711
712 </ul>
713
714 <p>Customizers should find their lives easier: the syntax is less onerous, it
715 is possible to define macros to avoid repetition, and the documentation is
716 less monolithic (see disorder.cgi(8) as a starting point).</p>
717
2eee4b0c
RK
718 <p>Mail is now sent via the system sendmail program, though it remains
719 possible to use TCP to connect to an SMTP server. See <tt>sendmail</tt> and
720 <tt>smtp_server</tt> in disorder_config(5).</p>
4cbafe13 721
64ac73bb
RK
722 <p>The web interface is now installed automatically. If you don't want it,
723 use <tt>./configure --without-cgi</tt>. If you want it in a non-default
724 location, or no location for it is detected, set <tt>cgidir</tt>
725 and <tt>httpdir</tt> on the <tt>./configure</tt> command line.</p>
2eee4b0c 726
b0a578cb
RK
727</div>
728
729</div>
730
731<h3>Disobedience</h3>
732
733<div class=section>
734
735 <p>There is now a new user management window. From here you can add and
736 remove users or modify their settings.</p>
737
738 <p>Relatedly, the server will only allow remote user management if you set
739 <tt>remote_userman</tt> to <tt>yes</tt>.</p>
740
741</div>
742
743<h3>Miscellaneous</h3>
744
745<div class=section>
746
747 <p><tt>scripts/setup</tt> now honors command line options, and can
748 set up network play as well as the local default sound device.</p>
749
750</div>
751
752<h3>Bugs Fixed</h3>
753
754<div class=section>
755
756 <table class=bugs>
757 <tr>
758 <th>ID</th>
759 <th>Description</th>
760 </tr>
761
762 <tr>
763 <td><a href="http://code.google.com/p/disorder/issues/detail?id=2">#2</a></td>
764 <td>Search results should link to directories</td>
765 </tr>
766
767 <tr>
768 <td><a href="http://code.google.com/p/disorder/issues/detail?id=6">#6</a></td>
769 <td>Schedule tracks for a particular time</td>
770 </tr>
771
772 <tr>
773 <td><a href="http://code.google.com/p/disorder/issues/detail?id=10">#10</a></td>
774 <td>Non-uniform track selection</td>
775 </tr>
776
777 <tr>
778 <td><a href="http://code.google.com/p/disorder/issues/detail?id=11">#11</a></td>
779 <td>Bias random selection to newly added tracks</td>
780 </tr>
781
782 <tr>
783 <td><a href="http://code.google.com/p/disorder/issues/detail?id=13">#13</a></td>
784 <td>Default encoding for debian setup scripts</td>
785 </tr>
786
787 <tr>
788 <td><a href="http://code.google.com/p/disorder/issues/detail?id=16">#16</a></td>
789 <td>Cookie expiry causes user to be silently logged out and not
790 subsequently redirected to login page</td>
791 </tr>
792
793 <tr>
794 <td><a href="http://code.google.com/p/disorder/issues/detail?id=20">#20</a></td>
795 <td>Broken aliasing rules</td>
796 </tr>
797
798 </table>
799
800</div>
801
802</div>
803
804<h2>Changes up to version 3.0.2</h2>
805
806<div class=section>
807
808 <p>Builds <tt>--without-server</tt> should work again.</p>
809
810 <p>The web interface is a bit more liberal in the cookie value
811 syntax it will accept.</p>
812
813 <p>Clients fail more gracefully if no password is available.</p>
814
815</div>
816
817<h2>Changes up to version 3.0.1</h2>
818
819<div class=section>
820
821 <p>Debian upgrades from 2.0.x should now work better.</p>
822
823</div>
824
825<h2>Changes up to version 3.0</h2>
826
827<div class=section>
828
829 <p><b>Important</b>! See <a
2ea2b361 830 href="README.upgrades.html">README.upgrades</a> when upgrading.</p>
b0a578cb
RK
831
832 <h3>Platforms And Installation</h3>
833
834<div class=section>
835
836 <p>Mac OS X and FreeBSD are somewhat supported. There is now a bash
837 script in <tt>scripts/setup</tt> which will automate the setup after
838 <tt>make install</tt>.</p>
839
840</div>
841
842<h3>Server</h3>
843
844<div class=section>
845
846 <p>Users are now stored in the database rather than a configuration
847 file.</p>
848
849 <p>The server now has a built-in list of stopwords and players, so
850 only additions to these need be mentioned in the configuration file.</p>
851
852 <p>The default inter-track gap is now 0s.</p>
853
854 <p>How sound is played is now controlled via the new <tt>api</tt>
855 configuration command. This also controls how the volume is set,
856 which now works with ALSA as well as OSS.</p>
857
858 <p>A bug in the MP3 decoder was fixed (also in 2.0.4).</p>
859
860</div>
861
862<h3>Web Interface</h3>
863
864<div class=section>
865
866 <p>The web interface now uses cookies to remember user identity, and
867 allows online registration of new users. Also it is no longer
868 necessary to manually specify the URL of the web interface (but you
869 can override it if you don't like the value it figures out).</p>
870
871 <p>It is possible to allow users to register via the web interface.</p>
872
873 <p>The web interface's browser support has been improved. It has
874 been tested with Firefox 2, Safari 3, Konqueror 3, Internet Explorer
875 7 and Opera 9.</p>
876
877</div>
878
879<h3>Disobedience</h3>
880
881<div class=section>
882
883 <p>A bug which would cause a crash if you attempt to rearrange the
884 queue while no track was playing has been fixed. There is a new
885 'deselect all tracks' option, mirroring 'select all tracks.</p>
886
887</div>
888
889</div>
890
891<!--
892Local Variables:
893fill-column:79
4cbafe13 894indent-tabs-mode:nil
b0a578cb
RK
895End:
896-->