blhc/blhc.git
9 years agoMinor cleanup thanks to Perl::Critic. 0.01
Simon Ruderich [Fri, 13 Apr 2012 14:49:52 +0000 (16:49 +0200)]
Minor cleanup thanks to Perl::Critic.

9 years agoREADME: blhc can be run from the source tree.
Simon Ruderich [Fri, 13 Apr 2012 14:21:27 +0000 (16:21 +0200)]
README: blhc can be run from the source tree.

9 years agoMANIFEST: Add NEWS and README.
Simon Ruderich [Fri, 13 Apr 2012 14:05:48 +0000 (16:05 +0200)]
MANIFEST: Add NEWS and README.

9 years agoREADME: Explain hardening flags.
Simon Ruderich [Fri, 13 Apr 2012 13:51:10 +0000 (15:51 +0200)]
README: Explain hardening flags.

9 years agoAlso use buildd's "Architecture" header to detect architecture.
Simon Ruderich [Wed, 11 Apr 2012 23:09:44 +0000 (01:09 +0200)]
Also use buildd's "Architecture" header to detect architecture.

9 years agoAdd --ignore-arch option.
Simon Ruderich [Wed, 11 Apr 2012 23:08:44 +0000 (01:08 +0200)]
Add --ignore-arch option.

9 years agoNEWS: Add.
Simon Ruderich [Wed, 11 Apr 2012 15:42:40 +0000 (17:42 +0200)]
NEWS: Add.

9 years ago.gitignore: Ignore tags file.
Simon Ruderich [Wed, 11 Apr 2012 15:39:43 +0000 (17:39 +0200)]
.gitignore: Ignore tags file.

9 years agoChange !~ to not =~ for consistency.
Simon Ruderich [Wed, 11 Apr 2012 15:38:33 +0000 (17:38 +0200)]
Change !~ to not =~ for consistency.

9 years agot: Add another non-verbose test.
Simon Ruderich [Wed, 11 Apr 2012 14:54:29 +0000 (16:54 +0200)]
t: Add another non-verbose test.

9 years agoLine continuation (\) allows no spaces after \.
Simon Ruderich [Wed, 11 Apr 2012 14:24:42 +0000 (16:24 +0200)]
Line continuation (\) allows no spaces after \.

Simplify the regex accordingly.

9 years agoUse index() where possible.
Simon Ruderich [Wed, 11 Apr 2012 14:22:05 +0000 (16:22 +0200)]
Use index() where possible.

index() is faster than //.

9 years agoDon't recognize options which contain compiler names as compiler lines.
Simon Ruderich [Wed, 11 Apr 2012 11:40:24 +0000 (13:40 +0200)]
Don't recognize options which contain compiler names as compiler lines.

For example "-c++".

9 years agoDocument $cc_regex;
Simon Ruderich [Wed, 11 Apr 2012 11:36:42 +0000 (13:36 +0200)]
Document $cc_regex;

9 years agoRemove unnecessary capture groups.
Simon Ruderich [Wed, 11 Apr 2012 11:18:48 +0000 (13:18 +0200)]
Remove unnecessary capture groups.

9 years agoUpdate Pod documentation.
Simon Ruderich [Tue, 10 Apr 2012 22:30:01 +0000 (00:30 +0200)]
Update Pod documentation.

9 years agoFix indentation.
Simon Ruderich [Tue, 10 Apr 2012 22:25:34 +0000 (00:25 +0200)]
Fix indentation.

9 years agoAdd --ignore-flag and --ignore-line options.
Simon Ruderich [Tue, 10 Apr 2012 22:23:20 +0000 (00:23 +0200)]
Add --ignore-flag and --ignore-line options.

9 years agoAdd more tests.
Simon Ruderich [Tue, 10 Apr 2012 22:08:35 +0000 (00:08 +0200)]
Add more tests.

9 years agoRewrap comments.
Simon Ruderich [Tue, 10 Apr 2012 21:45:51 +0000 (23:45 +0200)]
Rewrap comments.

9 years agoFix indentation.
Simon Ruderich [Tue, 10 Apr 2012 21:44:27 +0000 (23:44 +0200)]
Fix indentation.

Whitespace only change.

9 years agoRemove unnecessary if.
Simon Ruderich [Tue, 10 Apr 2012 21:43:14 +0000 (23:43 +0200)]
Remove unnecessary if.

