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