Your message dated Sat, 30 Jun 2012 05:17:51 +0000
with message-id <e1skq47-0008st...@franck.debian.org>
and subject line Bug#664058: fixed in dpkg 1.16.5
has caused the Debian Bug report #664058,
regarding dpkg-dev: please add action to dpkg-buildflags to get an overview of 
the settings
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
664058: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=664058
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: dpkg-dev
Version: 1.16.1.2
Severity: wishlist
Tags: patch

It would be nice to have some action of dpkg-buildflags to output
the actual compiler flags so maintainers can call this and log
analysers can find that information in the log.
(dpkg-buildflags --dump would hard to identify without false positives
and suggesting to add something like dpkg-buildflags | sed -e
's/^/dpkg-buildflags: /' would surely lead to unneeded variance).

If that would also output the feature flags and some information
why the values get this way (so that one can help new developers
by just looking at some build log instead of requesting each
piece of information manually).

Attached is a patch relative to current dpkg git master to output
environment variables, vendor, feature flags and compiler flags
in a nice way as new action '--status'.

        Bernhard R. Link
>From 2075bebb2fad5bd2d7ff134ce8b9bc18196a14da Mon Sep 17 00:00:00 2001
From: "Bernhard R. Link" <brl...@debian.org>
Date: Thu, 15 Mar 2012 11:25:39 +0100
Subject: [PATCH] dpkg-buildflags: add --status action to describe what is
 happening

It's hard to see from a build log file what values should have been
used and why. The new --status action added by this tries to output
all meaningful information in way useful for human consumption
and for automatic log parsers.

Signed-off-by: Bernhard R. Link <brl...@debian.org>
---
 man/dpkg-buildflags.1      |   11 +++++++++
 scripts/Dpkg/BuildFlags.pm |   12 ++++++++++
 scripts/dpkg-buildflags.pl |   52 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/man/dpkg-buildflags.1 b/man/dpkg-buildflags.1
index 4244b82..0c9829c 100644
--- a/man/dpkg-buildflags.1
+++ b/man/dpkg-buildflags.1
@@ -72,6 +72,17 @@ Print the list of flags supported by the current vendor
 (one per line). See the \fBSUPPORTED FLAGS\fP section for more
 information about them.
 .TP
+.BI \-\-status
+Print all information to standard output:
+Environment variables that might have had some influence,
+the current vendor,
+the state of all feature flags, and finally
+all compiler flags together with their origin and values.
+
+This is intended to be run from debian/rules, so that the log
+contains all the information or to debug why the flags are that
+they end up to be.
+.TP
 .BI \-\-export= format
 Print to standard output shell (if \fIformat\fP is \fBsh\fP) or make
 (if \fIformat\fP is \fBmake\fP) commands that can be used to export
diff --git a/scripts/Dpkg/BuildFlags.pm b/scripts/Dpkg/BuildFlags.pm
index b114335..b18c860 100644
--- a/scripts/Dpkg/BuildFlags.pm
+++ b/scripts/Dpkg/BuildFlags.pm
@@ -320,6 +320,18 @@ sub get {
     return $self->{'flags'}{$key};
 }
 
+=item $bf->get_feature_areas()
+
+Return the feature areas
+(i.e. the area values has_features will return true for).
+
+=cut
+
+sub get_feature_areas {
+    my ($self) = @_;
+    return keys $self->{'features'};
+}
+
 =item $bf->get_features($area)
 
 Return, for the given area, a hash with keys as feature names, and values
diff --git a/scripts/dpkg-buildflags.pl b/scripts/dpkg-buildflags.pl
index d0f9fa8..890076b 100755
--- a/scripts/dpkg-buildflags.pl
+++ b/scripts/dpkg-buildflags.pl
@@ -24,6 +24,7 @@ use Dpkg;
 use Dpkg::Gettext;
 use Dpkg::ErrorHandling;
 use Dpkg::BuildFlags;
+use Dpkg::Vendor qw(get_current_vendor);
 
 textdomain("dpkg-dev");
 
@@ -52,6 +53,7 @@ Actions:
                      compilation flags in a shell script, in make,
                      or on a ./configure command line.
   --dump             output all compilation flags with their values
+  --status           informational message about current status
   --help             show this help message.
   --version          show the version.
 "), $progname;