9 years agoFix typo in file extension for Objective-C++ code.
Simon Ruderich [Tue, 10 Apr 2012 20:46:08 +0000 (22:46 +0200)]
Fix typo in file extension for Objective-C++ code.

9 years agoFix preprocessor handling of .s and .S/.sx file extensions.
Simon Ruderich [Tue, 10 Apr 2012 20:44:39 +0000 (22:44 +0200)]
Fix preprocessor handling of .s and .S/.sx file extensions.

.s doesn't have to be preprocessed, but .S and .sx must be preprocessed.

9 years agoREADME: Add.
Simon Ruderich [Tue, 10 Apr 2012 20:35:05 +0000 (22:35 +0200)]
README: Add.

9 years agoAbort with an error if no files are given.
Simon Ruderich [Mon, 9 Apr 2012 21:27:31 +0000 (23:27 +0200)]
Abort with an error if no files are given.

9 years agoUpdate documentation for --buildd.
Simon Ruderich [Mon, 9 Apr 2012 17:02:32 +0000 (19:02 +0200)]
Update documentation for --buildd.

9 years agoBuild.PL: Require Term::ANSIColor 2.01 for colorstrip().
Simon Ruderich [Mon, 9 Apr 2012 16:19:51 +0000 (18:19 +0200)]
Build.PL: Require Term::ANSIColor 2.01 for colorstrip().

9 years agoUse references to flag arrays to reduce code duplication.
Simon Ruderich [Mon, 9 Apr 2012 16:18:33 +0000 (18:18 +0200)]
Use references to flag arrays to reduce code duplication.

9 years agoDon't use Term::ANSIColor in buildd mode.
Simon Ruderich [Mon, 9 Apr 2012 15:20:33 +0000 (17:20 +0200)]
Don't use Term::ANSIColor in buildd mode.

9 years agoPrevent / in extension in file extension regex.
Simon Ruderich [Mon, 9 Apr 2012 12:47:10 +0000 (14:47 +0200)]
Prevent / in extension in file extension regex.

9 years ago"Compiling" with no filename is not a non-verbose build.
Simon Ruderich [Sun, 8 Apr 2012 16:03:06 +0000 (18:03 +0200)]
"Compiling" with no filename is not a non-verbose build.

9 years agoHandle dependency generation flags (-M/-MM/-MD/-MMD).
Simon Ruderich [Sun, 8 Apr 2012 14:11:54 +0000 (16:11 +0200)]
Handle dependency generation flags (-M/-MM/-MD/-MMD).

9 years agoRemove duplication when creating %extension.
Simon Ruderich [Sun, 8 Apr 2012 13:29:35 +0000 (15:29 +0200)]
Remove duplication when creating %extension.

9 years agoFix indentation.
Simon Ruderich [Sun, 8 Apr 2012 12:55:22 +0000 (14:55 +0200)]
Fix indentation.

9 years agoRemove unnecessary capture groups.
Simon Ruderich [Sun, 8 Apr 2012 12:54:41 +0000 (14:54 +0200)]
Remove unnecessary capture groups.

9 years agoPrint file name when multiple files are checked.
Simon Ruderich [Fri, 6 Apr 2012 16:42:15 +0000 (18:42 +0200)]
Print file name when multiple files are checked.

9 years agoFix architecture detection when checking multiple files.
Simon Ruderich [Fri, 6 Apr 2012 16:33:56 +0000 (18:33 +0200)]
Fix architecture detection when checking multiple files.

9 years agoAdd missing \b when checking for dpkg-dev.
Simon Ruderich [Sat, 31 Mar 2012 13:19:18 +0000 (15:19 +0200)]
Add missing \b when checking for dpkg-dev.

9 years agoCheck for CMake version which obeyed CPPFLAGS.
Simon Ruderich [Sat, 31 Mar 2012 13:10:14 +0000 (15:10 +0200)]
Check for CMake version which obeyed CPPFLAGS.

Thanks to Aron Xu for informing me of this issue. For more information
see Debian bug #653916.

9 years agoStore exit codes in %exit_code.
Simon Ruderich [Sat, 31 Mar 2012 13:00:34 +0000 (15:00 +0200)]
Store exit codes in %exit_code.

9 years agoDetect more C++ non-verbose builds.
Simon Ruderich [Thu, 29 Mar 2012 15:42:15 +0000 (17:42 +0200)]
Detect more C++ non-verbose builds.

