Fix "mode file too large" errors when restoring huge backups.
[dump.git] / CHANGES
1 $Id: CHANGES,v 1.287 2008/04/17 15:16:47 stelian Exp $
2
3 Changes between versions 0.4b41 and 0.4b42 (released xxxxxxxxxxxxxxx)
4 =====================================================================
5
6 1. Fix printout of the 'Connection to' message in dump/restore.
7 Thanks to Dale Wiles <dwiles@users.sourceforge.net> for the
8 bug report and its fix.
9
10 2. Fix dump -w/-W output for filesystems having the last backup
11 level equal to 0. Thanks to Pascal Bouchareine
12 <kalou@users.sourceforge.net> for reporting the bug.
13
14 3. Enable restore to handle restoring onto a different SELinux
15 policy from the dump. Thanks to Tony Nelson
16 <tony_nelson@users.sourceforge.net> for the patch.
17 (see http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=189845
18 for details)
19
20 4. Fix EA set failures when restoring immutable files. Thanks
21 to Andrew Kroeger for the patch.
22
23 5. Fix "mode file too large" errors when restoring huge backups.
24 Thanks to Kenneth Porter <shiva@sewingwitch.com> for the bug
25 report.
26
27 Changes between versions 0.4b40 and 0.4b41 (released January 2, 2006)
28 =====================================================================
29
30 1. Fix restore of dumped Access Control Lists. The previous
31 code for EA works fine, but ACLs needed conversion from the
32 ext2/3 disk format to posix_acl format before restoring.
33
34 2. Fix some issues with restoration of EA on big endian
35 platforms.
36
37 3. Fix restore when the symtab is over 2GB in size.
38
39 4. Made the directory hash indexing an optional feature,
40 accessible by the '-H' option of restore, and disable it
41 by default.
42
43 5. Fixed dump to not include extended attributes information
44 in the toc (archive) file which confused restore -t.
45
46 Changes between versions 0.4b39 and 0.4b40 (released May 2, 2005)
47 =================================================================
48
49 1. Changed restore to emit warnings (instead of emitting a fatal
50 error) if a file (or a directory) is unavailable for a
51 comparision (if the user doesn't have the necessary permissions
52 to access it for example). Thanks to Kenneth Porter
53 <shiva@sewingwitch.com> for the bug report.
54
55 2. Re-done the 'do not save directory entries to non-dumped inodes
56 (excluded from dump)' feature. The previous implementation
57 worked well for excluded directories but not for regular files.
58 Thanks to Kenneth Porter <shiva@sewingwitch.com> for the bug
59 report.
60
61 3. Fixed a bug in dump where the tape size was miscalculated when
62 the user used -d/-s to specify the tape characteristics. Thanks
63 to Philip Goisman <goisman@physics.arizona.edu> for reporting
64 the bug.
65
66 4. Fixed another bug introduced in restore with the hashtree
67 implementation. This one caused restore to stop saying
68 "removenode: non-empty directory" in some cases.
69
70 5. Added support for dumping and restoring ext2/3 extended
71 attributes (EA), like the access control lists (ACL) or
72 the security labels used by SELinux.
73
74 Changes between versions 0.4b38 and 0.4b39 (released January 21, 2005)
75 ======================================================================
76
77 1. The newly added dump_on_cd_3 example was buggy, replace it
78 with an updated version from Andrew Basterfield
79 <bob@cemetery.homeunix.org>.
80
81 2. Made restore to chdir() back into the initial directory when
82 dumping core while aborting a comparision operation. The
83 previous behaviour was to write the corefile at the root of
84 the directory being compared, which could very well be
85 read only and preventing the corefile generation. Thanks
86 to Kenneth Porter <shiva@sewingwitch.com> for the bug report.
87
88 3. Silenced the failure to call fgetflags() when comparing an
89 entry which has no ext2 attributes (as in lsattr()).
90
91 4. Fix a brown paper bug in restore -C which broke restore and
92 caused modifications on the filesystem being compared
93 (directories containing a file with the same name as the
94 directory get renamed to RSTTMP...). Thanks to Kenneth Porter
95 <shiva@sewingwitch.com> for finding the bug and helping me
96 reproduce it.
97
98 5. Made restore -C force the -N flag (no writing allowed on
99 the disk) in order to prevent more bugs like the above one.
100
101 Changes between versions 0.4b37 and 0.4b38 (released January 7, 2005)
102 =====================================================================
103
104 1. Fix a couple of troff syntax bugs in the man pages.
105 Thanks to Eric Raymond <esr@thyrsus.com> for the patch.
106
107 2. Made restore use either libncurses or libtermcap, depending
108 on which one is available at configure time.
109
110 3. Fixed restore negative size display bug when comparing a
111 dump containing files over 2GB. Thanks to Steve Bonds
112 <sbonds@users.sourceforge.net> for the bug report.
113
114 4. Do not save directory entries to non-dumped inodes
115 (excluded from dump). This will eliminate the 'missing
116 file' warnings when doing 'restore -C'.
117
118 5. Fix dump crash when backuping a huge (2TB) filesystem,
119 due to a bogus calculation on the inode map size.
120 Thanks to Kevin B. Haines <K.B.Haines@rl.ac.uk> for
121 submitting the bug and testing the fix.
122
123 6. Fix a problem in restore where the final \0 in the symbolic
124 link names could have been lost, generating corrupt filenames.
125 Thanks to Kyle Wilson <kyle.wilson@amd.com> for reporting the
126 bug.
127
128 7. Implemented a hash list for the directory names in restore.
129 The linear list used before caused problems in interactive
130 restores when dealing with directories having thousands of
131 entries. Thanks to Brian Ristuccia <bristuccia@starentnetworks.com>
132 for reporting the bug.
133
134 8. Improved restore -C, this time including the directory
135 attributes into the comparision.
136
137 9. Made restore understand tapes containing EA/ACLs (which will
138 be dumped by the next version of dump). In this version
139 extended attributes on the tape are ignored, for full EA/ACL
140 support wait for the next version or try the experimental EA
141 patch.
142
143 Changes between versions 0.4b36 and 0.4b37 (released July 7, 2004)
144 ==================================================================
145
146 1. Added the --enable-staticz configure option which enables
147 dump and restore to be linked with static versions of
148 libz and libbz2 (and dynamic versions of all other libraries).
149 This will make Debian users happy, because libz and libbz2
150 were the only needed libraries living in /usr, all the
151 others live in /lib. In case of system emergency, it is
152 better not to have to rely on an extra filesystem.
153 Thanks to Bdale Garbee <bdale@gag.com> for the suggestion.
154
155 2. Fix compilation on (at least the Linux Debian port to) AMD64.
156 (<ext2fs/ext2_types.h> defines some types (__s64 and __u64)
157 that are also defined by <linux/types.h> (<asm/types.h>) and
158 they conflict).
159
160 3. Make dump's reading of the dumpdates file a bit more robust,
161 preventing dump from crashing when the dumpdates file has
162 been modified by hand.
163
164 4. Fixed some offset calculations in dump code which could
165 lead to "bread lseek errors" on large filesystems. Thanks
166 to Bruce Lowekamp <lowekamp@users.sourceforge.net> for
167 reporting this bug and debugging the issue.
168
169 5. Made dump use the blkid library when searching for devices
170 by label or uuid instead of dump's own routines.
171
172 6. Corrected a bug in dump where a wrong LABEL=... line in
173 /etc/fstab could prevent dump from dumping unrelated
174 filesystems. Thanks to Bruce Lowekamp
175 <lowekamp@users.sourceforge.net> for reporting the bug.
176
177 Changes between versions 0.4b35 and 0.4b36 (released April 21, 2004)
178 ====================================================================
179
180 1. Fixed dump compilation with old gcc versions. Thanks to
181 Mike Castle <dalgoda@users.sourceforge.net> for the patch.
182
183 2. Fixed some warnings (howmany, roundup, powerof2 redefined)
184 when compiling against a recent glibc version.
185
186 3. Fixed a bug in restore preventing the read of a dump tape
187 written with Solaris 7 ufsdump. Thanks to Patrick Higgins
188 <phiggins@transzap.com> for reporting the bug and providing
189 the test case.
190
191 4. Changed dump to enable the creation of volumes of different
192 sizes in a single run (make -B accept a list of values).
193 Patch contributed by Florian Zumbiehl <florz@gmx.de>.
194
195 5. Use the glibc provided minor() and major() macros instead
196 of our own bitmask implementation. This should be safe for
197 when the major/minor namespace will migrate to 32 bits.
198 Thanks to Zhang Jun <zhangjun@nanjing-fnst.com> for reporting
199 the bug.
200
201 6. Made explicit in the dump man page that dump will not create
202 a remote file, it will only write to an already existing one.
203
204 7. Another try at making size estimates better again.
205
206 8. Put back the inconditional running of the end-of-tape
207 script which was changed in 0.434 to be run only when -M
208 or multiple -f were NOT specified. Some users rely on this
209 feature even when it is combined with -M/-f.
210
211 9. Fixed restore when restoring huge backups (where rstdir...
212 temporary files are over 2GB). Thanks to
213 Raphael Jaffey <rjaffey@artic.edu> for reporting this,
214 debugging the issue and making the patch.
215
216 10. Made restore understand FreeBSD UFS2 tapes. Thanks to
217 David <vrtin@users.sourceforge.net> for submitting the bug
218 and providing a test case.
219
220 11. Made dump work with an arbitrary integer level (no more 10
221 levels only limitation). Thanks to Matthew
222 <msvincen@midway.uchicago.edu> for the patch.
223
224 Changes between versions 0.4b34 and 0.4b35 (released December 21, 2003)
225 =======================================================================
226
227 1. Added a note in the dump man page saying that the default
228 blocksize can be 32 if -d is used with a high density argument.
229 Thanks to Antonios Christofides <A.Christofides@itia.ntua.gr>
230 for the patch.
231
232 2. Fixed configure to correctly understand CPPFLAGS, CFLAGS,
233 LDFLAGS environment variables. Thanks to Arcady Genkin
234 <antipode@users.sourceforge.net> for reporting the bug.
235
236 3. Made -e/-E options of dump accept an unlimited number of inodes
237 to be excluded, rather than a hardcoded maximum. Thanks to
238 Dietrich Rothe <d-rothe@users.sourceforge.net> for the patch.
239
240 4. Updated the autoconf system to 2.50. Forced the -D_BSD_SOURCE
241 and -D_USE_BSD_SIGNAL defines in configure in order to solve
242 64bit build problems because quad_t is redifined with a
243 different signature. Thanks to Mike Harris <mharris@redhat.com>
244 for reporting this bug.
245
246 5. Made restore build on Solaris, making possible to
247 restore Linux's "enhanced" tapes. Thanks to Uwe Gohlke
248 <uwe@ugsoft.de> for the patch.
249
250 6. Made an extension in the dump tape format capable of saving
251 MacOSX specific inode extensions. Uwe Gohlke <uwe@ugsoft.de>
252 wrote the extension and contributed the restore code back
253 into this codebase. The same extension mechanism will be
254 used in the future to save ACLs...
255
256 7. Made rmt work correctly with regard to QFA and local/remote
257 files and tapes. The remote access will however work only
258 when the dump provided rmt version is used. If you want to
259 use another rmt server, please do not use the QFA feature.
260 Thanks to Uwe Gohlke <uwe@ugsoft.de> for the patch.
261
262 Changes between versions 0.4b33 and 0.4b34 (released April 18, 2003)
263 ====================================================================
264
265 1. Fixed the INSTALL file to reflect the actual install paths.
266 Thanks to David Ronis <ronis@ronispc.chem.mcgill.ca> for
267 reporting the bug.
268
269 2. Fixed the configure script to only check for headers presence
270 instead of trying to compile them. This should fix issues
271 with old build environments. Thanks to Kari Lempiainen
272 <kari@funky.pp.fi> for reporting the bug.
273
274 3. Fixed restore to correctly ignore sockets when comparing
275 a dump (as socket cannot be properly restored anyway). Thanks
276 to Gunther Reiszig <gunther@mit.edu> for reporting the bug.
277
278 4. Fixed restore to correctly access the archive file (-A argument)
279 even when using a remote tape. Thanks to Fabrice Bellet
280 <fabrice@bellet.info> for reporting the bug.
281
282 5. Fixed (again) handling of long (largefile) seeks in rmt.
283 Thanks to Fabrice Bellet <fabrice@bellet.info> for reporting
284 the bug.
285
286 6. Fixed restore corner case when dealing with large block sizes
287 dump is able to write now (-b 1024). Thanks to Fabrice Bellet
288 <fabrice@bellet.info> for reporting the bug.
289
290 7. Fixed a bug preventing dump to access a filesystem having
291 a label exactly 16 bytes in length. Thanks to <minduni@ti-edu.ch>
292 for reporting the bug.
293
294 8. Made dump store dump dates using explicit timezones, fixing a
295 problem with incremental dumps if the timezone is modified
296 between the dumps. Thanks to Philippe Troin <phil@fifi.org> for
297 the bug report and the patch.
298
299 9. Fixed a bug encountered when dumping individual files (not full
300 filesystems or directories) and dangling symbolic links happen
301 to be in the list of files. For as far as dump is concerned,
302 dangling symbolic links are allowed, and are dumped as is.
303 Thanks to Jin-su Ahn <jsahn@ee.snu.ac.kr> for reporting the
304 bug and providing the fix.
305
306 10. Fixed open and creation modes and permissions for QFA and
307 table-of-contents files in dump and restore. Thanks to
308 Philippe Troin <phil@fifi.org> for the patch.
309
310 11. Fixed the archive file descriptor handling enabling it to be 0.
311 This can happen in some cases when shell redirections are used.
312 Thanks to Philippe Troin <phil@fifi.org> for the patch.
313
314 12. Delayed the opening of archive file until after suid had been
315 dropped (fixing a possible security issue if dump is suid).
316 Thanks to Philippe Troin <phil@fifi.org> for the patch.
317
318 13. Fixed the 'S' command handling in the rmt client part.
319 Thanks to Philippe Troin <phil@fifi.org> for the patch.
320
321 14. Modified the end-of-tape script handling to print out statistics
322 (and stop the timer) before launching the eot script. Also, the eot
323 script does not get run anymore when using -M (which makes sense) or
324 when multiple tapes are listed on the command line
325 (-f tape0,tape1,tapen) (which also makes sense).
326 Thanks to Philippe Troin <phil@fifi.org> for the patch.
327
328 15. Relicensed dump/restore under the 'revised' BSD license, as per
329 ftp://ftp.cs.berkeley.edu/ucb/4bsd/README.Impt.License.Change.
330
331 16. Added LZO compression to dump. This new compression method has
332 the advantage of being super fast, thus not killing tape streaming
333 on slow machines. Thanks to Helmut Jarausch
334 <jarausch@igpm.rwth-aachen.de> for the patch and to
335 Markus Oberhumer <markus@oberhumer.com> for giving special permission
336 to include his miniLZO project (GPL licensed) in dump/restore.
337
338 17. Some small buffer overruns fixes in rmt. Thanks to Antonomasia
339 <ant@notatla.demon.co.uk> for reporting the bugs.
340
341 18. Added a special rmt version which can do encryption when writing
342 to tape. Read examples/encrypted_rmt/README for details on
343 how to enable and configure it. Thanks to Ken Lalonde
344 <ken@globalremit.com> for the patch.
345
346 19. Made dump work with 2.5 kernel end of tape early warning semantics.
347 Thanks to Kai Makisara <Kai.Makisara@kolumbus.fi> for the patch.
348
349 20. Fixed a bug which caused dump -w|-W not to work anymore, because
350 the fs_freq and fs_passno fields in /etc/mtab are always set
351 to 0 0. Thanks to Trent Piepho <xyzzy@speakeasy.org> for
352 reporting the bug.
353
354 Changes between versions 0.4b32 and 0.4b33 (released February 10, 2003)
355 =======================================================================
356
357 1. Added a note in the restore man page clarifying the question
358 'set the permissions on the current directory ?' asked by
359 restore at the end of treatment in -i and -x modes.
360
361 2. Fixed the endianess issues when reading compressed tapes.
362 Thanks to Dark Force <daq4th@users.sourceforge.net> for
363 reporting this bug and providing test cases.
364
365 3. Fixed the "ACL won't be dumped" warning message (which showed
366 an extra, unrelated error message). Thanks to Dragan Krnic
367 <dkrnic@lycos.com> for reporting this bug.
368
369 4. Made dump look first into /etc/mtab, then into /etc/fstab
370 when searching for filesystem paths. Also fixed some problems
371 caused by binding mounts or multiple block device mounts.
372 Thanks to Matus Uhlar <uhlar@fantomas.sk>, Elliott Mitchell
373 <ehem@m5p.com>, Greg Edwards <gedwards@users.sourceforge.net>,
374 Brian Hoy <brian.hoy@opus.co.nz>. (fixes Debian bugs #147086
375 and #160305, Sourceforge bugs #618699 and #679832).
376
377 5. Made dump's -I option accept the value '0' meaning all the
378 read errors will be ignored. This can be useful when running
379 dump from unattended sessions (like cron jobs). Thanks to
380 John I Wang <jiwang@users.sourceforge.net> for the suggestion.
381
382 6. Fixed the output of dump to indicate 'blocks' instead of
383 'tape blocks' in the various messages (blocks are always
384 1 Kilobyte, tape blocks are 1 BK * '-b' argument), and
385 made it clearly print the current blocksize at the start of
386 a dump. Thanks to Michal Szymanski <msz@astrouw.edu.pl> for
387 the suggestions.
388
389 7. Made rmt understand long (largefiles) seeks.
390
391 8. Fixed build with very old versions of libext2fs, where
392 EXT2_FT_* constants were undefined.
393
394 9. Made dump accept the dumpdates path on the command line
395 (-D file option) instead of using only the hardcoded one.
396 Thanks to Piete Brooks <pb22@users.sourceforge.net> for the
397 suggestion.
398
399 10. Enabled rmt, LFS, readline, QFA options by default in
400 ./configure. Updated the configure process (new versions
401 of config.guess, config.sub etc).
402
403 Changes between versions 0.4b31 and 0.4b32 (released November 15, 2002)
404 =======================================================================
405
406 1. Changed dump to use fcntl(F_SETLK) style locking instead
407 of flock() when locking the dumpdates file. With the old
408 locking scheme, a local user having read rights on the
409 dumpdates file could be able to do a Denial of Service attack
410 on dump. In order to lock the dumpdates file with the new
411 scheme, the user would need to have write access on the file.
412 Thanks to Richard Johnson <Richard.Johnson3@ey.com> for
413 reporting the bug (originally a bugtraq post).
414
415 2. Fixed interactive 'ls' which caused spurious errors warnings
416 about 'undefined filetypes' detected. Thanks to Jorgen Ostling
417 <jorgen_ostling@users.sourceforge.net> for reporting this
418 bug.
419
420 3. Fixed dump's estimate when dealing with sparse inodes.
421
422 4. Modified dump to allow setting a blocksize bigger than 32kB
423 (raised the limit to 1024kB), because newer hardware needs
424 this for proper operation. Thanks to Dirk Traenapp
425 <dtraenapp@users.sourceforge.net> for reporting this.
426
427 5. Fixed a bug causing Dump to stop and report an error if an
428 inode number in the exclude file was followed by some amount
429 of whitespace. Thanks to Jeffrey Sofferin
430 <sofferin@users.sourceforge.net> for reporting this bug.
431
432 6. Fixed a bug which caused restore, in some particular cases,
433 to ask some 'scary' questions and leave a bunch of RSTTMP
434 directories behind when restoring incremental tapes. Thanks
435 to Philippe Troin <phil@fifi.org> for reporting this bug and
436 providing the test cases.
437
438 7. Changed the wording when inodes are excluded from dump:
439 replaced 'Added inode 7 to exclude list' with
440 'Excluding inode 7 (resize inode) from dump', as suggested
441 by Elliott Mitchell <ehem@m5p.com> in a Debian bug report.
442
443 Changes between versions 0.4b30 and 0.4b31 (released July 30, 2002)
444 ===================================================================
445
446 1. Fixed rmt open flags transmission (GNU's symbolic syntax over
447 rmt) which I broke in 0.4b29. Thanks to Eros Albertazzi
448 <eros@lamel.bo.cnr.it> for reporting the bug.
449
450 Changes between versions 0.4b29 and 0.4b30 (released July 25, 2002)
451 ===================================================================
452
453 1. Made dump print out the ext2 logical block number in case of a read
454 error, which can be given as an argument to debugfs' ncheck command,
455 in order to find out the affected inode. Added note about this
456 usage in dump's man page.
457
458 2. Fixed a problem in restore when reading tapes written on big
459 endian machines with very old versions of dump. The patch was
460 contributed by George Helffrich <george@geology.bristol.ac.uk>.
461
462 3. Fixed the tape length calculation when using large tapes
463 and compression. Thanks to Georg Lippold
464 <g_lippold@sourceforge.net> for reporting the bug.
465
466 4. Added a new set of examples in dump_on_cd_2 directory, based
467 on dump_on_cd examples but somewhat enhanced, supporting DVD
468 media, and localized in english and german. Thanks to
469 Georg Lippold <g_lippold@sourceforge.net> for the new scripts.
470
471 5. Made dump save 32 bit UID/GID. Internally, this was achieved
472 by switching from the old BSD inode format to the new BSD
473 inode format, which means that the tape format was changed.
474 However, since all restore versions out there should
475 transparently support both inode formats, the change should
476 have no side effects. Thanks to John Yu <jky@cs.bu.edu> for
477 reporting the bug.
478
479 6. Fixed a lot of warnings in the code shown when compiling
480 with 'gcc -W'. Thanks to Matthias Andree
481 <matthias.andree@stud.uni-dortmund.de> for reporting this.
482
483 7. Fixed a small markup bug in the dump man page. Thanks to
484 Eric S. Raymond <esr@minx.thyrsus.com> for submitting the
485 patch.
486
487 8. Rewrote entirely the man pages using the tmac.an macro
488 package (Linux man page format) instead of the original BSD
489 format. They should be now cleaner and easier to modify.
490
491 Changes between versions 0.4b28 and 0.4b29 (released June 8, 2002)
492 ==================================================================
493
494 1. Fixed a problem in the rmt ioctl command, where ioctl's issued from
495 non Linux clients were misinterpreted. The description of the problem
496 (incompatible numbering in Linux mtio opcodes) is documented at
497 ftp://ftp.fokus.gmd.de/pub/unix/star/README.mtio . Thanks to
498 Jörg Schilling <schilling@fokus.gmd.de> for reporting this bug and
499 providing an excellent, cross-platform replacement for rmt in his
500 star package.
501
502 2. Fixed a bug reported by Andy Mentges <amentges@jumpline.com>
503 which caused restore to fail when the inode maps were not entirely
504 contained on the first volume (when using really small volumes or
505 when dumping a huge number of inodes).
506
507 3. Fixed a problem in dump, where files in subdirectories of directories
508 that have the nodump flag set (or being excluded with -e/-E) were
509 sometimes incorrectly dumped (instead of being excluded). The original
510 fix is from David C Lawrence <tale@dd.org> in the FreeBSD version
511 of dump: http://www.FreeBSD.org/cgi/query-pr.cgi?pr=32414
512 Thanks to Ted Grzesik <tedgyz@roostme.com> for reporting the bug and
513 help testing the patch.
514
515 4. Added some example scripts from Gerd Bavendiek <bav@epost.de>
516 which makes one able to pipe the output of dump, by the net, to
517 a remote CD-burner server.
518
519 5. Made dump use O_CREAT|O_TRUNC both locally and remotely (over rmt),
520 and use GNU's symbolic syntax over rmt instead of numerical values
521 to assure multiple platform compatibility.
522
523 6. Documented the -d option in restore.
524
525 7. Added a -v (verbose) mode to dump. For now it just prints the number
526 of the inode being dumped, but this could evolve in future versions
527 to include interesting debugging output.
528
529 8. Added a -o flag to restore, which automatically restores the current
530 directory permissions in -i or -x mode, without asking the operator
531 whether to do so. Patch submitted by Tony Clayton <tonyc@e-smith.com>
532 and Peter Samuel <peters@e-smith.com>.
533
534 Changes between versions 0.4b27 and 0.4b28 (released April 12, 2002)
535 ====================================================================
536
537 1. Fixed a bug in the QFA feature which could have caused
538 a bad tape positionning on restore (causing extra delays in
539 restore). Credits go to Uwe Gohlke <uwe@ugsoft.de>.
540
541 2. Added a small note in the dump man page specifying that
542 there should be no white space between the option letter and
543 the -j or -z parameter, thanks to Kenneth Porter <shiva@well.com>
544
545 3. Made restore work with older versions of the readline library,
546 by checking in configure for several extended symbols. Restore
547 can now be compiled with a readline as old as the 2.0 release
548 (though it may be a good idea to upgrade it to a more recent
549 version...). Thanks to Andrew Donkin <ard@waikato.ac.nz> for
550 reporting the build failures.
551
552 4. Fixed a performance problem with the QFA file creation in
553 dump, which made unnecessary seeks on the tape slowing down
554 the dump. Thanks to Andrew Donkin <ard@waikato.ac.nz> for
555 reporting this issue.
556
557 5. Removed the inclusion of some kernel headers in the dump
558 source, which prevented the compile in some kernel/glibc
559 headers/architecture combination. Thanks to Bdale Garbee
560 <bdale@gag.com> for reporting the bug.
561
562 6. Added the appropriate error message when dump fails to
563 open the output file for writing. Thanks to Amith Varghese
564 <amithv@yahoo.com> for reporting this bug.
565
566 7. Made restore able to understand large Solaris ufsdump tapes
567 (containing inodes bigger than 4194304). Sun have introduced
568 an "extension" to the dump tape format when dealing with
569 those inodes, which was uncorrectly handled by Linux restore.
570 Thanks to Uwe Gohlke <uwe@ugsoft.de> for reporting the bug and
571 providing a test case.
572
573 8. Added the -m parameter to dump which optimises the output for
574 inodes having been changed but not modified since the last dump
575 ('changed' and 'modified' have the meaning defined in stat(2)).
576 For those inodes, dump will save only the metadata, instead of
577 saving the entire inode contents. Inodes which are either
578 directories or have been modified since the last dump are saved
579 in a regular way. Uses of this flag must be consistent, meaning
580 that either every dump in an incremental dump set have the flag,
581 or no one has it.
582
583 Changes between versions 0.4b26 and 0.4b27 (released February 15, 2002)
584 =======================================================================
585
586 1. Fixed behaviour of dump when exceeding resource limits
587 (SIGXFSZ treatment).
588
589 2. Added the -L flag to restore to allow the user to specify a
590 maximal allowed number of miscompares when using restore
591 with the -C option to check the backup.
592
593 3. Detailed the manual entry for the -N option of restore.
594
595 4. Added the -a flag to restore to make able doing unattended
596 restores in -i or -x mode (automatically walks through the
597 multiple dump volumes).
598
599 5. Extended the QFA mode to work with local files and/or
600 remote tapes and files. This way, restore can know in advance
601 the tape number and the offset for the inodes to extract and
602 can minimize the extraction time by seeking directly to the
603 good tape/offset.
604
605 6. Added the -A <archive> option to both dump and restore,
606 which makes dump to archive a dump table-of-contents in
607 the specified file to be used by restore to determine
608 whether a file is in the dump file that is being restored.
609 (the archive file syntax is also compatible with the
610 Solaris ufsdump generated one).
611
612 7. Small fix in restore making it able to read some (broken ?)
613 Solaris ufsdump tapes.
614
615 8. Fixed dump to correctly recognise the root filesystem when using
616 ext2 disk labels (LABEL=/). Thanks to John Yu <jky@it.bu.edu>
617 for reporting this bug.
618
619 9. Added the -P <file> option to restore to create a
620 Quick File Access file from an already made dump. Patch
621 contributed by Uwe Gohlke <uwe@ugsoft.de>.
622
623 10. Made restore compile and run on Solaris, making it a
624 possible replacement for the standard ufsrestore. Port was
625 contributed by Uwe Gohlke <uwe@ugsoft.de>.
626
627 Changes between versions 0.4b25 and 0.4b26 (released January 7, 2002)
628 =====================================================================
629
630 1. Added a set of backup scripts from Eugenio Diaz
631 <getnito@yahoo.com> in the examples section. It features
632 automatic (cron based) full and incremental dumping of
633 several filesystems on a separate filesystem.
634
635 2. Fixed a off-by-one miscalculation which disabled dumping
636 a one letter subdirectory. Thanks to Chris Siebenmann
637 <cks@utcc.utoronto.ca> for reporting the bug.
638
639 3. Fixed several restore bugs occuring when trying to
640 restore some missing files on the tape. Thanks to Chris
641 Siebenmann <cks@utcc.utoronto.ca> for reporting the bug.
642
643 4. Fixed --with-ldopts configure argument passing, installing from
644 a separate object directory, makefile cleanups contributed
645 by <splite@purdue.edu>.
646
647 5. Fix a bug which could caused, in some conditions, the highest
648 number inode of a filesystem, to not be dumped. Many thanks
649 to Chris Siebenmann <cks@utcc.utoronto.ca> for helping me
650 chase this bug.
651
652 Changes between versions 0.4b24 and 0.4b25 (released November 17, 2001)
653 =======================================================================
654
655 1. Added a mini howto from Patrick Walsh in the examples
656 directory.
657
658 2. Minor man pages syntax corrections. Thanks to
659 Chris Danis <screechco@home.com> for reporting the bugs.
660
661 3. Added a script from David B. Peterson <dave@toppledwagon.com>
662 to the examples section. It features dumping several
663 filesystems to a remote tape drive upon ssh.
664
665 4. Added a patch provided by Richard Jones <rich@annexia.org>
666 which allows BRADEMAX (number of read errors tolerated by
667 dump) to be adjusted using the -I option.
668
669 5. Fixed a bug which disabled doing "restore -C -f -". Thanks
670 to Clemens Stiglechner <a9401816@unet.univie.ac.at> for the
671 patch.
672
673 6. Add the -l option to restore to specify if, when doing a
674 remote restore, the file used to access the backup is a
675 regular file (the defaults being a tape drive). Restore needs
676 to know this information when reading a remote compressed
677 dump. Previously, this information was autodetected, but
678 the autodetection code fails (with ioctl: Inappropriate ioctl
679 for device) when using a non Linux remote box. Thanks to
680 many users and especially to Eros Albertazzi
681 <eros@lamel.bo.cnr.it> for reporting this.
682
683 7. Found a workaroung for the dump deadlock problem (3 childs
684 stuck in pause(), father in read()). The workaround seems
685 to work for me and several beta-testers. If it doesn't work
686 for you, please report back.
687
688 8. Updated the RPM spec file (BuildPrereq, URL etc).
689
690 Changes between versions 0.4b23 and 0.4b24 (released September 12, 2001)
691 ========================================================================
692
693 1. Fixed the permissions of a newly created QFA file by dump.
694
695 2. Cleaned up the source of dump (the external variables
696 definition was a complete mess, making possible to have
697 objects overlap).
698
699 3. Fixed restore to use the full tape volume path when doing
700 a compare (since it changes the working directory to the
701 filesystem being compared in the process).
702
703 4. Added the -q option to dump which makes dump abort
704 whenever it needs operator attention. It should be
705 easier to use dump in scripts with this option.
706
707 5. Detect the use of incompatible options to dump and
708 refuse them (like -a and -B options together).
709
710 6. Added bzip2 compression to dump/restore (use option -j level
711 to select it). Note that you will need a restore version
712 >= 0.4b24 in order to restore a bzip2 compressed dump.
713 The same warning as for the zlib compression applies:
714 the tape format of a bzip2 dump is not compatible with the
715 original BSD tape format.
716
717 7. Fixed a overflow problem in dump corrupting the dump when
718 very large files were encountered. Thanks to Vladimir Nadvornik
719 for the bug report.
720
721 8. Added a ioctl(BLKFLSBUF) in dump which should flush the
722 kernel buffer/page cache before starting the dump, helping
723 a bit those who use dump on mounted filesystems. Thanks to
724 John Yu <jky@it.bu.edu> and to Theodore T'so <tytso@mit.edu>
725 for this suggestion.
726
727 9. Updated the RPM spec file following the RedHat changes
728 (dynamically linked binaries now in /usr/sbin etc).
729
730 10. Added a patch from Helmut Jarausch <jarausch@igpm.rwth-aachen.de>
731 which enables restore to recognise multi volume compressed dumps
732 done on CD. Included his scripts for dump (which pipe the dump
733 output directly into cdrecord) and restore. There is now
734 possible to to backups to CD on the fly!
735
736 Changes between versions 0.4b22 and 0.4b23 (released July 20, 2001)
737 ===================================================================
738
739 1. Fixed a buffer overflow in restore/tape.c. Patch provided by
740 Marcus Meissner (Caldera International Security Dept.).
741
742 2. Implement the Sun rmt extended protocol. Patch submitted
743 by Ian Gordon <iangordon@users.sourceforge.net>.
744
745 3. Check for the e2fsprogs header <ext2fs/ext2_fs.h> instead of
746 the linux kernel header. This ensures that dump always has the
747 latest version of this file. Patch submitted by
748 Andreas Dilger <adilger@turbolinux.com>.
749
750 4. Report any filesystem present in either /etc/fstab with a
751 positive passno or /etc/dumpdates in dump -w output.
752 Patch submitted by Andreas Dilger <adilger@turbolinux.com>.
753
754 5. Fixed the looping problem in dump introduced in the
755 previous version.
756
757 6. Changed the -B option of dump to limit the size of
758 _compressed_ output per volume if compression is on.
759 Patch contributed by Helmut Jarausch
760 <jarausch@igpm.rwth-aachen.de>. Note however that, since
761 it is impossible to predict the size of the compressed
762 data before doing the compression, the -B limit is a bit
763 conservative.
764
765 7. Fixed a bug in reading the operator typed file/tape path for
766 the next volume in restore.
767
768 8. Implemented a "-F script" option to restore which permits the
769 user to specify a script which will be launched at the
770 beginning of each tape, useful for automatic programming of
771 tape changers for example. See the restore man page for the
772 script parameters and return codes.
773
774 9. Small fix for the QFA routines provided by Uwe Gohlke
775 <uwe@ugsoft.de>, and some recommendations for QFA uses in
776 the man pages.
777
778 10. Fixed the multivolume restoring where making a mistake
779 to the 'Mount next tape' prompt caused several blocks to
780 be lost.
781
782 11. Enhanced the -e option of dump to take as a parameter a
783 comma separated list of inode numbers.
784
785 12. Added the -E option to dump which specify a file containing
786 inode numbers to exclude from the dump.
787
788 13. Fixed the compressed multi-volume dump + restore.
789
790 Changes between versions 0.4b21 and 0.4b22 (released May 12, 2001)
791 ==================================================================
792
793 1. Made dump report the number of blocks dumped per volume.
794 Thanks to Kenneth Porter <shiva@well.com> for the suggestion.
795
796 2. Fix a bug in dump where waiting too much at the 'change volumes'
797 question caused the volume to be rewritten. Thanks to
798 Graham Reed <greed@users.sourceforge.net> for reporting the
799 bug and providing a patch.
800
801 3. Added a compression option to dump, contributed by Jerry
802 Peters <gapeters@worldnet.att.net>.
803
804 WARNING: the compression works only on files/pipes and
805 drives supporting variable block size.
806
807 WARNING2: tapes created using the compression feature are
808 incompatible with the standard dump tape format, and a
809 version of restore >= 0.4b22 will be needed for extraction.
810
811 4. Fixed some compilation problems for glibc 2.2.2 and 64 bit
812 architectures. Thanks to Paul Slootman <paul@debian.org> for
813 the patch and to Bdale Garbee <bdale@gag.com> for forwarding
814 it upstream.
815
816 5. Many cleanups (CPP defines, const char warnings, check of
817 ext2fs COMPAT flags, time_t cleanups, added libext2 version
818 in dump usage text) by Andreas Dilger <adilger@turbolinux.com>.
819
820 6. Made --prefix option work in configure. All the install path
821 are now based on the configure parameters.
822
823 7. Added the Quick File Access mode in dump/restore, contributed
824 by Uwe Gohlke <uwe@ugsoft.de>. In this mode, dump stores in
825 a file tape position for each inode, and this file is used by
826 restore (if called with parameter Q and the filename)
827 to directly position the tape at the file restore is currently
828 working on. This saves hours when restoring single files from
829 large backups, saves the tapes and the drive's head. Use
830 --enable-qfa option of configure to compile in the QFA support.
831
832 8. Added the possibility to dump several files and directories
833 in a single invocation of dump. Thanks to Uwe Gohlke
834 <uwe@ugsoft.de> for implementing this option.
835
836 9. Fixed the dumping and restoring of files with holes
837 (files ending with holes didn't get dumped or restored
838 correctly).
839
840 10. Fixed a socket descriptor leak in dump, which leaved opened
841 3 file descriptors per dump process (and there is one dump
842 process per tape).
843
844 11. Fixed dump large file system support, by explicit use of
845 open64/lseek64/etc functions (explicit use needed because
846 e2fsprogs libraries don't behave well when compiled with
847 FILE_OFFSET_BITS=64).
848
849 Changes between versions 0.4b20 and 0.4b21 (released January 13, 2001)
850 ======================================================================
851
852 1. Fixed some bugs in the dump -w|-W logic introduced by
853 the previous version. Thanks to Andreas Dilger
854 <adilger@turbolinux.com> for his help on this one.
855
856 2. Fixed again a compilation problem when using old e2fs
857 headers (filesystem label related). Thanks to many users
858 who reported this stupid error.
859
860 3. Fixed a build problem on old lib5 based systems dealing with
861 _PATH_MNTTAB being undefined. Thanks to John Adams
862 <johna@onevista.com> for reporting the bug.
863
864 4. Improved the error detection in restore when creating
865 the temporary files in TMPDIR. Now restore will corectly
866 report a 'no space left on device' error instead of
867 strange errors which could imply an archive corruption.
868 Thanks to Gabriel Somlo <somlo@cs.colostate.edu> and
869 bgjenero <bgjenero@sympatico.ca> for reporting the bug.
870
871 5. Added the throughput information in dump's progression
872 messages. Thanks to Andreas Dilger <adilger@turbolinux.com>
873 for the patch.
874
875 6. Use libext2fs's inode scanning routines, which are particularly
876 robust when dealing with errors (especially when having some
877 bad blocks on the filesystem). Many thanks to Colin
878 <colin@horizon.com> for reporting the bug, investigating
879 the issues, finding a workaround, writing the patch and
880 fully testing it... (of course, if this patch will break
881 anything, he is to blame for :-)).
882
883 7. Made dump and restore LFS aware. Dump can dump a filesystem
884 containing large files, generate a large file on output and
885 restore can restore them. This feature is not enabled by
886 default, use --enable-largefile option of configure to enable
887 it (you need to have a LFS aware glibc though). Thanks to
888 Andrea Arcangeli <andrea@suse.de> for submitting the patch,
889 and to Theodore T'so <tytso@valinux.com> for his always
890 useful thoughts.
891
892 8. Made dump ask upon a tape write error if it should rewrite
893 the current volume (assume this is a bad tape) or if it should
894 assume an end-of-tape condition (useful for tape drives which
895 behaves badly at the end of the tape). Thanks to Andreas
896 Dilger <adilger@turbolinux.com> for the suggestion.
897
898 Changes between versions 0.4b19 and 0.4b20 (released November 10, 2000)
899 =======================================================================
900
901 1. Fixed a small compilation problem due to a change
902 in the definintion of the struct sigaction in
903 glibc 2.0 / libc5. Thanks to Gunther Schlegel
904 <schlegel@riege.de> for reporting the bug and to
905 Dave Platt <dplatt@snulbug.mtview.ca.us> for suggesting
906 a fix.
907
908 2. Modified the label and uuid analysis in order to be
909 self-contained (independant of kernel/libc headers). This
910 should fix the compile with older kernel/libc headers and
911 will preserve the functionality. Thanks to Bernhard Erdmann
912 <bernhard.erdmann@gmx.de> for reporting the bug.
913
914 3. The 'exclude inode' option, if applied to a directory
915 inode, excludes now correctly all the leaves of this
916 directory. Thanks to John R. Dennison
917 <gerdesas@users.sourceforge.net> for reporting the bug.
918
919 4. Fixed the '-e' option to disable the possibility
920 to exclude the root inode (which causes the dumps to
921 be unreadable by restore). Prevented array overflow
922 when multiple -e options are used.
923
924 5. Fixed dump to correctly interpret a filesystem argument
925 which is a mountpoint and it is not an absolute path
926 (as specified in the fstab). Thanks to Bernhard R. Erdmann
927 <be@berdmann.de> for reporting the bug.
928
929 6. Made dump able to backup files larger than 2 GB. Note that
930 dump still doesn't cope with files larger than 4 GB.
931
932 7. Restore the real uid and gid before invoking an external
933 RSH program (big hole when dump or restore is suid root!).
934
935 8. Get the values for the default tape device and the location
936 of fstab file from the system headers. Thanks to
937 Andreas Dilger <adilger@turbolinux.com> for the patch.
938
939 9. Made dump -w|-W report all recognized filesystems
940 present in either /etc/fstab or /etc/dumpdates, and present
941 the list in the same order as in fstab file. Thanks
942 to Andreas Dilger <adilger@turbolinux.com> for the patch.
943
944 10. Made dump's -a (automatic end of tape detection) the
945 default. Specifying one of -B, -c, -d or -s options will
946 override the EOM detection. Thanks to Andreas Dilger
947 <adilger@turbolinux.com> for the patch.
948
949 11. Save the ext2 filesystem label into the dump volume label.
950 Specifying a volume label on the command line (-L option)
951 will override this feature. Thanks to Andreas Dilger
952 <adilger@turbolinux.com> for the patch.
953
954 Changes between versions 0.4b18 and 0.4b19 (released August 20, 2000)
955 =====================================================================
956
957 1. Fixed the signal handling in dump (which I broke in 0.4b17)
958 which was causing several strange dump failures (dump
959 hanged or segmentation faults etc).
960
961 2. Specified the default blocksize in the dump man page.
962
963 3. Changed two info messages of restore to be written on stdout
964 instead of stderr in order to leave stderr only for errors
965 or warnings. Thanks to Stephen Atwell
966 <satwell@urbana.css.mot.com> for the suggestion.
967
968 4. Corrected an off by one calculation which prevented
969 dumping a directory having a 1 character name length.
970 Thanks to Bernhard Erdmann <bernhard.erdmann@gmx.de>
971 for reporting the bug.
972
973 5. Reinforce dump in order to allow only level 0 and no
974 -u option when dumping a subdirectory, and document
975 this in the man page. Thanks to Bernhard Erdmann
976 <bernhard.erdmann@gmx.de> for reporting the bug.
977
978 6. Fixed a small harmless bug in restore which caused
979 in some conditions hard links to be restored several
980 times (therefore generation some warning messages).
981 Thanks to Kenneth Porter <shiva@well.com> for
982 reporting the bug.
983
984 7. Updated the RPM spec file to the latest RedHat version,
985 providing FHS packaging and other cosmetic changes.
986 You will need RPM version >= 3.0.5 in order to build the RPM.
987
988 8. Updated the configure script to check for libtermcap
989 before checking for libreadline, because we need this
990 library in order to compile the readline support.
991
992 9. Made dump understand the LABEL= and UUID= notation
993 both in /etc/fstab and on the command line. Note that
994 you will need the /proc filesystem in order to use
995 these notations. Thanks to Erik Troan <ewt@redhat.com>
996 for providing the patch.
997
998 Changes between versions 0.4b17 and 0.4b18 (released June 30, 2000)
999 ===================================================================
1000
1001 1. Fixed a potential buffer overflow in restore. Thanks
1002 to Stan Bubrouski <satan@fastdial.net> for reporting
1003 the bug.
1004
1005 2. Fixed a readline-related bug which prevented
1006 'cat DUMPFILE | restore -i -f -' from working. Thanks
1007 to Charles Karney <karney@users.sourceforge.net>
1008 for the bug report.
1009
1010 3. Changed a few "panic" into "exit", causing restore to
1011 be more stable against some attacks (like the last one
1012 reported on Bugtraq, although the last version of restore
1013 was not vulnerable - just dumped core). Thanks to
1014 Andreas Hasenack <andreas@conectiva.com.br> for reporting
1015 the bugs to me.
1016
1017 4. Removed the suid-root bit on dump and restore in the
1018 default build (and generated RPMs). It should be safer
1019 now. Users who need the suid-root capabilities in order
1020 to make network backups should read first the man page
1021 of dump and enable the suid bit manually.
1022
1023 5. Added -ltermcap to the compile parameters for restore
1024 when using readline support, in order to make the compile
1025 process work on some systems (SuSE ?). Thanks to
1026 Patrik Schindler <poc@pocnet.net> for reporting the bug.
1027
1028 Changes between versions 0.4b16 and 0.4b17 (released June 1st, 2000)
1029 ====================================================================
1030
1031 1. The -F script is called now *only* at the end of a tape,
1032 not at the end of the dump. Thanks to Christian Haul
1033 <haul@informatik.tu-darmstadt.de> for the bug report.
1034
1035 Normally, the device name and the current volume number
1036 are passed on the command line of the script. However,
1037 if you want the old style script (with no arguments
1038 passed on the command line), you can enable it in
1039 configure with the --enable-oldstylefscript.
1040
1041 2. Use posix signal handling to preserve dump functionality
1042 with libc5. Thanks to Jeff Johnson <jbj@redhat.com> for
1043 the patch.
1044
1045 3. Made the exit code of restore in case of a 'C'ompare
1046 command reflect the result of the compare. An exit status
1047 of 0 means the dump archive is correct, 1 means tape errors,
1048 2 means that some files were modified. Thanks to Kenneth Porter
1049 <shiva@well.com> for the suggestion.
1050
1051 4. Made (finally) quotes work in interactive restore.
1052
1053 5. Small fixes in order to allow dump to compile with a
1054 really old e2fsprogs version. Thanks to Ian Zimmerman
1055 <itz@speakeasy.org> for the bug report.
1056
1057 6. Add GNU readline capabilities to interactive restore.
1058 Use configure's --enable-readline flag to enable this feature.
1059 Thanks to Patrik Schindler <poc@pocnet.net> for the
1060 suggestion.
1061
1062 7. Do the compare on the fly in restore 'C' mode (this will
1063 allow not to exhaust the available /tmp space when
1064 ccmparing large files). Thanks to Kenneth Porter
1065 <shiva@well.com> for the suggestion.
1066
1067 Changes between versions 0.4b15 and 0.4b16 (released March 11, 2000)
1068 ====================================================================
1069
1070 1. Fixed some several duplicate 'DUMP: DUMP:' in the
1071 output of dump.
1072
1073 2. Corrected the estimation of blocks to dump. Note that
1074 this is still wrong for large directory inodes, due
1075 to the size of a BSD directory entry on the tape
1076 (estimation is based on the size of the ext2 directory,
1077 which is smaller because it doesn't contain the null
1078 character at the end).
1079
1080 3. Made dump report the total number of MB written to
1081 tape at the end of run. Thanks to W. Reilly Cooley
1082 <wcooley@nakedape.cc> for the patch.
1083
1084 4. Added the -X option to restore giving the possibility
1085 to read the names of the files to be extracted/listed
1086 from a text file (in addition of the command line).
1087 Thanks to Dejan Muhamedagic <dejan@quant-x.com> for the
1088 patch.
1089
1090 5. Added the device name and the current volume number
1091 as arguments to the end of tape script (dump -F option).
1092
1093 6. Made the multi-volume dump work again (after having
1094 broken it in 0.4b15).
1095
1096 Changes between versions 0.4b14 and 0.4b15 (released March 2, 2000)
1097 ===================================================================
1098
1099 1. Added a prompt command in interactive restore mode. Thanks
1100 to Andreas Dilger <adilger@home.com> for the patch.
1101
1102 2. Fixed a buffer overflow problem in dump (caused by
1103 not checking the size of the filesystem parameter).
1104 Thanks to Kim Yong-jun <loveyou@hackerslab.org> for
1105 reporting this on Bugtraq (and to several dump users
1106 who forwarded me his mail).
1107
1108 3. Added the '-F script' option to dump in order to
1109 launch a script at the end of each tape (to be used
1110 with a tape changer, or to notify the sysadmin by
1111 pager etc.).
1112
1113 4. Fixed a bug in restore compare code caused by the changes
1114 I made in 0.4b14.
1115
1116 5. Fixed the treatment of options using the old BSD syntax
1117 in both dump and restore.
1118
1119 Changes between versions 0.4b13 and 0.4b14 (released February 10, 2000)
1120 =======================================================================
1121
1122 1. Fixed a bug in dump which may have caused invalid deleted
1123 directories to be dumped out if they were deleted after the
1124 mapping pass. This could occure on active filesystem and lead
1125 to heap corruption (causing dump malfunction in many possible ways).
1126 Thanks to Jan Sanislo <oystr@cs.washington.edu> for finding this
1127 bug and submitting the patch.
1128
1129 2. Fixed the handling of the filesystem parameter in dump. A
1130 '/mnt/disk' parameter caused the disk contents to be dumped,
1131 but a '/mnt/disk/' parameter caused the mountpoint directory
1132 to be dumped (generally an empty directory).
1133
1134 3. Improved the output of dump in order to tell which directory
1135 it is currently dumping (when dumping a subtree).
1136
1137 4. Added the '-e' exclude inode option to dump. Thanks to
1138 Isaac Chuang <ike@isl.stanford.edu> for contributing with the patch.
1139
1140 5. Added a REPORTING-BUGS file in order to provide a guide
1141 on how to correctly report a bug in dump/restore.
1142
1143 6. Fixed a restore problem when restoring a hard link to an inode
1144 having the immutable or append-only attribute set. Thanks to
1145 Ambrose Li <acli@mingpaoxpress.com> for submitting the patch.
1146
1147 7. Fixed a compatibility problem between dumps made on little
1148 endian machines (the format was correct) and big endian
1149 machines (the format was incorrect). This fix break the
1150 compatibility with the older dumps made on big endian
1151 machines (sparc, m86k, ppc etc). For the first time in
1152 linux dump's history (I believe), the dumps made by *BSD,
1153 Linux/alpha, Linux/sparc and Linux/x86 are compatible,
1154 so interchangeable. Thanks to Rob Cermak
1155 <cermak@ahab.rutgers.edu> for submitting the bug and
1156 helping me test the fix.
1157
1158 8. Fixed the way dump reports the remaining percent/time, if
1159 the number of blocks actually dumped exceeds the estimated
1160 number of blocks. Thanks to Jean-Paul van der Jagt
1161 <jeanpaul@dutepp0.et.tudelft.nl> for reporting the bug.
1162
1163 Changes between versions 0.4b12 and 0.4b13 (released January 21, 2000)
1164 ======================================================================
1165
1166 1. Small Y2K fix in the man pages :). Thanks to Bernhard Sadlowski
1167 <sadlowsk@Mathematik.Uni-Bielefeld.DE> for reporting the bug.
1168
1169 2. Removed the requirement to build the RPM as root from the
1170 spec file. Thanks to Christian Weisgerber
1171 <naddy@mips.rhein-neckar.de> for submitting this.
1172
1173 3. Fixed a bug in dump related to the 'filetype' feature of ext2fs,
1174 causing dump to block when dumping really huge filesystems.
1175 Many thanks to Patrik Schindler <poc@pocnet.net> for
1176 helping me find this bug.
1177
1178 4. Fixed the treatment for an interrupt signal when dump access
1179 the remote tape through RSH. Thanks to Christian Weisgerber
1180 <naddy@mips.rhein-neckar.de> for providing the patch.
1181
1182 5. Fixed a bug which was causing dump/restore to display
1183 garbage characters instead of the remote host name.
1184
1185 Changes between versions 0.4b11 and 0.4b12 (released January 8, 2000)
1186 =====================================================================
1187
1188 1. Small fix in the dump man page. Thanks to Thorsten Kukuk
1189 <kukuk@suse.de> for submitting the patch.
1190
1191 2. Fix for the exit code when using the size estimate option of
1192 dump. Thanks to Matti Taskinen <mkt@rni.helsinki.fi> for
1193 submitting the patch.
1194
1195 3. Handle EINTR in atomical reads/writes in dump, which was causing
1196 dump to fail on some systems. Thanks to Eric Jergensen
1197 <eric@dvns.com> for reporting the bug and submitting the patch.
1198
1199 4. Handle more than 16 characters for the device names in dumpdates.
1200 (up to 255 now). Thanks to Rainer Clasen <bj@ncc.cicely.de> for
1201 tracking down the problem and proposing the solution.
1202
1203 5. Fixed a bug in dump which prevented the creation of the
1204 dumpdates file when doing a 0-level dump without already
1205 having a dumpdates file. Thanks to Patrik Schindler
1206 <poc@pocnet.net> for reporting the bug.
1207
1208 6. Changed the way dump 'S' flag reports the size estimate
1209 from number of blocks into bytes (making it compatible
1210 with the Solaris version, and simplifying things for
1211 amanda users). Thanks to Jason L Tibbitts III
1212 <tibbs@math.uh.edu> for reporting the bug.
1213
1214 7. Fixed a compatibility problem in linux/alpha dump tape format.
1215 Now the linux/alpha dump are (again) compatible with the
1216 other dump formats. But this breaks compatibility with
1217 older dumps made on alpha. Thanks to Mike Tibor
1218 <tibor@lib.uaa.alaska.edu> for helping me in finding this bug.
1219
1220 Changes between versions 0.4b10 and 0.4b11 (released December 5, 1999)
1221 ======================================================================
1222
1223 1. Added a '--enable-kerberos' to configure.
1224
1225 2. Added a 'S' option to dump which determines the amount of space
1226 that is needed to perform the dump without actually doing it, similar
1227 to the Sun's ufsdump 'S' option. Patch contributed by Rob Cermak
1228 <cermak@ahab.rutgers.edu>.
1229
1230 3. Added a 'M' multi-volume option to dump and restore which enables
1231 dumping to multiple files (useful when dumping to an ext2
1232 partition to make several dump files in order to bypass the 2GB
1233 file size limitation). The 'f' argument is treated as a prefix and
1234 the output files will be named <prefix>001, <prefix>002 etc. With
1235 the 'M' flag, restore automatically selects the right file without
1236 asking to enter a new tape each time.
1237
1238 4. Fixed a memory leak which was causing dump to grow very big
1239 (270MB when dumping a 10GB filesystem...). Thanks to Jason
1240 Fearon <jasonf@netrider.org.au> for reporting the bug.
1241
1242 Changes between versions 0.4b9 and 0.4b10 (released November 21, 1999)
1243 ======================================================================
1244
1245 1. Make configure test if the system glob routines support
1246 extended syntax (ALTDIRFUNC). If not, use the internal glob
1247 routines instead of system ones. Thanks to Bernhard Sadlowski
1248 <sadlowsk@Mathematik.Uni-Bielefeld.DE> for reporting the bug
1249 and helping me resolve this and other minor libc5 compiling
1250 glitches.
1251
1252 2. Fix a problem when dumping a ext2fs with the 'filetype'
1253 feature enabled. Thanks to Patrick J. LoPresti
1254 <patl@cag.lcs.mit.edu> for reporting the bug and to
1255 Theodore Y. Ts'o <tytso@mit.edu> for providing the patch.
1256
1257 3. Made the nodump flag work on directories. A directory which
1258 has the nodump flag gets never dumped, regardless of its
1259 contents.
1260
1261 4. Integrate a patch from Jeremy Fitzhardinge <jeremy@goop.org>
1262 which allows dump on an active ext3 filesystem. However, this
1263 is a "quick and dirty" patch which enables backup of an ext3
1264 filesystem through the ext2 compatibility (by ignoring the
1265 NEEDS_RECOVERY bit). The journal file is not recognized and
1266 it is dumped (it should not).
1267
1268 5. Test the superblock compatibility flags when dumping, in order
1269 to be sure that we know how to deal with specific features.
1270
1271 Changes between versions 0.4b8 and 0.4b9 (released November 5, 1999)
1272 ====================================================================
1273
1274 1. Use lchown instead of chown, fixing a possible security problem
1275 when restoring symlinks (a malicious user could use this
1276 to deliberately corrupt the ownership of important system files).
1277 Thanks to Chris Siebenmann <cks@utcc.utoronto.ca> for detecting
1278 this and providing the patch.
1279
1280 Changes between versions 0.4b7 and 0.4b8 (released November 3, 1999)
1281 ====================================================================
1282
1283 1. Put dump sources under CVS, added Id tags in all files so
1284 one can use 'ident' on binary files.
1285
1286 2. Added the dump/restore version in the usage text so one can
1287 easily verify the version he is using.
1288
1289 3. Small patch from Nuno Oliveira <nuno@eq.uc.pt> which fixes
1290 a va_start/va_end problem on linux-ppc (always call va_start
1291 va_end in pairs each time we use a vararg function).
1292
1293 4. Added again the DT_* constants because old libc does not
1294 contain them :(. Thanks to Eric Maisonobe <virnet@nat.fr>
1295 for submitting the bug report.
1296
1297 5. Use ext2fs_llseek instead of llseek. With recent e2fsprogs
1298 this should enable dumping big (huge) filesystems.
1299
1300 6. Added the RSH environment variable in order to be able to
1301 use a rsh replacement like ssh when doing remote backups (and
1302 bypass the security limitations of rcmd). Now you can do remote
1303 backups without being root (or making dump setuid root).
1304
1305 7. Modified again the way dumpdates works. For incremental dumps,
1306 we need to read dumpdates even if we are not using 'u' option.
1307 Thanks to Bdale Garbee <bdale@gag.com> for his ideas on how
1308 this should work.
1309
1310 Changes between versions 0.4b6 and 0.4b7 (released October 8, 1999)
1311 ===================================================================
1312
1313 1. Removed the 'k' flag from the restore 'about' text if kerberos
1314 was not compiled in.
1315
1316 2. Prototyped (f)setflags from e2fsprogs and corrected the calls
1317 to them (fsetflags takes a char*, setflags an open fd!).
1318
1319 3. (f)setflags is called only if the flags aren't empty. If the
1320 file is a special file, a warning is printed, because changing
1321 flags implies opening the device. Normally, a special file
1322 should not have any flag... (Debian bug #29775, patch provided
1323 by Abhijit Dasgupta <abhijit@ans.net>).
1324
1325 4. Made possible to dump a file system not mentioned in /etc/fstab.
1326 (Debian bug #11904, patch provided by Eirik Fuller <eirik@netcom.com>).
1327
1328 5. Changed the default behaviour to not create dumpdates
1329 unless 'u' option is specified. Removed the old "debian-patch"
1330 which provided the same thing. (Debian bug #38136, #33818).
1331
1332 6. Removed all those dump*announce, since they were getting old...
1333
1334 7. Added warning messages if dumpdates does not exist and
1335 when an inferior level dump does not exist (except for a level 0
1336 dump).
1337
1338 8. Debugged the glob calls in interactive mode: restore used a
1339 dirent struct which was different from the /usr/include/dirent.h
1340 one (this used to work, is it a glibc2 change?), so none of the
1341 compat glob (which used /usr/include/dirent.h) or the system glob
1342 worked. Restore use now the system dirent (and the system
1343 DT_* constants), which are compatible with BSD ones.
1344
1345 9. Added a configure flag (--with-dumpdatespath) to specify
1346 the location of dumpdates file. By default, it is
1347 /etc/dumpdates.
1348
1349 10. Added the "AUTHOR" and "AVAILABILITY" sections and
1350 included the current date/version in man pages.
1351
1352 11. Corrected the estimation of remaining time when
1353 the operator doesn't change the tapes quickly enough. This
1354 was an old bug, I thought I corrected it, and discovered
1355 that in fact it was corrected in two different places, so
1356 the results canceled each other...
1357
1358 Changes between versions 0.4b5 and 0.4b6 (released October 1, 1999)
1359 ===================================================================
1360
1361 1. Integrated multiple patches from RedHat, Debian and SuSE:
1362
1363 - tweak dump/itime.c to not try to read dumpdates if the 'u' option
1364 isn't specified.
1365 - several fixes in the man pages.
1366 - update the default tape device to /dev/st0.
1367 - many updates for Linux Alpha (byte ordering, size_t etc).
1368 - buffer overruns.
1369 - use environment variable for TMPDIR (instead of /tmp).
1370 - use sigjmp_buf instead of jmp_buf (RedHat bug #3260).
1371 - workaround egcs bug (RedHat bugs #4281 and #2989).
1372 - wire $(OPT) throughout Makefile's.
1373
1374 2. Upgrade the dump revision to 1, making possible to dump filesystems
1375 made with e2fsprogs-1.15 or newer. Nothing seems to break...
1376
1377 3. Fix some compile warnings, prototype all functions.
1378
1379 4. Use glibc err/glob instead of internal compatibility
1380 routines (only if available).
1381
1382 5. Fix a compile error on Linux 2.2.7 / libc5 (5.4.44) (patch provided
1383 by Bernhard Sadlowski <sadlowsk@mathematik.uni-bielefeld.de>).
1384
1385 Changes between versions 0.4b4 and 0.4b5 (released September 22, 1999)
1386 ======================================================================
1387
1388 1. Integrated the changes from FreeBSD-3.1-RELEASE
1389 (mostly bug fixes, buffer overruns, dump has now an "automatic
1390 tape length calculation" flag, dump/restore can use kerberos now
1391 (this is NOT tested), use environment variables for TAPE and
1392 RMT etc.).
1393
1394 2. Integrated three RedHat patches ("glibc", "kernel" and "bread" patches)
1395
1396 3. Corrected a bug in restore when using 'C' option with multi-volumes
1397 tapes (files splited accros two tapes give "size changed" errors
1398 when comparing).
1399
1400 4. Corrected the long standing bug when dumping multiple tapes.
1401 This works for me, needs further testing.
1402
1403 Changes between versions 0.4b3 and 0.4b4 (released January 17, 1997)
1404 ====================================================================
1405
1406 1. Dump now runs correctly on kernels 2.1.x
1407 Fix made by Gerald Peters <gapeters@worldnet.att.net>
1408
1409 Changes between versions 0.4b2 and 0.4b3
1410 ========================================
1411
1412 1. Use realpath() if available
1413
1414 2. Report statistics
1415
1416 Changes between versions 0.4b1 and 0.4b2
1417 ========================================
1418
1419 1. Fixed the bug fix from Greg Lutz (I had made a mistake when integrating
1420 the patch)
1421
1422 2. Fixed restore to make it able to read FreeBSD 2.x dumps again
1423
1424 3. Fixed configure.in to correctly handle --enable-rmt
1425
1426 Changes between versions 0.3 and 0.4b1
1427 ======================================
1428
1429 1. Integrated the changes from 4.4BSD-Lite2
1430
1431 2. Integrated the patches from Debian and Red Hat
1432
1433 3. Portability changes: use the __u32, __u16, __s32, and __s16 types
1434
1435 4. Changed dump to use the Ext2fs library to get block addresses. This
1436 should solve the endianness problem on SparcLinux.
1437
1438 5. Created a configure.in file (shamelessly stolen from the e2fsprogs
1439 distribution's one) to use autoconf
1440
1441 6. Fixed a few minor bugs
1442
1443 Changes between versions 0.2e and 0.2f
1444 ======================================
1445
1446 1. Added the creation of named pipes (fifos) in restore.
1447
1448 2. Added the -N flag in the restore manual page.
1449
1450 3. Added the file kernel.patch which contains the llseek() optimization
1451 patch for 1.2.x kernels.
1452
1453 4. Fixed a bug in the restoration of symbolic links: owner and group were
1454 not restored.
1455
1456 5. Integrated some changes from FreeBSD 2.2.
1457
1458 6. Added a call to ftruncate() after restoring each file to restore
1459 correctly files ending by a hole.
1460
1461 Changes between versions 0.2d and 0.2e
1462 ======================================
1463
1464 1. Fixed a bug in the "set owner/mode" process. Every file was restored
1465 with owner = root (0) and group = root/wheel/whatever (0).
1466
1467 Changes between versions 0.2c and 0.2d
1468 ======================================
1469
1470 1. Dump is now able to backup 2GB+ filesystems.
1471
1472 2. Dump and restore can now be linked as static binaries.
1473
1474 Changes between versions 0.2b and 0.2c
1475 ======================================
1476
1477 1. Fixed a bug when dumping ``slow'' (i.e. normal) symbolic links.
1478
1479 Changes between versions 0.2a and 0.2b
1480 ======================================
1481
1482 1. Really fixed the bug that I should have corrected in 0.2a.
1483
1484 2. Enabled optimization again.
1485
1486 Changes between versions 0.2 and 0.2a
1487 =====================================
1488
1489 1. Disabled the optimization during compilation.
1490
1491 Changes between versions 0.1 and 0.2
1492 ====================================
1493
1494 1. Fixed a bug in fstab.c which caused a null pointer to be stored in
1495 the fs_type field (actually, I modified the file fstab.c to make it
1496 use the mntent functions).
1497
1498 2. Dump and restore now use a 4.3 BSD compatible dump format. Backups
1499 made by dump should be readable by the BSD restore and backups made
1500 by the BSD dump should be readable by restore. Unfortunately, this
1501 means that the dump format has changed between version 0.1 and version
1502 0.2 :-(
1503
1504 3. Dump is now able to backup a subtree, it is no longer limited to whole
1505 filesystems like the BSD version.
1506
1507 4. Dump now uses ext2_llseek() so it is able to backup filesystems bigger
1508 than 2 GB.
1509
1510 Changes between versions 0.0 and 0.1
1511 ====================================
1512
1513 1. Now create links rdump and rrestore during the `make install' step.
1514
1515 2. Linux port specific bugs added to the manual pages
1516
1517 3. Incorrect estimation of the number of tapes blocks fixed when doing
1518 incremental backups.
1519
1520 4. Better ls-like format in restore in interactive mode.