]> err.no Git - dpkg/commitdiff
dpkg-source: Allow -I without a pattern
authorJari Aalto <jari.aalto@cante.net>
Mon, 24 Sep 2007 19:37:21 +0000 (21:37 +0200)
committerFrank Lichtenheld <djpig@debian.org>
Mon, 24 Sep 2007 21:09:21 +0000 (23:09 +0200)
This loads a default list of pattern mostly similar to
the default regexp of -i.

ChangeLog
debian/changelog
man/ChangeLog
man/dpkg-source.1
scripts/dpkg-source.pl

index 44a79668b5ecd9943d4cc91fc5176f51c0fed5d4..30375cbcc757955257ce10fecfab8d080032d618 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
        * scripts/dpkg-buildpackage.pl ($warnable_errors): Rename to ...
        ($warnable_error): ... this, and declare as 'our'.
 
+2007-09-24  Jari Aalto  <jari.aalto@cante.net>
+            Frank Lichtenheld  <djpig@debian.org>
+
+       * scripts/dpkg-source.pl: Allow use of -I
+       without filename pattern and load a list
+       of default patterns which is in effect as
+       similar as possible to the default regexp
+       of -i.
+
 2007-09-23  Frank Lichtenheld  <djpig@debian.org>
 
        * scripts/dpkg-buildpackage.pl: Add new option
index 836e1090b7359de51f54c4302f15521fb384cdae..70d0190ebb395018f60b3fab6d92fdfe444ca6dd 100644 (file)
@@ -23,6 +23,9 @@ dpkg (1.14.7) UNRELEASED; urgency=low
     MAKEFLAGS(-j<n>) and DEB_BUILD_OPTIONS(parallel=<n>) accordingly.
     parallel=<n> in DEB_BUILD_OPTIONS will be passed to MAKEFLAGS as
     well. Based on an idea by Robert Millan. Closes: #440636
+  * Allow dpkg-source -I without a pattern which will load a default
+    list of pattern similar to -i without regexp. Patch by
+    Jari Aalto. Closes: #440972
 
   [ Updated dpkg translations ]
   * Basque (Piarres Beobide). Closes: #440859
index 8ecb9324fbaae305ce43e9e5634cbe596e45598c..ebc4d9594b629c516d1d1bf7eeb677ae8c4ceabe 100644 (file)
@@ -1,3 +1,8 @@
+2007-09-24  Jari Aalto  <jari.aalto@cante.net>
+
+       * dpkg-source.1: Document new behaviour
+       of -I option.
+
 2007-09-23  Frank Lichtenheld  <djpig@debian.org>
 
        * dpkg-buildpackage.1: Document the new -j
index e83156fe8acebe0cbe7e6686f6488074cdd8a9cf..faaf238fcdd72c20079cde1dcb63a1945af01bcf 100644 (file)
@@ -126,12 +126,18 @@ from the ones in your working directory, thus causing them to be
 unnecessarily included in every .diff.gz, unless you use the \fB\-i\fR
 switch.
 .TP
-.BI \-I filename
-If this option is specified, the filename will be passed to tar's \-\-exclude
+.BI \-I[\fIfile-pattern\fP]
+
+If this option is specified, the pattern 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. The option may be repeated multiple times to list multiple
-filenames to exclude.
+patterns to exclude.
+
+\fB\-I\fR by itself adds default tar(1) \-\-exclude options that will
+filter out control files and directories of the most common revision
+control systems, backup and swap files and Libtool build output
+directories.
 .PP
 All the
 .BI \-s X
index 83f63aa9a30c3c979c11b98eda59ed39914cbcbf..5b7802df2a5352976c48a15b3d23fc07587d2b19 100755 (executable)
@@ -34,6 +34,37 @@ my $diff_ignore_default_regexp = '
 \.shelf|_MTN|\.bzr(?:\.backup|tags)?)(?:$|/.*$)
 ';
 
+no warnings 'qw';
+my @tar_ignore_default_pattern = qw(
+*.a
+*.la
+*.o
+*.so
+*.swp
+*~
+,,*
+.[#~]*
+.arch-ids
+.arch-inventory
+.bzr
+.bzr.backup
+.bzr.tags
+.bzrignore
+.cvsignore
+.deps
+.git
+.gitignore
+.hg
+.shelf
+.svn
+CVS
+DEADJOE
+RCS
+_MTN
+_darcs
+{arch}
+);
+
 # Take out comments and newlines
 $diff_ignore_default_regexp =~ s/^#.*$//mg;
 $diff_ignore_default_regexp =~ s/\n//sg;
@@ -129,7 +160,8 @@ Build options:
   -q                       quiet operation, do not print warnings.
   -i[<regexp>]             filter out files to ignore diffs of
                              (defaults to: '%s').
-  -I<filename>             filter out files when building tarballs.
+  -I[<pattern>]            filter out files when building tarballs
+                             (defaults to: %s).
   -sa                      auto select orig source (-sA is default).
   -sk                      use packed orig source (unpack & keep).
   -sp                      use packed orig source (unpack & remove).
@@ -147,7 +179,9 @@ Extract options:
 General options:
   -h, --help               show this help message.
       --version            show the version.
-"), $progname, $diff_ignore_default_regexp;
+"), $progname,
+    $diff_ignore_default_regexp,
+    join('', map { " -I$_" } @tar_ignore_default_pattern);
 }
 
 sub handleformat {
@@ -158,6 +192,7 @@ sub handleformat {
 
 
 my $opmode;
+my $tar_ignore_default_pattern_done;
 
 while (@ARGV && $ARGV[0] =~ m/^-/) {
     $_=shift(@ARGV);
@@ -183,6 +218,13 @@ while (@ARGV && $ARGV[0] =~ m/^-/) {
         $diff_ignore_regexp = $1 ? $1 : $diff_ignore_default_regexp;
     } elsif (m/^-I(.+)$/) {
         push @tar_ignore, "--exclude=$1";
+    } elsif (m/^-I$/) {
+        unless ($tar_ignore_default_pattern_done) {
+            push @tar_ignore,
+                 map { "--exclude=$_" } @tar_ignore_default_pattern;
+            # Prevent adding multiple times
+            $tar_ignore_default_pattern_done = 1;
+        }
     } elsif (m/^-V(\w[-:0-9A-Za-z]*)[=:]/) {
         $substvar{$1}= "$'";
     } elsif (m/^-T/) {