chiark / gitweb /
Merge minimode improvements and a Disobedience bugfix
[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 215
d53ef367
RK
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
fa667301
RK
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
e03df0a5
RK
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
900fa0b8
RK
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
f5fd9a6b 237 </table>
f5fd9a6b
RK
238 </div>
239 </div>
240
a0e78d96 241<h2>Changes up to version 4.3</h2>
d8b95785
RK
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
e02f9807
RK
250 played. This would lead to the counter showing incorrect values in
251 various situations.</p>
d8b95785
RK
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
a0e78d96
RK
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
d8b95785
RK
260 </div>
261
6151ae7e
RK
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
ff45af7c
RK
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
e02f9807
RK
274 <p>The default track name parsing was modified to handle filenames
275 generated by iTunes.</p>
276
6151ae7e
RK
277 </div>
278
10a6c925 279 <h3>Miscellaneous</h3>
d8b95785
RK
280
281 <div class=section>
282
10a6c925
RK
283 <p><tt>disorderfm</tt> now preserves directory permissions.</p>
284
e7eb3a27
RK
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
d8b95785 290 <p>The build system will now automatically cope with Fink's broken GTK+
e02f9807
RK
291 packages. There are a number of improvements to the Debian
292 packaging.</p>
d8b95785 293
74cfbeaa
RK
294 <p>DisOrder now builds on 64-bit Linux systems.</p>
295
e02f9807 296 <p>There are various minor fixes.</p>
d8b95785
RK
297
298 </div>
299
e02f9807
RK
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>
d8b95785 321 </div>
b0a578cb 322
eb2a1fe9
RK
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>
cc5b0a8e
RK
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>
eb2a1fe9
RK
367</div>
368
369
68210888
RK
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
452ad6ba
RK
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>
30f2f8c9
RK
403
404 <li>You can now play tracks off the recent tab.</li>
405
452ad6ba
RK
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
32918782
RK
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
f03d4184
RK
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
0ba75c7f 443<h2>Changes up to version 4.0</h2>
b0a578cb
RK
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
2eee4b0c
RK
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>
4cbafe13 515
64ac73bb
RK
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>
2eee4b0c 520
b0a578cb
RK
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<!--
686Local Variables:
687fill-column:79
4cbafe13 688indent-tabs-mode:nil
b0a578cb
RK
689End:
690-->