Codebase list nzbget / debian/0.7.0-1 ChangeLog
debian/0.7.0-1

Tree @debian/0.7.0-1 (Download .tar.gz)

ChangeLog @debian/0.7.0-1raw · history · blame

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
nzbget-0.7.0:
  - added history: new option <KeepHistory>, new remote subcommand <H> for
    commands <L> (list history entries) and <E> (delete history entries,
    return history item, postprocess history item), new RPC-command <History>
    and subcommands <HistoryDelete>, <HistoryReturn>, <HistoryProcess> for
    command <EditQueue>;
  - added support for JSON-P (extension of JSON-RPC);
  - changed the result code returning status <ERROR> for postprocessing script
    from <1> to <94> (needed to show the proper script status in history);
  - improved the detection of new files in incoming nzb directory: now the
    scanner does not rely on system datum, but tracks the changing of file
    sizes during a last few (<NzbDirFileAge>) seconds instead;
  - improvements in example postprocessing script: 1) if download contains
    only par2-files the script do not delete them during cleanup;
    2) if download contains only nzb-files the script moves them to incoming
    nzb-directory for further download;
  - improved formatting of groups and added time info in curses output mode;
  - added second pause register, which is independent of main pause-state and
    therfore is intended for usage from external scripts;
    that allows to pause download without interfering with options
    <ParPauseQueue> and <PostPauseQueue> and scheduler tasks <PauseDownload>
    and <UnpauseDownload> - they all work with first (default) pause register;
    new subcommand <D2> for commands <--pause/-P> and <--unpause/-U>;
    new RPC-command <pausedownload2> and <resumedownload2>;
    existing RPC-commands <pause> und <resume> renamed to <pausedownload> and
    <resumedownload>;
    new field <Download2Paused> in result struct for RPC-command <status>;
    existing fields <ServerPaused> and <ParJobCount> renamed to 
    <DownloadPaused> and <PostJobCount>;
    old RPC-commands and fields still exist for compatibility;
    the status output of command <--list/-L> indicates the state of second
    pause register;
    key <P> in curses-frontend can unpause second pause-register;
  - nzbprocess-script (option <NZBProcess>) can now set category and
    post-processing parameters for nzb-file;
  - redesigned server pool and par-checker to avoid using of semaphores
    (which are very platform specific);
  - added subcommand <S> to remote commands <--pause/-P> and <--unpause/-U> to
    pause/unpause the scanning of incoming nzb-directory;
  - added commands <PauseScan> and <UnpauseScan> for scheduler option 
    <TaskX.Command>;
  - added remote commands <PauseScan> and <ResumeScan> for XML-/JSON-RPC;
  - command <pause post-processing> now not only pauses the post-processing
    queue but also pauses the current post-processing job (par-job or 
    script-job);
    however the script-job can be paused only after the next line printed to
    screen;
  - improved error reporting while parsing nzb-files;
  - added field <NZBID> to NZBInfo; the field is now returned by XML-/JSON-RPC
    methods <listfiles>, <listgroups> and <postqueue>;
  - improvements in configure script;
  - added support for platforms without IPv6 (they do not have <getaddrinfo>);
  - debug-messages generated on early stages during initializing are now
    printed to screen/log-file;
  - messages about obsolete options are now printed to screen/log-file;
  - imporved example postprocessing script: added support for external
    configuration file, postprocessing parameters and configuration via
    web-interface;
  - option <TaskX.Process> now can contain parameters which must be passed
    to the script;
  - added pausing/resuming for post-processor queue; 
    added new modifier <O> to remote commands <--pause/-P> and <--unpause/-U>;
    added new commands <postpause> and <postresume> to XML-/JSON-RPC;
    extended output of remote command <--list/-L> to indicate paused state
    of post-processor queue; extended command <status> of XML-/JSON-RPC
    with field <PostPause>;
  - changed the command line syntax for requesting of post-processor queue
    from <-O> to <-L O> for consistency with other post-queue related
    commands (<-P O>, <-U O> and <-E O>);
  - improved example post-processing script: added support for delayed
    par-check (try unrar first, par-repair if unrar failed);
  - added modifier <O> to command <-E/--edit> for editing of
    post-processor-queue;
    following subcommands are supported: <+/-offset>, <T>, <B>, <D>;
    subcommand <D> supports deletion of queued post-jobs and active job as well;
    deletion of active job means the cancelling of par-check/repair or
    terminating of post-processing-script (including child processes of the 
    script);
    updated remote-server to support new edit-subcommands in XML/JSON-RPC;
  - extended the syntax of option <TaskX.Time> in two ways: 
    1) it now accepts multiple comma-separated values;
    2) an asterix as hours-part means <every hour>;
  - added svn revision number to version string (commands <-v> and <-V>,
    startup log entry);
    svn revision is automatically read from svn-repository on each build;
  - added estimated remaining time and better distinguishing of server state
    in command <--list/-L>;
  - added new return code (93) for post-processing script to indicate
    successful processing; that results in cleaning up of download queue
    if option <ParCleanupQueue> is active;
  - added readonly options <AppBin>, <ConfigFile> and <Version> for usage
    in processing scripts (options are available as environment variables
    <NZBOP_APPBIN>, <NZBOP_CONFIGFILE> and <NZBOP_VERSION>);
  - renamed ParStatus constant <FAILED> to <FAILURE> for a consistence with
    ScriptStatus constant <FAILURE>, that also affects the results of
    RPC-command <history>;
  - added a new return code <95/POSTPROCESS_NONE> for post-processing scripts
    for cases when pp-script skips all post-processing work (typically upon
    a user's request via a pp-parameter);
    modified the example post-processing script to return the new code
    instead of a error code when a pp-parameter <PostProcess> was set to <no>;
  - added field <PostTime> to result of RPC-Command <listfiles> and fields
    <MinPostTime> and <MaxPostTime> for command <listgroups>;
  - in <curses> and <colored> output-modes the download speed is now printed
    with one decimal digit when the speed is lower than 10 KB/s;
  - improvement in example post-processing script: added check for existence
    of <unrar> and command <wc>;
  - added shell batch file for windows (nzbget-shell.bat);
    thanks to orbisvicis (orbisvicis@users.sourceforge.net) for the script;
  - added debian style init script (nzbgetd);
    thanks to orbisvicis (orbisvicis@users.sourceforge.net) for the script;
  - added the returning of a proper HTTP error code if the authorization was
    failed on RPC-calls;
    thanks to jdembski (jdembski@users.sourceforge.net) for the patch;
  - changed the sleep-time during the throttling of bandwidth from 200ms to
    10ms in order to achieve better uniformity;
  - modified example postprocessing script to not use the command <dirname>,
    which is not always available; 
    thanks to Ger Teunis for the patch;
  - improved example post-processing script: added the check for existence
    of destination directory to return a proper ERROR-code (important for
    reprocessing of history items);
  - by saving the queue to disk now using relative paths for the list of
    compeled files to reduce the file's size;
  - eliminated few compiler warnings on GCC;
  - fixed: when option <DaemonUserName> was specified and nzbget was
    started as root, the lockfile was not removed;
  - fixed: nothing was downloaded when the option <Retries> was set to <0>;
  - fixed: base64 decoding function used by RPC-method <append> sometimes
    failed, in particular when called from Ruby-language;
  - fixed: JSON-RPC-commands failed, if parameters were placed before method
    name in the request;
  - fixed: RPC-method <append> did not work properly on Posix systems
    (it worked only on Windows);
  - fixed compilation error when using native curses library on OpenSolaris;
  - fixed linking error on OpenSolaris when using GnuTLS;
  - fixed: option <ContinuePartial> did not work;
  - fixed: seg. fault in service mode on program start (Windows only);
  - fixed: environment block was not passed correctly to child process,
    what could result in seg faults (windows only);
  - fixed: returning the postprocessing exit code <92 - par-check all 
    collections> when there were no par-files results in endless calling
    of postprocessing script;
  - fixed compatibility issues with OS/2.

nzbget-0.6.0:
  - added scheduler; new options <TaskX.Time>, <TaskX.WeekDays>,
    <TaskX.Command>, <TaskX.DownloadRate> and <TaskX.Process>;
  - added support for postprocess-parameters; new subcommand <O> of remote
    command <E> to add/modify pp-parameter for group (nzb-file); new
    XML-/JSON-RPC-subcommand <GroupSetParameter> of method <editqueue> for
    the same purpose; updated example configuration file and example
    postprocess-script to indicate new method of passing arguments via
    environment variables;
  - added subcommands <F>, <G> and <S> to command line switch <-L/--list>,
    which prints list of files, groups or only status info respectively;
    extended binary communication protocol to transfer nzb-infos in addition
    to file-infos;
  - added new subcommand <M> to edit-command <E> for merging of two (or more)
    groups (useful after adding pars from a separate nzb-file);
  - added option <MergeNzb> to automatically merge nzb-files with the same
    filename (useful by adding pars from a different source);
  - added script-processing of files in incoming directory to allow automatic
    unpacking and queueing of compressed nzb-files; new option <NzbProcess>;
  - added the printing of post-process-parameters for groups in command
    <--list G>;
  - added the printing of nzbget version into the log-file on start;
  - added option <DeleteCleanupDisk> to automatically delete already downloaded
    files from disk if nzb-file was deleted from queue (the download was
    cancelled);
  - added option <ParTimeLimit> to define the max time allowed for par-repair;
  - added command <--scan/-S> to execute the scan of nzb-directory on remote
    server;
  - changed the method to pass arguments to postprocess/nzbprocess: now using
    environment variables (old method is still supported for compatibility with
    existing scripts);
  - added the passing of nzbget-options to postprocess/nzbprocess scripts as
    environment variables;
  - extended the communication between nzbget and post-process-script: 
    collections are now detected even if parcheck is disabled;
  - added support for delayed par-check/repair: post-process-script can request
    par-check/repair using special exit codes to repair current collection or
    all collections;
  - implemented the normalizing of option names and values in option list; the
    command <-p> also prints normalized names and values now; that makes the
    parsing of output of command <-p> for external scripts easier;
  - replaced option <PostLogKind> with new option <ProcessLogKind> which is now
    used by all scripts (PostProcess, NzbProcess, TaskX.Process);
  - improved entering to paused state on connection errors (do not retry failed
    downloads if pause was activated);
  - improved error reporting on decoding failures;
  - improved compatibility of yenc-decoder;
  - improved the speed of deleting of groups from download queue (by avoiding
    the saving of queue after the deleting of each individual file);
  - updated configure-script for better compatibility with FreeBSD;
  - cleaning up of download queue (option <ParCleanupQueue>) and deletion of
    source nzb-file (option <NzbCleanupDisk>) after par-repair now works also
    if par-repair was cancelled (option <ParTimeLimit>); since required
    par-files were already downloaded the repair in an external tool is
    possible;
  - added workaround to avoid hangs in child processes (by starting of
    postprocess or nzbprocess), observed on uClibC based systems;
  - fixed: TLS/SSL didn't work in standalone mode;
  - fixed compatibility issues with Mac OS X;
  - fixed: not all necessary par2-files were unpaused on first request for
    par-blocks (although harmless, because additional files were unpaused
    later anyway);
  - fixed small memory leak appeared if process-script could not be started;
  - fixed: configure-script could not detect the right syntax for function
    <ctime_r> on OpenSolaris.
  - fixed: files downloaded with disabled decoder (option decode=no) sometimes
    were malformed and could not be decoded;
  - fixed: empty string parameters did not always work in XML-RPC.

nzbget-0.5.1:
  - improved the check of server responses to prevent unnecessary retrying
    if the article does not exist on server;
  - fixed: seg.fault in standalone mode if used without specifying the
    category (e.g. without switch <-K>);
  - fixed: download speed indicator could report not-null values in
    standby-mode (when paused);
  - fixed: parameter <category> in JSON/XML-RPC was not properly decoded by
    server, making the setting of a nested category (containing slash or
    backslash character) via nzbgetweb not possible;
    
nzbget-0.5.0:
  - added TLS/SSL-support for encrypted communication with news-servers;
  - added IPv6-support for communication with news-servers as well as for
    communication between nzbget-server and nzbget-client;
  - added support for categories to organize downloaded files;
  - new option <AppendCategoryDir> to create the subdirectory for each category;
  - new switch <-K> for usage with switch <-A> to define a category during
    the adding a file to download queue;
  - new command <K> in switch <-E> to change the category of nzb-file in
    download queue; the already downloaded files are automatically moved to new
    directory if the option <AppendCategoryDir> is active;
  - new parameter <Category> in XML-/JSON-RPC-command <editqueue> to allow the
    changing of category via those protocols;
  - new parameter in a call to post-process-script with category name; 
  - scanning of subdirectories inside incoming nzb-directory to automatically 
    assign category names; nested categories are supported;
  - added option <ServerX.JoinGroup> to connect to servers, that do not accept
    <GROUP>-command;
  - added example post-process script for unraring of downloaded files
    (POSIX only);
  - added options <ParPauseQueue> and <PostPauseQueue> useful on slow CPUs;
  - added option <NzbCleanupDisk> to delete source nzb-file after successful 
    download and parcheck;
  - switch <-P> can now be used together with switches <-s> and <-D> to start
    server/daemon in paused state;
  - changed the type of messages logged in a case of connection errors from
    <DEBUG> to <ERROR> to provide better error reporting;
  - now using OS-specific line-endings in log-file and brokenlog-file: LF on 
    Posix and CRLF on Windows;
  - added detection of adjusting of system clock to correct uptime/download 
    time (for NAS-devices, that do not have internal clock and set time from
    internet after booting, while nzbget may be already running);
  - added the printing of stack on segmentation faults (if configured with 
    <--enable-debug>, POSIX only);
  - added option <DumpCore> for better debugging on Linux in a case of abnormal
    program termination;
  - fixed: configure-script could not automatically find libsigc++ on 64-bit
    systems;
  - few other small fixes; 
 
nzbget-0.4.1:
  - to avoid accidental deletion of file in curses-frontend the key <D>
    now must be pressed in uppercase;
  - options <username> and <password> in news-server's configuration are now 
    optional;
  - added the server's name to the detail-log-message, displayed on the start 
    of article's download;
  - added the option <AllowReProcess> to help to post-process-scripts, which 
    make par-check/-repair on it's own;
  - improved download-speed-meter: it uses now a little bit less cpu and
    calculates the speed for the last 30 seconds (instead of 5 seconds),
    providing better accuracy; Thanks to ydrol <ydrol@users.sourceforge.net>
    for the patch;
  - reduced CPU-usage in curses-outputmode; Thanks to ydrol for the patch 
    <ydrol@users.sourceforge.net>;
  - fixed: line-endings in windows-style (CR-LF) in config-file were not 
    read properly;
  - fixed: trailing spaces in nzb-filenames (before the file's extension) 
    caused errors on windows. Now they will be trimmed;
  - fixed: XML-RPC and JSON-RPC did not work on Big-Endian-CPUs (ARM, PPC, etc), 
    preventing the using of web-interface;
  - fixed: umask-option did not allow to enable write-permissions for <group> 
    and <others>;
  - fixed: in curses-outputmode the remote-client showed on first screen-update 
    only one item of queue;
  - fixed: edit-commands with negative offset did not work via XML-RPC 
    (but worked via JSON-RPC);
  - fixed incompatibility issues with gcc 4.3; Thanks to Paul Bredbury 
    <brebs@users.sourceforge.net> for the patch;
  - fixed: segmentation fault if a file listed in nzb-file does not have any 
    segments (articles);

nzbget-0.4.0:
  - added the support for XML-RPC and JSON-RPC to easier control the server 
    from other applications; 
  - added web-interface - it is available for download from NZBGet-project's 
    home page as a separate package "web-interface";
  - added the automatic cleaning up of the download queue (deletion of unneeded 
    paused par-files) after successful par-check/repair - new 
    option <ParCleanupQueue>;
  - added option <DetailTarget> to allow to filter the (not so important) 
    log-messages from articles' downloads (they have now the type <detail> 
    instead of <info>);
  - added the gathering of progress-information during par-check; it is 
    available via XML-RPC or JSON-RPC; it is also showed in web-interface;
  - improvements in internal decoder: added support for yEnc-files without 
    ypart-statement (sometimes used for small files); added support for 
    UU-format;
  - removed support for uulib-decoder (it did not work well anyway); 
  - replaced the option <decoder (yenc, uulib, none)> with the option 
    <decode (yes, no)>;
  - added detection of errors <server busy> and <remote server not available> 
    (special case for NNTPCache-server) to consider them as connect-errors 
    (and therefore not count as retries); 
  - added check for incomplete articles (also mostly for NNTPCache-server) to 
    differ such errors from CrcErrors (better error reporting);
  - improved error-reporting on moving of completed files from tmp- to 
    dst-directory and added code to move files across drives if renaming fails;
  - improved handling of nzb-files with multiple collections in par-checker;
  - improved the parchecker: added the detection and processing of files 
    splitted after parring;
  - added the queueing of post-process-scripts and waiting for script's 
    completion before starting of a next job in postprocessor (par-job or 
    script) to provide more balanced cpu utilization;
  - added the redirecting of post-process-script's output to log; new option 
    <PostLogKind> to specify the default message-kind for unformatted 
    log-messages;
  - added the returning of script-output by command <postqueue> via XML-RPC 
    and JSON-RPC; the script-output is also showed in web-interface;
  - added the saving and restoring of the post-processor-queue (if server was 
    stopped before all items were processed); new option <ReloadPostQueue>;
  - added new parameter to postprocess-script to indicate if any of par-jobs 
    for the same nzb-file failed;
  - added remote command (switch O/--post) to request the post-processor-queue 
    from server;
  - added remote command (switch -W/--write) to write messages to server's log;
  - added option <DiskSpace> to automatically pause the download on low disk 
    space;
  - fixed few incompatibility-issues with unslung-platform on nslu2 (ARM);
  - fixed: articles with trailing text after binary data caused the decode 
    failures and the reporting of CRC-errors;
  - fixed: dupecheck could cause seg.faults when all articles for a file failed;
  - fixed: by dupe-checking of files contained in nzb-file the files with the 
    same size were ignored (not deleted from queue);
  - updated libpar2-patch for msvc to fix a segfault in libpar2 (windows only);
  - fixed: by registering the service on windows the fullpath to nzbget.exe 
    was not always added to service's exename, making the registered service 
    unusable;
  - fixed: the pausing of a group could cause the start of post-processing for 
    that group;
  - fixed: too many info-messages <Need more N blocks> could be printed during 
    par-check (appeared on posix only);
  
nzbget-0.3.1:
  - Greatly reduced the memory consumption by keeping articles' info on disk 
    until the file download starts;
  - Implemented decode-on-the-fly-technique to reduce disk-io; downloaded
    and decoded data can also be saved directly to the destination file 
    (without any intermediate files at all); this eliminates the necessity
    of joining of articles later (option "DirectWrite");
  - Improved communication with news-servers: connections are now keeped open 
    until all files are downloaded (or server paused); this eliminates the 
    need for establishing of connections and authorizations for each 
    article and improves overal download speed;
  - Significantly better download speed is now possible on fast connection; 
    it was limited by delays on starting of new articles' downloads; 
    the synchronisation mechanism was reworked to fix this issue;
  - Download speed meter is much more accurate, especially on fast connections;
    this also means better speed throttling;
  - Speed optimisations in internal decoder (up to 25% faster);
  - CRC-calculation can be bypassed to increase performance on slow CPUs
    (option "CrcCheck");
  - Improved parsing of artcile's subject for better extracting of filename 
    part from it and implemented a fallback-option if the parsing was incorrect; 
  - Improved dupe check for files from the same nzb-request to detect reposted 
    files and download only the best from them (if option "DupeCheck" is on); 
  - Articles with incorrect CRC can be treated as "possibly recoverable errors"
    and relaunched for download (option "RetryOnCrcError"), it is useful if 
    multiple servers are available;
  - Improved error-check for downloaded articles (crc-check and check for
    received message-id) decreases the number of broken files;
  - Extensions in curses-outputmode: added group-view-mode (key "G") to show
    items in download queue as groups, where one group represents all files 
    from the same nzb-file; the editing of queue works also in group-mode 
    (for all files in this group): pause/unpause/delete/move of groups; 
  - Other extensions in curses-outputmode: key "T" toggles timestamps in log;
    added output of statistical data: uptime, download-time, average session 
    download speed;
  - Edit-command accepts more than one ID or range of IDs.
    E.g: "nzbget -E P 2,6-10,33-39"; The switch "-I" is not used anymore;
  - Move-actions in Edit-command affect files in a smart order to guarantee 
    that the relative order of files in queue is not changed after the moving;
  - Extended syntax of edit-command to edit groups (pause/unpause/delete/move 
    of groups). E.g: "nzbget -E G P 2";
  - Added option "DaemonUserName" to set the user that the daemon (POSIX only) 
    normally runs at. This allows nzbget daemon to be launched in rc.local 
    (at boot), and download items as a specific user id; Thanks to Thierry 
    MERLE <merlum@users.sourceforge.net> for the patch;
  - Added option "UMask" to specify permissions for newly created files and dirs 
    (POSIX only);
  - Communication protocol used between server and client was revised to define 
    the byte order for transferred data. This allows hosts with different 
    endianness to communicate with each other;
  - Added options "CursesNzbName", "CursesGroup" and "CursesTime" to define
    initial state of curses-outputmode;
  - Added option "UpdateInterval" to adjust update interval for Frontend-output
    (useful in remote-mode to reduce network usage);
  - Added option "WriteBufferSize" to reduce disk-io (but it could slightly 
    increase memory usage and therefore disabled by default);
  - List-command prints additional statistical info: uptime, download-time,
    total amount of downloaded data and average session download speed;
  - The creation of necessary directories on program's start was extended 
    with automatic creation of all parent directories or error reporting 
    if it was not possible;
  - Printed messages are now translated to oem-codepage to correctly print 
    filenames with non-english characters (windows only);
  - Added remote-command "-V (--serverversion)" to print the server's version;
  - Added option "ThreadLimit" to prevent program from crash if it wants to 
    create too many threads (sometimes could occur in special cases);
  - Added options "NzbDirInterval" and "NzbDirFileAge" to adjust interval and
    delay by monitoring of incoming-directory for new nzb-files;
  - Fixed error on parsing of nzb-files containing percent and other special 
    characters in their names (bug appeared on windows only);
  - Reformated sample configuration file and changed default optionnames 
    from lowercase to MixedCase for better readability; 
  - Few bugs (seg faults) were fixed.

nzbget-0.3.0:
  - The download queue now contains newsgroup-files to be downloaded instead of 
    nzb-jobs. By adding a new job, the nzb-file is immediately parsed and each 
    newsgroup-file is added to download queue. Each file can therefore be 
    managed separately (paused, deleted or moved);
  - Current queue state is saved after every change (file is completed or the 
    queue is changed - entries paused, deleted or moved). The state is saved on
    disk using internal format, which allows fast loading on next program start
    (no need to parse xml-files again);
  - The remaining download-size is updated after every article is completed to
    indicate the correct remaining size and time for total files in queue;
  - Downloaded articles, which are saved in temp-directory, can be reused on
    next program start, if the file was not completed (option "continuepartial"
    in config-file); 
  - Along with uulib the program has internal decoder for yEnc-format. This
    decoder was necessary, because uulib is so slow, that it prevents using of
    the program on not so powerful systems like linux-routers (MIPSEL CPU 200
    MHz). The new decoder is very fast. It is controlled over option "decoder" 
    in config-file;
  - The decoder can be completely disabled. In this case all downloaded articles
    are saved in unaltered form and can be joined with an external program;
    UUDeview is one of them;
  - If download of article fails, the program attempts to download it again so
    many times, what the option "retries" in config-file says. This works even
    if no servers with level higher than "0" defined. After each retry the next
    server-level is used, if there are no more levels, the program switches to
    level "0" again. The pause between retries can be set with config-option
    "retryinterval";
  - If despite of a stated connection-timeout (it can be changed via
    config-option "connectiontimeout") connection hangs, the program tries to
    cancel the connection (after "terminatetimeout" seconds). If it doesn't
    work the download thread is killed and the article will be redownloaded in
    a new thread. This ensures, that there are no long-time hanging connections
    and all articles are downloaded, when a time to rejoin file comes;
  - Automatic par-checking and repairing. Only reuired par-files are downloaded.
    The program uses libpar2 and does not require any external tools. The big
    advantage of library is, that it allows to continue par-check after new
    par-blocks were downloaded. This were not possible with external 
    par2cmdline-tool;
  - There is a daemon-mode now (command-line switch "-D" (--daemon)). In this
    mode a lock-file (default location "/tmp/nzbget.lock", can be changed via
    option "lockfile") contains PID of daemon;
  - The format of configuration-file was changed from xml to more common
    text-format. It allows also using of variables like 
    "tempdir=${MAINDIR}/tmp";
  - Any option of config-file can be overwritten via command-line switch
    "-o" (--option). This includes also the definition of servers. 
    This means that the program can now be started without a configuration-file 
    at all (all required options must be passed via command-line);
  - The command-line switches were revised. The dedicated switches to change
    options in config-file were eliminated, since any option can now be changed
    via switch "-o" (--option);
  - If the name of configuration-file was not passed via command-line the
    program search it  in following locations: "~/.nzbget", "/etc/nzbget.conf", 
    "/usr/etc/nzbget.conf", "/usr/local/etc/nzbget.conf", 
    "/opt/etc/nzbget.conf";
  - The new command-line switch "-n" (--noconfigfile) prevents the loading of
    a config-file. All required config-options must be passed via command-line
    (switch "-o" (--option));
  - To start the program in server mode either "-s" (--server) or 
    "-D" (--daemon) switch must be used. If the program started without any
    parameters it prints help-screen. There is no a dedicated switch to start
    in a standalone mode. If switches "-s" and "-D" are omitted and none of
    client-request-switches used the standalone mode is default. This usage
    of switches is more common to programs like "wget". To add a file to 
    server's download queue use switch "-A" (--append) and a name of nzb-file
    as last command-line parameter;
  - There is a new switch "-Q" (--quit) to gracefully stop server. BTW the
    SIGKIL-signal is now handled appropriately, so "killall nzbget" is also OK,
    where "killall -9 nzbget" terminates server immediately (helpful if it
    hangs, but it shouldn't);
  - With new switch "-T" (--top) the file will be added to the top of download
    queue. Use it with switch "-A" (--append);
  - The download queue can be edited via switch "-E" (--edit). It is possible
    to pause, unpause, delete and move files in queue. The IDs of file(s)
    to be affected are passed via switch "-I" (fileid), either one ID or a 
    range in a form "IDForm-IDTo". This also means, that every file in queue
    have ID now;
  - The switch "-L" (--list) prints IDs of files consequently. It prints also
    name, size, percentage of completing and state (paused or not) of each file. 
    Plus summary info: number of files, total remaining size and size of
    paused files, server state (paused or running), number of threads on 
    server, current speed limit;
  - With new switch "-G" (--log) the last N lines printed to server's 
    screen-log, can be printed on client. The max number of lines which can
    be returned from servers depends on option "logbuffersize";
  - The redesigned Frontends (known as outputmodes "loggable", "colored" and
    "curses") can connect to (remote) server and behave as if you were running
    server-instance of program itself (command-line switch "-C" (--connect)). 
    The log-output updates constantly and even all control-functions in 
    ncurses-mode works: pause/unpause server, set download rate limit, edit of
    queue (pause/unpause, delete, move entries). The number of connected 
    clients is not limited. The "outputmode" on a client can be set
    independently from server. The client-mode is especially useful if the
    server runs as a daemon;
  - The writing to log-file can be disabled via option "createlog". 
    The location of log-file controls the option "log-file";
  - Switch "-p" (--printconfig) prints the name of configuration file being
    used and all option/value-pairs, taking into account all used 
    "-o" (--option) - switches;
  - The communication protocol between server and client was optimized to
    minimize the size of transferred data. Instead of fixing the size for
    Filenames in data-structures to 512 bytes only in fact used data
    are transferred;
  - Extensions in ncurses-outputmode: scrolling in queue-list works better, 
    navigation in queue with keys Up, Down, PgUp, PgDn, Home, End. 
    Keys to move entries are "U" (move up), "N" (move down), "T" (move to top),
    "B" (move to bottom). "P" to pause/unpause file. The size, percentage 
    of completing and state (paused or not) for every file is printed. 
    The header of queue shows number of total files, number of unpaused 
    files and size for all and unpaused files. Better using of screen estate
    space  no more empty lines and separate header for status (total seven
    lines gain). The messages are printed on several lines (if they not fill
    in one line) without trimming now;
  - configure.ac-file updated to work with recent versions of autoconf/automake. 
    There are new configure-options now: "--disable-uulib" to compile the 
    program without uulib; "--disable-ncurses" to disable ncurses-support 
    (eliminates necessity of ncurses-libs), useful on embedded systems with 
    little resources; "--disable-parcheck" to compile without par-check;
  - The algorithm for parsing of nzb-files now uses XMLReader instead of 
    DOM-Parser to minimize memory usage (no mor needs to build complete DOM-tree
    in memory). Thanks to Thierry MERLE <merlum@users.sourceforge.net> for 
    the patch;
  - The log-file contains now thread-ID for all entry-types and additionally 
    for debug-entries: filename, line number and function's name of source
    code, where the message was printed. Debug-messages can be disabled in 
    config-file (option "debugtarget") like other messages;
  - The program is now compatible with windows. Project file for MS Visual 
    C++ 2005 is included. Use "nzbget -install" and "nzbget -remove" to
    install/remove NZBGet-Service. Servers and clients can run on diferrent
    operating systems;
  - Improved compatibility with POSIX systems; Tested on:
	  - Linux Debian 3.1 on x86;
	  - Linux BusyBox with uClibc on MIPSEL;
	  - PC-BSD 1.4 (based on FreeBSD 6.2) on x86;
	  - Solaris 10 on x86;
  - Many memory-leaks and thread issues were fixed;
  - The program was thoroughly worked over. Almost every line of code was
    revised.

nzbget-0.2.3
  - Fixed problem with losing connection to newsserver after too long idle time
  - Added functionality for dumping lots of debug info

nzbget-0.2.2
  - Added Florian Penzkofers fix for FreeBSD, exchanging base functionality in 
    SingleServerPool.cpp with a more elegant solution
  - Added functionality for forcing answer to reloading queue upon startup of 
    server
    + use -y option to force from command-line
	+ use "reloadqueue" option in nzbget.cfg to control behavior
  - Added nzbget.cfg options to control where info, warnings and errors get 
    directed to (either screen, log or both)
  - Added option "createbrokenfilelog" in nzbget.cfg
  
nzbget-0.2.1
  - Changed and extended the TCP client/server interface
  - Added timeout on sockets which prevents certain types of nzbget hanging
  - Added Kristian Hermansen's patch for renaming broken files

nzbget-0.2.0
  - Moved 0.1.2-alt4 to a official release as 0.2.0
  - Small fixes

nzbget-0.1.2-alt4
  - implemented tcp/ip communication between client & server (removing the 
    rather defunct System V IPC)
  - added queue editing functionality in server-mode

nzbget-0.1.2-alt1
  - added new ncurses frontend
  - added server/client-mode (using System V IPC)
  - added functionality for queueing download requests 

nzbget-0.1.2
  - performance-improvements
  - commandline-options
  - fixes

nzbget-0.1.1
  - new output
  - fixes

nzbget-0.1.0a
  - compiling-fixes

nzbget-0.1.0
  - initial release