chiark / gitweb /
Merge some more mini-Disobedience work
[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}
44
45table.bugs th {
46 text-align: left
47}
48
49span.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=48">#48</a></d>
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></d>
223 <td>Disobedience's 'When' column gets out of date</td>
224 </tr>
225
226 <tr>
227 <td>(none)</td>
228 <td>&ldquo;found track in no collection&rdquo; messages for scratches
229 are now suppressed</td>
230 </tr>
231
232 </table>
233 </div>
234 </div>
235
236<h2>Changes up to version 4.3</h2>
237
238 <div class=section>
239
240 <h3>Disobedience</h3>
241
242 <div class=section>
243
244 <p>A bug was fixed in the calculation of how much of the track had
245 played. This would lead to the counter showing incorrect values in
246 various situations.</p>
247
248 <p>Disobedience's icons have been changed to larger, more colorful
249 ones. The SVG source is included if you want to fiddle with them.</p>
250
251 <p>&ldquo;Select all&rdquo; is now no longer available in the choose
252 tab. Instead there is a new &ldquo;Select children&rdquo; option which
253 selects the file children of a single subdirectory.</p>
254
255 </div>
256
257 <h3>Server</h3>
258
259 <div class=section>
260
261 <p>The selection bias for newly added tracks was reduced by half. You
262 can put it back to the old very neophilic value with
263 &ldquo;<tt>new_bias 900000</tt>&rdquo; in the config file.</p>
264
265 <p>It is now possible to &lsquo;adopt&rsquo; randomly picked tracks.
266 Disobedience and the command-line client support this but the web
267 interface does not.</p>
268
269 <p>The default track name parsing was modified to handle filenames
270 generated by iTunes.</p>
271
272 </div>
273
274 <h3>Miscellaneous</h3>
275
276 <div class=section>
277
278 <p><tt>disorderfm</tt> now preserves directory permissions.</p>
279
280 <p>DisOrder is now licensed under <a
281 href="http://www.gnu.org/licenses/gpl-3.0.html">GPL v3</a>. The main
282 goal is to prohibit <a
283 href="http://en.wikipedia.org/wiki/Tivoization">Tivoization</a>.</p>
284
285 <p>The build system will now automatically cope with Fink's broken GTK+
286 packages. There are a number of improvements to the Debian
287 packaging.</p>
288
289 <p>DisOrder now builds on 64-bit Linux systems.</p>
290
291 <p>There are various minor fixes.</p>
292
293 </div>
294
295 <h3>Bugs fixed</h3>
296
297 <div class=section>
298
299 <table class=bugs>
300 <tr>
301 <th>ID</th>
302 <th>Description</th>
303 </tr>
304
305 <tr>
306 <td><a href="http://code.google.com/p/disorder/issues/detail?id=24">#24</a></td>
307 <td>Fails to build on ubuntu 8.10</td>
308 </tr>
309 <tr>
310 <td><a href="http://code.google.com/p/disorder/issues/detail?id=26">#26</a></td>
311 <td>Disobedience shows wrong track elapsed time after a pause</td>
312 </tr>
313 </table>
314
315 </div>
316 </div>
317
318<h2>Changes up to version 4.2</h2>
319
320<div class=section>
321
322 <h3>Disobedience</h3>
323
324 <div class=section>
325
326 <p>The login window now has a 'remote' switch. If this is turned off
327 then Disobedience will connect to a local server. Formerly it would
328 always use TCP/IP.</p>
329
330 <p>The Delete and backspace keys will now remove tracks from the queue.
331 Escape will now dismiss the properties, users or login windows and return
332 now works in the login and properties windows.</p>
333
334 </div>
335
336 <h3>Documentation</h3>
337
338 <div class=section>
339
340 <p>Track and global preferences are now described in a new
341 <b>disorder_preferences</b>(5) man page.</p>
342
343 </div>
344
345 <h3>Bugs fixed</h3>
346
347 <div class=section>
348
349 <table class=bugs>
350 <tr>
351 <th>ID</th>
352 <th>Description</th>
353 </tr>
354
355 <tr>
356 <td><a href="http://code.google.com/p/disorder/issues/detail?id=21">#21</a></td>
357 <td>CGI should use PATH_INFO more sensibly</td>
358 </tr>
359 </table>
360
361 </div>
362</div>
363
364
365<h2>Changes up to version 4.1.1</h2>
366
367<div class=section>
368
369 <p>Disobedience's &ldquo;Login&rdquo; window now works when you are logged
370 in.</p>
371
372</div>
373
374<h2>Changes up to version 4.1</h2>
375
376<div class=section>
377
378 <h3>Disobedience</h3>
379
380 <div class=section>
381
382 <p>Disobedience has been largely rewritten:</p>
383
384 <ul>
385
386 <li>All the tabs now use native GTK+ list/tree widgets, resulting in
387 greater speed in some cases and more consistency with other GTK+
388 applications.</li>
389
390 <li>You can now use type-ahead find in the choose tab. The initiation
391 of a search is delayed slightly to avoid lots of updates when you're
392 half way through entering search terms.</li>
393
394 <li>The choose tab now shows track lengths.</li>
395
396 <li>Many buttons are now more reliably made insensitive when they can't
397 be used.</li>
398
399 <li>You can now play tracks off the recent tab.</li>
400
401 </ul>
402
403 <p>Disobedience attempts to cope with servers from older versions, up to
404 a point, but this is not well tested and it's best to keep the server
405 fully up to date.</p>
406
407 </div>
408
409 <h3>Server</h3>
410
411 <div class=section>
412
413 <p>When a track shares a directory with its alias, the real track name is
414 now returned instead of the alias (the opposite way round to the previous
415 behaviour).</p>
416
417 </div>
418</div>
419
420<h2>Changes up to version 4.0.2</h2>
421
422<div class=section>
423
424 <p>Corrected web browser linked from Disobedience.</p>
425
426</div>
427
428<h2>Changes up to version 4.0.1</h2>
429
430<div class=section>
431
432 <p>Libtool and Automake now install the CGI correctly. As part of this,
433 <tt>cgidir</tt> has been renamed to <tt>cgiexecdir</tt>. The configure
434 script will report an error if you try to use the old name.</p>
435
436</div>
437
438<h2>Changes up to version 4.0</h2>
439
440<div class=section>
441
442 <h3>Server</h3>
443
444<div class=section>
445
446 <p>The <tt>gap</tt> directive will no longer work. It could be
447 restored if there is real demand.</p>
448
449 <h4>Event Scheduling</h4>
450
451<div class=section>
452
453 <p>It is now possible to schedule events to occur in the future.
454 Currently the supported actions are playing a specific track, and
455 changing a global preference (thus allowing e.g. random play to be
456 turned on or off). See the <tt>schedule-*</tt>
457 commands described in disorder(1).</p>
458
459</div>
460
461<h4>Random Track Choice</h4>
462
463<div class=section>
464
465 <p>This has been completely rewritten to support new features:</p>
466
467 <ul>
468
469 <li>tracks in the recently-played list or in the queue are no longer
470 eligible for random choice.</li>
471
472 <li>there is a new <tt>weight</tt> track preference allowing for
473 non-uniform track selection. See disorder(1) for details.</li>
474
475 <li>there is a new configuration item <tt>replay_min</tt> defining
476 the minimum time before a played track can be picked at random.
477 The default is 8 hours (which matches the earlier behaviour).</li>
478
479 <li>recently added tracks are biased up; see <tt>new_bias</tt> and
480 <tt>new_bias_age</tt> in disorder_config(5).</li>
481
482 </ul>
483
484</div>
485
486<h4>Web Interface</h4>
487
488<div class=section>
489
490 <p>This has been largely rewritten. The most immediate benefits are:</p>
491
492 <ul>
493
494 <li>the search page is integrated into the choose page, and
495 includes links to parent directories.</li>
496
497 <li>if you try to do something you have insufficient rights for,
498 instead of getting an error page or nothing happening, you are
499 redirected to the login page.</li>
500
501 </ul>
502
503 <p>Customizers should find their lives easier: the syntax is less onerous, it
504 is possible to define macros to avoid repetition, and the documentation is
505 less monolithic (see disorder.cgi(8) as a starting point).</p>
506
507 <p>Mail is now sent via the system sendmail program, though it remains
508 possible to use TCP to connect to an SMTP server. See <tt>sendmail</tt> and
509 <tt>smtp_server</tt> in disorder_config(5).</p>
510
511 <p>The web interface is now installed automatically. If you don't want it,
512 use <tt>./configure --without-cgi</tt>. If you want it in a non-default
513 location, or no location for it is detected, set <tt>cgidir</tt>
514 and <tt>httpdir</tt> on the <tt>./configure</tt> command line.</p>
515
516</div>
517
518</div>
519
520<h3>Disobedience</h3>
521
522<div class=section>
523
524 <p>There is now a new user management window. From here you can add and
525 remove users or modify their settings.</p>
526
527 <p>Relatedly, the server will only allow remote user management if you set
528 <tt>remote_userman</tt> to <tt>yes</tt>.</p>
529
530</div>
531
532<h3>Miscellaneous</h3>
533
534<div class=section>
535
536 <p><tt>scripts/setup</tt> now honors command line options, and can
537 set up network play as well as the local default sound device.</p>
538
539</div>
540
541<h3>Bugs Fixed</h3>
542
543<div class=section>
544
545 <table class=bugs>
546 <tr>
547 <th>ID</th>
548 <th>Description</th>
549 </tr>
550
551 <tr>
552 <td><a href="http://code.google.com/p/disorder/issues/detail?id=2">#2</a></td>
553 <td>Search results should link to directories</td>
554 </tr>
555
556 <tr>
557 <td><a href="http://code.google.com/p/disorder/issues/detail?id=6">#6</a></td>
558 <td>Schedule tracks for a particular time</td>
559 </tr>
560
561 <tr>
562 <td><a href="http://code.google.com/p/disorder/issues/detail?id=10">#10</a></td>
563 <td>Non-uniform track selection</td>
564 </tr>
565
566 <tr>
567 <td><a href="http://code.google.com/p/disorder/issues/detail?id=11">#11</a></td>
568 <td>Bias random selection to newly added tracks</td>
569 </tr>
570
571 <tr>
572 <td><a href="http://code.google.com/p/disorder/issues/detail?id=13">#13</a></td>
573 <td>Default encoding for debian setup scripts</td>
574 </tr>
575
576 <tr>
577 <td><a href="http://code.google.com/p/disorder/issues/detail?id=16">#16</a></td>
578 <td>Cookie expiry causes user to be silently logged out and not
579 subsequently redirected to login page</td>
580 </tr>
581
582 <tr>
583 <td><a href="http://code.google.com/p/disorder/issues/detail?id=20">#20</a></td>
584 <td>Broken aliasing rules</td>
585 </tr>
586
587 </table>
588
589</div>
590
591</div>
592
593<h2>Changes up to version 3.0.2</h2>
594
595<div class=section>
596
597 <p>Builds <tt>--without-server</tt> should work again.</p>
598
599 <p>The web interface is a bit more liberal in the cookie value
600 syntax it will accept.</p>
601
602 <p>Clients fail more gracefully if no password is available.</p>
603
604</div>
605
606<h2>Changes up to version 3.0.1</h2>
607
608<div class=section>
609
610 <p>Debian upgrades from 2.0.x should now work better.</p>
611
612</div>
613
614<h2>Changes up to version 3.0</h2>
615
616<div class=section>
617
618 <p><b>Important</b>! See <a
619 href="README.upgrades">README.upgrades</a> when upgrading.</p>
620
621 <h3>Platforms And Installation</h3>
622
623<div class=section>
624
625 <p>Mac OS X and FreeBSD are somewhat supported. There is now a bash
626 script in <tt>scripts/setup</tt> which will automate the setup after
627 <tt>make install</tt>.</p>
628
629</div>
630
631<h3>Server</h3>
632
633<div class=section>
634
635 <p>Users are now stored in the database rather than a configuration
636 file.</p>
637
638 <p>The server now has a built-in list of stopwords and players, so
639 only additions to these need be mentioned in the configuration file.</p>
640
641 <p>The default inter-track gap is now 0s.</p>
642
643 <p>How sound is played is now controlled via the new <tt>api</tt>
644 configuration command. This also controls how the volume is set,
645 which now works with ALSA as well as OSS.</p>
646
647 <p>A bug in the MP3 decoder was fixed (also in 2.0.4).</p>
648
649</div>
650
651<h3>Web Interface</h3>
652
653<div class=section>
654
655 <p>The web interface now uses cookies to remember user identity, and
656 allows online registration of new users. Also it is no longer
657 necessary to manually specify the URL of the web interface (but you
658 can override it if you don't like the value it figures out).</p>
659
660 <p>It is possible to allow users to register via the web interface.</p>
661
662 <p>The web interface's browser support has been improved. It has
663 been tested with Firefox 2, Safari 3, Konqueror 3, Internet Explorer
664 7 and Opera 9.</p>
665
666</div>
667
668<h3>Disobedience</h3>
669
670<div class=section>
671
672 <p>A bug which would cause a crash if you attempt to rearrange the
673 queue while no track was playing has been fixed. There is a new
674 'deselect all tracks' option, mirroring 'select all tracks.</p>
675
676</div>
677
678</div>
679
680<!--
681Local Variables:
682fill-column:79
683indent-tabs-mode:nil
684End:
685-->