Attaching a version against current master (since this can't make it to lenny anyway).
PS: an (N)ACK would be nice. Saludos, Felipe Sateler
From c738302e1c913cb23bd54cf9059f63580018ed0b Mon Sep 17 00:00:00 2001
From: Felipe Sateler <[EMAIL PROTECTED]>
Date: Thu, 14 Feb 2008 01:11:11 -0300
Subject: [PATCH] Add support for Build-Options.
Add Build-Options as a legal keyword in the source control file.
Also implement build-arch as the first build option. This option
causes dpkg-buildpackage to call debian/rules with the build-arch
target if called with the -B option.
---
scripts/Dpkg/Fields.pm | 2 +-
scripts/dpkg-buildpackage.pl | 13 ++++++++++++-
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/scripts/Dpkg/Fields.pm b/scripts/Dpkg/Fields.pm
index 6504a1f..cb7325e 100644
--- a/scripts/Dpkg/Fields.pm
+++ b/scripts/Dpkg/Fields.pm
@@ -15,7 +15,7 @@ our %EXPORT_TAGS = ('list' => [qw(%control_src_fields %control_pkg_fields
# Some variables (list of fields)
our %control_src_fields;
our %control_pkg_fields;
-$control_src_fields{$_} = 1 foreach (qw(Bugs Dm-Upload-Allowed
+$control_src_fields{$_} = 1 foreach (qw(Bugs Build-Options Dm-Upload-Allowed
Homepage Origin Maintainer Priority Section Source Standards-Version
Uploaders Vcs-Browser Vcs-Arch Vcs-Bzr Vcs-Cvs Vcs-Darcs Vcs-Git Vcs-Hg
Vcs-Mtn Vcs-Svn));
diff --git a/scripts/dpkg-buildpackage.pl b/scripts/dpkg-buildpackage.pl
index 93d72a1..31631a7 100755
--- a/scripts/dpkg-buildpackage.pl
+++ b/scripts/dpkg-buildpackage.pl
@@ -16,6 +16,7 @@ use Dpkg::Version qw(check_version);
use Dpkg::Changelog qw(parse_changelog);
use Dpkg::Arch qw(get_build_arch debarch_to_gnutriplet);
use Dpkg::Vendor qw(get_current_vendor);
+use Dpkg::Control;
textdomain("dpkg-dev");
@@ -101,6 +102,7 @@ my $checkbuilddep = 1;
my $signsource = 1;
my $signchanges = 1;
my $diffignore = '';
+my $buildtarget = 'build';
my $binarytarget = 'binary';
my $targetarch = my $targetgnusystem = '';
@@ -339,6 +341,15 @@ unless ($sourceonly) {
my $pv = "${pkg}_$sversion";
my $pva = "${pkg}_${sversion}_$arch";
+my $source = Dpkg::Control->new()->get_source();
+if (defined($source->{"Build-Options"}) ) {
+ # The build options are comma-separated, with optional spaces
+ my @build_options = split( / *, */, $source->{"Build-Options"} );
+ if( grep(/\bbuild-arch\b/, @build_options) && $binaryonly eq "-B") {
+ $buildtarget = "build-arch";
+ }
+}
+
if ($checkbuilddep) {
if ($admindir) {
push @checkbuilddep_args, "--admindir=$admindir";
@@ -369,7 +380,7 @@ unless ($binaryonly) {
chdir($dir) or failure("chdir $dir");
}
unless ($sourceonly) {
- withecho(@debian_rules, 'build');
+ withecho(@debian_rules, $buildtarget);
withecho(@rootcommand, @debian_rules, $binarytarget);
}
if ($usepause &&
--
1.5.5.4
signature.asc
Description: This is a digitally signed message part.

