[buildd-tools-devel] Bug#674669: Bug#674669: Bug#674669: Bug#674669: sbuild: Unable to get .changes when using --debbuildopt=-A

Daniel Dehennin daniel.dehennin at baby-gnu.org
Mon Jul 2 12:31:01 UTC 2012


Roger Leigh <rleigh at codelibre.net> writes:

> Not yet, but hopefully something this week or next.

I made a patch[1] since I need it for my poor-man-wanna-build, I inline
it here for review[2].

Regards.

From 0e4ee335e271cc980a3e169e437144c82f3be508 Mon Sep 17 00:00:00 2001
From: Daniel Dehennin <daniel.dehennin at baby-gnu.org>
Date: Mon, 2 Jul 2012 14:27:07 +0200
Subject: [PATCH] Workaround #674669: Manage _all.changes since dpkg 1.16.2

* lib/Sbuild/Build.pm: Use _all.changes file name if we passed -A to
  dpkg-buildpackage and if the file exists.
---
 lib/Sbuild/Build.pm |   27 +++++++++++++++++++++++----
 1 file changed, 23 insertions(+), 4 deletions(-)

diff --git a/lib/Sbuild/Build.pm b/lib/Sbuild/Build.pm
index fe6b07c..61f8a99 100644
--- a/lib/Sbuild/Build.pm
+++ b/lib/Sbuild/Build.pm
@@ -1628,7 +1628,13 @@ sub build {
 	}
 
 	$self->log_subsection("Changes");
-	$changes = $self->get('Package_SVersion') . "_$host_arch.changes";
+	if ( (grep {$_ eq "-A"} @{$self->get_conf('DPKG_BUILDPACKAGE_USER_OPTIONS')})
+	     and -r "$build_dir/" . $self->get('Package_SVersion') . "_all.changes") {
+	    $changes = $self->get('Package_SVersion') . "_all.changes";
+	}
+	else {
+	    $changes = $self->get('Package_SVersion') . "_$host_arch.changes";
+	}
 	my @cfiles;
 	if (-r "$build_dir/$changes") {
 	    my(@do_dists, @saved_dists);
@@ -2200,8 +2206,15 @@ sub close_build_log {
     if ($self->get_status() eq "successful") {
 	if (defined($self->get_conf('KEY_ID')) && $self->get_conf('KEY_ID')) {
 	    my $key_id = $self->get_conf('KEY_ID');
+	    my $changes;
 	    $self->log(sprintf("Signature with key '%s' requested:\n", $key_id));
-	    my $changes = $self->get('Package_SVersion') . '_' . $self->get('Host Arch') . '.changes';
+	    if ( grep {$_ eq "-A"} @{$self->get_conf('DPKG_BUILDPACKAGE_USER_OPTIONS')}
+		 and -r $self->get('Package_SVersion') . "_all.changes") {
+		$changes = $self->get('Package_SVersion') . "_all.changes";
+	    }
+	    else {
+		$changes = $self->get('Package_SVersion') . '_' . $self->get('Host Arch') . '.changes';
+	    }
 	    system "debsign", "-k$key_id", $changes;
 	}
     }
@@ -2307,8 +2320,14 @@ sub send_mime_build_log {
 		Filename => basename($filename) . '.gz'
 		);
     }
-
-    my $changes = $self->get('Package_SVersion') . '_' . $self->get('Host Arch') . '.changes';
+    my $changes;
+    if ( grep {$_ eq "-A"} @{$self->get_conf('DPKG_BUILDPACKAGE_USER_OPTIONS')} 
+	 and -r $self->get('Package_SVersion') . "_all.changes") {
+	$changes = $self->get('Package_SVersion') . "_all.changes";
+    }
+    else {
+	$changes = $self->get('Package_SVersion') . '_' . $self->get('Host Arch') . '.changes';
+    }
     if ($self->get_status() eq 'successful' && -r $changes) {
 	my $log_part = MIME::Lite->new(
 		Type     => 'text/plain',
-- 
1.7.10



Footnotes: 
[1]  http://git.baby-gnu.net/gitweb/?p=sbuild.git;a=shortlog;h=refs/heads/dad/674669

[2]  The .changes file name is calculated 3 times, I think this can be
     optimized ;-)

-- 
Daniel Dehennin
Récupérer ma clef GPG:
gpg --keyserver pgp.mit.edu --recv-keys 0x7A6FE2DF
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 229 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/buildd-tools-devel/attachments/20120702/0ba3cc38/attachment.pgp>


More information about the Buildd-tools-devel mailing list