diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2014-05-27 19:42:08 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2014-05-27 19:42:08 -0400 |
commit | b8cc8f94730610c0189aa82dfec4ae6ce9b13e34 (patch) | |
tree | af8422da1b3a204d63aa847a17458e16d4e0c49d /doc/src | |
parent | 616afee14d7e8d6690286aaf8a2a0a01168c378a (diff) | |
download | postgresql-b8cc8f94730610c0189aa82dfec4ae6ce9b13e34.tar.gz postgresql-b8cc8f94730610c0189aa82dfec4ae6ce9b13e34.zip |
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
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/installation.sgml | 43 | ||||
-rw-r--r-- | doc/src/sgml/uuid-ossp.sgml | 47 |
2 files changed, 69 insertions, 21 deletions
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index b6b582e24c2..7353c612b1f 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -870,16 +870,45 @@ su - postgres </varlistentry> <varlistentry> + <term><option>--with-uuid=<replaceable>LIBRARY</replaceable></option></term> + <listitem> + <para> + Build the <![%standalone-include[uuid-ossp]]> + <![%standalone-ignore[<xref linkend="uuid-ossp">]]> module + (which provides functions to generate UUIDs), using the specified + UUID library.<indexterm><primary>UUID</primary></indexterm> + <replaceable>LIBRARY</replaceable> must be one of: + </para> + <itemizedlist> + <listitem> + <para> + <option>bsd</> to use the UUID functions found in FreeBSD, NetBSD, + and some other BSD-derived systems + </para> + </listitem> + <listitem> + <para> + <option>e2fs</> to use the UUID library created by + the <literal>e2fsprogs</> project; this library is present in most + Linux systems and in Mac OS X, and can be obtained for other + platforms as well + </para> + </listitem> + <listitem> + <para> + <option>ossp</> to use the <ulink + url="http://www.ossp.org/pkg/lib/uuid/">OSSP UUID library</ulink> + </para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> <term><option>--with-ossp-uuid</option></term> <listitem> <para> - Build components using the <ulink - url="http://www.ossp.org/pkg/lib/uuid/">OSSP UUID - library</ulink>. Specifically, build the - <![%standalone-include[uuid-ossp]]> - <![%standalone-ignore[<xref linkend="uuid-ossp">]]> module, - which provides functions to generate - UUIDs.<indexterm><primary>UUID</primary></indexterm> + Obsolete equivalent of <literal>--with-uuid=ossp</literal>. </para> </listitem> </varlistentry> diff --git a/doc/src/sgml/uuid-ossp.sgml b/doc/src/sgml/uuid-ossp.sgml index c48106ba0f4..dbbea09313a 100644 --- a/doc/src/sgml/uuid-ossp.sgml +++ b/doc/src/sgml/uuid-ossp.sgml @@ -13,20 +13,6 @@ are also functions to produce certain special UUID constants. </para> - <para> - This module depends on the OSSP UUID library, which can be found at - <ulink url="http://www.ossp.org/pkg/lib/uuid/"></ulink>. - </para> - - <note> - <para> - The OSSP UUID library is not well maintained, and is becoming increasingly - difficult to port to newer platforms. If you only need randomly-generated - (version 4) UUIDs, consider using the <function>gen_random_uuid()</> - function from the <xref linkend="pgcrypto"> module instead. - </para> - </note> - <sect2> <title><literal>uuid-ossp</literal> Functions</title> @@ -173,6 +159,39 @@ SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org'); </sect2> <sect2> + <title>Building <filename>uuid-ossp</></title> + + <para> + Historically this module depended on the OSSP UUID library, which accounts + for the module's name. While the OSSP UUID library can still be found + at <ulink url="http://www.ossp.org/pkg/lib/uuid/"></ulink>, it is not well + maintained, and is becoming increasingly difficult to port to newer + platforms. <filename>uuid-ossp</> can now be built without the OSSP + library on some platforms. On FreeBSD, NetBSD, and some other BSD-derived + platforms, suitable UUID creation functions are included in the + core <filename>libc</> library. On Linux, Mac OS X, and some other + platforms, suitable functions are provided in the <filename>libuuid</> + library, which originally came from the <literal>e2fsprogs</> project + (though on modern Linux it is considered part + of <literal>util-linux-ng</>). When invoking <filename>configure</>, + specify <option>--with-uuid=bsd</option> to use the BSD functions, + or <option>--with-uuid=e2fs</option> to + use <literal>e2fsprogs</>' <filename>libuuid</>, or + <option>--with-uuid=ossp</option> to use the OSSP UUID library. + More than one of these libraries might be available on a particular + machine, so <filename>configure</> does not automatically choose one. + </para> + + <note> + <para> + If you only need randomly-generated (version 4) UUIDs, + consider using the <function>gen_random_uuid()</> function + from the <xref linkend="pgcrypto"> module instead. + </para> + </note> + </sect2> + + <sect2> <title>Author</title> <para> |