This is an automated email from the git hooks/post-receive script. jamessan pushed a commit to branch master in repository devscripts.
commit 9af7199988479754bd077d61cf62fadd237428c4 Author: Craig Small <[email protected]> Date: Sat May 16 13:03:12 2015 +1000 debdiff: Specify directory of .dsc files debdiff is one of the few devscripts utilities that does not either have a --debs-dir option or use the DEBRELEASE_DEBS_DIR option found in devscripts.conf This patch enables both methods which means instead of having to manually specify the .dsc files when you have a different DEBS_DIR to .., it will Just Work like the other tools. Signed-off-by: James McCoy <[email protected]> --- debian/changelog | 3 +++ scripts/debdiff.1 | 16 ++++++++++++++++ scripts/debdiff.pl | 31 ++++++++++++++++++++++++++++++- 3 files changed, 49 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 6a85252..8cac5c1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -60,6 +60,9 @@ devscripts (2.15.5) UNRELEASED; urgency=medium [ Hideki Yamane ] * Add bash completion for dcut. (Closes: #787321) + [ Craig Small ] + * debdiff: Honor DEBRELEASE_DEBS_DIR or --debs-dir. (Closes: #785421) + -- Cyril Brulebois <[email protected]> Tue, 28 Apr 2015 16:58:36 +0200 devscripts (2.15.4) unstable; urgency=medium diff --git a/scripts/debdiff.1 b/scripts/debdiff.1 index 46a50b5..3a39898 100644 --- a/scripts/debdiff.1 +++ b/scripts/debdiff.1 @@ -155,6 +155,12 @@ Do not unpack tarballs inside source packages. Do not read any configuration files. This can only be used as the first option given on the command-line. .TP +\fB\-\-debs\-dir\fR \fIdirectory\fR +Look for the \fI.dsc\fR files in \fIdirectory\fR +instead of the parent of the source directory. This should +either be an absolute path or relative to the top of the source +directory. +.TP .BR \-\-help ", " \-h Show a summary of options. .TP @@ -210,6 +216,16 @@ If this is set to \fIyes\fR, then it is the same as the .B DEBDIFF_UNPACK_TARBALLS If this is set to \fIno\fR, then it is the same as the \fB\-\-no\-unpack\-tarballs\fR command line parameter being used. +.TP +.B DEBRELEASE_DEBS_DIR +This specifies the directory in which to look for the \fI.dsc\fR +and files, and is either an absolute path or relative to +the top of the source tree. This corresponds to the +\fB\-\-debs\-dir\fR command line option. This directive could be +used, for example, if you always use \fBpbuilder\fR or +\fBsvn-buildpackage\fR to build your packages. Note that it also +affects \fBdebrelease\fR(1) in the same way, hence the strange name of +the option. .SH "EXIT VALUES" Normally the exit value will be 0 if no differences are reported and 1 if any are reported. If there is some fatal error, the exit code will diff --git a/scripts/debdiff.pl b/scripts/debdiff.pl index 2eff196..a39b594 100755 --- a/scripts/debdiff.pl +++ b/scripts/debdiff.pl @@ -112,6 +112,8 @@ EOF # Start by setting default values +my $debsdir; +my $debsdir_warning; my $ignore_dirs = 1; my $compare_control = 1; my $controlfiles = 'control'; @@ -143,6 +145,7 @@ if (@ARGV and $ARGV[0] =~ /^--no-?conf$/) { 'DEBDIFF_WDIFF_SOURCE_CONTROL' => 'no', 'DEBDIFF_AUTO_VER_SORT' => 'no', 'DEBDIFF_UNPACK_TARBALLS' => 'yes', + 'DEBRELEASE_DEBS_DIR' => '..', ); my %config_default = %config_vars; @@ -173,6 +176,11 @@ if (@ARGV and $ARGV[0] =~ /^--no-?conf$/) { or $config_vars{'DEBDIFF_AUTO_VER_SORT'}='no'; $config_vars{'DEBDIFF_UNPACK_TARBALLS'} =~ /^(yes|no)$/ or $config_vars{'DEBDIFF_UNPACK_TARBALLS'}='yes'; + # We do not replace this with a default directory to avoid accidentally + # installing a broken package + $config_vars{'DEBRELEASE_DEBS_DIR'} =~ s%/+%/%; + $config_vars{'DEBRELEASE_DEBS_DIR'} =~ s%(.)/$%$1%; + $debsdir_warning = "config file specified DEBRELEASE_DEBS_DIR directory $config_vars{'DEBRELEASE_DEBS_DIR'} does not exist!"; foreach my $var (sort keys %config_vars) { if ($config_vars{$var} ne $config_default{$var}) { @@ -182,6 +190,7 @@ if (@ARGV and $ARGV[0] =~ /^--no-?conf$/) { $modified_conf_msg ||= " (none)\n"; chomp $modified_conf_msg; + $debsdir = $config_vars{'DEBRELEASE_DEBS_DIR'}; $ignore_dirs = $config_vars{'DEBDIFF_DIRS'} eq 'yes' ? 0 : 1; $compare_control = $config_vars{'DEBDIFF_CONTROL'} eq 'no' ? 0 : 1; $controlfiles = $config_vars{'DEBDIFF_CONTROLFILES'}; @@ -200,6 +209,7 @@ my $type = ''; my @excludes = (); my @move = (); my %renamed = (); +my $opt_debsdir; # handle command-line options @@ -260,6 +270,16 @@ while (@ARGV) { elsif ($ARGV[0] =~ s/^--controlfiles=//) { $controlfiles = shift; } + elsif ($ARGV[0] eq '--debs-dir') { + fatal "Malformed command-line option $ARGV[0]; run $progname --help for more info" + unless @ARGV >= 2; + shift @ARGV; + + $opt_debsdir = shift; + } + elsif ($ARGV[0] =~ s/^--debs-dir=//) { + $opt_debsdir = shift; + } elsif ($ARGV[0] =~ /^(--dirs|-d)$/) { $ignore_dirs = 0; shift; } elsif ($ARGV[0] eq '--nodirs') { $ignore_dirs = 1; shift; } elsif ($ARGV[0] =~ /^(--quiet|-q)$/) { $quiet = 1; shift; } @@ -297,16 +317,25 @@ while (@ARGV) { my $guessed_version = 0; +if ($opt_debsdir) { + $opt_debsdir =~ s%^/+%/%; + $opt_debsdir =~ s%(.)/$%$1%; + $debsdir_warning = "--debs-dir directory $opt_debsdir does not exist!"; + $debsdir = $opt_debsdir; +} + # If no file is given, assume that we are in a source directory # and try to create a diff with the previous version if(@ARGV == 0) { my $namepat = qr/[-+0-9a-z.]/i; + fatal $debsdir_warning unless -d $debsdir; + fatal "Can't read file: debian/changelog" unless -r "debian/changelog"; open CHL, "debian/changelog"; while(<CHL>) { if(/^(\w$namepat*)\s\((\d+:)?(.+)\)((\s+$namepat+)+)\;\surgency=.+$/) { - unshift @ARGV, "../".$1."_".$3.".dsc"; + unshift @ARGV, $debsdir."/".$1."_".$3.".dsc"; $guessed_version++; } last if $guessed_version > 1; -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/devscripts.git _______________________________________________ devscripts-devel mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/devscripts-devel
