chiark / gitweb /
Merge commit 'ad0c0f361be0'
[disorder] / CHANGES.html
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
15 href="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 <!--
731 Local Variables:
732 fill-column:79
733 indent-tabs-mode:nil
734 End:
735 -->