* Fix cdefs macro to be compatible with gcc 4.8.x
See the discussion in #4945 (after the merge) for additional
background.
libbsd builds with gcc@5.4.0 on CentOS 7, but not with the system's
gcc@4.8.5. Others have reported problems with gcc@4.8.3 on Fedora 19.
The problem boils down to the lack of support for the clang extension
`__has_include_next`. The immediate symptom seems to be the
pre-processor using defining macro like this
```
```
then then tripping over an expansion of it like this:
```
blah.h:13:23: error: missing binary operator before token "("
```
This patch changes the macro definition to:
```
```
which swallows the arguments with which the macro is invoked.
The end result is that libbsd builds for me on CentOS 7 using the
system compiler.
* Apply this patch for any compiler version before 5
This includes subversions of 4, like 4.8.5.
* Add package for libbsd, add variant to expat for libbsd
The recent expat release requires a high quality source of randomness.
CentOS 7 does not seem to have one, but one is available in libbsd.
This commit adds a package for libbsd and adds a variant to expat to
use it (defaults to False).
* Make libbsd default for newer, conflict for older
Make the libbsd variant default to true.
Conflict if you're asking for libbsd and an older version of expat.
This means that in order to install an older version of expat you'll
need to specify `~libbsd`.
* Rework so that 2.2.0 and 2.2.2 work by default
Get rid of the conflicts and use better constraints/tests in the
`depends_on` and the `configure_args` bits.