]> ruderich.org/simon Gitweb - blhc/blhc.git/blobdiff - bin/blhc
README,blhc: Documentation update.
[blhc/blhc.git] / bin / blhc
index b5177bdda7b88e6a452c57c93f091318c5d4301d..c77a16cedddc3c91333098f9a96a4104abdaae6a 100755 (executable)
--- a/bin/blhc
+++ b/bin/blhc
@@ -688,8 +688,13 @@ foreach my $file (@ARGV) {
         # only, doesn't use the dpkg-buildpackage header. Necessary to ignore
         # build logs which aren't built (wrong architecture, build error,
         # etc.).
-        if (not $arch and index($line, 'Architecture: ') == 0) {
-            $arch = substr $line, 14, -1; # -1 to ignore '\n' at the end
+        if (not $arch) {
+            if (index($line, 'Build Architecture: ') == 0) {
+                $arch = substr $line, 20, -1; # -1 to ignore '\n' at the end
+            # For old logs (sbuild << 0.63.0-1).
+            } elsif (index($line, 'Architecture: ') == 0) {
+                $arch = substr $line, 14, -1; # -1 to ignore '\n' at the end
+            }
         }
 
         # dpkg-buildflags only provides hardening flags since 1.16.1, don't
@@ -729,9 +734,11 @@ foreach my $file (@ARGV) {
             }
         }
 
-        # Debian's build daemons use Build-Depends: for the build
-        # dependencies, but pbuilder just uses Depends:; support both.
-        if (index($line, 'Build-Depends: ') == 0
+        # Debian's build daemons use "Filtered Build-Depends:" (or just
+        # "Build-Depends:" in older versions) for the build dependencies, but
+        # pbuilder uses "Depends:"; support both.
+        if (index($line, 'Filtered Build-Depends: ') == 0
+                or index($line, 'Build-Depends: ') == 0
                 or index($line, 'Depends: ') == 0) {
             # If hardening wrapper is used (wraps calls to gcc and adds
             # hardening flags automatically) we can't perform any checks,
@@ -977,8 +984,8 @@ foreach my $file (@ARGV) {
 
     # Stores normal CFLAGS when @cflags_ada are temporarily used.
     my @cflags_backup;
-    # Ada CFLAGS.
-    my @cflags_ada = @cflags;
+    # Ada CFLAGS, only set if ada is used.
+    my @cflags_ada;
     # Ada doesn't support format hardening flags, see #680117 for more
     # information. Filter them out if ada is used.
     if ($ada and $harden_format) {
@@ -1260,14 +1267,18 @@ blhc is a small tool which checks build logs for missing hardening flags. It's
 licensed under the GPL 3 or later.
 
 It's designed to check build logs generated by Debian's dpkg-buildpackage (or
-tools using dpkg-buildpackage like pbuilder or the official buildd build logs)
-to help maintainers detect missing hardening flags in their packages.
+tools using dpkg-buildpackage like pbuilder or sbuild (which is used for the
+official buildd build logs)) to help maintainers detect missing hardening
+flags in their packages.
 
 Only gcc is detected as compiler at the moment. If other compilers support
 hardening flags as well, please report them.
 
 If there's no output, no flags are missing and the build log is fine.
 
+See F<README> for details about performed checks, auto-detection and
+limitations.
+
 =head1 OPTIONS
 
 =over 8