chiark / gitweb /
Do not fatal-error when deleting a global pref that does not exist.
[disorder] / CHANGES.html
... / ...
CommitLineData
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
2<html>
3<head>
4<title>DisOrder Change History</title>
5<link rel=StyleSheet type="text/css" href="docs.css">
6</head>
7
8<body>
9<h1>DisOrder Change History</h1>
10
11<p>This file documents recent user-visible changes to <a
12 href="http://www.greenend.org.uk/rjk/disorder/">DisOrder</a>.</p>
13
14<p><b>IMPORTANT</b>: you should read <a
15href="README.upgrades.html">README.upgrades</a> before upgrading.</p>
16
17<h2>Changes up to version 5.1</h2>
18
19<div class=section>
20
21 <h3>Removable Device Support</h3>
22
23 <div class=section>
24
25 <p>The server will now automatically initiate a rescan when a filesystem is
26 mounted or unmounted. (Use the <tt>mount_rescan</tt> option if you want to
27 suppress this behavior.)</p>
28
29 <p>The server takes care not to hold audio files open unnecessarily, so
30 that devices can be unmounted even if tracks from them are currently being
31 buffered.</p>
32
33 </div>
34
35 <h3>Backups</h3>
36
37 <div class=section>
38
39 <p>The Debian package now includes a cronjob that backs up the database
40 daily. See <tt>/etc/cron.d/disorder</tt>. You can put settings
41 in <tt>/etc/default/disorder</tt> to turn this off or to control how long
42 the backups are kept for.</p>
43
44 <p>The <tt>disorder-dump -r</tt> option was broken.</p>
45
46 <p><tt>disorder-dump</tt> now gets permissions right automatically (a
47 href="http://code.google.com/p/disorder/issues/detail?id=56">issue
48 #56</a>).</p>
49
50 <h3>General</h3>
51
52 <div class=section>
53
54 <p>Unicode support has been upgraded to <a
55 href="http://www.unicode.org/versions/Unicode6.0.0/">Unicode
56 6.0.0</a>.</p>
57
58 <p>Various minor bug fixes.</p>
59
60 </div>
61
62</div>
63
64<h2>Changes up to version 5.0.2</h2>
65
66<div class=section>
67
68<p>The login form now indicates that a cookie will be set.</p>
69
70</div>
71
72<h2>Changes up to version 5.0.1</h2>
73
74<div class=section>
75
76<h3>Disobedience</h3>
77
78<div class=section>
79
80<p>The sense of the Control &#x2192; Playing menu item was fixed.</p>
81
82</div>
83
84</div>
85
86<h2>Changes up to version 5.0</h2>
87
88 <div class=section>
89
90 <h3>Server</h3>
91
92 <div class=section>
93
94 <p>The <tt>device</tt> configuration option now works under OS X.
95 Devices may
96 be specified either by UID or name. Fixes <a
97 href="http://code.google.com/p/disorder/issues/detail?id=27">Issue
98 27</a>.</p>
99
100 <p>Gapless play should be more reliable, and playback latency over RTP
101 should be a bit lower. Note though that all the sound output code has
102 been reorganized and in some cases completely rewritten, so it's possible
103 that bugs may have been (re-)introduced. Decoding of scratches is also
104 initiated ahead of time, giving more reliable playback.</p>
105
106 <p>The <tt>command</tt> backend now (optionally) sends silence instead
107 of suspending writes when a pause occurs or no track is playing.</p>
108
109 <p>If <a href="http://www.mega-nerd.com/SRC/">libsamplerate</a> is
110 available at build time then that will be used instead of invoking
111 <a href="http://sox.sourceforge.net/">SoX</a>. SoX support will be
112 removed in a future version.</p>
113
114 <p>The libao plugin has been removed, because the plugin API is not
115 usable in libao 1.0.0.</p>
116
117 <p>Playlists are now supported. These allow a collection of tracks to be
118 prepared offline and played as a unit.</p>
119
120 </div>
121
122 <h3>Disobedience</h3>
123
124 <div class=section>
125
126 <p>Multiple tracks can now be dragged in the queue in a single operation.
127 Furthermore, it is now possible to drag tracks from the
128 &ldquo;Recent&rdquo;, &ldquo;Added&rdquo; and &ldquo;Choose&rdquo; tabs
129 to the queue.</p>
130
131 <p>Disobedience now supports playlist editing and has a compact mode,
132 available from the <b>Control</b> menu.</p>
133
134 <p>Disobedience has a <a href="disobedience/manual/index.html">new
135 manual</a>.</p>
136
137 </div>
138
139 <h3>Web Interface</h3>
140
141 <div class=section>
142
143 <p>Confirmation URLs should be cleaner (and in particular not end
144 with punctuation). (Please see <a
145 href="README.upgrades.html">README.upgrades</a> for more about this.)</p>
146
147 </div>
148
149 <h3>RTP Player</h3>
150
151 <div class=section>
152
153 <p>There is a new <tt>--command</tt> option which allows the RTP player
154 to send audio data to a user-chosen command instead of an audio API. See
155 the man page for details.</p>
156
157 <p>The <tt>--device</tt> option to <tt>disorder-playrtp</tt> now works
158 under OS X (as above).</p>
159
160 </div>
161
162 <h3>General</h3>
163
164 <div class=section>
165
166 <p>IPv6 should now work. Network address specifications
167 (<tt>listen</tt>, <tt>connect</tt> etc) can now be prefixed with
168 <tt>-4</tt> or <tt>-6</tt> to force use
169 of IPv4 or IPv6, though normally this should not be needed.</p>
170
171 <p>Unicode support has been upgraded to <a
172 href="http://www.unicode.org/versions/Unicode5.1.0/">Unicode
173 5.1.0</a>.</p>
174
175 <p>Various elements of the source code have been
176 rationalized.</p>
177
178 </div>
179
180 <h3>Bugs fixed</h3>
181
182 <div class=section>
183
184 <table class=bugs>
185 <tr>
186 <th>ID</th>
187 <th>Description</th>
188 </tr>
189
190 <tr>
191 <td><a href="http://code.google.com/p/disorder/issues/detail?id=22">#22</a></td>
192 <td>Background decoders interact badly with server reload</td>
193 </tr>
194
195 <tr>
196 <td><a href="http://code.google.com/p/disorder/issues/detail?id=27">#27</a></td>
197 <td>Mac DisOrder uses wrong sound device</td>
198 </tr>
199
200 <tr>
201 <td><a href="http://code.google.com/p/disorder/issues/detail?id=30">#30</a></td>
202 <td>mini disobedience interface</td>
203 </tr>
204
205 <tr>
206 <td><a href="http://code.google.com/p/disorder/issues/detail?id=32">#32</a></td>
207 <td>Excessively verbose log chatter on shutdown</td>
208 </tr>
209
210 <tr>
211 <td><a href="http://code.google.com/p/disorder/issues/detail?id=33">#33</a></td>
212 <td>(Some) plugins need -lm.</td>
213 </tr>
214
215 <tr>
216 <td><a href="http://code.google.com/p/disorder/issues/detail?id=39">#39</a></td>
217 <td>Double bind() non-multicast AF_INET</td>
218 </tr>
219
220 <tr>
221 <td><a href="http://code.google.com/p/disorder/issues/detail?id=40">#40</a></td>
222 <td>Missing stub function</td>
223 </tr>
224
225 <tr>
226 <td><a href="http://code.google.com/p/disorder/issues/detail?id=41">#41</a></td>
227 <td>Missing includes for timeval</td>
228 </tr>
229
230 <tr>
231 <td><a href="http://code.google.com/p/disorder/issues/detail?id=42">#42</a></td>
232 <td>syntax error in empeg_host section</td>
233 </tr>
234
235 <tr>
236 <td><a href="http://code.google.com/p/disorder/issues/detail?id=43">#43</a></td>
237 <td>decoder segfault with FLAC 1.2.1</td>
238 </tr>
239
240 <tr>
241 <td><a href="http://code.google.com/p/disorder/issues/detail?id=44">#44</a></td>
242 <td>gcc 4.3.2-1ubuntu12 SUYB patch</td>
243 </tr>
244
245 <tr>
246 <td><a href="http://code.google.com/p/disorder/issues/detail?id=45">#45</a></td>
247 <td>disobedience doesn't configure its back end</td>
248 </tr>
249
250 <tr>
251 <td><a href="http://code.google.com/p/disorder/issues/detail?id=46">#46</a></td>
252 <td>Sort search results in web interface</td>
253 </tr>
254
255 <tr>
256 <td><a href="http://code.google.com/p/disorder/issues/detail?id=48">#48</a></td>
257 <td>build-time dependency on <tt>oggdec</tt> removed</td>
258 </tr>
259
260 <tr>
261 <td><a href="http://code.google.com/p/disorder/issues/detail?id=49">#49</a></td>
262 <td>Disobedience's 'When' column gets out of date</td>
263 </tr>
264
265 <tr>
266 <td><a href="http://code.google.com/p/disorder/issues/detail?id=51">#51</a></td>
267 <td>Improved speaker process robustness</td>
268 </tr>
269
270 <tr>
271 <td>(none)</td>
272 <td>&ldquo;found track in no collection&rdquo; messages for scratches
273 are now suppressed</td>
274 </tr>
275
276 <tr>
277 <td>(none)</td>
278 <td>Disobedience would sometimes fail to notice when a track
279 started, leading to its display getting out of date.</td>
280 </tr>
281
282 </table>
283 </div>
284 </div>
285
286<h2>Changes up to version 4.3</h2>
287
288 <div class=section>
289
290 <h3>Disobedience</h3>
291
292 <div class=section>
293
294 <p>A bug was fixed in the calculation of how much of the track had
295 played. This would lead to the counter showing incorrect values in
296 various situations.</p>
297
298 <p>Disobedience's icons have been changed to larger, more colorful
299 ones. The SVG source is included if you want to fiddle with them.</p>
300
301 <p>&ldquo;Select all&rdquo; is now no longer available in the choose
302 tab. Instead there is a new &ldquo;Select children&rdquo; option which
303 selects the file children of a single subdirectory.</p>
304
305 </div>
306
307 <h3>Server</h3>
308
309 <div class=section>
310
311 <p>The selection bias for newly added tracks was reduced by half. You
312 can put it back to the old very neophilic value with
313 &ldquo;<tt>new_bias 900000</tt>&rdquo; in the config file.</p>
314
315 <p>It is now possible to &lsquo;adopt&rsquo; randomly picked tracks.
316 Disobedience and the command-line client support this but the web
317 interface does not.</p>
318
319 <p>The default track name parsing was modified to handle filenames
320 generated by iTunes.</p>
321
322 </div>
323
324 <h3>Miscellaneous</h3>
325
326 <div class=section>
327
328 <p><tt>disorderfm</tt> now preserves directory permissions.</p>
329
330 <p>DisOrder is now licensed under <a
331 href="http://www.gnu.org/licenses/gpl-3.0.html">GPL v3</a>. The main
332 goal is to prohibit <a
333 href="http://en.wikipedia.org/wiki/Tivoization">Tivoization</a>.</p>
334
335 <p>The build system will now automatically cope with Fink's broken GTK+
336 packages. There are a number of improvements to the Debian
337 packaging.</p>
338
339 <p>DisOrder now builds on 64-bit Linux systems.</p>
340
341 <p>There are various minor fixes.</p>
342
343 </div>
344
345 <h3>Bugs fixed</h3>
346
347 <div class=section>
348
349 <table class=bugs>
350 <tr>
351 <th>ID</th>
352 <th>Description</th>
353 </tr>
354
355 <tr>
356 <td><a href="http://code.google.com/p/disorder/issues/detail?id=24">#24</a></td>
357 <td>Fails to build on ubuntu 8.10</td>
358 </tr>
359 <tr>
360 <td><a href="http://code.google.com/p/disorder/issues/detail?id=26">#26</a></td>
361 <td>Disobedience shows wrong track elapsed time after a pause</td>
362 </tr>
363 </table>
364
365 </div>
366 </div>
367
368<h2>Changes up to version 4.2</h2>
369
370<div class=section>
371
372 <h3>Disobedience</h3>
373
374 <div class=section>
375
376 <p>The login window now has a 'remote' switch. If this is turned off
377 then Disobedience will connect to a local server. Formerly it would
378 always use TCP/IP.</p>
379
380 <p>The Delete and backspace keys will now remove tracks from the queue.
381 Escape will now dismiss the properties, users or login windows and return
382 now works in the login and properties windows.</p>
383
384 </div>
385
386 <h3>Documentation</h3>
387
388 <div class=section>
389
390 <p>Track and global preferences are now described in a new
391 <b>disorder_preferences</b>(5) man page.</p>
392
393 </div>
394
395 <h3>Bugs fixed</h3>
396
397 <div class=section>
398
399 <table class=bugs>
400 <tr>
401 <th>ID</th>
402 <th>Description</th>
403 </tr>
404
405 <tr>
406 <td><a href="http://code.google.com/p/disorder/issues/detail?id=21">#21</a></td>
407 <td>CGI should use PATH_INFO more sensibly</td>
408 </tr>
409 </table>
410
411 </div>
412</div>
413
414
415<h2>Changes up to version 4.1.1</h2>
416
417<div class=section>
418
419 <p>Disobedience's &ldquo;Login&rdquo; window now works when you are logged
420 in.</p>
421
422</div>
423
424<h2>Changes up to version 4.1</h2>
425
426<div class=section>
427
428 <h3>Disobedience</h3>
429
430 <div class=section>
431
432 <p>Disobedience has been largely rewritten:</p>
433
434 <ul>
435
436 <li>All the tabs now use native GTK+ list/tree widgets, resulting in
437 greater speed in some cases and more consistency with other GTK+
438 applications.</li>
439
440 <li>You can now use type-ahead find in the choose tab. The initiation
441 of a search is delayed slightly to avoid lots of updates when you're
442 half way through entering search terms.</li>
443
444 <li>The choose tab now shows track lengths.</li>
445
446 <li>Many buttons are now more reliably made insensitive when they can't
447 be used.</li>
448
449 <li>You can now play tracks off the recent tab.</li>
450
451 </ul>
452
453 <p>Disobedience attempts to cope with servers from older versions, up to
454 a point, but this is not well tested and it's best to keep the server
455 fully up to date.</p>
456
457 </div>
458
459 <h3>Server</h3>
460
461 <div class=section>
462
463 <p>When a track shares a directory with its alias, the real track name is
464 now returned instead of the alias (the opposite way round to the previous
465 behaviour).</p>
466
467 </div>
468</div>
469
470<h2>Changes up to version 4.0.2</h2>
471
472<div class=section>
473
474 <p>Corrected web browser linked from Disobedience.</p>
475
476</div>
477
478<h2>Changes up to version 4.0.1</h2>
479
480<div class=section>
481
482 <p>Libtool and Automake now install the CGI correctly. As part of this,
483 <tt>cgidir</tt> has been renamed to <tt>cgiexecdir</tt>. The configure
484 script will report an error if you try to use the old name.</p>
485
486</div>
487
488<h2>Changes up to version 4.0</h2>
489
490<div class=section>
491
492 <h3>Server</h3>
493
494<div class=section>
495
496 <p>The <tt>gap</tt> directive will no longer work. It could be
497 restored if there is real demand.</p>
498
499 <h4>Event Scheduling</h4>
500
501<div class=section>
502
503 <p>It is now possible to schedule events to occur in the future.
504 Currently the supported actions are playing a specific track, and
505 changing a global preference (thus allowing e.g. random play to be
506 turned on or off). See the <tt>schedule-*</tt>
507 commands described in disorder(1).</p>
508
509</div>
510
511<h4>Random Track Choice</h4>
512
513<div class=section>
514
515 <p>This has been completely rewritten to support new features:</p>
516
517 <ul>
518
519 <li>tracks in the recently-played list or in the queue are no longer
520 eligible for random choice.</li>
521
522 <li>there is a new <tt>weight</tt> track preference allowing for
523 non-uniform track selection. See disorder(1) for details.</li>
524
525 <li>there is a new configuration item <tt>replay_min</tt> defining
526 the minimum time before a played track can be picked at random.
527 The default is 8 hours (which matches the earlier behaviour).</li>
528
529 <li>recently added tracks are biased up; see <tt>new_bias</tt> and
530 <tt>new_bias_age</tt> in disorder_config(5).</li>
531
532 </ul>
533
534</div>
535
536<h4>Web Interface</h4>
537
538<div class=section>
539
540 <p>This has been largely rewritten. The most immediate benefits are:</p>
541
542 <ul>
543
544 <li>the search page is integrated into the choose page, and
545 includes links to parent directories.</li>
546
547 <li>if you try to do something you have insufficient rights for,
548 instead of getting an error page or nothing happening, you are
549 redirected to the login page.</li>
550
551 </ul>
552
553 <p>Customizers should find their lives easier: the syntax is less onerous, it
554 is possible to define macros to avoid repetition, and the documentation is
555 less monolithic (see disorder.cgi(8) as a starting point).</p>
556
557 <p>Mail is now sent via the system sendmail program, though it remains
558 possible to use TCP to connect to an SMTP server. See <tt>sendmail</tt> and
559 <tt>smtp_server</tt> in disorder_config(5).</p>
560
561 <p>The web interface is now installed automatically. If you don't want it,
562 use <tt>./configure --without-cgi</tt>. If you want it in a non-default
563 location, or no location for it is detected, set <tt>cgidir</tt>
564 and <tt>httpdir</tt> on the <tt>./configure</tt> command line.</p>
565
566</div>
567
568</div>
569
570<h3>Disobedience</h3>
571
572<div class=section>
573
574 <p>There is now a new user management window. From here you can add and
575 remove users or modify their settings.</p>
576
577 <p>Relatedly, the server will only allow remote user management if you set
578 <tt>remote_userman</tt> to <tt>yes</tt>.</p>
579
580</div>
581
582<h3>Miscellaneous</h3>
583
584<div class=section>
585
586 <p><tt>scripts/setup</tt> now honors command line options, and can
587 set up network play as well as the local default sound device.</p>
588
589</div>
590
591<h3>Bugs Fixed</h3>
592
593<div class=section>
594
595 <table class=bugs>
596 <tr>
597 <th>ID</th>
598 <th>Description</th>
599 </tr>
600
601 <tr>
602 <td><a href="http://code.google.com/p/disorder/issues/detail?id=2">#2</a></td>
603 <td>Search results should link to directories</td>
604 </tr>
605
606 <tr>
607 <td><a href="http://code.google.com/p/disorder/issues/detail?id=6">#6</a></td>
608 <td>Schedule tracks for a particular time</td>
609 </tr>
610
611 <tr>
612 <td><a href="http://code.google.com/p/disorder/issues/detail?id=10">#10</a></td>
613 <td>Non-uniform track selection</td>
614 </tr>
615
616 <tr>
617 <td><a href="http://code.google.com/p/disorder/issues/detail?id=11">#11</a></td>
618 <td>Bias random selection to newly added tracks</td>
619 </tr>
620
621 <tr>
622 <td><a href="http://code.google.com/p/disorder/issues/detail?id=13">#13</a></td>
623 <td>Default encoding for debian setup scripts</td>
624 </tr>
625
626 <tr>
627 <td><a href="http://code.google.com/p/disorder/issues/detail?id=16">#16</a></td>
628 <td>Cookie expiry causes user to be silently logged out and not
629 subsequently redirected to login page</td>
630 </tr>
631
632 <tr>
633 <td><a href="http://code.google.com/p/disorder/issues/detail?id=20">#20</a></td>
634 <td>Broken aliasing rules</td>
635 </tr>
636
637 </table>
638
639</div>
640
641</div>
642
643<h2>Changes up to version 3.0.2</h2>
644
645<div class=section>
646
647 <p>Builds <tt>--without-server</tt> should work again.</p>
648
649 <p>The web interface is a bit more liberal in the cookie value
650 syntax it will accept.</p>
651
652 <p>Clients fail more gracefully if no password is available.</p>
653
654</div>
655
656<h2>Changes up to version 3.0.1</h2>
657
658<div class=section>
659
660 <p>Debian upgrades from 2.0.x should now work better.</p>
661
662</div>
663
664<h2>Changes up to version 3.0</h2>
665
666<div class=section>
667
668 <p><b>Important</b>! See <a
669 href="README.upgrades.html">README.upgrades</a> when upgrading.</p>
670
671 <h3>Platforms And Installation</h3>
672
673<div class=section>
674
675 <p>Mac OS X and FreeBSD are somewhat supported. There is now a bash
676 script in <tt>scripts/setup</tt> which will automate the setup after
677 <tt>make install</tt>.</p>
678
679</div>
680
681<h3>Server</h3>
682
683<div class=section>
684
685 <p>Users are now stored in the database rather than a configuration
686 file.</p>
687
688 <p>The server now has a built-in list of stopwords and players, so
689 only additions to these need be mentioned in the configuration file.</p>
690
691 <p>The default inter-track gap is now 0s.</p>
692
693 <p>How sound is played is now controlled via the new <tt>api</tt>
694 configuration command. This also controls how the volume is set,
695 which now works with ALSA as well as OSS.</p>
696
697 <p>A bug in the MP3 decoder was fixed (also in 2.0.4).</p>
698
699</div>
700
701<h3>Web Interface</h3>
702
703<div class=section>
704
705 <p>The web interface now uses cookies to remember user identity, and
706 allows online registration of new users. Also it is no longer
707 necessary to manually specify the URL of the web interface (but you
708 can override it if you don't like the value it figures out).</p>
709
710 <p>It is possible to allow users to register via the web interface.</p>
711
712 <p>The web interface's browser support has been improved. It has
713 been tested with Firefox 2, Safari 3, Konqueror 3, Internet Explorer
714 7 and Opera 9.</p>
715
716</div>
717
718<h3>Disobedience</h3>
719
720<div class=section>
721
722 <p>A bug which would cause a crash if you attempt to rearrange the
723 queue while no track was playing has been fixed. There is a new
724 'deselect all tracks' option, mirroring 'select all tracks.</p>
725
726</div>
727
728</div>
729
730<!--
731Local Variables:
732fill-column:79
733indent-tabs-mode:nil
734End:
735-->