--- dds2tar-2.5.2.orig/Makefile
+++ dds2tar-2.5.2/Makefile
@@ -16,7 +16,7 @@
 
 # Default tape device is: /dev/nst0
 # edit or uncomment the following line to change the default device
-DEVICE=/dev/rmt0
+DEVICE=/dev/nst0
 
 # Enable trace mode -- for debugging only
 # TRACE=-DDDS_TRACE=1
@@ -31,22 +31,22 @@
 #
 # To configure the buffer size of dds2tar
 # change or uncomment the following line :
-# BUFFER=-DST_BUFFER_BLOCKS=32
-BUFFER=-DST_BUFFER_BLOCKS=0
+BUFFER=-DST_BUFFER_BLOCKS=32
+# BUFFER=-DST_BUFFER_BLOCKS=0
 
 # To include some experimental stuff
 # uncomment the following line :
 # EXP_STUFF=-DEXP_STUFF
 
 # change this to where you want to install:
-BINDIR=/usr/bin
-MANDIR=/usr/man
+BINDIR=$(DESTDIR)/usr/bin
+MANDIR=$(DESTDIR)/usr/share/man
 MANEXT=1
 
 # place here your favorite C compiler and options
 CC=cc -g
 CCOPT=$(HPDAT) $(HPDAT4) $(EXP_STUFF) $(MATCH) $(BUFFER) \
-      -DDEVICE=\"$(DEVICE)\" -O4 -Wall $(TRACE)
+      -DDEVICE=\"$(DEVICE)\" -O4 -Wall $(TRACE) -D_GNU_SOURCE
 
 #        -Wall \
 #        -Wstrict-prototypes \
@@ -139,7 +139,7 @@
 
 install: dds2tar ddstool \
 	dds2tar.$(MANEXT) mt-dds.$(MANEXT) dds2index.$(MANEXT) dds-dd.$(MANEXT)
-	install -c -s dds2tar $(BINDIR)
+	install -c dds2tar $(BINDIR)
 	install scsi_vendor $(BINDIR)
 	install -c ddstool $(BINDIR)
 	ls -l $(BINDIR)/dds2tar $(BINDIR)/ddstool
@@ -191,7 +191,7 @@
 	-rm -f dds2tar dds2index mt-dds dds-dd fio_test 
 	-rm -f *~ *.$(MANEXT) *.ps
 	-rm -f tags *.bak
-	chmod 644 *
+#	chmod 644 *
 
 doc:
 	                a2ps -p -nP    [A-Z]* *.h *.c *.lsm > a.ps
--- dds2tar-2.5.2.orig/dds_extract.c
+++ dds2tar-2.5.2/dds_extract.c
@@ -410,21 +410,37 @@
 			 */
 			dds_unquote(cur_line);
 
