* fixed typo in ChangeLog
[BackupPC.git] / ChangeLog
1 #========================================================================
2 #
3 # ChangeLog - change log for BackupPC.
4 #
5 # DESCRIPTION
6 #   Revision history for BackupPC, detailing significant changes between
7 #   versions, most recent first.
8 #
9 # AUTHOR
10 #   Craig Barratt  <cbarratt@users.sourceforge.net>
11 #
12 #========================================================================
13 #
14 # Version __VERSION__, released __RELEASEDATE__.
15 #
16 # See http://backuppc.sourceforge.net.
17 #
18 #========================================================================
19
20 #------------------------------------------------------------------------
21 # Version __VERSION__, __RELEASEDATE__
22 #------------------------------------------------------------------------
23
24 * Fixed FTP xfer method, with help from Holger Parplies and
25   Mirco Piccin.  FTP restores are still not supported.
26
27 * Fixed bug in BackupPC_sendEmail where a user only receives
28   email about one host.
29
30 * Fixed bug where top-level attrib file was linked into the pool with
31   the wrong digest, caused by it being updated multiple times with
32   multiple shares.  Reported by Jeff Kosowsky who also supplied a
33   patch.
34
35 * Fixed bug in blackout calculation when multiple periods span midnight.
36   Report and patch from Joachim Falk.
37
38 * Wrapped eval {} around attribute unpacking to make it more robust
39   to data corruption.  Path submitted by Tim Connors.
40
41 * Ignore fileType 8 and 9 in BackupPC_tarCreate rather than consider then
42   errors.  These are sockets and unknown (eg: solaris door) files that
43   are created dynamicaly by applications - there is no meaningful restore
44   for these file types.
45
46 * Changed lib/BackupPC/Lib.pm and lib/BackupPC/Storage/Text.pm based on
47   patches from Davide Brini and Holger Parplies so that main config
48   %Conf values are available in the host config file, allowing more
49   flexibility in perl expressions in the config files.  Users beware,
50   since the CGI editor won't work correctly if the config file have
51   perl expressions.
52
53 * Obscure password values in LOG file when CGI editor is used to change
54   values.  Proposed by Steve Ling.
55
56 * Added favicon.ico from Axel Beckert.  Thanks to Tyler Wagner for submitting
57   another version and reminding me about the first.
58
59 * Replace "sort(HostSortCompare keys(%$Hosts))" with "sort HostSortCompare keys(%$Hosts)"
60   in bin/BackupPC to avoid an error with certain versions of perl.
61
62 * Fixed $Conf{XX} links in the BackupPC.html and the CGI editor so they
63   correctly reference the definition.
64
65 * Support ${VAR} style variable substitution in commands, in addition to
66   existing $VAR style.  Suggested by Jeffrey Kosowsky.
67
68 * Clarified usage of -b and -w options to BackupPC_tarCreate.  Submitted by
69   Michael Selway.
70
71 * Repaired Unable_to_connect_to_BackupPC_server Lang string and added new
72   string Unable_to_connect_to_BackupPC_server_error_message.  Proposed and
73   explained by Holger Parplies.
74
75 * Added 'use utf8' to lib/BackupPC/Lang/pl.pm.  Reported by Michal Sawicz.
76
77 * Minor updates to lib/BackupPC/Lang/fr.pm from Hubert Tournier.
78
79 * Minor update to lib/BackupPC/Lang/en.pm from David Relson.
80
81 #------------------------------------------------------------------------
82 # Version 3.2.0beta0, 5 April 2009
83 #------------------------------------------------------------------------
84
85 * Added BackupPC::Xfer::Protocol as a common class for each Xfer
86   method.  This simplifies some of the xfer specific code.
87   Implemented by Paul Mantz.
88
89 * Added FTP xfer method, implemented by Paul Mantz.
90
91 * Added BackupPC::Xfer module to provide a common interface to the
92   different xfer methods.  Implemented by Paul Mantz.
93
94 * Moved setting of $bpc->{PoolDir} and $bpc->{CPoolDir} after the
95   config file is read in BackupPC::Lib.  Fix proposed by Tim Taylor
96   and Joe Krahn, and rediscovered by several others including
97   Holger Parplies.
98
99 * Create $TopDir and related data directories in BackupPC_dump
100   prior to hardlink test.  Requested by Les Stott.
101
102 * Fixed encoding of email subject header in bin/BackupPC_sendEmail as
103   suggested by Jean-Claude Repetto.  Also changed $Conf{EMailHeaders}
104   charset to utf-8.  Also changed bin/BackupPC_sendEmail to not send
105   any per-client email if $Conf{BackupsDisable} is set.
106
107 * Modified bin/BackupPC_dump to fix the case of a single partial
108   backup followed by a successful incremental resulting in a full
109   backup of level 1, rather than level 0.  Reported by Jeff
110   Kosowsky.
111
112 * Fixed BackupPC::PoolWrite to always create the parent directory.
113   This fixed a case with rsync/rsyncd where a file like "-i" in the
114   top-level directory sorts before ".", which meant the directory
115   creation is after the file creation.  Also PoolWrite errors now
116   increment xferError count.  Reported by Jeff Kosowsky.
117
118 * BackupPC now gives a more useful error message if BackupPC_nightly
119   takes more than 24 hours (ie: when the next one is meant to
120   start).  Reported by Tony Schreiner.
121
122 * Fixed IO::Dirent run-time check.  Reported by Bernhard Ott and Tino Schwarze
123   debugged it.
124
125 * Added more options to server backup command: rather than just forcing
126   an incremental or full backup, a regular (auto) backup can be queued
127   (ie: do nothing/incr/full based on schedule), as well as doing just
128   an incremental or full or nothing based on the client schedule.
129   Based on patches submitted by Joe Digilio.
130
131 * Modified lib/BackupPC/CGI/RSS.pm to replace \n with \r\n in the RSS
132   http response headers.  Patch submitted by Thomas Eckhardt.
133
134 * Modified bin/BackupPC_archive to allow the archive request file
135   name to contain spaces and dashes, requested by Tim Massey.
136
137 * Fix to configure.pl for --no-fhs case to initialize ConfigDir
138   from Dan Pritts.  Also changed perl path to #!/usr/bin/env perl.
139
140 * Modified bin/BackupPC_archiveHost to shell escape the output file
141   name.  That allows it to contain spaces and other special characters.
142   Requested by Toni Van Remortel.  Also updated bin/BackupPC_archiveHost
143   to shell escape and check other arguments.
144
145 * Added $Conf{CmdQueueNice} to specify nice level for command queue
146   commands (eg: BackupPC_link and BackupPC_nightly).  Suggested by
147   Carl Soderstrom.
148
149 * Added --config-override to configure.pl, allow config settings to be
150   set on the command line.  Proposed by Les Stott and Holger Parplies.
151
152 * Moved call to NmbLookupFindHostCmd in BackupPC_dump to after the
153   check of whether a backup needs to be done.  This makes wakeonlan
154   work correctly, rather than waking up the client every WakeupSchedule.
155   Reported by David Lasker.
156
157 * Improved settings for compression and compext in BackupPC_archiveStart
158   based on compression type, as proposed by Paul Dugas.  compext is now
159   empty, .gz or .bz2 based on ArchiveComp.
160
161 * Changed bin/BackupPC_dump to not ping or lookup the host if
162   $Conf{BackupsDisable} is set.  Requested by John Rouillard.
163
164 * Changed BackupPC_tarCreate to disable output of final nulls in
165   tar archive when -l or -L option is used.  Reported by John
166   Rouillard.
167
168 * Added error check in BackupPC::Xfer::RsyncFileIO after call to
169   BackupPC::Xfer::RsyncDigest->digestStart(), reported by Jeff
170   Kosowsky.
171
172 * Added variable substitution for host, confDir, client in
173   RsyncArgs, and also added option RsyncArgsExtra to allow
174   more easy customization of RsyncArgs on a per-client basis.
175   Proposed (with patch) by Raman Gupta.
176
177 * Added Xfer error column to the host summary table in the CGI
178   interface.  Based on patch submitted by Jan Kratochvíl.
179
180 * Minor fix to sprintf arguments in BackupPC::Attrib, reported by
181   Jonathan Kamens.
182
183 * Fixed sort compareLOGName syntax in bin/BackupPC for perl 5.10.x,
184   reported by Jeff Kosowsky and Holger Parplies.
185
186 * Fixed bin/BackupPC_archiveStart to set compression correctly,
187   and also set the file extension to .gz when compression is on.
188   Reported by Stephen Vaughan.
189
190 * Fixed netbios name comparison in bin/BackupPC_dump and
191   bin/BackupPC_restore to just use the first 15 characters
192   of the host name.  Patch from Dan MacNeil.
193
194 * Fixed nmblookup parsing in BackupPC::Lib::NetBiosInfoGet to ignore
195   entries with the <GROUP> tag.  Based on patch from Dan MacNeil.
196
197 * Fixed BackupPC_dump so that the XferLOG file is saved when
198   DumpPreUserCmd fails.  Reported by John Rouillard.
199
200 * Updated BackupPC.pod for $Conf{BackupsDisable}, reported by
201   Nils Breunese.
202
203 * Added alternate freebsd-backuppc2 init.d script that is
204   more compact.  Submitted by Dan Niles.
205
206 * Minor updates to lib/BackupPC/Lang/fr.pm from Nicolas STRANSKY
207   applied by GFK, and also from Vincent Fleuranceau.
208
209 * Minor updates to lib/BackupPC/Lang/de.pm from Klaus Weidenbach.
210
211 * Updates to makeDist for command-line setting of version and
212   release date from Paul Mantz.
213
214 * Add output from Pre/Post commands to per-client LOG file, in addition
215   to existing output in the XferLOG file.  Patch from Stuart Teasdale.
216
217 * lib/BackupPC/Xfer/Smb.pm now increments xferErrCnt on
218   NT_STATUS_ACCESS_DENIED and ERRnoaccess errors from smbclient.
219   Reported by Jesús Martel.
220
221 * Removed BackupPC_compressPool and BackupPC::Xfer::BackupPCd.
222
223 #------------------------------------------------------------------------
224 # Version 3.1.0, 25 Nov 2007
225 #------------------------------------------------------------------------
226
227 * Fixed config editor bug for case where override is unchecked on
228   an array where the current array is shorter than the main config's
229   array.
230
231 * Fixed missing close quote in BackupPC_archiveHost reported by Franky
232   Van Liedekerke.
233
234 * Replaced "$BinDir/.." with $bpc->InstallDir() for path to BackupPC
235   docs, mentioned by Kenneth Porter.
236
237 * Moved default of $Conf{IncrLevels} from lib/BackupPC/Storage/Text.pm
238   to lib/BackupPC/Lib.pm (after the merge of the config files).  This
239   fixes a bug that caused $Conf{IncrLevels} to get over-ridden if it
240   was only defined in the main config file. Reported by John Rouillard.
241
242 * Fixed the completion status message in BackupPC_dump so that missing
243   error counts appear as 0, rather than empty.  Reported by Bill.
244
245 * Changed lib/BackupPC/Xfer/RsyncFileIO.pm to only increment the error
246   count when the md4 checksum fails on the second phase, not the first.
247   Reported by Adrian Bridgett.
248
249 * Updated a comment in config.pl about BackupPC_nightly, reported by
250   Dan Pritts.
251
252 * Modified lib/BackupPC/CGI/Restore.pm to ensure that the list of hosts
253   presented for direct restore do have direct restore enabled.  Reported
254   by Stephen Joyce.
255
256 * Modified lib/BackupPC/CGI/RestoreFile.pm to replace \n with \r\n in
257   the restore http response headers.  Patch submitted by Thomas Eckhardt.
258
259 #------------------------------------------------------------------------
260 # Version 3.1.0beta1, 21 Oct 2007
261 #------------------------------------------------------------------------
262
263 * When there is an existing partial, a new partials is only saved
264   if it has more files than the existing partial.  Requested by
265   Carl Soderstrom.
266
267 * Fixed handling of $Conf{BackupFilesExclude} for tar XferMethod.
268   Patch supplied by Frans Pop.
269
270 * Fixed numeric column sorting in host summary table, reported by
271   Michael Pellegrino.
272
273 * Fixed host CGI editor so it creates the new host's config.pl file
274   using the lower-case host name, since host names are mapped to
275   lower case when they are read from the hosts file.  Reported by
276   Alexander Onic.
277
278 * Applied documentation patches from Frans Pop.  Also updated
279   Pod::Html to improve documentation formatting.
280
281 * Added Polish translation from Semper.
282
283 * Fixed BackupPC_nightly reporting of repeated pool file hashes.
284
285 * Add run-time check that IO::Dirent is functioning correctly,
286   reported by Doug Lytle.
287
288 * Added comment to Cmd settings in conf/config.pl that they are
289   not executed by a shell, as suggested by Erik van Linstee.
290
291 * Added undefIfEmpty => 1 to lib/BackupPC/Config/Meta.pm for
292   RsyncRestoreArgs, TarClientRestoreCmd and SmbClientRestoreCmd
293   so that restores can be disabled by clear these fields in the
294   CGI editor.  Patch supplied by Stephen Joyce
295
296 * Replaced the FAQ link with Wiki in the navigation bar and added
297   mention of the Wiki to the documentation.  Since these navigation
298   bar links are specified in the config file, upgrades will keep
299   the old FAQ link.  The FAQ opening page will have a prominent
300   link to the Wiki.
301
302 #------------------------------------------------------------------------
303 # Version 3.1.0beta0, 3 Sep 2007
304 #------------------------------------------------------------------------
305
306 * Added new script BackupPC_archiveStart that allows command-line
307   starting of archives.  Based on script written by Sergey Kovzik,
308   which in turn was based on an earlier version by Holger Parplies.
309
310 * Added Simplified Chinese CGI translation from Youlin Feng,
311   plus fixed a couple of cases where utf8 share names were
312   not displayed correctly.
313
314 * Added sorting by column feature to host summary table in CGI
315   interface.  Implemented by Jeremy Tietsort.
316
317 * Added optional support for IO::Dirent which allows inode information
318   to be extracted from the dirent directory structure.  This allows
319   BackupPC to order some directory operations by inode, which on
320   some file systems (eg: ext3) can results in a 20-30% performance
321   gain.  On other file systems there is no real improvement.  This
322   optimization is turned on automatically if IO::Dirent is installed.
323
324 * Added some performance improvements to BackupPC::Xfer::RsyncFileIO
325   for the case of small files with cached checksums.
326
327 * Added check to BackupPC at startup that $TopDir can support
328   hardlinks. Also added check to BackupPC_dump that a hardlink
329   below $TopDir/pc/HOST can be made to below $TopDir/cpool.
330   Also added the need for a hard-link capable file system to
331   the documentation.  Suggested by Nils Breunese.
332
333 * Added FreeBSD init.d file provided by Gabriel Rossetti.
334
335 * Added -l and -L options to BackupPC_tarCreate so that
336   provide a file list (without creating the archive).
337   Requested by Dirk.
338
339 * Made the default charset for BackupPC_zipCreate cp1252, which
340   appears to work correctly with WinZip.  Unfortunately there is
341   no clear standard for charset encoding in zip files.
342
343 * Added support so that pre-3.0 backups with non-utf8 charsets
344   can be viewed and restored correctly.  A new config variable
345   $Conf{ClientCharsetLegacy} specifies the charset used to
346   encode file names in legacy backups.  This is only relevant
347   if you are trying to view or restore a backup made with
348   BackupPC 2.x and some of the file names have non-ascii
349   characters.
350
351 * Added setting of the environment variable BPC_REQUSER to
352   the requesting user name in BackupPC prior to fork(), so
353   each child process inherits the value.  Submitted by
354   Holger Parplies.
355
356 * Fixed bug in rsync incrementals that happens on particular
357   file names when a file being backed up fails in both rsync
358   phases.  Reported by Dan Smisko.
359
360 * Fixed single-restore file name charsets for IE, reported by
361   Francis Lessard.
362
363 * Fixed makeDist so that the --config-dir option to configure.pl
364   works correctly.  Reported by Randy Barlow, Tony Shadwick and others.
365
366 * Removed ConfDir from config editor (since it is hardcoded in
367   lib/BackupPC/Lib.pm).  Also made TopDir and LogDir only visible
368   if useFHS (for non-FHS they are hardcoded in lib/BackupPC/Lib.pm).
369
370 * Applied patch from Holger Parplies that fixes cleanup of early abort
371   in BackupPC_dump.
372
373 * Applied small patch from Sergey to lib/BackupPC/Xfer/Tar.pm that makes
374   it ignore "socket ignored" error on incrementals.
375
376 * Applied small patch from Sergey to bin/BackupPC_archiveHost.
377
378 * Changed BackupPC_sendEmail so that summary admin email doesn't
379   include errors from hosts that have $Conf{BackupsDisable} set.
380   Reported by James Kyle.  Also, per-user email is now disabled
381   when $Conf{BackupsDisable} is set.
382
383 * Added RsyncdUserName to the config editor.  Reported by Vicent Roca Daniel.
384
385 * $Conf{IncrLevels} is now defaulted if it is not defined.
386
387 * configure.pl clears $Conf{ParPath} if it doesn't point to a valid
388   executable.
389
390 * Added documentation for BackupPC_tarPCCopy, including use of -P option
391   to tar suggested by Daniel Berteaud.
392
393 * Config editor now removes white space at start of exec path.
394   Reported by Christoph Iwasjuta.
395
396 * CgiDateFormatMMDD == 2 gives a YYYY-MM-DD format for CGI dates,
397   suggested by Imre.
398
399 #------------------------------------------------------------------------
400 # Version 3.0.0, 28 Jan 2007
401 #------------------------------------------------------------------------
402
403 * BackupPC_sendEmail now correctly sends admin email if backups
404   were skipped because the disk was too full, reported by Dan
405   Pritts.
406
407 * BackupPC_Admin now uses $Conf{UmaskMode}, so config.pl files
408   written by the editor have more restrictive permissions.
409   Reported by Tim Massey.
410
411 * Host summary now shows active backups on disabled hosts,
412   from Jono Woodhouse.
413
414 * Fixed host LOG link and LOG list order, reported by Tim Massey.
415
416 * Moved Encode.pm version check to start of configure.pl so it
417   produces a useful error message if Encode.pm is too old.
418
419 * Fixed hrefs to configuration documentation to handle changes
420   in the way perl generates the anchors.  Reported by Philip
421   Gleghorn.
422
423 * Host name links in LOG files now allow "." in the host name.
424   Reported by Jean-Michel Beuken.
425
426 * Fixes to lib/BackupPC/Xfer/Tar.pm for tar 1.16: allow 1
427   (ie: 256) as a successful exit status and match "Total
428   bytes read" message for restores.  First reported by
429   Torsten Sadowski and debugged by Ralf Gross and Holger
430   Parplies.
431
432 #------------------------------------------------------------------------
433 # Version 3.0.0beta3, 3 Dec 2006
434 #------------------------------------------------------------------------
435
436 * Removed default paths from conf/config.pl so configure.pl will
437   determine the correct ones at install time.  Avoids problem of
438   the config editor complaining about bad executable paths the
439   first time you use it.
440
441 * Changed first byte of compressed files with rsync checksums appended
442   to 0xd7 to allow correct protocol_version >= 27 md4 checksums to be
443   written.  Old cached checksum files have a first byte 0xd6 and are
444   now considered to be uncached.  They will be automatically updated
445   as needed.  This avoids the cached checksum warnings in beta2.
446
447 * BackupPC_tarPCCopy now handles all file types correctly.  Reported
448   by George Avrunin.
449
450 * Fixed BackupPC_nightly to finish pending deletes before renaming
451   pool chains.
452
453 * Fixes for rsync restore where hardlink is to file outside of the
454   top-level restore directory.  Reported by George Avrunin, who helped
455   with debugging.
456
457 * Fixes for checksum mismatch on restore for certain file sizes.
458   Reported by George Avrunin and others.
459
460 * Fix for config.pl writing code to handle multi-line expressions.
461   Reported by David Relson and others.
462
463 * Fix for CGI editor when deleting hash entries whose keys are
464   non alphanumeric.  Report by David Relson and Aaron Ciarlotta.
465
466 * Two fixes to configure.pl from Andreas Vögele.
467
468 #------------------------------------------------------------------------
469 # Version 3.0.0beta2, 18 Nov 2006
470 #------------------------------------------------------------------------
471
472 * Fix for final md4 digest check on rsync transfers >= 512MB when protocol
473   version >= 27 and checksums are not cached.  Reported by Garith Dugmore
474   and Dale Renton.
475
476 * Config Editor "Save" button is now always visible, but greyed out
477   until there are changes to save.
478
479 * Config editor allows other tabs to be selected when there is an
480   error, which allows you to fix an error (eg: missing binary) in
481   an exiting config file.  Errors are now displayed at the top of
482   the page in addition to next to the erroneous setting.
483
484 * configure.pl checks version of Encode.pm.  Reported by Chris Stone.
485
486 * Several fixes to bin/BackupPC_fixupBackupSummary from Stian Jordet.
487
488 * Fixed config.pl editor writing to solve bug with multi-line text
489   strings ending in newline.  Reported and root caused by Les Stott
490   and Jerry Groendyke.
491
492 * Fixed error recovery case in BackupPC::PoolWrite, reported by
493   Samuel Bancal.
494
495 * Fixed table width in backup browsing to avoid Firefox layout anomoly,
496   provided by Jono Woodhouse.
497
498 * CSS file updates from Jono Woodhouse.  Prior (v2) version is included
499   as BackupPC_stnd_orig.css in case people prefer the old skin.
500
501 * More compact host summary, including disabled host indication,
502   from Jono Woodhouse.
503
504 * New directory/file/hardlink and symlink image icons from Sean Cameron
505   and Jono Woodhouse, making directory browse more compact.
506
507 * BackupPC.pid is now world readable, suggested by Casper Thomsen.
508
509 * Reordered the Server navigation bar links, suggested by David Relson.
510
511 * Fixed typos in init.d/src/gentoo-backuppc, configure.pl and config.pl
512   reported by David Relson.
513
514 #------------------------------------------------------------------------
515 # Version 3.0.0beta1, 30 Jul 2006
516 #------------------------------------------------------------------------
517
518 * Fixed several Xfer charset conversions.
519
520 * Added some CGI utf8 conversions from Rodrigo Real and Vincent
521   Fleuranceau.
522
523 * Rsync transfers now correctly handle file names with \n or \r.
524
525 * Host name is forced to lower case, to match 2.x.
526
527 * Fixed LOG file naming in BackupPC_restore and BackupPC_archive.
528
529 * GFK applied fr.pm corrections from Nicolas Stransky.
530
531 * Updated init.d/src scripts for FHS (ie: replaced __TOPDIR__/log
532   with __LOGDIR__ and __TOPDIR__/conf with __CONFDIR__).  Patch
533   provided by Rodrigo Real.
534
535 * Added --log-dir and --conf-dir options to configure.pl.
536   Reported by Vincent Fleuranceau.
537
538 * Updated File::RsyncP version check in configure.pl, reported
539   by Vincent Fleuranceau.  Changed File::RsyncP version to 0.64.
540
541 #------------------------------------------------------------------------
542 # Version 3.0.0beta0, 11 Jul 2006
543 #------------------------------------------------------------------------
544
545 * Added configuration and host CGI editor.
546
547 * Added rsync hardlink support.  Requires latest version of
548   File::RsyncP (0.62).
549
550 * Decoupled BackupPC_dump from BackupPC_nightly by making
551   asynchronous file linking/delete robust to race conditions.
552   Now only BackupPC_nightly and BackupPC_link are mutually
553   exclusive so only one runs at a time, and BackupPC_dump and
554   BackupPC_restore can run anytime.
555
556 * Added support for multi-level incrementals.  In the style of dump(1),
557   the level of each incremental can be specified.  Each incremental
558   backups up everything since the most recent backup of a lower level
559   (fulls are always level 0).  Previous behavior was all incrementals
560   were level 1, meaning they backed up everything since the last full
561   (level 0).  Default configuration is all incrementals are level 1.
562
563 * Server file names are now in utf8 and optional conversion
564   to/from client name charsets can be configured.  All CGI pages
565   now use the utf8 charset.
566
567 * Backup metadata is now additionally saved to pc/HOST/nnn/backupInfo,
568   in addition to pc/HOST/backups.  In case pc/HOST/backups gets trashed,
569   then a new script BackupPC_fixupBackupSummary can read the per-backup
570   metadata from pc/HOST/nnn/backupInfo and reconstruct the backups file.
571   Roberto Moreno also pointed out an early error in the CVS version.
572
573 * Added Storage module and Storage::Text which localizes all the
574   text data file reading/writing (eg: backups, restores, archives
575   and config.pl files).  Added read verify after all write
576   operations for robustness.  Additional backends (eg: SQL)
577   can be added in the future as new subclasses of the Storage
578   module.
579
580 * Added Config module, and Config::Meta that contains meta data
581   about configuration parameters.
582
583 * Added RSS support from Rich Duzenbury.
584
585 * Translations of new 3.0 language strings from Guillaume Filion,
586   Reginaldo Ferreira, Ralph Passgang, Lieven Bridts, Guus Houtzager,
587   Rodrigo Real.
588
589 * Added optional checking of exit status of Dump/Restore/Archive Pre/Post
590   UserCmd, requested by Kiko Jover, Matthias Bertschy and others.
591
592 * For new installations configure.pl tries to comply with the file
593   system hierarchy standard, which means all the configuration files
594   below /etc/BackupPC and log files go below /var/log/BackupPC.
595
596 * Added Slackware init.d script from Tony Nelson.
597
598 * Fixed error reporting when restore/archive fail to write the
599   request file to the client directory.
600
601 * Applied patch from Marc Prewitt for DumpPreShareCmd and DumpPostShareCmd.
602
603 * Apply patch from Pete Wenzel to add smbClientPath => $Conf{SmbClientPath}
604   to DumpPreUserCmd etc.
605
606 * Added Portuguese Brazillian pt_br.pm from Reginaldo Ferreira.
607
608 * Jean-Michel Beuken reported several bugs in configure.pl in CVS 3.0.0.
609
610 * Old backup email warnings now ignore partials requested by Samuel Bancal
611
612 * Applied patch to bin/BackupPC_sendEmail from Marc Prewitt that
613   ignores any file starting with "." in the pc directory when
614   it is generating warnings about old/unused files/directories.
615
616 * Applied patch from Marc Prewitt to fix host queue order.
617  
618 * Applied Lorenzo Cappelletti's it.pm patch.
619
620 * Applied Wander Winkelhorst's nl.pm patch.
621
622 * Applied Alberto Marconi's it.pm patch.
623
624 * Add NT_STATUS_FILE_LOCK_CONFLICT to pst read error check in
625   BackupPC_sendEmail to fix bug reported by Dale Renton.
626
627 * Added fixup of $ENV{REMOTE_USER} to lib/BackupPC/CGI/Lib.pm in the
628   case of using mod_authz_ldap; patch submitted by Alain Perrier.
629
630 * Added env LC_ALL=C to $Conf{TarClientCmd} and $Conf{TarClientRestoreCmd}
631   to avoid locale problems, suggested by Ludovic Drolez.
632
633 * Changed ping output parsing to pick out average rtt time, based
634   on patch from Ron Bickers.
635
636 * Removed leading "./" and top-level "./" directory from
637   zip archives generated by BackupPC_zipCreate.  Reported
638   by Josh (hecktarzuli).
639
640 * BackupPC_tarCreate and BackupPC_zipCreate now allow "@"
641   in share names.  Reported by Robert Waldner.
642
643 * NT_STATUS_INSUFF_SERVER_RESOURCES is now a fatal error for
644   smbclient transfers, suggested by Brian Shand.
645
646 * Changed bin/BackupPC_archiveHost to use /bin/csh instead of
647   /bin/sh.  That way any errors in the pipeline are reported
648   via the exit status, instead of just the last.
649
650 * Added $Conf{EMailHeaders} for additional email headers, requested
651   by Ludovic Gasc.  If the Content-Type charset is set to utf8 then
652   the body of the email is sent in utf8 coding.
653
654 * Made shareName argument regexp checking more general to allow parens.
655
656 * Added some debian init.d instructions to init.d/README from
657   Bob de Wildt.
658
659 * Documentation updates from Richard Ames, JP Vossen, Torsten Finke.
660
661 #------------------------------------------------------------------------
662 # Version 2.1.2pl2, 18 Jun 2006
663 #------------------------------------------------------------------------
664
665 * In conf/config.pl, changed --devices to -D in $Conf{RsyncArgs}
666   and $Conf{RsyncRestoreArgs} to fix "fileListReceive failed" and
667   "Can't open .../f%2f for empty output" errors with rsync 2.6.7+.
668   Fix proposed by Justin Pessa and Vincent Ho, and confirmed by
669   Dan Niles.
670
671 * Added patch from Michael (mna.news) to ignore "file is unchanged"
672   message from tar 1.15.x during incremental backups.
673
674 * Fixed creation of .rsrc directories in bin/BackupPC_tarExtract
675   when used with xtar on MacOS.  Reported by Samuel Bancal and
676   Matthew Radey, who helped with debugging.
677
678 * Fixed bug in BackupPC_tarExtract for files >8GB in size whose
679   lengths are multiples of 256.  Reported by Jamie Myers and
680   Marko Tukiainen, who both helped debugging the problem.
681
682 * Fixed bug in lib/BackupPC/Xfer/RsyncFileIO.pm that caused
683   incorrectly deleted attributes to be set in directories
684   where one of the files had an rsync phase 1 retry during
685   an incremental.  Reported by Tony Nelson.
686
687 #------------------------------------------------------------------------
688 # Version 2.1.2, 5 Sep 2005
689 #------------------------------------------------------------------------
690
691 * Fixed simple but serious bug in bin/BackupPC_tarCreate that prevented
692   hardlinks being saved correctly.  Debugged by Michael (mna.news)
693   with several other people.
694
695 * Fixed serious bug in bin/BackupPC_dump reported/debugged by Dan Niles
696   that can happen when multiple full backups are deleted after
697   $Conf{FullKeepCnt} is changed.
698
699 * Changed lib/BackupPC/CGI/Lib.pm so that link to "$TopDir/conf/$host.pl"
700   is displayed if it exists.  Patch from Andreas Vögele.
701
702 * Applied daemonize patch to bin/BackupPC from:
703         http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=301057
704
705 * It's now a fatal error if $Conf{CompressLevel} is set, but
706   Compress::Zlib is not found.  Before $Conf{CompressLevel} was
707   silently set to 0, which made all the backups uncompressed.
708   That meant the user never knew if they forget to install
709   Compress::Zlib but were expecting compression to be on.
710
711 * Finally increased $Conf{ClientTimeout} to 72000 (20 hours).
712
713 * Added sleep 1 in restart() function in init.d/src/gentoo-backuppc,
714   suggested by Jon Hood.
715
716 * Added $DestDir to the path of the CGI image directory in configure.pl.
717   Patch submitted by Andreas Vögele.
718
719 * Applied extensive patch to French translation from Frederic Lehobey.
720
721 * Minor change to Dutch language $Lang{Pool_Stat} from Wander Winkelhorst.
722
723 * Minor change to French language $Lang{EMailOutlookBackupMesg} and
724   $Lang{EMailOutlookBackupSubj} from Ludovic Gasc.
725
726 #------------------------------------------------------------------------
727 # Version 2.1.1, 13 Mar 2005
728 #------------------------------------------------------------------------
729
730  * Fixed bug in top-level restore using rsync XferMethod.
731    BackupPC::View was leaving an extra leading "/" at the start
732    of top-level directories, messing up the FileList sort order.
733    Reported and debugged by Gail Edwards.
734
735  * Added pathCreate() to BackupPC_tarExtract so that new directories
736    are created.  Required for xtar on MacOSX since the virtual resource
737    fork directories (.rsrc) are not explicitly included in the tar
738    archive - just the files below .rsrc are.
739
740  * Changed $host.$bkupNum.tar$fileExt.* to $host.$bkupNum.tar$fileExt*
741    in $parCmd in bin/BackupPC_archiveHost.
742
743  * Fixed HostSortCompare() in BackupPC to correctly sort hosts so
744    those with the oldest backups get queued first.
745
746  * Changed test in BackupPC_sendEmail so that directories/files
747    starting with "." in $TopDir/pc are ignored, rather than
748    just "." and "..".
749
750  * Changed BackupPC_sendEmail to include NT_STATUS_FILE_LOCK_CONFLICT
751    in check for bad outlook files.
752
753  * Ensure that %Status and %StatusHost are empty if requesting
754    status on hosts in lib/BackupPC/CGI/Lib.pm GetStatusInfo().
755    Fixes problem with new hosts under mod_perl.
756
757  * Added images/icon-hardlink.gif so that hardlinks show file type icon.
758
759 #------------------------------------------------------------------------
760 # Version 2.1.0pl1, 15 Aug 2004
761 #------------------------------------------------------------------------
762
763 * Added fix to nl.pm from Lieven Bridts.
764
765 * Added patch from Tony Nelson to remove $Info{pid} before BackupPC
766   writes the status and shuts down.
767
768 * Changed BackupPC_nightly so that it doesn't call find() if the
769   directory doesn't exist.  This avoids errors in certain versions
770   of perl.  Reported by Bernd Rilling.
771
772 * Fixed BackupPC::CGI::Lib to correctly re-load config.pl for mod_perl.
773   Reported by Tony Nelson and Jimmy Liang.
774
775 * Explicitly untaint $In{host} in BackupPC::CGI::Lib to fix problem
776   reported by Thomas Tempé.
777
778 * Added newline to "...skipping because of user requested delay..."
779   log message in BackupPC_dump.  Reported by Wayne Scott.
780
781 * Added read file size error checking to BackupPC_tarCreate.
782   Reported by Brandon Evans.
783
784 * Added check in BackupPC::Xfer::RsyncFileIO to ensure that when
785   compression is toggled on/off, a compressed backup doesn't link
786   to an uncompressed pool file (and an uncompressed backup doesn't
787   link to a compressed pool file).  Reported by Brandon Evans.
788
789 * Updated documentation with new dirvish URL and a typo from
790   Todd Curry.
791
792 * Fix to BackupPC_sendEmail so that it correctly sends admin emails
793   for hosts that have failed backups.  Reported by Simon Kuhn.
794
795 #------------------------------------------------------------------------
796 # Version 2.1.0, 20 Jun 2004
797 #------------------------------------------------------------------------
798
799 * Added Dutch translation from Lieven Bridts, with tweaks from
800   Guus Houtzager.
801
802 * Added PC-specific config file read in CGI/Archive.pm.  Patch
803   from Pete Wenzel.
804
805 * Added non-zero exit code to BackupPC_zcat when uncompress fails.
806   Patch from Pete Wenzel.
807
808 * Cosmetic changes to PC Summary and Log file language strings from
809   Pete Wenzel.
810
811 * BackupPC::Lib tries to be more careful when renaming the backups
812   file to backups.old.  There have been reports of backups being
813   empty, perhaps when the BackupPC data file system fills up.
814   Now backups is not renamed to backups.old if backups is empty.
815
816 * BackupPC now closes stderr and stdout before renaming and
817   re-opening the log file.
818
819 * Pre/post backup/restore/archive commands now correctly set
820   "type" to either incr/full/restore/archive, and now cmdType
821   is the type of Pre/post backup/restore/archive command.
822
823 * BackupPC_archive correctly terminates archive processes on
824   alarm or cancel.
825
826 * Updates to BackupPC_stnd.css with absolute font sizes instead
827   of relative.
828
829 * BackupPC_dump now makes sure that the $Conf{FullAgeMax} check
830   also ensures the full backup is older than the maximum age
831   expected from $Conf{FullPeriod}.
832
833 #------------------------------------------------------------------------
834 # Version 2.1.0beta2pl1, 30 May 2004
835 #------------------------------------------------------------------------
836
837 * Fixed bug in rsync checksum caching code in BackupPC::Xfer::RsyncDigest.
838
839 * BackupPC_zipCreate now ensures the earliest mtime is 1/1/1980,
840   since zip file formats don't support earlier dates.  Reported
841   by Dan Niles.
842
843 * CGI restore via zip and tar now makes sure stderr is ignored
844   when BackupPC_tarCreate and BackupPC_zipCreate are run.
845   Previously any stderr output would get mixed in the archive,
846   corrupting it.  Reported by Dan Niles.
847
848 #------------------------------------------------------------------------
849 # Version 2.1.0beta2, 23 May 2004
850 #------------------------------------------------------------------------
851
852 * $Conf{BackupFilesOnly} and $Conf{BackupFilesExclude} now apply
853   to every share, rather than just the first, in the case where
854   they are arrays and there are multiple shares.  Suggested
855   by Andy Evans.
856
857 * On the phase 2 retry pass with rsync, verify the cached checksums
858   if checksum caching is turned on.  This will catch the case of
859   cached checksums being incorrectly appended to the compressed
860   pool file.  Added new config parameter $Conf{RsyncCsumCacheVerifyProb}
861   so that cached checksums are verified with a selectable probability.
862   Also, increased File::RsyncP version number to 0.51.
863
864 * configure.pl now supports an optional batch mode.  Command-line
865   options are used to specify all the information that configure.pl
866   needs.  This is useful for building auto-install packages.
867   Also, configure.pl now includes pod documentation, so you can do
868   "perldoc configure.pl" to see all the command-line options.
869   Suggested, tested and tweaked by Stuart Herbert for possible
870   Gentoo inclusion.
871
872 * At each wakeup, clients are now queued based on how old the most
873   recent backup is.  Clients with errors are queued first, with
874   the oldest error times going first.  The rest of the clients are
875   queued next, with the clients with the oldest backup going first.
876   Previously the clients were simply queued in alphabetic order.
877   Suggested by Mike Trisko and Tony Nelson.
878
879 * Added config parameter $Conf{PartialAgeMax} that controls whether
880   partials are saved at all, and if so, whether the partial will be
881   ignored at the next full backup if it is too old.
882
883 * BackupPC_tarExtract now allows empty archives without reporting
884   an error.  Reported by Don Silvia.
885
886 * Removed Browse Backups link from Nav Bar in Archive Info display.
887   Reported by Ralph Paßgang.
888
889 * Fixed documentation display for regular users.  Reported by Ralph Paßgang.
890
891 * Status and PC Summary now work for regular users and only show
892   that user's hosts.  Server general status information only appears
893   for admins.  Suggested by Ralph Paßgang.
894
895 * Moved the last three navigation-bar links (docs, FAQ and SF) to
896   a new config parameter $Conf{CgiNavBarLinks}.  This allows
897   these links to be locally configured.  Based on a patch
898   submitted by Ralph Paßgang.
899
900 * Allow the navigation bar search box to be disabled by
901   setting $Conf{CgiSearchBoxEnable} to 0.  Based on a patch
902   submitted by Ralph Paßgang.
903
904 * Updates to de.pm from Ralph Paßgang.
905
906 * Made the BackupPC icon a link to the SF BackupPC project page.
907
908 #------------------------------------------------------------------------
909 # Version 2.1.0beta1, 4 Apr 2004
910 #------------------------------------------------------------------------
911
912 * The CSS definition has been removed from the config.pl file and
913   is now a separate file, BackupPC_stnd.css.  A new config variable,
914   $Conf{CgiCSSFile}, gives the name of the CSS file to use.
915   Suggested by Ender Mathias.
916
917 * Fixed the filling of the host name select box for admins.
918   The default $Conf{CgiNavBarAdminAllHosts} is now 1.
919   Reported by Doug Lytle.
920
921 * Cleaned up warning message for restore using rsync when checksum
922   caching is on, but when file didn't have cached checksums.
923
924 * Fixed BackupPC_archiveHost to support par2 (par2cmdline).
925   Patch submitted by Jaco Bongers and adapted by Josh Marshall.
926
927 * Improved stat() usage in BackupPC_nightly, plus some other cleanup,
928   giving a significant performance improvement.  Patch submitted by
929   Wayne Scott.
930
931 * Allow several BackupPC_nightly processes to run in parallel based
932   on new $Conf{BackupPCNightlyJobs} setting.  This speeds up the
933   traversal of the pool, reducing the overall run time for
934   BackupPC_nightly.
935
936 * Allow BackupPC_nightly to split the pool traversal across several
937   nightly runs.  This improves the running time per night, at the expense
938   of a slight increase in disk storage as unused pool files might not
939   be deleted for a couple of days.  Controller by new config setting
940   $Conf{BackupPCNightlyPeriod}.
941
942 #------------------------------------------------------------------------
943 # Version 2.1.0beta0, 20 Mar 2004
944 #------------------------------------------------------------------------
945
946 * A failed full dump is now saved as a partial (incomplete) dump,
947   provided it includes some files.  This can be used for browsing,
948   restoring etc, and will also form the basis of resuming full
949   dumps.  Only one partial is kept, and it is removed as soon
950   as a successful full (or a new partial) is done.
951
952 * Added support for resuming a full dump for rsync.  The partial
953   full is kept, and to resume an incremental is done against the
954   partial, and a full is done for the rest.
955
956 * Added support for Rsync checksum caching.  Rsync checksum are
957   appended to the compressed pool files.  This means that block
958   and file checksums do not need to be recomputed on the server
959   when using rsync.  Requires a patch to rsync to support fixed
960   checksum seeds.  This patch is included in the cygwin-rsyncd
961   release on http://backuppc.sourceforge.net.
962
963 * Major addition of Archive feature from Josh Marshall.  Special
964   clients can be configured to be archive targets (eg: tape drives,
965   CD-R).  Any subset of the backup clients can be selected and tar
966   archives are created, optionally compressed and split and written
967   to the output device.  Logs are maintained and are browsable.
968
969 * Major changes from Ryan Kucera to add style sheets to the CGI
970   interface, allowing easy customization.  Added new icons and
971   BackupPC logo.  Numerous navigation improvements.
972
973 * Added directory history display to BackupPC_Admin, allowing the
974   user to quickly see which files changed between backups on a
975   per-directory basis.
976
977 * Added exponential expiry option for full dumps.  This allows you
978   to specify
979   
980    - how many fulls to keep at intervals of $Conf{FullPeriod}, followed by
981    - how many fulls to keep at intervals of 2 * $Conf{FullPeriod},
982    - how many fulls to keep at intervals of 4 * $Conf{FullPeriod},
983    - how many fulls to keep at intervals of 8 * $Conf{FullPeriod},
984    - how many fulls to keep at intervals of 16 * $Conf{FullPeriod},
985
986   and so on.  This allows you, for example, to keep 4 weekly fulls,
987   followed by 6 fulls every 4 weeks (approx 1 month) and 2 fulls at
988   16 weeks, for roughly 1 year of history.  This works by deleting
989   every other full as each expiry boundary is crossed.  Suggested
990   by David Cramblett.
991
992 * Added Italian language translation it.pm from Lorenzo Cappelletti.
993
994 * Major updates to language files for new features and tags changes.
995   Updated makeDist to do pedantic consistency checking of language
996   files.
997
998 * Addition of administration options from Paul Lukins.  Initial
999   page allows server to be started/stopped/reloaded.  This still
1000   needs some i18n work.  Currently the server start/stop is
1001   commented out.
1002
1003 * Split BackupPC_Admin into a set of modules, one for each major action.
1004   Each action is now a seperate module in lib/BackupPC/CGI.
1005
1006 * Allow the blackout period begin/end to span midnight.  Adapted
1007   from patch submitted by David Smith.
1008
1009 * Allow multiple blackout periods, with new config variable
1010   $Conf{BlackoutPeriods} that replaces the old variables
1011   $Conf{BlackoutHourBegin}, $Conf{BlackoutHourEnd}, and
1012   $Conf{BlackoutWeekDays}.  Based on patch submitted by
1013   Lorenzo Cappelletti.
1014
1015 * Disabled alarms after forks to avoid timeouts in children that
1016   do not reset their alarm.  Prompted by ideas from James Leu.
1017
1018 * Added options for block size, buffer size and share wild-card to
1019   BackupPC_tarCreate.  Also added negative backup number options
1020   that are relative to the last (so -1 is the last), suggested by
1021   William McKee and Carl Soderstrom.
1022
1023 * The "Wrong user" message in BackupPC::Lib now goes to stderr, so that
1024   the user is more likely to see the error with BackupPC_tarCreate.
1025   Reported by Paul Fox.
1026
1027 * Add creation of per-PC directory in BackupPC/CGI/Restore.pm in
1028   case it doesn't already exist.
1029
1030 * Added -q -x to all ssh commands in conf/config.pl.  Suggested by
1031   SI Reasoning and Niranjan Ghate.
1032
1033 * Changed restore code so that option #1 (direct restore) can be
1034   disabled if the restore command is undefined.  Disabling direct
1035   restore is necessary if the share is read-only.  Suggested by
1036   Rich B from SAIC.
1037
1038 * Changed regexp in lib/BackupPC/Smb.pm to allow numbers with both
1039   a decimal point or comma for international versions of Samba.
1040   Patch submitted by Frank Gard.
1041
1042 * Browsing and directory history now sort the files in a
1043   case-insensitive manner.
1044
1045 * Changed exec() syntax to allow executing commands whose path
1046   contains spaces.
1047
1048 * BackupPC_dump no longer removes backups if $Conf{FullKeepCnt}
1049   is zero or undefined.  The protects the existing backups in the
1050   case of a bad config.pl file.  Suggested by Christian Warden.
1051
1052 * Swapped the Server and Hosts sections on the Nav bar.  Moved the
1053   host search text box to the top of the hosts section.  This was
1054   done to move the variable-length part of the Nav bar (when all
1055   hosts are displayed) to the bottom.
1056
1057 * Fixed a bug in tar restore related to how the common prefix path is
1058   removed.  Now ensure that the common path is at a directory boundary.
1059   Reported by Patrick Neuner.
1060
1061 * Added --chuid ${USER} to init.d/src/gentoo-backuppc.  Suggested by
1062   SI Reasoning, Pascal Pochol, Michael Evanoff and others.
1063
1064 * Added Suse notes to init.d/README from Bruno Vernay.
1065
1066 * Added Apache 2 documentation fix from Michael Tuzi.
1067
1068 #------------------------------------------------------------------------
1069 # Version 2.0.2, 6 Oct 2003
1070 #------------------------------------------------------------------------
1071
1072 * Fixed stupid last-minute change in octal size conversion in
1073   Backup_tarExtract.
1074
1075 #-----------------------------------------------------------------------
1076 # Version 2.0.1, 5 Oct 2003
1077 #------------------------------------------------------------------------
1078
1079 * Fixed handling of >= 8GB files in BackupPC_tarExtract and >= 4GB
1080   files in BackupPC_tarCreate.
1081
1082 * Removed smbclient size repair in BackupPC_tarExtract for files
1083   between 2GB and 4GB.  This means that BackupPC_tarExtract 2.0.1
1084   doesn't behave the same as 2.0.0 for file sizes between 2GB and 4GB
1085   extacted using smbclient 2.2.x.  If you have problems backing up
1086   files whose size is between 2GB and 4GB using smbclient 2.2.x
1087   you should upgrade smbclient to 3.0, since it now generates
1088   correct file sizes.
1089
1090 * Replace PingClientPath with PingPath in configure.pl.
1091
1092 * Removed -T (taint mode) on binaries installed in configure.pl.
1093
1094 * Added support for smbclient from samba version 3.0.0.
1095
1096 * Fixed $Conf{HardLinkMax} limit check in BackupPC::Lib; reported
1097   by Ross Skaliotis.
1098
1099 * In BackupPC_Admin, default REMOTE_USER to $Conf{BackupPCUser}
1100   if it is not defined.  This allows the CGI interface to work
1101   when AdminUsers = '*'.  Reported by Quentin Arce.
1102
1103 * For SMB, code that detected files with a read-locked region (eg:
1104   outlook .pst files), removed them and then tried to link with an
1105   earlier version was broken.  This code missed a step of mangling
1106   the file names.  This is now fixed.  Reported by Pierre Bourgin.
1107
1108 * A backup of a share that has zero files is now considered
1109   fatal. This is used to catch miscellaneous Xfer errors that
1110   result in no files being backed up.  A new config parameter
1111   $Conf{BackupZeroFilesIsFatal} (defaults to 1) and can be set to
1112   zero to turn off this check.  Suggested by Guillaume Filion.
1113   Additional change: this check only applies to a full dump.
1114
1115 * SMB: now detect NT_STATUS_ACCESS_DENIED on entire share or BackupFilesOnly
1116   (also ERRDOS - ERRnoaccess (Access denied.) for older versions of
1117   smbclient.)  Suggested by Guillaume Filion.
1118
1119 * SMB: now detects "tree connect failed: NT_STATUS_BAD_NETWORK_NAME" and
1120   the dump is considered failed.
1121
1122 * Rsync: Previously BackupFilesOnly = '/' did --include '/' --exclude '/*',
1123   which just included the '/' directory and nothing below.  Now it
1124   does just --include '/', which should include everything.
1125   Reported by denon.
1126
1127 * Add hostError to DumpPostUserCmd variable substitutions for both dump
1128   and restore.
1129
1130 * Verbose output in Lib.pm goes to STDERR, not STDOUT.  This now
1131   makes BackupPC_dump -v work better.
1132
1133 * Don't allow browsing with ".." in directory in case a user tries
1134   to trick BackupPC_Admin into displaying directories outside where
1135   they are allowed.
1136
1137 * Required File::RsyncP version is now 0.44, since File::RsyncP 0.44
1138   fixes large file (>2GB) bugs.  Large file bugs reported by Steve
1139   Waltner.
1140
1141 #------------------------------------------------------------------------
1142 # Version 2.0.0, 14 Jun 2003
1143 #------------------------------------------------------------------------
1144
1145 * Minor tweaks to disable utf8 on utf8-capable machines (eg: RH8+).
1146   Added "no utf8" to all programs, and added binmode() to relevant
1147   file handles.
1148
1149 #------------------------------------------------------------------------
1150 # Version 2.0.0beta3, 1 Jun 2003
1151 #------------------------------------------------------------------------
1152
1153 * Several improvements to restore: cancel now reports the correct
1154   message and cleans up correctly.
1155
1156 * Rsync with whitespace and wildcard excludes fixed by replacing
1157   argList with argList+ in config.pl plus a fix to Lib.pm for
1158   shell escaping array arguments.
1159
1160 * Fixed rsync restore for character and block special devices
1161   (major and minor device numbers weren't correctly restored).
1162
1163 * Fixed typo in bin/BackupPC_restore (XferLOG -> RestoreLOG).
1164
1165 * (Re)-fixed "Bad command" in log file when restore via tar or zip
1166   file download is done.
1167
1168 * Added untaint to exec in Lib.pm to avoid tainted errors.
1169
1170 * Applied additional tweak to hilight patch from Tim Demarest.
1171
1172 * $Conf{CgiAdminUsers} = '*' now allows privileged even with REMOTE_USER
1173   not set.
1174
1175 * Don't display RsyncdPasswd when displaying config.pl files.
1176
1177 * Replace pipe with socketpair in bin/BackupPC_dump and bin/BackupPC_restore,
1178   which increases typical buffering from 4K to 16K-64K.  This improves the
1179   performance.
1180
1181 * Add check on $ENV{LANG} setting do configure.pl: if LANG includes utf
1182   then a warning is printed.
1183
1184 #------------------------------------------------------------------------
1185 # Version 2.0.0beta2, 11 May 2003
1186 #------------------------------------------------------------------------
1187
1188 * Added German translation, provided by Manfred Herrmann.
1189
1190 * Fixed large-file problem with rsync, reported by Manfred Herrmann.
1191
1192 * Fixed zip and tar file download from CGI under mod_perl.  Reported
1193   by Pierre Bourgin and Paul Lukins.
1194
1195 * Fixed directory browsing and top-level directory browsing in 2.0.0beta0.
1196   Reported by several users.
1197
1198 * Added -v option to BackupPC_dump for verbose output (useful when
1199   you run the command manually).  Added messages for all exits.
1200
1201 * If nmblookup returns multiple IP addresses, NetBiosHostIPFind()
1202   now returns the first IP address that matches the subnet mask.
1203   Suggested by Tim Demarest.
1204
1205 * Fixed BackupPC::View so the top-level directory is handled correctly.
1206   This allows the top-level share/directory to be restored via the
1207   CGI interface.  Reported by several users.
1208
1209 * Fixed RsyncFileIO failures on certain large files by replacing seek()
1210   with sysseek().  Reported by Manfred Herrmann.
1211
1212 * Added configurable highlighting of PC status in the CGI summary
1213   screen; submitted by Tim Demarest.
1214
1215 * Fixed command queue CGI display; submitted by Tim Demarest.
1216
1217 * BackupPC_trashClean now logs an error if it can't remove all the
1218   trash and then goes back to sleep, rather than continually trying.
1219
1220 * Moved correct user (uid) check into BackupPC::Lib so that all
1221   applications do a user check if $Cong{BackupPCUserVerify} is
1222   set.  The avoids the risk of manually running BackupPC_dump as
1223   the wrong user.
1224
1225 * Loss of blackout now applies to "host not found" as well as no ping.
1226   Reported by Dale Renton.
1227
1228 * "Host not found" is now treated in a similar manner to "no ping".
1229
1230 * Added suse-linux init.d script from Leon Letto.
1231
1232 * Added Gentoo linux init.d script from Tim Demarest.
1233
1234 * Applied additional i18n strings from GFK and the translation team.
1235
1236 * Fixed option parsing so that getopts errors are reported and we exit.
1237
1238 * Changed reporting of Xfer PIDs so that rsync cancel works correctly.
1239
1240 #------------------------------------------------------------------------
1241 # Version 2.0.0beta1, 30 Mar 2003
1242 #------------------------------------------------------------------------
1243
1244 * Added Spanish translation es.pm from Javier Gonzalez.
1245
1246 * Fixed CGI browse navigation bug that causes BackupPC_Admin to wedge
1247   when directories were selected in a certain order.
1248
1249 * Fixed BackupPC::PoolWrite so that it can recover when the initial
1250   file size is wrong.  This is needed since rsync could write a file
1251   whose size is different from the initial size returned in the
1252   file list when that file is updated while rsync is running.
1253
1254 * Added binmode(STDIN) to BackupPC_tarExtract, suggested by Pat LoPresti
1255   to fix a problem a RedHat8 with perl 5.8.0.  It's unclear why this
1256   helps, but it should be benign.  See:
1257     http://sourceforge.net/mailarchive/forum.php?thread_id=1853018&forum_id=503
1258
1259 #------------------------------------------------------------------------
1260 # Version 2.0.0beta0, 23 Feb 2003
1261 #------------------------------------------------------------------------
1262
1263 * Support for rsync and rsyncd backup and restore.  Changes to
1264   BackupPC_dump, BackupPC_restore, and new modules BackupPC::Xfer::Rsync
1265   and BackupPC::Xfer::RsyncFileIO.
1266
1267 * Added internationalization (i18n) code from Xavier Nicollet,
1268   with additions from Guillaume Filion.  Voila!  BackupPC_Admin
1269   now supports English and French, and adding more languages is
1270   now easy.  New config paramater $Conf{Language} sets the language.
1271
1272 * Added optional user-defined pre/post dump/restore commands, allowing
1273   things like database shutdown/startup for dumps.
1274
1275 * Changed the way hosts are found.
1276
1277 * Added $Conf{ClientNameAlias}, which allows the name of the physical
1278   client machine to be set.  This allows several different backup
1279   "hosts" to all refer to the same physical machine, which is
1280   convenient if several different types of data need to be backed
1281   up, or if different parameters are needed for different parts of
1282   the host.
1283
1284 * Replaced $Conf{PingArgs} with $Conf{PingCmd}, added $Conf{DfCmd},
1285   $Conf{NmbLookupCmd} allowing all these commands to be fully
1286   configured.  Also, all commands can also now be fragments of
1287   perl code.
1288
1289 * Moved all smbclient commands into the config.pl file so the specific
1290   arguments can be customized.  New config parameters are
1291   $Conf{SmbClientFullCmd}, $Conf{SmbClientIncrCmd} and
1292   $Conf{SmbClientRestoreCmd}.
1293
1294 * Added new BackupPC::View module that creates views of backups
1295   (handling merging etc).  Updated BackupPC_Admin, BackupPC_zipCreate
1296   and BackupPC_tarCreate to use BackupPC::View.  This removes lots
1297   of merging and mangling code from the higher-level code.
1298
1299 * Added code from Toby Johnson that allows additional users to be
1300   specified in the hosts file; these users can also view/start/stop
1301   and restore backups for that host.  Also added a new config
1302   setting $Conf{CgiNavBarAdminAllHosts} that allows all hosts to
1303   be listed in the left nav bar for admins.
1304
1305 * Added $Conf{HardLinkMax} (default 31999) which sets the limit on
1306   the maximum number of hardlinks per file in the pool.  If a file
1307   ever gets to this number of links a new pool file is created to
1308   handle additional links.
1309
1310 * Added $Conf{PerlModuleLoad}, which allows optional additional perl
1311   modules to be loaded.
1312
1313 * Added $Conf{EMailUserDestDomain} and other EMail config settings to
1314   allow language-specific default messages to be overridden.
1315
1316 * Added BPC_FTYPE_DELETED to lib/BackupPC/Attrib.pm, allowing deleted
1317   files to be represented in the attrib file correctly.
1318
1319 * Added support for environment variable BPC_SMB_PASSWD, which is the
1320   client's smb password.  This overrides the old environment variable
1321   PASSWD.
1322
1323 * Added taint cleanup for perl5.8 to lib/BackupPC/Lib.pm.
1324
1325 * Changed $tar_unpack_header format in BackupPC_tarExtract to correctly
1326   handle files with trailing spaces.
1327
1328 * Added catching of SIG_PIPE to BackupPC_dump, and changed catch_signal
1329   to ignore multiple signals of the same type.
1330
1331 * Added reporting of the largest number of hardlinks in the pool to the
1332   log file.
1333
1334 * Adding reporting of syntax errors in the per-PC config.pl file.
1335
1336 * Updated BackupPC_sendEmail to handle language-specific email messages.
1337
1338 * Allow client (host) names to contain spaces.  Spaces in host names
1339   need to be escaped via "\" in the hosts file.  The user of spaces in
1340   host names is discouraged, but they should work.  One feature that
1341   doesn't work with host names that contain spaces is the highlighting
1342   of that name in the log file display in the CGI interface.  There are
1343   no plans to fix this.
1344
1345 * Renamed $Conf{SmbClientTimeout} to $Conf{ClientTimeout}.
1346
1347 * Fixed all open() calls to use 3 argument form to fix handling of file
1348   names with trailing whitespace.  Also fixed CGI interface so these
1349   file names are displayed correctly.
1350
1351 * Fixed new 2.0.0 CGI navigation bug that causes the top-level directory
1352   to have a URL "&share=//boot&dir=" instead of "&share=/boot&dir=/".
1353   Reported by Pascal Schelcher.  Fixed similar problem reported by
1354   Doug Lytle.
1355
1356 * Added "PerlTaintCheck On" to the mod_perl section in the docs,
1357   suggested by Tim Demarest.
1358
1359 #------------------------------------------------------------------------
1360 # Version 1.5.0, 2 Aug 2002
1361 #------------------------------------------------------------------------
1362
1363 * Changed conf/config.pl so that $Conf{TarIncrArgs} uses the --newer
1364   option instead of --newer-mtime.  Also removed --atime-preserve from
1365   $Conf{TarClientCmd}.  This makes the default settings work better
1366   with tripwire.
1367
1368 * Fixed configure.pl so it correctly detects a running BackupPC <= v1.4.0
1369   so it can correctly warn the user to stop it before upgrading.  Reported
1370   by David Holland.
1371
1372 * Added missing ";" to entity escape in EscapeHTML in BackupPC_Admin.
1373   Reported by Guillaume Filion.
1374
1375 * Added LDAP setup to documentation from David Holland.
1376
1377 * Tar.pm now adds a "." to file paths that start with "/", so that all
1378   tar paths are relative.  From Ludovic Drolez.
1379
1380 #------------------------------------------------------------------------
1381 # Version 1.5.0beta0, 30 Jun 2002
1382 #------------------------------------------------------------------------
1383
1384 * A full set of restore options is now supported, including direct
1385   restore via smbclient or tar or downloading a zip or tar file.
1386
1387 * Major additions to CGI script to support better directory navigation,
1388   restore features and mod_perl.  Also, file downloads from the CGI
1389   interface now correctly preserve the file name and provide the
1390   correct Content-Type for the most common types of files.  Improved
1391   directory navigation was contributed by Ryan Kucera.
1392
1393 * New script BackupPC_zipCreate (contributed by Guillaume Filion) is the
1394   zip analog of BackupPC_tarCreate.  BackupPC_zipCreate can be used to
1395   create a zip archive of any portion of a backup.
1396
1397 * Substantial additions to BackupPC_tarCreate to support restore,
1398   including modifying path names, handling hardlinks, fixing
1399   support of old backups without attributes (pre-v1.4.0).  Plus
1400   BackupPC_tarCreate is now an offical part of the release.
1401   (Lack of support for hardlinks was reported by John Stanley.)
1402
1403 * BackupPC_tarExtract now supports hardlinks and fixed pooling of
1404   attribute files.
1405
1406 * A unix domain socket is now used for communication between the CGI
1407   interface and BackupPC.  The original TCP socket is optional.  Sockets
1408   are correctly re-initialized if config.pl is updated with new socket
1409   settings.
1410
1411 * For improved security messages over the unix or TCP socket are protected
1412   via an MD5 digest based on a shared secret, a sequence number, a time
1413   stamp and a unique per-connection number.
1414
1415 * Additions to configure.pl to support install of directory navigation
1416   images.
1417
1418 * Fixed case where $Conf{BackupFilesOnly} or $Conf{BackupFilesExclude}
1419   were set to a single string or list (in v1.4.0 only the case of
1420   hash worked correctly).  Reported by Phillip Bertolus.
1421
1422 * Fixed case of $Conf{BackoutGoodCnt} == 0.  This setting now makes the
1423   client always subject to blackout, matching the comments in config.pl.
1424   Also fixed handling of $Conf{BackoutGoodCnt} < 0 in the CGI script
1425   reported by Pascal Schelcher.
1426
1427 * Fixed byte and file totals for tar backups, reported by several users.
1428
1429 * Fixed --newer-mtime date/timestamp format to make it ISO 8601 compliant,
1430   suggested by Erminio Baranzini.
1431
1432 * Fixed handling of $Conf{BackupFilesOnly} in BackupPC::Xfer::Tar.pm, as
1433   well as shell escaping of tar arguments.
1434
1435 * Fixed entity encoding of 8-bit characters in the CGI interface.
1436
1437 * Added optional CGI headers in $Conf{CgiHeaders} that by default
1438   is set to a no-cache pragma.  Suggested by Benno Zuure.
1439
1440 #------------------------------------------------------------------------
1441 # Version 1.4.0, 16 Mar 2002
1442 #------------------------------------------------------------------------
1443
1444 * BackupPC now supports tar (in addition to smb) for extracting host    
1445   data.  This is the most convenient option for linux/unix hosts.
1446   Tar can be configured to run over ssh, rsh or to backup a local
1447   nfs mount from the host.
1448
1449 * Support for special files, including symbolic links, fifo, character
1450   and block device files has been added, so that all native linux/unix
1451   file types can be correctly backed up when using tar transport.
1452   Special files are all stored as regular files and the type attributes
1453   are used to remember the original file type.
1454
1455 * All unix file attributes are now saved (and pooled when possible).
1456   This includes user and group ownership, permissions, and modification
1457   time.  Smbclient also does a reasonable job of emulating unix 
1458   permissions (such as mtime), and these attributes get saved too.
1459
1460 * The new default is to not fill incremental dumps.  configure.pl
1461   automatically sets $Conf{IncrFill} to 0.  The default was 1
1462   (incrementals were filled with hardlinks).  Since the CGI
1463   script does filling at browsing time, there is no need to
1464   fill incremental dumps.
1465
1466 * Backup file names are now stored in "mangled" form. Each node of a
1467   path is preceded by "f", and special characters (\n, \r, % and /) are
1468   URI-encoded as "%xx", where xx is the ascii character's hex value. So
1469   c:/craig/example.txt is now stored as fc/fcraig/fexample.txt. This
1470   was done mainly so meta-data could be stored alongside the backup
1471   files without name collisions.  In particular, the attributes for the
1472   files in a directory are stored in a file called "attrib", and
1473   mangling avoids file name collisions (I discarded the idea of having
1474   a duplicate directory tree for every backup just to store the
1475   attributes). Other meta-data (eg: rsync checksums) could be stored in
1476   file names preceded by, eg, "c".  There are two other benefits to
1477   mangling: the share name might contain "/" (eg: "/home/craig" for tar
1478   transport), and I wanted that represented as a single level in the
1479   storage tree.  Secondly, as files are written to NewFileList for later
1480   processing by BackupPC_link, embedded newlines in the file's path
1481   will cause problems which are avoided by mangling.
1482
1483   The CGI script undoes the mangling, so it is invisible to the user.
1484   Of course, old (unmangled) backups are still supported by the CGI
1485   interface.
1486
1487 * Various changes to the CGI interface, BackupPC_Admin:
1488
1489   + Added button that allows users to manually start a full dump in
1490     addition to the existing incremental dump.
1491
1492   + Added display of file attributes when browsing backups.
1493
1494   + Added an optional holdoff time specified by the user when canceling
1495     a backup. BackupPC will not attempt any new backups for at least the
1496     specified time. This holdoff time can be changed whether or not a
1497     backup is running.
1498
1499   + Added supports for file mangling, and correct merging of unfilled
1500     backups from mangled or unmangled (and compressed or uncompressed)
1501     fulls when browsing or restoring.
1502
1503   + Only displays a "Start Incr Backup" button if there are already some
1504     backups.
1505
1506   + For DHCP hosts, when a user tries to manually start a backup, add
1507     a check for the netbios name of both the host the request came
1508     from (REMOTE_ADDR) and the last known DHCP address for that host
1509     to see if either address matches the host. If not, an error
1510     message is display. The previous behavior was that only requests
1511     from the client itself succeeded, and requests from other machines
1512     quietly failed.
1513
1514 * Changed the version numbering to X.Y.Z, instead of X.0Y. This release
1515   is 1.4.0. The first digit is for major new releases, the middle digit
1516   is for significant feature releases and improvements, and the last
1517   digit is for bug fixes. You should think of the old 1.00, 1.01, 1.02
1518   and 1.03 as 1.0.0, ..., 1.3.0.
1519
1520 * BackupPC and the CGI script BackupPC_Admin now check that the effective
1521   user id is correct to avoid accidentally launching BackupPC as the
1522   wrong user or detecting CGI configuration problems.  This behavior
1523   can be turned off using the $Conf{BackupPCUserVerify} option.
1524
1525 * In numerous places changed "Smb" to "Xfer" (eg: log file names) to
1526   support generic names for both smb and tar transport methods.  The
1527   CGI script checks for old names for backward compatibility.
1528
1529 * Major changed to Backup_dump to support new tar transport.  All transport
1530   specific code moved into BackupPC::Xfer::Smb and BackupPC::Xfer::Tar
1531   objects.
1532
1533 * Added workaround for a bug in Samba's smbclient for files between 2GB
1534   and 4GB.  The file size in the tar header is incorrect.  This allows
1535   files up to 4GB to work with smbclient, rather than 2GB.  To support
1536   files larger than 2GB you must make sure perl is compiled with the
1537   uselargefiles option (use "perl -V | egrep largefiles" to check) and
1538   the pool directory must be on a file system that supports large files.
1539
1540 * Moved the pool writing code into a module BackupPC::PoolWrite.  This
1541   allows the clever file pool checking (digest, uncompressing, comparing
1542   etc with minimum disk IO) to be used easily in multiple places (eg: it
1543   is now used for writing attribute files so they can be pooled).
1544
1545 * Changed MD5 to Digest::MD5 to avoid use of the depreceated MD5 module.
1546
1547 * Shortened default $Conf{MyPath} so that perl's taint mode is more likely
1548   to be happy.  The old $Conf{MyPath} contained /usr/local/bin, which
1549   on one user's machine was world writable and perl -T correctly
1550   complained about it.
1551
1552 * Fixed ping command options in Lib.pm so that it works on OpenBSD.
1553   Thanks to Kyle Amon for sending the fix.  Decided to move the
1554   ping options from Lib.pm into config.pl (as $Conf{PingArgs}) and
1555   now configure.pl tries to come up with a sensible default based on
1556   the OS.
1557
1558 * Fixed argument checking in BackupPC_tarExtract to allow '$' in the
1559   share name (eg: C$).  Thanks to Jules Agee for this fix.  Also
1560   changed the default config.pl so that single quotes are used
1561   everywhere so that people don't get tripped up putting '$' inside
1562   double-quoted strings.
1563
1564 #------------------------------------------------------------------------
1565 # Version 1.03, 9 Dec 2001
1566 #------------------------------------------------------------------------
1567
1568 * BackupPC now has full support for compression.  There are now two
1569   pool areas, the original pool for uncompressed files, and cpool for
1570   compressed files. The compression is done by Compress::Zlib.
1571   Compression reduces the pool disk usage by around 40%, although your
1572   mileage may vary.  Compression is optional and can also be specified on
1573   a per-PC basis (although this will cost more pool storage since many
1574   backup files will have to be stored in both compressed and
1575   uncompressed forms.
1576
1577 * A new script, BackupPC_compressPool, can be run to compress the entire
1578   pool.  This is used once to migrate all the pool data from uncompressed
1579   to compressed on existing installations.  Read the documentation
1580   (Installing BackupPC/Compressing an existing pool) before running
1581   BackupPC_compressPool!
1582
1583   Alternatively, compression can simply be turned on and all new backups
1584   will be compressed. Both old (uncompressed) and new (compressed)
1585   backups can be browsed and viewed. Eventually, the old backups will
1586   expire and all the pool data will be compressed.  However, until the
1587   old backups expire, this approach could require 60% or more additional
1588   pool storage space to store both uncompressed and compressed versions
1589   of the backup files.
1590
1591 * Significant improvements to the cgi interface, BackupPC_Admin:
1592
1593     - much better layout navigation
1594     - handles compressed backup files and compressed log files
1595     - handles unfilled incremental dumps
1596     - better backup directory browsing navigation
1597     - reports compression statistics
1598     - $Conf{CgiDateFormatMMDD} allows you to set date format (MM/DD or DD/MM)
1599     - Additional customization with $Conf{CgiHeaderFontType},
1600       $Conf{CgiHeaderFontSize}, $Conf{CgiNavBarBgColor}, and
1601       $Conf{CgiHeaderBgColor}.
1602
1603 * Eliminated BackupPC_queueAll.  BackupPC directly reads the hosts
1604   file and queues the PCs itself.  Like config.pl, BackupPC will
1605   re-read the hosts file on each wakeup if its modification time
1606   changes, or upon a SIGHUP.  This also makes for better behavior
1607   when adding a host: if you add hosts, simply send a SIGHUP to
1608   BackupPC or wait for the next wakeup.
1609
1610 * BackupPC_dump now compresses the SmbLOG file if compression is enabled.
1611
1612 * BackupPC_dump keeps track of compressed file sizes so that compression
1613   statistics can be reported by the cgi interface.
1614
1615 * Aging of old log files now handles compressed log files (.z extension).
1616
1617 * Added configuration option $Conf{IncrFill} to specify whether
1618   incremental dumps should be filled in.  Old behavior was that
1619   filling was on.  Now it's optional.  See config.pl for more
1620   details.
1621
1622 * BackupPC_nightly now cleans and generates statistics for both
1623   the uncompressed pool and compressed pool (cpool).
1624
1625 * Added new utility script BackupPC_zcat that can be used to
1626   uncompresses BackupPC files.
1627
1628 * configure.pl offers various options related to compression,
1629   depending upon whether this is a new install or upgrade,
1630   and whether or not Compress::Zlib is installed.
1631
1632 * configure.pl now makes a backup copy of config.pl before
1633   config.pl is updated.
1634
1635 * added three new fields to the backups file to handle optional
1636   filling and compression stats.
1637
1638 * Added -e option to BackupPC_dump.  BackupPC now invokes BackupPC_dump -e
1639   on each dhcp host once each night to verify that very old backups are
1640   expired.  This ensures that very old backups are expired even if
1641   the dhcp host has not been on the network for a long time.
1642
1643 * fixed bug in BackupPC::FileZIO.pm that required Compress::Zlib,
1644   even if compression was off.  Thanks to Steve Holmes for reporting
1645   this.
1646
1647 * fixed bug that caused a BackupPC queue to get blocked when a backup
1648   cancel attempt was made during the BackupPC_link phase.
1649
1650 #------------------------------------------------------------------------
1651 # Version 1.02, 28 Oct 2001.
1652 #------------------------------------------------------------------------
1653
1654 * Added new script BackupPC_tarExtract to extract the smbclient tar
1655   archive. This reduces disk writes by perhaps 90-95% and disk reads by
1656   50%. Previously, tar was used to extract and write everything to disk.
1657   Then BackupPC_dump would read enough of each file to compute the MD5
1658   digest, and then compare the full file with candidate pool files.  So
1659   for each 1MB file that matches a single file in the pool, there would
1660   be 1MB of disk writes and 2MB of disk reads (to compare two 1MB files).
1661
1662   BackupPC_tarExtract instead extracts the archive using a 1MB memory
1663   buffer.  This allows the MD5 digest to be computed without touching the
1664   disk.  Next, any potential pool file compares are done by comparing the
1665   pool file against the incoming tar data in memory, which only requires
1666   the pool file to be read.  So for each 1MB file that matches a single
1667   file in the pool, there are now no disk writes, and only 1MB of reads.
1668   BackupPC_tarExtract handles arbitrary size files and repeated
1669   potential pool matches.  If the incoming file doesn't match the pool
1670   then it is written to disk (once the pool is mature this happens maybe
1671   5-10% of the time).
1672
1673 * Substantial changes to BackupPC_dump:
1674
1675     + BackupPC_tarExtract is now used in place of tar.
1676
1677     + BackupPC_dump now reads the output from both smbclient and
1678       BackupPC_tarExtract and merges them into SmbLOG.
1679
1680     + Named pipes are no longer used to connect smbclient to tar
1681       (now BackupPC_tarExtract).  Regular pipes are used instead.
1682       This avoids the need to system mknod or mkfifo.
1683
1684     + Locked files on the client that can't be read by smbclient
1685       previously were filled with 0x0 bytes by smbclient, meaning
1686       tar extracted a useless file filled with 0x0 bytes.  Now,
1687       BackupPC_dump watches the output of smbclient and removes
1688       any files that smbclient couldn't read.  This avoids storing
1689       useless files.  It tries to replace such files with a hard link
1690       to a previous dump.  These actions appear in the log file.
1691
1692 * added new module lib/BackupPC/FileZIO.pm. This handles pool file
1693   I/O and is used by BackupPC_tarExtract.  BackupPC::FileIO supports
1694   reading and writing compressed and regular files and provides all the
1695   hooks for compression support in BackupPC (should be supported in next
1696   version). BackupPC::FileIO also does efficient writing of files that
1697   contain leading 0x0 bytes (by seeking past the 0x0 bytes). This is
1698   helpful when smbclient reads a locked file, and it fills the tar
1699   output with a file of the correct size but all 0x0.  Such files will be
1700   later removed by BackupPC_dump.  But in the meantime, BackupPC::FileIO
1701   writes such files efficiently (as sparse files), meaning just a few
1702   blocks of disk space will be needed even if the file is large.
1703
1704 * alive/dead counting for blackout now works correctly for DHCP hosts.
1705
1706 * BackupPC resets activeJob on startup, to fix bug when BackupPC was
1707   killed and restarted with backups running.
1708
1709 * added extra non blocking select() in BackupPC to make sure the socket
1710   reads don't block.
1711
1712 * BackupPC avoids queuing multiple BackupPC_queueAll's on the CmdQueue.
1713
1714 * Updated BackupPC_sendEmail to correctly parse the locked file
1715   error from 2.2.1a smbclient, so that missing Outlook file emails
1716   can be correctly sent.
1717
1718 * Changed HostInfoRead() in lib/BackupPC/Lib.pm to lowercase the
1719   hostname read from the hosts file.
1720
1721 * BackupPC_Admin provides general summary when the host name is empty.
1722
1723 * configure.pl (and BackupPC) now requires perl 5.6.0 or later.
1724
1725 * configure.pl complains if BackupPC is already running, reminding you
1726   to stop it before upgrading.
1727
1728 * updated documentation, and fixed auto-insertion of config.pl into
1729   BackupPC.pod (previously the last config parameter was left out of
1730   BackupPC.pod).
1731
1732 #------------------------------------------------------------------------
1733 # Version 1.01, 30 Sep 2001
1734 #------------------------------------------------------------------------
1735
1736 * Documentation cleanup in README, doc/BackupPC.pod, conf/config.pl.
1737
1738 * BackupPC_sendMail now reads the optional per-PC config file, allowing
1739   email configuration parameters to be set on a per-PC basis.
1740
1741 * Removed the unused 4096-length MD5 digest code in lib/BackupPC/Lib.pm.
1742
1743 #------------------------------------------------------------------------
1744 # Version 1.00, 21 Sep 2001
1745 #------------------------------------------------------------------------
1746
1747 * Initial release of BackupPC on sourceforge.net.