Author: jamessan
Date: 2009-11-20 00:34:21 +0000 (Fri, 20 Nov 2009)
New Revision: 2023

Modified:
   trunk/debian/changelog
   trunk/scripts/debcommit.pl
Log:
* debcommit:
  + Handle the split up of Dpkg::Changelog in Dpkg 1.15.5.2.
  + Use Dpkg::Changelog::Parse, if available, instead of shelling out to
    dpkg-parsechangelog.

Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog      2009-11-16 15:10:15 UTC (rev 2022)
+++ trunk/debian/changelog      2009-11-20 00:34:21 UTC (rev 2023)
@@ -17,6 +17,10 @@
       an "Upload to ..." line.  (Closes: #548171)
     + Consistently use “--nomainttrailer” in the manpage.  (Closes: #544351)
   * debuild: Recognize dpkg-source's -z/-Z options.  (Closes: #553205)
+  * debcommit:
+    + Handle the split up of Dpkg::Changelog in Dpkg 1.15.5.2.
+    + Use Dpkg::Changelog::Parse, if available, instead of shelling out to
+      dpkg-parsechangelog.
 
   [ Ryan Niebur ]
   * add w3m to suggests for grep-excuses -w, check for it at runtime too

Modified: trunk/scripts/debcommit.pl
===================================================================
--- trunk/scripts/debcommit.pl  2009-11-16 15:10:15 UTC (rev 2022)
+++ trunk/scripts/debcommit.pl  2009-11-20 00:34:21 UTC (rev 2023)
@@ -334,16 +334,29 @@
 $message=getmessage() if ! defined $message and (not $release or 
$release_use_changelog);
 
 if ($release) {
-    open (C, "<$changelog" ) || die "debcommit: cannot read $changelog: $!";
-    my $top=<C>;
-    if ($top=~/UNRELEASED/) {
-       die "debcommit: $changelog says it's UNRELEASED\nTry running dch 
--release first\n";
+    eval {
+       require Dpkg::Changelog::Parse;
+    };
+    if (not $@) {
+       # dpkg >= 1.15.5.2
+       my $log = Dpkg::Changelog::Parse::changelog_parse(file => $changelog);
+       if ($log->{Distribution} =~ /UNRELEASED/) {
+           die "debcommit: $changelog says it's UNRELEASED\nTry running dch 
--release first\n";
+       }
+       $version = $log->{Version};
     }
-    close C;
-    
-    $version=`dpkg-parsechangelog | grep '^Version:' | cut -f 2 -d ' '`;
-    chomp $version;
+    else {
+       open (C, "<$changelog" ) || die "debcommit: cannot read $changelog: $!";
+       my $top=<C>;
+       if ($top=~/UNRELEASED/) {
+           die "debcommit: $changelog says it's UNRELEASED\nTry running dch 
--release first\n";
+       }
+       close C;
 
+       $version=`dpkg-parsechangelog | grep '^Version:' | cut -f 2 -d ' '`;
+       chomp $version;
+    }
+
     $message="releasing version $version" if ! defined $message;
 }
 if ($edit) {
@@ -437,7 +450,16 @@
 sub bzr_find_fixes {
     my $message=shift;
 
-    my $debian_closes = Dpkg::Changelog::find_closes($message);
+    my $debian_closes;
+    eval {
+       require Dpkg::Changelog::Entry::Debian;
+    };
+    if (not $@) {
+       # dpkg >= 1.15.5.2
+       $debian_closes = Dpkg::Changelog::Entry::Debian::find_closes($message);
+    } else {
+       $debian_closes = Dpkg::Changelog::find_closes($message);
+    }
     my $launchpad_closes = [];
     eval {
        require Dpkg::Vendor::Ubuntu;



-- 
To unsubscribe, send mail to [email protected].

Reply via email to