@@ -80,6 +82,10 @@ while (@ARGV) {
         usageerr(_g("two commands specified: --%s and --%s"), "list", $action)
             if defined($action);
         $action = "list";
+    } elsif (m/^--status$/) {
+        usageerr(_g("two commands specified: --%s and --%s"), "status", $action)
+            if defined($action);
+        $action = "status";
     } elsif (m/^-(h|-help)$/) {
         usage();
         exit 0;
@@ -147,6 +153,52 @@ if ($action eq "get") {
 	print "$flag=$value\n";
     }
     exit(0);
+} elsif ($action eq "status") {
+    # prefix everything with "dpkg-buildflags: " to allow easy extraction
+    # from a buildd log.
+    # First print all environment variables that might have changed the
+    # results: (would be nice to only print those having an effect for
+    # the current vendor, but getting that information here would be
+    # quite tough):
+    my @envvars = ('DEB_VENDOR', 'DEB_BUILD_OPTIONS',
+                   'DEB_BUILD_MAINT_OPTIONS', 'DEB_BUILD_HARDENING');
+    foreach my $flag ($build_flags->list()) {
+	push @envvars, "DEB_" . $flag . "_SET",
+			"DEB_" . $flag . "_STRIP",
+			"DEB_" . $flag . "_APPEND",
+			"DEB_" . $flag . "_PREPEND",
+			"DEB_" . $flag . "_MAINT_SET",
+			"DEB_" . $flag . "_MAINT_STRIP",
+			"DEB_" . $flag . "_MAINT_APPEND",
+			"DEB_" . $flag . "_MAINT_PREPEND";
+    }
+    for my $envvar (@envvars) {
+	if (exists $ENV{$envvar}) {
+	    printf "dpkg-buildflags: environment variable %s=%s\n",
+				$envvar, $ENV{$envvar};
+	}
+    }
+    my $vendor = Dpkg::Vendor::get_current_vendor();
+    $vendor = "undefined" unless defined($vendor);
+    print "dpkg-buildflags: vendor is $vendor\n";
+    # Then the resulting features:
+    foreach my $area (sort $build_flags->get_feature_areas()) {
+	print "dpkg-buildflags: $area features:";
+	my %features = $build_flags->get_features($area);
+	foreach my $feature (sort keys %features) {
+	    printf " %s=%s", $feature, $features{$feature} ? "yes" : "no";
+	}
+	print "\n";
+    }
+    # Then the resulting values (with their origin):
+    foreach my $flag ($build_flags->list()) {
+	my $value = $build_flags->get($flag);
+	my $origin = $build_flags->get_origin($flag);
+	# note that DEB_*_MAINT_* currently is not reflected
+	# by $origin...
+	print "dpkg-buildflags: $flag [$origin]: $value\n";
+    }
+    exit(0);
 }
 
 exit(1);
-- 
1.7.9.1


--- End Message ---
--- Begin Message ---
Source: dpkg
Source-Version: 1.16.5

We believe that the bug you reported is fixed in the latest version of
dpkg, which is due to be installed in the Debian FTP archive:

dpkg-dev_1.16.5_all.deb
  to main/d/dpkg/dpkg-dev_1.16.5_all.deb
dpkg_1.16.5.dsc
  to main/d/dpkg/dpkg_1.16.5.dsc
dpkg_1.16.5.tar.xz
  to main/d/dpkg/dpkg_1.16.5.tar.xz
dpkg_1.16.5_amd64.deb
  to main/d/dpkg/dpkg_1.16.5_amd64.deb
dselect_1.16.5_amd64.deb
  to main/d/dpkg/dselect_1.16.5_amd64.deb
libdpkg-dev_1.16.5_amd64.deb
  to main/d/dpkg/libdpkg-dev_1.16.5_amd64.deb
