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