nixpkgs/pkgs/build-support
Austin Seipp 76b05b1630 releaseTools: add {clang,coverity}Analysis tools
These two expressions greatly simplify using the clang-analyzer or
Coverity static analyzer on your C/C++ projects. In fact, they are
identical to nixBuild in every way out of the box, and should 'Just
Work' providing your code can be compiled with Clang already.

The trick is that when running 'make', we actually just alias it to the
appropriate scan build tool, and add a post-build hook that will bundle
up the results appropriately and unalias it.

For Clang, we put the results in $out/analysis and add an 'analysis'
report to $out/nix-support/hydra-build-products pointing to the result
HTML - this means that if the analyzer finds any bugs, the HTML results
will automatically show up Hydra for easy viewing.

For Coverity, it's slightly different. Instead we run the build tool and
after we're done, we tar up the results in a format that Coverity Scan's
service understands. We put the tarball in $out/tarballs under the name
'foo-cov-int.xz' and add an entry for the file to hydra-build-products
as well for easy viewing.

Of course for Coverity you must then upload the build. A Hydra plugin to
do this is on the way, and it will automatically pick up the
cov-int.tar.xz for uploading.

Note that coverityAnalysis requires allowUnfree = true;, as well as the
cov-build tools, which you can download from https://scan.coverity.com -
they're not linked to your account or anything, it's just an annoying
registration wall.

Note this is a first draft. In particular, scan-build fixes the C/C++
compiler to be Clang, and it's perfectly reasonable to want to use Clang
for the analyzer but have scan-build invoke GCC instead.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2014-05-02 14:07:37 -05:00
..
build-fhs-chrootenv Move su to the base packages of chrootenv builder 2014-04-18 13:30:24 +02:00
buildenv buildEnv: don't warn about collisions in propagated packages 2012-07-25 23:18:39 -04:00
builder-defs Updating TeXLive to 2013 using updated Debian snapshots. 2013-10-14 10:58:54 +04:00
cabal pkgs/build-support/cabal: revert "the release version of GHC 7.8.x no longer requires" 2014-05-01 23:14:55 +02:00
clang-wrapper preferLocalBuild: set to true for wrappers and fetchers 2014-02-10 21:04:17 +01:00
dotnetenv * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
fetchbower Add fetchbower function to go along with bower2nix 2014-01-06 08:20:22 -05:00
fetchbzr - fetchbzr and nix-prefetch-bzr now only export, instead of cloning 2013-03-31 19:16:18 -07:00
fetchcvs * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
fetchdarcs Remove deprecated option --ephemeral from fetchdarcs 2012-10-22 15:02:33 +02:00
fetchfile Fixed error in build-support/fetchfile 2011-08-09 12:28:49 +00:00
fetchgit fetchgit: Implement option to not check out submodules. 2014-03-25 20:03:55 +01:00
fetchgitrevision Remove semicolon causing evaluation error. 2011-01-02 23:52:39 +00:00
fetchhg fetchhg: allow untrusted certs (merge #540) 2013-05-20 21:24:25 +02:00
fetchmtn Fix a few typos 2013-08-11 10:55:53 +00:00
fetchsvn preferLocalBuild: set to true for wrappers and fetchers 2014-02-10 21:04:17 +01:00
fetchsvnrevision Live builds support: initially for git and svn. taglib_live is packaged as an example. 2011-01-02 23:23:59 +00:00
fetchsvnssh undo 2008-07-06 15:46:10 +00:00
fetchurl re-enable au debian mirror 2014-03-03 21:57:38 +11:00
gcc-cross-wrapper Merge pull request #1928 from 'cross-win-osx'. 2014-04-21 10:00:35 +02:00
gcc-wrapper gcc-wrapper: don't fail when cpp doesn't exist 2014-04-02 19:07:58 +02:00
kdewrapper preferLocalBuild: set to true for wrappers and fetchers 2014-02-10 21:04:17 +01:00
kernel Fix initrd breaking by recent repeatable-builds changes 2014-04-12 00:06:30 +02:00
make-desktopitem * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
make-startupitem Added an optional parameter to "make-startupitem" to provide a prefix to the ".desktop" file. 2012-02-29 12:50:17 +00:00
make-symlinks * "." -> "source". 2005-12-05 14:11:09 +00:00
mono-dll-fixer * Remove references to substitute.sh. 2006-12-27 18:17:53 +00:00
native-darwin-cctools-wrapper Darwin: Add mig', lipo', etc. to `stdenvNative'. 2012-04-23 15:47:31 +00:00
nuke-references * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
release releaseTools: add {clang,coverity}Analysis tools 2014-05-02 14:07:37 -05:00
setup-hooks Move generation of coverage reports from nixos/lib/testing to releaseTools 2014-03-03 13:57:08 +01:00
src-only A helper to get the source some package is built from. 2008-10-01 15:57:22 +00:00
substitute * Set preferLocalBuild on a few more trivial builders. 2012-04-26 15:17:43 +00:00
upstream-updater Updating SlimerJS to Git version for compatibility with fresh xulrunner 2013-10-31 02:59:45 +04:00
vm Add RHEL7 to vm functions. 2014-05-01 15:13:35 +02:00
vsenv * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
build-pecl.nix Add memcache php module 2014-03-24 08:37:36 -04:00
replace-dependency.nix replace-dependency: Eelco has ruled, lowerCamelCase > dash-case :( 2013-01-13 11:15:01 -05:00
source-from-head-fun.nix Remove getConfig helper function 2012-09-19 13:56:56 -04:00
trivial-builders.nix build-support: Add writeTextDir 2014-03-23 10:05:38 +00:00