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