summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Debian/Debhelper/Dh_Getopt.pm7
-rw-r--r--Debian/Debhelper/Dh_Lib.pm24
-rw-r--r--debhelper.pod10
-rw-r--r--debian/changelog11
4 files changed, 42 insertions, 10 deletions
diff --git a/Debian/Debhelper/Dh_Getopt.pm b/Debian/Debhelper/Dh_Getopt.pm
index b2b9224e..d1e052af 100644
--- a/Debian/Debhelper/Dh_Getopt.pm
+++ b/Debian/Debhelper/Dh_Getopt.pm
@@ -63,6 +63,11 @@ sub AddExclude { my($option,$value)=@_;
push @{$options{EXCLUDE}},$value;
}
+# Add a file to the ignore list.
+sub AddIgnore { my($option,$file)=@_;
+ $options{IGNORE}->{$file}=1;
+}
+
# This collects non-options values.
sub NonOption {
push @{$options{ARGV}}, @_;
@@ -103,6 +108,8 @@ sub parseopts {
"X=s" => \&AddExclude,
"exclude=s" => \&AddExclude,
+
+ "ignore=s" => \&AddIgnore,
"d" => \$options{D_FLAG},
"remove-d" => \$options{D_FLAG},
diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm
index 80f56387..bd5e3ae7 100644
--- a/Debian/Debhelper/Dh_Lib.pm
+++ b/Debian/Debhelper/Dh_Lib.pm
@@ -320,18 +320,22 @@ sub pkgfile {
$filename="$dh{NAME}.$filename";
}
- if (-f "debian/$package.$filename.".buildarch()) {
- return "debian/$package.$filename.".buildarch();
+ my @try=("debian/$package.$filename.".buildarch(),
+ "debian/$package.$filename");
+ if ($package eq $dh{MAINPACKAGE}) {
+ push @try, "debian/$filename";
}
- elsif (-f "debian/$package.$filename") {
- return "debian/$package.$filename";
- }
- elsif ($package eq $dh{MAINPACKAGE} && -f "debian/$filename") {
- return "debian/$filename";
- }
- else {
- return "";
+
+ foreach my $file (@try) {
+ if (-f $file &&
+ (! $dh{IGNORE} || ! exists $dh{IGNORE}->{$file})) {
+ return $file;
+ }
+
}
+
+ return "";
+
}
# Pass it a name of a binary package, it returns the name to prefix to files
diff --git a/debhelper.pod b/debhelper.pod
index 7f2fbad2..a2c7eeba 100644
--- a/debhelper.pod
+++ b/debhelper.pod
@@ -119,6 +119,16 @@ are not architecture independent.
Do not act on the specified package even if an -a, -i, or -p option lists
the package as one that should be acted on.
+=item B<--ignore=>I<file>
+
+Ignore the specified file. This can be used if debian/ contains a debhelper
+config file that a debhelper command should not act on. Note that
+debian/compat, debian/control, and debian/changelog can't be ignored, but
+then, there should never be a reason to ignore those files.
+
+For example, if upstream ships a debian/init that you don't want
+dh_installinit to install, use --ignore=debian/init
+
=item B<-P>I<tmpdir>, B<--tmpdir=>I<tmpdir>
Use "tmpdir" for package build directory. The default is debian/<package>
diff --git a/debian/changelog b/debian/changelog
index ce972462..e241842a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+debhelper (5.0.57) UNRELEASED; urgency=low
+
+ * Add --ignore option. This is intended to ease dealing with upstream
+ tarballs that contain debian directories, by allowing debhelper config
+ files in those directories to be ignored, since there's generally no
+ good way to delete them out of the upstream tarball, and they can easily
+ get in the way if upstream is using debian/ differently than the Debian
+ maintainer.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 30 Sep 2007 13:39:36 -0400
+
debhelper (5.0.56) unstable; urgency=low
* dh_installmodules: Since modutils is gone, stop supporting