[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#75947: patch



This is a patch to add a -I option to dpkg-source that makes it pass
--exclude to tar when creating a tarball. This is useful for excluding
CVS directories when building a native package from a cvs source tree.
dpkg-buildpackage is also modified to pass the -I on to dpkg-source.
I've included doc updates.

diff -ur orig/dpkg-1.9.20/scripts/dpkg-buildpackage.sh dpkg-1.9.20/scripts/dpkg-buildpackage.sh
--- orig/dpkg-1.9.20/scripts/dpkg-buildpackage.sh	Thu Jun 21 21:00:36 2001
+++ dpkg-1.9.20/scripts/dpkg-buildpackage.sh	Sat May 18 22:37:56 2002
@@ -41,8 +41,8 @@
          -h            print this message
          -W            Turn certain errors into warnings.      } passed to
          -E            When -W is turned on, -E turned it off. } dpkg-source
-         -i[<regex>]   ignore diffs of files matching regex } only passed
-                                                             to dpkg-source
+         -i[<regex>]   ignore diffs of files matching regex    } only passed
+         -I<filename>  filter out files when building tarballs } to dpkg-source
 END
 }
 
@@ -91,6 +91,7 @@
 	-sa)	sourcestyle=-sa ;;
 	-sd)	sourcestyle=-sd ;;
         -i*)    diffignore=$1;;
+	-I*)	tarignore=$1;;
 	-tc)	cleansource=true ;;
 	-t*)    targetgnusystem="$value" ;;          # Order DOES matter!
 	-nc)	noclean=true; if [ -z "$binaryonly" ]; then binaryonly=-b; fi ;;
@@ -192,7 +193,7 @@
 	withecho $rootcommand debian/rules clean
 fi
 if [ x$binaryonly = x ]; then
-	cd ..; withecho dpkg-source $passopts $diffignore -b "$dirn"; cd "$dirn"
+	cd ..; withecho dpkg-source $passopts $diffignore $tarignore -b "$dirn"; cd "$dirn"
 fi
 if [ x$sourceonly = x ]; then
 	withecho debian/rules build 
diff -ur orig/dpkg-1.9.20/scripts/dpkg-source.1 dpkg-1.9.20/scripts/dpkg-source.1
--- orig/dpkg-1.9.20/scripts/dpkg-source.1	Thu Jun 21 21:00:36 2001
+++ dpkg-1.9.20/scripts/dpkg-source.1	Sat May 18 22:38:45 2002
@@ -310,6 +310,12 @@
 unnecessarily included in every .diff.gz, unless you use the \fB-i\fR
 switch.
 .TP
+.B -I<filename>
+If this option is specified, the filename will be passed to tar's --exclude
+option when it is called to generate a .orig.tar.gz or .tar.gz file. For
+example, -ICVS will make tar skip over CVS directories when generating 
+a .tar.gz file.
+.TP
 .BR -sa , -sp , -su , -sk , -sA , -sP , -sU , -sK , -ss " with " -b
 If
 .BR -sk " or " -sp
@@ -612,6 +618,10 @@
 for the host machine.
 .TP
 .B -i[<regexp>]
+Passed unchanged to
+.BR dpkg-source .
+.TP
+.B -I<filename>
 Passed unchanged to
 .BR dpkg-source .
 .TP
diff -ur orig/dpkg-1.9.20/scripts/dpkg-source.pl dpkg-1.9.20/scripts/dpkg-source.pl
--- orig/dpkg-1.9.20/scripts/dpkg-source.pl	Thu Jul  5 16:48:52 2001
+++ dpkg-1.9.20/scripts/dpkg-source.pl	Sat May 18 22:28:21 2002
@@ -45,6 +45,7 @@
                  -sa                 auto select orig source (-sA is default)
                  -i[<regexp>]        filter out files to ignore diffs of.
                                      Defaults to: '$diff_ignore_default_regexp'
+                 -I<filename>        filter out files when building tarballs.
                  -sk                 use packed orig source (unpack & keep)
                  -sp                 use packed orig source (unpack & remove)
                  -su                 use unpacked orig source (pack & keep)
@@ -96,6 +97,8 @@
         $remove{$1}= 1;
     } elsif (m/^-i(.*)$/) {
         $diff_ignore_regexp = $1 ? $1 : $diff_ignore_default_regexp;
+    } elsif (m/^-I(.+)$/) {
+        $tar_ignore_file = "--exclude=$1";
     } elsif (m/^-V(\w[-:0-9A-Za-z]*)[=:]/) {
         $substvar{$1}= $';
     } elsif (m/^-T/) {
@@ -303,7 +306,7 @@
             chdir($tardirbase) || &syserr("chdir to above (orig) source $tardirbase");
             open(STDOUT,">&GZIP") || &syserr("reopen gzip for tar");
             # FIXME: put `--' argument back when tar is fixed
-            exec('tar','-cf','-',$tardirname); &syserr("exec tar");
+            exec('tar',$tar_ignore_file,'-cf','-',$tardirname); &syserr("exec tar");
         }
         close(GZIP);
         &reapgzip;


-- 
To UNSUBSCRIBE, email to debian-dpkg-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: