Thread: pgsql: Support BSD and e2fsprogs UUID libraries alongside OSSP UUID lib

Support BSD and e2fsprogs UUID libraries alongside OSSP UUID library.

Allow the contrib/uuid-ossp extension to be built atop any one of these
three popular UUID libraries.  (The extension's name is now arguably a
misnomer, but we'll keep it the same so as not to cause unnecessary
compatibility issues for users.)

We would not normally consider a change like this post-beta1, but the issue
has been forced by our upgrade to autoconf 2.69, whose more rigorous header
checks are causing OSSP's header files to be rejected on some platforms.
It's been foreseen for some time that we'd have to move away from depending
on OSSP UUID due to lack of upstream maintenance, so this is a down payment
on that problem.

While at it, add some simple regression tests, in hopes of catching any
major incompatibilities between the three implementations.

Matteo Beccati, with some further hacking by me

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/b8cc8f94730610c0189aa82dfec4ae6ce9b13e34

Modified Files
--------------
configure                                |  374 ++++++++++++++++++++++------
configure.in                             |   81 +++++-
contrib/Makefile                         |    2 +-
contrib/uuid-ossp/.gitignore             |    6 +
contrib/uuid-ossp/Makefile               |   16 +-
contrib/uuid-ossp/expected/uuid_ossp.out |   91 +++++++
contrib/uuid-ossp/sql/uuid_ossp.sql      |   22 ++
contrib/uuid-ossp/uuid-ossp.c            |  401 +++++++++++++++++++++++++-----
doc/src/sgml/installation.sgml           |   43 +++-
doc/src/sgml/uuid-ossp.sgml              |   47 ++--
src/Makefile.global.in                   |    5 +-
src/include/pg_config.h.in               |   12 +
12 files changed, 923 insertions(+), 177 deletions(-)