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