libdpkg-perl_1.16.5_all.deb
  to main/d/dpkg/libdpkg-perl_1.16.5_all.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 664...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Guillem Jover <guil...@debian.org> (supplier of updated dpkg package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Sat, 30 Jun 2012 04:28:51 +0200
Source: dpkg
Binary: libdpkg-dev dpkg dpkg-dev libdpkg-perl dselect
Architecture: source amd64 all
Version: 1.16.5
Distribution: unstable
Urgency: low
Maintainer: Dpkg Developers <debian-d...@lists.debian.org>
Changed-By: Guillem Jover <guil...@debian.org>
Description: 
 dpkg       - Debian package management system
 dpkg-dev   - Debian package development tools
 dselect    - Debian package management front-end
 libdpkg-dev - Debian package management static library
 libdpkg-perl - Dpkg perl modules
Closes: 64642 440094 558095 621763 624000 627333 640676 643043 652970 664058 
672723 673190 675333 676232 677631 678933 679010
Changes: 
 dpkg (1.16.5) unstable; urgency=low
 .
   [ Raphaël Hertzog ]
   * dpkg-source will now clean up after a failed application of a quilt
     patch. Closes: #652970
     And it will display a message explaining the most likely cause of
     failure (patch applying with fuzz).
   * When dpkg-source regenerates the automatic patch (with formats "2.0"
     or "3.0 (quilt)") it will keep the current patch header to avoid
     losing changes made by the maintainer.
   * Modify dpkg-source --commit to auto-whitelist modified binary files.
     That way the same command can be used whatever kind of upstream files
     has been modified.
   * dpkg-source now supports a new option --no-unapply-patches to force
     patches to be kept applied after build (used by formats "2.0" and "3.0
     (quilt)"). Closes: #643043
 .
   [ Guillem Jover ]
   * Add a dpkg-buildflags --status action to describe the flag settings.
     Thanks to Bernhard R. Link <brl...@debian.org>. Closes: #664058
   * Add support for “binary-only” key-value option in changelogs, to allow
     marking changelog entries as part of a binary only upload, having a
     different version from the source package. Closes: #440094, #672723
   * Minimize source architecture list on «dpkg-source -b» by removing
     architectures already covered by architecture wildcards. Closes: #675333
   * Do not assume $ENV{'HOME'} is defined in Dpkg::Source::Package.
     Thanks to Niels Thykier <ni...@thykier.net>. Closes: #677631
   * Document in more detail in deb(5) the supported ar archive format.
   * Document in deb-src-control(5) the “Private-” field prefix.
   * Add new start-stop-daemon --no-close option to disable closing file
     descriptors on --background. Closes: #627333, #64642
   * Switch source compression to xz.
   * Detect ar header fields truncation due to too long member names or too
     large member sizes. Closes: #678933
   * Add new dpkg-query --control-list and --control-show commands, which
     replace the now deprecated --control-path.
   * Print master and slave alternarive link names in update-alternatives
     --query and always print alternative link in --config. Closes: #679010
   * Cleanup and clarify buffer I/O error reporting. Closes: #621763
   * Avoid full stop and double newline at the end of errors and warnings.
     Thanks to Jonathan Nieder <jnie...@gmail.com>. Closes: #624000
   * Change all programs to accept -? instead of -h for help output.
   * Add support for specific arch-qualified dependencies. Closes: #676232
     Thanks to Thibaut Girka <t...@sitedethib.com>.
   * Accept “:native” arch-qualified Build-Dependencies. Closes: #558095
     Thanks to Thibaut Girka <t...@sitedethib.com>.
   * Do not use undefined values returned form deps_parse() in dpkg-shlibdeps.
     Closes: #640676
   * Add an Architecture column to «dpkg-query -l» before the Description
     column. Suggested by Jonathan Nieder <jnie...@gmail.com>. Closes: #673190
 .
   [ Updated dpkg translations ]
   * Swedish (Peter Krefting).
 .
   [ Updated dselect translations ]
   * Swedish (Peter Krefting).
 .
   [ Updated scripts translations ]
   * German (Helge Kreutzmann).
 .
   [ Updated man page translations ]
   * German (Helge Kreutzmann).
   * Swedish (Peter Krefting).
Checksums-Sha1: 
 5e256018148d50da61a19da0cbce49f65cd03169 1372 dpkg_1.16.5.dsc
 e3aaf08015bab5c40980f36514152102556b76b2 3546160 dpkg_1.16.5.tar.xz
 d826663e329d140f38ddfc4353b937cb270c6688 666932 libdpkg-dev_1.16.5_amd64.deb
 c078e1861151da90049e7ce788cb513b769e2e0f 2266848 dpkg_1.16.5_amd64.deb
 ea065b58a7aa49771a275e4e26a7603b65becadf 1100228 dselect_1.16.5_amd64.deb
 c1e214b79282fb56eaa54ad8f2a1dc2daad64eef 1142828 dpkg-dev_1.16.5_all.deb
 085f8ee024365882d641e60e209cc3bfca43bd36 852954 libdpkg-perl_1.16.5_all.deb
Checksums-Sha256: 
 3a4eec53e585abcb15c71f08331da63610150f4858793bc68ee2df006d1da8a6 1372 
dpkg_1.16.5.dsc
 fcd8d846479f3f955e1f1facc4422aed6c3173b6c5acd904d9db60f24bc18e7b 3546160 
dpkg_1.16.5.tar.xz
 aba88af2256caef0fdd345ba9eeacff8d2013a07b045d5b7c93162bd0893c10b 666932 
libdpkg-dev_1.16.5_amd64.deb
 1a56e13f5fc11eabb5ea7d17852cb1b3b09a117b16803e5b9a64ec14b3f37a62 2266848 
dpkg_1.16.5_amd64.deb
 50ac49b8115e6d19148031ecec7f976c69a084504c42b860abd1470e63b1f5d0 1100228 
dselect_1.16.5_amd64.deb
 7a23dd256195eec9f1ce2297737747a27a8c6d3beba5c9e8e9ac8d8734f07f54 1142828 
dpkg-dev_1.16.5_all.deb
 d77dc62deb89a923952c533b2320130d9573e8c3ebfa09fbdf80c835ca30ef65 852954 
libdpkg-perl_1.16.5_all.deb
Files: 
 571bd79d38407d605f7559cf65347c01 1372 admin required dpkg_1.16.5.dsc
 c70412c8b0f3609680104585ddb4ba5c 3546160 admin required dpkg_1.16.5.tar.xz
 49221981d6f3490ddc87c8a03bbe332d 666932 libdevel optional 
libdpkg-dev_1.16.5_amd64.deb
 d9128c702529b095fda97b205bf03398 2266848 admin required dpkg_1.16.5_amd64.deb
 3eed99660309c9fba61b490c057deb78 1100228 admin optional 
dselect_1.16.5_amd64.deb
 3c7266174c297984846a6eb88ae3730f 1142828 utils optional dpkg-dev_1.16.5_all.deb
 848633279951281c6213f877251081e3 852954 perl optional 
libdpkg-perl_1.16.5_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iEYEARECAAYFAk/uhA4ACgkQuW9ciZ2SjJvLqACgvBBdkE81qC2iEsdk4lhVoilv
hd8AoI/JlSVaR2i+DU9dLBBvCWo9RvWC
=xtFu
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to