9 years agoWhitespace only change.
Simon Ruderich [Thu, 29 Mar 2012 15:11:30 +0000 (17:11 +0200)]
Whitespace only change.

9 years agoIgnore compiler lines with no files with extensions.
Simon Ruderich [Thu, 29 Mar 2012 15:06:20 +0000 (17:06 +0200)]
Ignore compiler lines with no files with extensions.

This prevents many false positives and shouldn't cause any false
negatives.

Also update $file_extension_regex to exclude ',', ';' and ':' from the
file extension which prevents additional false positives.

9 years agoAlso ignore PIE flags when -shared is used.
Simon Ruderich [Thu, 29 Mar 2012 14:00:43 +0000 (16:00 +0200)]
Also ignore PIE flags when -shared is used.

9 years agoUse tag W-no-compiler-commands in buildd mode.
Simon Ruderich [Tue, 27 Mar 2012 17:08:48 +0000 (19:08 +0200)]
Use tag W-no-compiler-commands in buildd mode.

9 years agoUse I<> for arguments in POD.
Simon Ruderich [Mon, 26 Mar 2012 19:51:30 +0000 (21:51 +0200)]
Use I<> for arguments in POD.

9 years agoList argument for --arch in POD.
Simon Ruderich [Mon, 26 Mar 2012 19:49:40 +0000 (21:49 +0200)]
List argument for --arch in POD.

9 years agoDon't list available options in SYNOPSIS.
Jari Aalto [Mon, 26 Mar 2012 19:47:42 +0000 (21:47 +0200)]
Don't list available options in SYNOPSIS.

9 years agoPrint tag messages including statistics in buildd mode.
Simon Ruderich [Mon, 26 Mar 2012 03:21:33 +0000 (05:21 +0200)]
Print tag messages including statistics in buildd mode.

9 years agoIgnore ', " and ) at the end of the line.
Simon Ruderich [Mon, 26 Mar 2012 02:17:39 +0000 (04:17 +0200)]
Ignore ', " and ) at the end of the line.

Necessary to detect cases like "(gcc test.c)".

9 years agoBe more liberal in non-verbose file name checks.
Simon Ruderich [Mon, 26 Mar 2012 02:11:58 +0000 (04:11 +0200)]
Be more liberal in non-verbose file name checks.

9 years agoUse default CFLAGS for CXXFLAGS too.
Simon Ruderich [Mon, 26 Mar 2012 02:06:13 +0000 (04:06 +0200)]
Use default CFLAGS for CXXFLAGS too.

9 years agoPrecompile flag regexps.
Simon Ruderich [Mon, 26 Mar 2012 02:05:07 +0000 (04:05 +0200)]
Precompile flag regexps.

Speeds up any_flags_used() and all_flags_used().

9 years agoUse simpler regex to catch compiler commands.
Simon Ruderich [Mon, 26 Mar 2012 01:37:38 +0000 (03:37 +0200)]
Use simpler regex to catch compiler commands.

9 years agoUse dedicated loop to ignore beginning of the log file.
Simon Ruderich [Mon, 26 Mar 2012 01:23:47 +0000 (03:23 +0200)]
Use dedicated loop to ignore beginning of the log file.

Prevents a few unnecessary checks for each line.

9 years agoRewrap comments.
Simon Ruderich [Mon, 26 Mar 2012 01:20:27 +0000 (03:20 +0200)]
Rewrap comments.

9 years agoFix indentation.
Simon Ruderich [Mon, 26 Mar 2012 01:18:03 +0000 (03:18 +0200)]
Fix indentation.

Whitespace only change.

9 years agoSupport multiple log files as arguments.
Simon Ruderich [Mon, 26 Mar 2012 01:15:10 +0000 (03:15 +0200)]
Support multiple log files as arguments.

Not really useful at the momemnt because the parser output is not
separated between the files.

9 years agot/tests.t: Remove duplication.
Simon Ruderich [Mon, 26 Mar 2012 01:05:31 +0000 (03:05 +0200)]
t/tests.t: Remove duplication.

'--pie --bindnow' has the same effect as '--all'.

9 years agoWhitespace only change.
Simon Ruderich [Mon, 26 Mar 2012 00:50:57 +0000 (02:50 +0200)]
Whitespace only change.

9 years agoStrip trailing whitspace only when necessary.
Simon Ruderich [Mon, 26 Mar 2012 00:46:31 +0000 (02:46 +0200)]
Strip trailing whitspace only when necessary.

If we don't split a line we don't have to touch it.

