chiark / gitweb /
SECURITY: server: don't allow local connections to adduser/deluser.
[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 {
37e94d5c
RK
42 width: 100%;
43 font-size: 12pt;
44 border-collapse: collapse;
45 border:1px
b0a578cb
RK
46}
47
48table.bugs th {
37e94d5c
RK
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
b0a578cb
RK
57}
58
59span.command {
60 font-family: monospace
61}
62</style>
63</head>
64
65<body>
66<h1>DisOrder Change History</h1>
67
d8b95785
RK
68<p>This file documents recent user-visible changes to <a
69 href="http://www.greenend.org.uk/rjk/disorder/">DisOrder</a>.</p>
70
06bedf43
RK
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
9b68b94f
RK
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
64360021 93<h2>Changes up to version 5.0</h2>
f5fd9a6b
RK
94
95 <div class=section>
96
f207f710
RK
97 <h3>Server</h3>
98
f5fd9a6b
RK
99 <div class=section>
100
fe33cfc0 101 <p>The <tt>device</tt> configuration option now works under OS X.
7cd4dd21 102 Devices may
f207f710 103 be specified either by UID or name. Fixes <a
f5fd9a6b
RK
104 href="http://code.google.com/p/disorder/issues/detail?id=27">Issue
105 27</a>.</p>
f207f710 106
f71fc3ab 107 <p>Gapless play should be more reliable, and playback latency over RTP
6762ac8a 108 should be a bit lower. Note though that all the sound output code has
f71fc3ab 109 been reorganized and in some cases completely rewritten, so it's possible
900fa0b8
RK
110 that bugs may have been (re-)introduced. Decoding of scratches is also
111 initiated ahead of time, giving more reliable playback.</p>
7cd4dd21
RK
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>
c3feb35b
RK
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
317dc3e8
RK
118 <a href="http://sox.sourceforge.net/">SoX</a>. SoX support will be
119 removed in a future version.</p>
c3feb35b 120
6a213ecb
RK
121 <p>The libao plugin has been removed, because the plugin API is not
122 usable in libao 1.0.0.</p>
86541f5a 123
79ab6bd2
RK
124 <p>Playlists are now supported. These allow a collection of tracks to be
125 prepared offline and played as a unit.</p>
126
7cd4dd21
RK
127 </div>
128
6a7eb118
RK
129 <h3>Disobedience</h3>
130
131 <div class=section>
132
69c456f3
RK
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>
6a7eb118 137
c2f51940
RK
138 <p>Disobedience now supports playlist editing and has a compact mode,
139 available from the <b>Control</b> menu.</p>
79ab6bd2 140
67b1beae
RK
141 <p>Disobedience has a <a href="disobedience/manual/index.html">new
142 manual</a>.</p>
143
6a7eb118
RK
144 </div>
145
7cd4dd21
RK
146 <h3>Web Interface</h3>
147
148 <div class=section>
53710d44 149
7cd4dd21
RK
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>
533272be 153
f207f710
RK
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>
f5fd9a6b
RK
166
167 </div>
7cd4dd21
RK
168
169 <h3>General</h3>
f5fd9a6b 170
7cd4dd21
RK
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
2cb9bc5f
RK
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
7cd4dd21
RK
182 <p>Various elements of the source code have been
183 rationalized.</p>
184
185 </div>
186
f5fd9a6b
RK
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>
417ef7de
RK
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
f5fd9a6b
RK
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
7cd4dd21 207 <tr>
548c9cba
RK
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>
bbaed9ec
RK
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>
7cd4dd21
RK
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>
6762ac8a
RK
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>
93379b3d
RK
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>
6762ac8a
RK
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>
fa667301
RK
256
257 <tr>
d53ef367
RK
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>
fa667301
RK
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
e03df0a5
RK
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
900fa0b8 272 <tr>
de38ab9b
RK
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>
900fa0b8
RK
278 <td>(none)</td>
279 <td>&ldquo;found track in no collection&rdquo; messages for scratches
280 are now suppressed</td>
281 </tr>
282
37e94d5c
RK
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
f5fd9a6b 289 </table>
f5fd9a6b
RK
290 </div>
291 </div>
292
a0e78d96 293<h2>Changes up to version 4.3</h2>
d8b95785
RK
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
e02f9807
RK
302 played. This would lead to the counter showing incorrect values in
303 various situations.</p>
d8b95785
RK
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
a0e78d96
RK
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
d8b95785
RK
312 </div>
313
6151ae7e
RK
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
ff45af7c
RK
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
e02f9807
RK
326 <p>The default track name parsing was modified to handle filenames
327 generated by iTunes.</p>
328
6151ae7e
RK
329 </div>
330
10a6c925 331 <h3>Miscellaneous</h3>
d8b95785
RK
332
333 <div class=section>
334
10a6c925
RK
335 <p><tt>disorderfm</tt> now preserves directory permissions.</p>
336
e7eb3a27
RK
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
d8b95785 342 <p>The build system will now automatically cope with Fink's broken GTK+
e02f9807
RK
343 packages. There are a number of improvements to the Debian
344 packaging.</p>
d8b95785 345
74cfbeaa
RK
346 <p>DisOrder now builds on 64-bit Linux systems.</p>
347
e02f9807 348 <p>There are various minor fixes.</p>
d8b95785
RK
349
350 </div>
351
e02f9807
RK
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>
d8b95785 373 </div>
b0a578cb 374
eb2a1fe9
RK
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>
cc5b0a8e
RK
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>
eb2a1fe9
RK
419</div>
420
421
68210888
RK
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
452ad6ba
RK
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>
30f2f8c9
RK
455
456 <li>You can now play tracks off the recent tab.</li>
457
452ad6ba
RK
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
32918782
RK
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
f03d4184
RK
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
0ba75c7f 495<h2>Changes up to version 4.0</h2>
b0a578cb
RK
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
2eee4b0c
RK
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>
4cbafe13 567
64ac73bb
RK
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>
2eee4b0c 572
b0a578cb
RK
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<!--
738Local Variables:
739fill-column:79
4cbafe13 740indent-tabs-mode:nil
b0a578cb
RK
741End:
742-->