-			/*
-			 * Set scanoffset
-			 */
-			so = (0 == strncmp(cur_line, "block", 5))? 2 : 0 ;
-			
-			recno = atoi(cur_line + 4 + so );
-			/*
-			 * tar-1.13 writes now the block number:
-			 */
-			if ( so == 0 ){
-				int x ;
-				int n ;
+			if (0 == strncmp(cur_line, "block ", 6))
+			{
+				int x;
+				int n;
 				char c;
+
+				so = 6;
+				if (2 == sscanf(cur_line + so, "%d%c%n",
+						&x, &c, &n)) {
+					so += n + 1;
+					recno = x;
+#ifdef DDS_TRACE
+					fprintf(stderr,"Blocks found:%d\n",x);
+#endif
+				}
+				else
+				{
+					recno = 0;
+				}
+			}
+			else
+			{
+				int x;
+				int n;
+				char c;
+
+				recno = atoi(cur_line + 4);
+
+				so = 16;
 				if ( 2 == sscanf(
-					cur_line+16,"block %d%c%n",&x,&c,&n
+					cur_line+so,"block %d%c%n",&x,&c,&n
 					) && c == ':' ) {
 					so += n + 1 ;
 					recno = x ;
@@ -433,6 +449,7 @@
 #endif
 				}
 			}
+
 			/*
 		 	 * Now we are fixing a bug of gnu tar ...
 			 * The first number should be zero, othewise we
@@ -459,47 +476,40 @@
 #ifdef DDS_TRACE
 			fprintf(stderr,"file-loc(%d:%d,%d)\n",tar_bs,blkno,recno);
 #endif
-			if (name == NULL) {	/* calculate only once */
-				if ( strlen(cur_line) >= (66) ) {
-					name = cur_line + (65);
-					while ( ( name[ 0] != '\0' )
-					 && ((	   ( name[-1] != ' '  )
-						|| ( name[-6] != ' '  )
-						|| ( name[-9] != ':'  )
-					 )&&(	   ( name[-1] != ' '  )
-						|| ( name[-4] != ':'  )
-						|| ( name[-7] != ' '  )
-						|| ( name[-10] != '-'  )
-						|| ( name[-13] != '-'  )
-					 ))
-					) name++ ;
-					if ( name[0] == '\0' ) {
-						name = cur_line + (16+so);
-					}
-				} else {
-					if ( strlen(cur_line) <= (16+so) ) {
-						strcat(cur_line,
-						"                    ");
-					}
-					name = cur_line + (16+so);
+
+			/* skip file permissions */
+			name = strchr(cur_line + so, ' ');
+			if (name) {
+			  /* skip owner/group */
+			  name = strchr(name + 1, ' ');
+			  if (name) {
+			    /* skip size */
+			    while (*++name == ' ');
+			    name = strchr(name, ' ');
+			    if (name) {
+			      /* skip date */
+			      name = strchr(name + 1, ' ');
+			      if (name) {
+				/* skip time */
+				name = strchr(name + 1, ' ');
+
+				if (name) {
+				  ++name;
 				}
+			      }
+			    }
+			  }
+			}
+
+			if (!name || (name[-4] != ':'))
+			{
+			  name = cur_line + so;
+			}
+
 #ifdef DDS_TRACE
-				fprintf(stderr,"%d\n",__LINE__);
-				fprintf(stderr,"filename=%s\n",name);
+			fprintf(stderr,"%d\n",__LINE__);
+			fprintf(stderr,"filename=%s\n",name);
 #endif
-			}
-			while ( ( name[ 0] != '\0' )
-			 &&     ( name != ( cur_line + (16+so) ) )
-			 && ((	   ( name[-1] != ' '  )
-				|| ( name[-6] != ' '  )
-				|| ( name[-9] != ':'  )
-			 )&&(	   ( name[-1] != ' '  )
-				|| ( name[-4] != ':'  )
-				|| ( name[-7] != ' '  )
-				|| ( name[-10] != '-'  )
-				|| ( name[-13] != '-'  )
-			 ))
-			) name++ ;
 		}
 #ifdef DDS_TRACE
 		fprintf(stderr,"%d\n",__LINE__);
--- dds2tar-2.5.2.orig/dds2index.man
+++ dds2tar-2.5.2/dds2index.man
@@ -1,4 +1,4 @@
-.TH dds2index 1L 2.4 \" -*- nroff -*-
+.TH dds2index 1 2.4 \" -*- nroff -*-
 .\"----------
 .SH NAME
 .\"----------
--- dds2tar-2.5.2.orig/dds2tar.man
+++ dds2tar-2.5.2/dds2tar.man
@@ -1,4 +1,4 @@
-.TH dds2tar 1L 2.3 \" -*- nroff -*-
+.TH dds2tar 1 2.3 \" -*- nroff -*-
 .SH NAME
 dds2tar \- tool for fast tape access
 .SH SYNOPSIS
@@ -58,6 +58,7 @@
 .B GNU tar-1.12
 is available, adding the option
 .B --record-file.
+This patch is not included in the version of tar that ships with Debian.
 Alternatively there are some tricks to get the missing
 information.
 .PP
--- dds2tar-2.5.2.orig/dds-dd.man
+++ dds2tar-2.5.2/dds-dd.man
@@ -1,4 +1,4 @@
-.TH dds-dd 1L 2.4 \" -*- nroff -*-
+.TH dds-dd 1 2.4 \" -*- nroff -*-
 .\"----------
 .SH NAME
 .\"----------
--- dds2tar-2.5.2.orig/mt-dds.man
+++ dds2tar-2.5.2/mt-dds.man
@@ -1,4 +1,4 @@
-.TH mt-dds 1L 2.4 \" -*- nroff -*-
+.TH mt-dds 1 2.4 \" -*- nroff -*-
 .\"----------
 .SH NAME
 .\"----------
