Package: devscripts Version: 2.15.5 Severity: minor Control: tags + patch When working with Emacs ‘debian-changelog-mode’ it is normal to have the latest changelog entry set to distribution “UNRELEASED”, and have the trailer line unfinalised — since the release is not ready.
Currently ‘debchange --release’ will fail with the following error:: ===== $ debchange --release parsechangelog/debian: warning: debian/changelog(l21): badly formatted trailer line LINE: -- parsechangelog/debian: warning: debian/changelog(l23): found start of entry where expected more change data or trailer LINE: python-lockfile (1:0.10.2-1) experimental; urgency=low parsechangelog/debian: warning: debian/changelog(l23): found eof where expected more change data or trailer debchange: fatal error at line 645: No maintainer in changelog! ===== Instead, ‘debchange --release’ should recognise an unfinalised trailer line as valid for this action, and replace the line with a finalised trailer line for the release. Attached is a suggested patch for this behaviour. -- \ “From the moment I picked your book up until I laid it down I | `\ was convulsed with laughter. Someday I intend reading it.” | _o__) —Groucho Marx | Ben Finney <[email protected]>
diff --git a/scripts/debchange.pl b/scripts/debchange.pl
index 1ca421f..1419a31 100755
--- a/scripts/debchange.pl
+++ b/scripts/debchange.pl
@@ -1280,7 +1280,7 @@ if (($opt_r || $opt_a || $merge) && ! $opt_create) {
# last entry, and determine whether there are existing
# multi-developer changes by the current maintainer.
$line=-1;
- my ($lastmaint, $nextmaint, $maintline, $count, $lastheader, $lastdist, $dist_indicator);
+ my ($lastmaint, $nextmaint, $trailer, $maintline, $count, $lastheader, $lastdist, $dist_indicator);
my $savedline = $line;;
while (<S>) {
$line++;
@@ -1317,8 +1317,19 @@ if (($opt_r || $opt_a || $merge) && ! $opt_create) {
($dist_indicator = $1) =~ s/[!:.,;]$//;
chomp $dist_indicator;
}
- elsif (/^ --\s+([^<]+)\s+/ || /^ --\s+<(.+?)>/) {
- $lastmaint=$1;
+ elsif (/^ --$/ || /^ --\s+([^<]+)\s+/ || /^ --\s+<(.+?)>/) {
+ $trailer = $line;
+ if (/^ --$/) {
+ # The trailer line is not finalised.
+ if (defined $lastdist) {
+ # Distribution should be “UNRELEASED”.
+ fatal "Trailer line must be finalised, or distribution must be UNRELEASED"
+ }
+ }
+ else {
+ # The trailer line is finalised. Store the maintainer value.
+ $lastmaint = $1;
+ }
# Remember where we are so we can skip back afterwards
$savedline = $line;
}
signature.asc
Description: Digital signature
_______________________________________________ devscripts-devel mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/devscripts-devel
