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