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