9 years agoCall Term::ANSIColor::colorstrip() only when necessary.
Simon Ruderich [Mon, 26 Mar 2012 00:34:47 +0000 (02:34 +0200)]
Call Term::ANSIColor::colorstrip() only when necessary.

Most build logs contain no colors at all and colorstrip() is quite slow.

9 years agoUse /o in regexps where possible.
Simon Ruderich [Mon, 26 Mar 2012 00:34:12 +0000 (02:34 +0200)]
Use /o in regexps where possible.

/o is a bit faster and works fine as our parsing regexps never change.

9 years agoUse hashes instead of regexps to check file extensions.
Simon Ruderich [Mon, 26 Mar 2012 00:19:34 +0000 (02:19 +0200)]
Use hashes instead of regexps to check file extensions.

Hashes are much faster. Additionally this fixes detecting ".c++" files
and false positives caused by files with double extensions (e.g.
".cpp.o") which were not correctly ignored.

9 years agoDifferentiate between CFLAGS and CPPFLAGS.
Simon Ruderich [Sun, 25 Mar 2012 15:41:50 +0000 (17:41 +0200)]
Differentiate between CFLAGS and CPPFLAGS.

9 years agoFix --arch, missing '=s' in GetOptions().
Simon Ruderich [Sat, 24 Mar 2012 17:04:52 +0000 (18:04 +0100)]
Fix --arch, missing '=s' in GetOptions().

Thanks to Bernhard R. Link for spotting this.

9 years agoHandle false positive from make.
Simon Ruderich [Sat, 24 Mar 2012 14:19:22 +0000 (15:19 +0100)]
Handle false positive from make.

9 years agoSort options in POD.
Simon Ruderich [Sat, 24 Mar 2012 00:45:00 +0000 (01:45 +0100)]
Sort options in POD.

Thanks to Jari Aalto for the suggestion.

9 years agoIndent exit codes in the POD with only 4 spaces.
Jari Aalto [Sat, 24 Mar 2012 00:36:25 +0000 (01:36 +0100)]
Indent exit codes in the POD with only 4 spaces.

9 years agoMention log file in synopsis. Use "[options]" for possible options.
Jari Aalto [Sat, 24 Mar 2012 00:33:01 +0000 (01:33 +0100)]
Mention log file in synopsis. Use "[options]" for possible options.

9 years agoDon't color output by default, add --color option.
Simon Ruderich [Sat, 24 Mar 2012 00:23:58 +0000 (01:23 +0100)]
Don't color output by default, add --color option.

Thanks to Jari Aalto for the suggestion.

9 years agoHandle "configure:"/"Configure:" false positives.
Simon Ruderich [Thu, 22 Mar 2012 14:18:33 +0000 (15:18 +0100)]
Handle "configure:"/"Configure:" false positives.

9 years agoRemove unnecessary check for "Depends:".
Simon Ruderich [Thu, 22 Mar 2012 14:02:47 +0000 (15:02 +0100)]
Remove unnecessary check for "Depends:".

The end of the build log is now respected, "Depends:" comes after that.

9 years agoIgnore compiler when used as file suffixes.
Simon Ruderich [Thu, 22 Mar 2012 13:44:12 +0000 (14:44 +0100)]
Ignore compiler when used as file suffixes.

For example "rm test.gcc" isn't a compiler line.

9 years agoDetect i486-gnu-gcc as compiler.
Simon Ruderich [Thu, 22 Mar 2012 13:35:49 +0000 (14:35 +0100)]
Detect i486-gnu-gcc as compiler.

9 years agoDon't perform any tests if hardening-wrapper is used.
Simon Ruderich [Thu, 22 Mar 2012 01:05:50 +0000 (02:05 +0100)]
Don't perform any tests if hardening-wrapper is used.

9 years agoRemove unnecessary loop.
Simon Ruderich [Thu, 22 Mar 2012 00:21:06 +0000 (01:21 +0100)]
Remove unnecessary loop.

9 years agoIgnore unimportant lines at the end of the buildd log.
Simon Ruderich [Thu, 22 Mar 2012 00:08:13 +0000 (01:08 +0100)]
Ignore unimportant lines at the end of the buildd log.

9 years agoAccept `dpkg-buildflags --get *FLAGS` as valid hardening flags.
Simon Ruderich [Wed, 21 Mar 2012 23:49:20 +0000 (00:49 +0100)]
Accept `dpkg-buildflags --get *FLAGS` as valid hardening flags.

