Merge branch 'master' into stdenv-updates

Conflicts:
	pkgs/top-level/all-packages.nix
perl: avoid --no-cpp-precomp on darwin, (close #1160)

Taken from https://trac.macports.org/ticket/38913
vcunat renamed the patch
Check for SSL Cert value before building with SSL support.
Add HTTPD SSH assertion to check null cert/key.
Check empty stringfor globalRedirect. It breaks RedirectPermanent.
emacs23: fix build via using older texinfo
gnutar: update to version 1.27.1
patchShebangs: rewrite ".../bin/env python" to /nix/store/.../python

Currently "/usr/bin/env python" is rewritten to "/nix/store/.../env
python". That doesn't really improve anything because the interpreter
still have to be located in $PATH at runtime. The result is that many
nix package expressions do .../bin/env fixup themselves.

Instead of everyone having to do this patching locally, add the
functionality to the standard environment patchShebangs function so that
everyone can benefit.
Fix bug introduced in previous commit

When building e.g. perl for the first time there is no perl in PATH yet,
so command -v perl will fail.

This brings back the previous behaviour of silently not patching
shebangs for which there is no available command in PATH.
Merge remote-tracking branch 'origin/master' into stdenv-updates.

Conflicts:
	pkgs/development/interpreters/perl/5.16/default.nix
	pkgs/tools/networking/curl/default.nix
	pkgs/top-level/all-packages.nix
	pkgs/top-level/release-python.nix
	pkgs/top-level/release-small.nix
	pkgs/top-level/release.nix
stdenv/patchShebangs: fix shebang check

patchShebangs has a bug that shows itself on files that have the
executable bit set but have no shebang (i.e. a blank/empty first line).
The shell would then evaluate this:

if [ != '#!' ]; then
  # not evaluated
fi

With proper quoting we get the correct behaviour:

if [ "" != '#!' ]; then
  # this will be evaluated
fi
Merge remote-tracking branch 'origin/master' into stdenv-updates.

Conflicts:
	pkgs/tools/networking/p2p/amule/default.nix
ncurses: fix includedir setting

${out} in configureFlags isn't expanded, so ncursesw5-config ends up
expanding ${out} at *runtime*. Here is the relevant ncursesw5-config
snippet showing how includedir gets its value at runtime.

  bindir="${exec_prefix}/bin"
  includedir="${out}/include"
  libdir="${exec_prefix}/lib"
  datadir="${prefix}/share"
  mandir="${prefix}/man"

When running in a plain shell you get this:
  $ ncursesw5-config --cflags
  -I/include/ncursesw -I/include

And when run in a nix-build shell for e.g. gpsd:
  $ ncursesw5-config --cflags
  -I/nix/store/HASH-gpsd-3.10/include/ncursesw -I/nix/store/HASH-gpsd-3.10/include

This is clearly wrong.

Q: How come this has gone undetected for years?
A: It seems few packages use ncursesw5-config to get the compiler
flags. For example, our python curses module builds its own compiler
flags.

Fix this by moving the --includedir setting to preConfigure where shell
variables are expanded.
Merge branch 'master' into stdenv-updates.
rabbitmq-server: update to 3.2.1
rabbitmq-c: add version 0.4.1
libjson-rpc-cpp: minor fixes to the expression.
Merge branch 'origin/master' into stdenv-updates.

Conflicts:
	pkgs/tools/misc/less/default.nix
pkgs/build-support/cabal: clean up the code that sets rpath for shared executables
pkgs/build-support/cabal: add 'buildTarget' attribute to allow passing flags to "./Setup build"