🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Bart Massey Fri, 19 May 1989 02:29
GNU tar 1.05 bugs and fix
#1615
Author: Bart Massey
Date: Fri, 19 May 1989 02:29
123 lines
3731 bytes
GNU tar is great!  I'm really impressed -- it contains every feature I was
thinking about hacking into Berkeley tar!

But, I've had a few problems...

PROGRAM: GNU tar
VERSION: 1.05
MACHINE: VAX 750
OS: 4.3BSD "Tahoe"

PROBLEM:
	Archive creation leaks memory, eventually causing a premature
	out-of-memory exit.
REPEAT-BY:
	Find a machine with 1.5g of disk.  cd to the root, and
	say "find . ! -type d -print > /tmp/list".  Then say
	"cat /tmp/list | tar cT -".  Then wait.  And wait.
SUGGESTED-FIX:
	Somebody needs to run it with a allocation-tracking malloc.  I
	will get around to this if no one else is enthused.


PROBLEM:
	The W option doesn't use MTIOCTOP to rewind the tape drive, even
	on machines that support it.  Also, this option prints "Verify"
	for each file, which is really annoying.
REPEAT-BY:
	tar cWf /dev/tape-drive-that-requires-MTIOCTOP .
	Watch for the error message(s).
FIX:
	Insert some forgotten includes into diffarch.c, and comment
	out the annoying message.
	*** /tmp/,RCSt1027805	Thu May 18 17:56:22 1989
	--- diffarch.c	Tue May 16 18:34:55 1989
	***************
	*** 34,39 ****
	--- 34,46 ----
	  #include <sys/file.h>
	  #endif
	  
	+ #ifndef MSDOS
	+ #include <sys/ioctl.h>
	+ #ifndef USG
	+ #include <sys/mtio.h>
	+ #endif
	+ #endif
	+ 
	  #ifdef USG
	  #include <fcntl.h>
	  #endif
	***************
	*** 120,127 ****
	--- 127,136 ----
	  	userec(head);			/* And go past it in the archive */
	  	decode_header(head, &hstat, &head_standard, 1);	/* Snarf fields */
	  
	+ #if 0
	  	if(now_verifying)
	  		fprintf(msg_file,"Verify ");
	+ #endif
	  	/* Print the record from 'head' and 'hstat' */
	  	if (f_verbose)
	  		print_header();
	

PROBLEM:
	On a reasonable sized screen, the usage message scrolls the
	error message off the top.
REPEAT-BY:
	tar qqq
FIX:
	The following patches make the usage message appear only when
	the "-help" switch is given.
	*** /tmp/,RCSt1027993	Thu May 18 19:27:15 1989
	--- tar.c	Thu May 18 16:38:43 1989
	***************
	*** 168,174 ****
	  	case CMD_NONE:
	  		fprintf (stderr,
	  "%s: you must specify exactly one of the r, c, t, x, or d options\n", tar);
	- 		describe();
	  		exit(EX_ARGSBAD);
	  	}
	  	exit(0);
	--- 168,173 ----
	***************
	*** 274,282 ****
	  
	  		case 'h':
	  			if(optind && argv[optind] && !strcmp(argv[optind],"-help")) {
	! 				printf("This is GNU tar, the tape archiving program.\n");
	  				describe();
	! 				printf("For a more complete description of how to use tar, type 'info util tar'\n");
	  				exit(1);
	  			} else
	  				f_follow_links++;	/* follow symbolic links */
	--- 273,281 ----
	  
	  		case 'h':
	  			if(optind && argv[optind] && !strcmp(argv[optind],"-help")) {
	! 				fprintf(stderr,"This is GNU tar, the tape archiving program.\n");
	  				describe();
	! 				fprintf(stderr,"For a more complete description of how to use tar, type 'info util tar'\n");
	  				exit(1);
	  			} else
	  				f_follow_links++;	/* follow symbolic links */
	***************
	*** 418,424 ****
	  
	  		case '?':
	  		badopt:
	! 			describe();
	  			exit(EX_ARGSBAD);
	  
	  		}
	--- 417,423 ----
	  
	  		case '?':
	  		badopt:
	! 			fprintf(stderr, "%s: bad option -- try -help\n", tar);
	  			exit(EX_ARGSBAD);
	  
	  		}
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads