The following commit has been merged in the master branch:
commit bcf5b91012270362523a7c9426fa025ada977a23
Author: James Vega <[email protected]>
Date: Sun May 1 22:09:10 2011 -0400
debchange: Add -M option to use debian/control's Maintainer information.
Closes: #560900
Signed-off-by: James Vega <[email protected]>
diff --git a/debian/changelog b/debian/changelog
index 82a11e0..7496c94 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -14,6 +14,8 @@ devscripts (2.10.73) UNRELEASED; urgency=low
Lindfors for the patch. (Closes: #587523)
+ Only download a file if it doesn't exist or its hashsum doesn't match
the one specified by snapshot.d.o.
+ * debchange: Add -M option to use debian/control's Maintainer information.
+ Thanks to Modestas Vainius for the patch. (Closes: #560900)
[ Benjamin Drung ]
* Add myself to uploaders.
diff --git a/scripts/debchange.1 b/scripts/debchange.1
index 00fd9b1..0a3ebc7 100644
--- a/scripts/debchange.1
+++ b/scripts/debchange.1
@@ -327,6 +327,14 @@ Note that there may be some interesting interactions if
multi-maintainer mode is in use; you will probably wish to check the
changelog manually before uploading it in such cases.
.TP
+.BR \-\-controlmaint ", " \-M
+Use maintainer details from the \fIdebian/control\fR \fBMaintainer\fR field
+rather than relevant environment variables (\fBDEBFULLNAME\fR, \fBDEBEMAIL\fR,
+etc.). This option might be useful to restore details of the main maintainer
+in the changelog trailer after a bogus edit (e.g. when \fB\-m\fR was intended
+but forgot) or when releasing a package in the name of the main maintainer
+(e.g. the team).
+.TP
.BR \-\-\fR[\fBno\fR]\fBmainttrailer ", " \-t
If mainttrailer is set, it will avoid modifying the existing changelog
trailer line (i.e. the maintainer and date-stamp details), unless
diff --git a/scripts/debchange.pl b/scripts/debchange.pl
index f72f4dd..5885ebe 100755
--- a/scripts/debchange.pl
+++ b/scripts/debchange.pl
@@ -164,6 +164,8 @@ Options:
(default: do not)
-m, --maintmaint
Don\'t change (maintain) the maintainer details in the changelog entry
+ -M, --controlmaint
+ Use maintainer name and email from the debian/control Maintainer field
-t, --mainttrailer
Don\'t change (maintain) the trailer line in the changelog entry; i.e.
maintain the maintainer and date/time details
@@ -304,7 +306,7 @@ if (@ARGV and $ARGV[0] =~ /^--no-?conf$/) {
# with older debchange versions.
my ($opt_help, $opt_version);
my ($opt_i, $opt_a, $opt_e, $opt_r, $opt_v, $opt_b, $opt_d, $opt_D, $opt_u,
$opt_force_dist);
-my ($opt_n, $opt_bn, $opt_qa, $opt_s, $opt_team, $opt_bpo, $opt_l, $opt_c,
$opt_m, $opt_create, $opt_package, @closes);
+my ($opt_n, $opt_bn, $opt_qa, $opt_s, $opt_team, $opt_bpo, $opt_l, $opt_c,
$opt_m, $opt_M, $opt_create, $opt_package, @closes);
my ($opt_news);
my ($opt_level, $opt_regex, $opt_noconf, $opt_empty);
@@ -342,6 +344,7 @@ GetOptions("help|h" => \$opt_help,
'multimaint-merge!' => \$opt_multimaint_merge,
'multi-maint-merge!' => \$opt_multimaint_merge,
"m|maintmaint" => \$opt_m,
+ "M|controlmaint" => \$opt_M,
"t|mainttrailer!" => \$opt_t,
"check-dirname-level=s" => \$opt_level,
"check-dirname-regex=s" => \$opt_regex,
@@ -671,7 +674,7 @@ if (! exists $env{'DEBEMAIL'} or ! exists
$env{'DEBFULLNAME'}) {
}
# Now use the gleaned values to detemine our MAINTAINER and EMAIL values
-if (! $opt_m) {
+if (! $opt_m and ! $opt_M) {
if (exists $env{'DEBFULLNAME'}) {
$MAINTAINER = $env{'DEBFULLNAME'};
} elsif (exists $env{'NAME'}) {
@@ -716,13 +719,33 @@ if (! $opt_m) {
$EMAIL = $addr if $addr;
}
# Otherwise, $EMAIL retains its default value of the last changelog entry
-} # if (! $opt_m)
+} # if (! $opt_m and ! $opt_M)
+
+if ($opt_M) {
+ if (-f 'debian/control') {
+ if (have_lpdc()) {
+ my $parser = Parse::DebControl->new;
+ my $deb822 = $parser->parse_file('debian/control', {stripComments
=> 'true'});
+ my $maintainer = decode_utf8($deb822->[0]->{'Maintainer'});
+ if ($maintainer =~ /^(.*)\s+<(.*)>$/) {
+ $MAINTAINER = $1;
+ $EMAIL = $2;
+ } else {
+ fatal "$progname: invalid debian/control Maintainer field
value\n";
+ }
+ } else {
+ fatal "$progname: unable to get maintainer from debian/control:
$lpdc_broken\n";
+ }
+ } else {
+ fatal "Missing file debian/control";
+ }
+}
#####
if ($opt_auto_nmu eq 'yes' and ! $opt_v and ! $opt_l and ! $opt_s and
! $opt_team and ! $opt_qa and ! $opt_bpo and ! $opt_bn and ! $opt_n and !
$opt_c and
- ! (exists $ENV{'CHANGELOG'} and length $ENV{'CHANGELOG'}) and
+ ! (exists $ENV{'CHANGELOG'} and length $ENV{'CHANGELOG'}) and ! $opt_M and
! $opt_create and ! $opt_a_passed and ! $opt_r and ! $opt_e and
! ($opt_release_heuristic eq 'changelog' and
$changelog{'Distribution'} eq 'UNRELEASED' and ! $opt_i_passed)) {
--
Git repository for devscripts
--
To unsubscribe, send mail to [email protected].