`...` isn't expanded by make. Assume dpkg-buildflags returns the correct
flags.

9 years agoDon't split on ; in quotes.
Simon Ruderich [Wed, 21 Mar 2012 23:20:08 +0000 (00:20 +0100)]
Don't split on ; in quotes.

9 years agoDetect compile type (preprocess, compile, link) correctly.
Simon Ruderich [Wed, 21 Mar 2012 19:43:06 +0000 (20:43 +0100)]
Detect compile type (preprocess, compile, link) correctly.

The arguments to gcc (-E, -S, -c) and the file extension are used to
detect the correct type.

This fixes many false positives and a few false negatives.

Thanks to Bernhard R. Link for the idea.

9 years agoHandle more configure false positives.
Simon Ruderich [Tue, 20 Mar 2012 19:45:11 +0000 (20:45 +0100)]
Handle more configure false positives.

9 years agoDetect LINK non-verbose builds.
Simon Ruderich [Tue, 20 Mar 2012 19:32:16 +0000 (20:32 +0100)]
Detect LINK non-verbose builds.

9 years agoMinor cleanup.
Simon Ruderich [Tue, 20 Mar 2012 19:28:29 +0000 (20:28 +0100)]
Minor cleanup.

9 years agoSome source comment fixes.
Simon Ruderich [Tue, 20 Mar 2012 19:27:52 +0000 (20:27 +0100)]
Some source comment fixes.

9 years ago\s includes \n, no need for $ in a few regexps.
Simon Ruderich [Tue, 20 Mar 2012 19:26:06 +0000 (20:26 +0100)]
\s includes \n, no need for $ in a few regexps.

9 years agoFirst work on --buildd.
Simon Ruderich [Mon, 19 Mar 2012 15:03:17 +0000 (16:03 +0100)]
First work on --buildd.

At the moment only missing hardening flags for old builds (old dpkg-dev)
are ignored.

9 years agoImprove documentation about --pie/--bindnow autodetection.
Simon Ruderich [Mon, 19 Mar 2012 13:48:29 +0000 (14:48 +0100)]
Improve documentation about --pie/--bindnow autodetection.

9 years agoDetect more CXX non-verbose builds.
Simon Ruderich [Mon, 19 Mar 2012 04:06:25 +0000 (05:06 +0100)]
Detect more CXX non-verbose builds.

9 years agoIgnore buildd's Depends: output.
Simon Ruderich [Sun, 18 Mar 2012 15:07:00 +0000 (16:07 +0100)]
Ignore buildd's Depends: output.

9 years agoImprove compiler regex to be more compatible.
Simon Ruderich [Sun, 18 Mar 2012 00:33:21 +0000 (01:33 +0100)]
Improve compiler regex to be more compatible.

9 years agoUse /x to make regex more readable.
Simon Ruderich [Sun, 18 Mar 2012 00:23:18 +0000 (01:23 +0100)]
Use /x to make regex more readable.

9 years agoHandle another configure false positive.
Simon Ruderich [Sun, 18 Mar 2012 00:22:18 +0000 (01:22 +0100)]
Handle another configure false positive.

9 years agoAlso support colored non-verbose builds on armhf and hurd.
Simon Ruderich [Sat, 17 Mar 2012 23:38:08 +0000 (00:38 +0100)]
Also support colored non-verbose builds on armhf and hurd.

9 years agoSupport colored non-verbose build systems.
Simon Ruderich [Sat, 17 Mar 2012 23:25:36 +0000 (00:25 +0100)]
Support colored non-verbose build systems.

9 years agoHandle another configure false positive.
Simon Ruderich [Sat, 17 Mar 2012 22:11:12 +0000 (23:11 +0100)]
Handle another configure false positive.

9 years agoCorrectly detect linking for CGI binaries (e.g. test.cgi).
Simon Ruderich [Sat, 17 Mar 2012 21:25:41 +0000 (22:25 +0100)]
Correctly detect linking for CGI binaries (e.g. test.cgi).

9 years agoHandle another configure false positive.
Simon Ruderich [Sat, 17 Mar 2012 21:21:04 +0000 (22:21 +0100)]
Handle another configure false positive.

9 years agoImprove line continuation to handle ignored lines correctly.
Simon Ruderich [Sat, 17 Mar 2012 20:16:03 +0000 (21:16 +0100)]
Improve line continuation to handle ignored lines correctly.