chiark / gitweb /
Consistency check for finished tracks.
[disorder] / CHANGES.html
... / ...
CommitLineData
1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2<html>
3<head>
4<title>DisOrder Change History</title>
5<style type="text/css">
6body {
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
15div.section {
16 margin-left:1em
17}
18
19h1 {
20 background-color: #e0ffe0;
21 font-family: helvetica,sans-serif;
22 padding: 0.2em
23}
24
25h2 {
26 background-color: #e0ffe0;
27 font-family: helvetica,sans-serif;
28 padding: 0.2em
29}
30
31h3 {
32 background-color: #f0f0f0;
33 font-family: helvetica,sans-serif;
34 padding: 0.2em
35}
36
37h4 {
38 font-family: helvetica,sans-serif
39}
40
41table.bugs {
42 width: 100%;
43 font-size: 12pt;
44 border-collapse: collapse;
45 border:1px
46}
47
48table.bugs th {
49 text-align: left;
50 border: 1px solid black;
51 background-color: black;
52 color: white
53}
54
55table.bugs td {
56 border: 1px solid
57}
58
59span.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<!--
746Local Variables:
747fill-column:79
748indent-tabs-mode:nil
749End:
750-->