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