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