chiark / gitweb /
Merge some more mini-Disobedience work
[disorder] / CHANGES.html
CommitLineData
b0a578cb
RK
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
d8b95785
RK
58<p>This file documents recent user-visible changes to <a
59 href="http://www.greenend.org.uk/rjk/disorder/">DisOrder</a>.</p>
60
64360021 61<h2>Changes up to version 5.0</h2>
f5fd9a6b
RK
62
63 <div class=section>
64
f207f710
RK
65 <h3>Server</h3>
66
f5fd9a6b
RK
67 <div class=section>
68
fe33cfc0 69 <p>The <tt>device</tt> configuration option now works under OS X.
7cd4dd21 70 Devices may
f207f710 71 be specified either by UID or name. Fixes <a
f5fd9a6b
RK
72 href="http://code.google.com/p/disorder/issues/detail?id=27">Issue
73 27</a>.</p>
f207f710 74
f71fc3ab 75 <p>Gapless play should be more reliable, and playback latency over RTP
6762ac8a 76 should be a bit lower. Note though that all the sound output code has
f71fc3ab 77 been reorganized and in some cases completely rewritten, so it's possible
900fa0b8
RK
78 that bugs may have been (re-)introduced. Decoding of scratches is also
79 initiated ahead of time, giving more reliable playback.</p>
7cd4dd21
RK
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>
c3feb35b
RK
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
317dc3e8
RK
86 <a href="http://sox.sourceforge.net/">SoX</a>. SoX support will be
87 removed in a future version.</p>
c3feb35b 88
79ab6bd2
RK
89 <p>Playlists are now supported. These allow a collection of tracks to be
90 prepared offline and played as a unit.</p>
91
7cd4dd21
RK
92 </div>
93
6a7eb118
RK
94 <h3>Disobedience</h3>
95
96 <div class=section>
97
69c456f3
RK
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>
6a7eb118 102
79ab6bd2
RK
103 <p>Disobedience now supports playlist editing.</p>
104
67b1beae
RK
105 <p>Disobedience has a <a href="disobedience/manual/index.html">new
106 manual</a>.</p>
107
6a7eb118
RK
108 </div>
109
7cd4dd21
RK
110 <h3>Web Interface</h3>
111
112 <div class=section>
53710d44 113
7cd4dd21
RK
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
f207f710
RK
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>
f5fd9a6b
RK
130
131 </div>
7cd4dd21
RK
132
133 <h3>General</h3>
f5fd9a6b 134
7cd4dd21
RK
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
2cb9bc5f
RK
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
7cd4dd21
RK
146 <p>Various elements of the source code have been
147 rationalized.</p>
148
149 </div>
150
f5fd9a6b
RK
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>
417ef7de
RK
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
f5fd9a6b
RK
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
bbaed9ec
RK
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
7cd4dd21
RK
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>
6762ac8a
RK
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
93379b3d
RK
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
6762ac8a
RK
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>
fa667301
RK
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
e03df0a5
RK
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
900fa0b8
RK
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
f5fd9a6b 232 </table>
f5fd9a6b
RK
233 </div>
234 </div>
235
a0e78d96 236<h2>Changes up to version 4.3</h2>
d8b95785
RK
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
e02f9807
RK
245 played. This would lead to the counter showing incorrect values in
246 various situations.</p>
d8b95785
RK
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
a0e78d96
RK
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
d8b95785
RK
255 </div>
256
6151ae7e
RK
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
ff45af7c
RK
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
e02f9807
RK
269 <p>The default track name parsing was modified to handle filenames
270 generated by iTunes.</p>
271
6151ae7e
RK
272 </div>
273
10a6c925 274 <h3>Miscellaneous</h3>
d8b95785
RK
275
276 <div class=section>
277
10a6c925
RK
278 <p><tt>disorderfm</tt> now preserves directory permissions.</p>
279
e7eb3a27
RK
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
d8b95785 285 <p>The build system will now automatically cope with Fink's broken GTK+
e02f9807
RK
286 packages. There are a number of improvements to the Debian
287 packaging.</p>
d8b95785 288
74cfbeaa
RK
289 <p>DisOrder now builds on 64-bit Linux systems.</p>
290
e02f9807 291 <p>There are various minor fixes.</p>
d8b95785
RK
292
293 </div>
294
e02f9807
RK
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>
d8b95785 316 </div>
b0a578cb 317
eb2a1fe9
RK
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>
cc5b0a8e
RK
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>
eb2a1fe9
RK
362</div>
363
364
68210888
RK
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
452ad6ba
RK
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>
30f2f8c9
RK
398
399 <li>You can now play tracks off the recent tab.</li>
400
452ad6ba
RK
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
32918782
RK
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
f03d4184
RK
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
0ba75c7f 438<h2>Changes up to version 4.0</h2>
b0a578cb
RK
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
2eee4b0c
RK
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>
4cbafe13 510
64ac73bb
RK
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>
2eee4b0c 515
b0a578cb
RK
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
4cbafe13 683indent-tabs-mode:nil
b0a578cb
RK
684End:
685-->