X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debian%2FDebhelper%2FDh_Lib.pm;h=e0a274a4dd78192fb7893a249a85930cf094a2cf;hb=4a692f55a0e9d9c579281f1c2002036436b2b367;hp=60f13c30517664265b6b8b540b9bb8f0013381c1;hpb=08fd6e5a07b96c2d7792a66458408916b754c97a;p=debhelper.git diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm index 60f13c3..e0a274a 100644 --- a/Debian/Debhelper/Dh_Lib.pm +++ b/Debian/Debhelper/Dh_Lib.pm @@ -20,7 +20,7 @@ use vars qw(@ISA @EXPORT %dh); &is_make_jobserver_unavailable &clean_jobserver_makeflags &cross_command &set_buildflags &get_buildoption); -my $max_compat=9; +my $max_compat=10; sub init { my %params=@_; @@ -332,26 +332,31 @@ sub dirname { if (! defined $c) { $c=1; - if (defined $ENV{DH_COMPAT}) { - $c=$ENV{DH_COMPAT}; - } - elsif (-e 'debian/compat') { - # Try the file.. + if (-e 'debian/compat') { open (COMPAT_IN, "debian/compat") || error "debian/compat: $!"; my $l=; close COMPAT_IN; if (! defined $l || ! length $l) { - warning("debian/compat is empty, assuming level $c"); + warning("debian/compat is empty, assuming level $c") + unless defined $ENV{DH_COMPAT}; } else { chomp $l; $c=$l; } } + else { + warning("No compatibility level specified in debian/compat"); + warning("This package will soon FTBFS; time to fix it!"); + } + + if (defined $ENV{DH_COMPAT}) { + $c=$ENV{DH_COMPAT}; + } } if ($c <= 4 && ! $warned_compat && ! $nowarn) { - warning("Compatibility levels before 5 are deprecated."); + warning("Compatibility levels before 5 are deprecated (level $c in use)"); $warned_compat=1; } @@ -613,12 +618,22 @@ sub filedoublearray { my $file=shift; my $globdir=shift; + # executable confi files are a v9 thing. + my $x=! compat(8) && -x $file; + if ($x) { + require Cwd; + my $cmd=Cwd::abs_path($file); + open (DH_FARRAY_IN, "$cmd |") || error("cannot run $file: $!"); + } + else { + open (DH_FARRAY_IN, $file) || error("cannot read $file: $!"); + } + my @ret; - open (DH_FARRAY_IN, $file) || error("cannot read $file: $!"); while () { chomp; # Only ignore comments and empty lines in v5 mode. - if (! compat(4)) { + if (! compat(4) && ! $x) { next if /^#/ || /^$/; } my @line; @@ -627,7 +642,7 @@ sub filedoublearray { # The tricky bit is that the glob expansion is done # as if we were in the specified directory, so the # filenames that come out are relative to it. - if (defined $globdir && ! compat(2)) { + if (defined $globdir && ! compat(2) && ! $x) { foreach (map { glob "$globdir/$_" } split) { s#^$globdir/##; push @line, $_; @@ -638,7 +653,8 @@ sub filedoublearray { } push @ret, [@line]; } - close DH_FARRAY_IN; + + close DH_FARRAY_IN || error("problem reading $file: $!"); return @ret; }