]> ruderich.org/simon Gitweb - blhc/blhc.git/blobdiff - bin/blhc
Fix build dependency related checks for pbuilder build logs.
[blhc/blhc.git] / bin / blhc
index e03ac2889aa039ed04eaad66720dec1ac73fab18..bfdcfc575ee7642ae81fff9faf6c86c2ae62dcc0 100755 (executable)
--- a/bin/blhc
+++ b/bin/blhc
@@ -182,7 +182,7 @@ my @def_cflags = (
     '-O(?:2|3)',
 );
 my @def_cflags_format = (
-    '-Wformat',
+    '-Wformat(?:=2)?', # -Wformat=2 implies -Wformat, accept it too
     '-Werror=format-security', # implies -Wformat-security
 );
 my @def_cflags_fortify = (
@@ -190,7 +190,7 @@ my @def_cflags_fortify = (
 );
 my @def_cflags_stack = (
     '-fstack-protector',
-    '--param=ssp-buffer-size=4',
+    '--param[= ]ssp-buffer-size=4',
 );
 my @def_cflags_pie = (
     '-fPIE',
@@ -250,9 +250,11 @@ my @flag_refs_all = (
 # Renaming rules for the output so the regex parts are not visible. Also
 # stores string values of flag regexps above, see compile_flag_regexp().
 my %flag_renames = (
-    '-O(?:2|3)'         => '-O2',
-    '-Wl,(?:-z,)?relro' => '-Wl,-z,relro',
-    '-Wl,(?:-z,)?now'   => '-Wl,-z,now',
+    '-O(?:2|3)'                    => '-O2',
+    '-Wformat(?:=2)?'              => '-Wformat',
+    '--param[= ]ssp-buffer-size=4' => '--param=ssp-buffer-size=4',
+    '-Wl,(?:-z,)?relro'            => '-Wl,-z,relro',
+    '-Wl,(?:-z,)?now'              => '-Wl,-z,now',
 );
 
 my %exit_code = (
@@ -319,6 +321,8 @@ sub error_flags {
     printf '%s (%s)%s %s',
            error_color($message, 'red'), $flags, error_color(':', 'yellow'),
            $line;
+
+    return;
 }
 sub error_non_verbose_build {
     my ($line) = @_;
@@ -327,6 +331,8 @@ sub error_non_verbose_build {
            error_color('NONVERBOSE BUILD', 'red'),
            error_color(':', 'yellow'),
            $line;
+
+    return;
 }
 sub error_invalid_cmake {
     my ($version) = @_;
@@ -335,12 +341,16 @@ sub error_invalid_cmake {
             error_color('INVALID CMAKE', 'red'),
             error_color(':', 'yellow'),
             $version;
+
+    return;
 }
 sub error_hardening_wrapper {
     printf "%s%s %s\n",
             error_color('HARDENING WRAPPER', 'red'),
             error_color(':', 'yellow'),
             'no checks possible, aborting';
+
+    return;
 }
 sub error_color {
     my ($message, $color) = @_;
@@ -477,6 +487,8 @@ sub remove_flags {
                         or not exists $removes{$flag_renames_ref->{$_}})
         } @{$flags};
     }
+
+    return;
 }
 
 sub compile_flag_regexp {
@@ -711,7 +723,10 @@ foreach my $file (@ARGV) {
             }
         }
 
-        if (index($line, 'Build-Depends: ') == 0) {
+        # Debian's build daemons use Build-Depends: for the build
+        # dependencies, but pbuilder just uses Depends:; support both.
+        if (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,
             # abort.