]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
remove libuuid from tree
authorMichael Jerris <mike@jerris.com>
Tue, 29 Dec 2009 02:05:51 +0000 (02:05 +0000)
committerMichael Jerris <mike@jerris.com>
Tue, 29 Dec 2009 02:05:51 +0000 (02:05 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16072 d0543943-73ff-0310-b7d9-9358b9ac24b2

80 files changed:
Makefile.am
libs/uuid/.update [deleted file]
libs/uuid/AUTHORS [deleted file]
libs/uuid/BINDINGS [deleted file]
libs/uuid/ChangeLog [deleted file]
libs/uuid/HISTORY [deleted file]
libs/uuid/INSTALL [deleted file]
libs/uuid/MANIFEST [deleted file]
libs/uuid/Makefile.PL [deleted file]
libs/uuid/Makefile.in [deleted file]
libs/uuid/NEWS [deleted file]
libs/uuid/OVERVIEW [deleted file]
libs/uuid/PORTING [deleted file]
libs/uuid/README [deleted file]
libs/uuid/SEEALSO [deleted file]
libs/uuid/THANKS [deleted file]
libs/uuid/TODO [deleted file]
libs/uuid/USERS [deleted file]
libs/uuid/acinclude.m4 [deleted file]
libs/uuid/configure.ac [deleted file]
libs/uuid/configure.gnu [deleted file]
libs/uuid/perl/MANIFEST [deleted file]
libs/uuid/perl/Makefile.PL [deleted file]
libs/uuid/perl/uuid.pm [deleted file]
libs/uuid/perl/uuid.pod [deleted file]
libs/uuid/perl/uuid.tm [deleted file]
libs/uuid/perl/uuid.ts [deleted file]
libs/uuid/perl/uuid.xs [deleted file]
libs/uuid/perl/uuid_compat.pm [deleted file]
libs/uuid/perl/uuid_compat.pod [deleted file]
libs/uuid/perl/uuid_compat.ts [deleted file]
libs/uuid/pgsql/Makefile [deleted file]
libs/uuid/pgsql/uuid.c [deleted file]
libs/uuid/pgsql/uuid.sql.in [deleted file]
libs/uuid/pgsql/uuid.txt [deleted file]
libs/uuid/php/Makefile.local [deleted file]
libs/uuid/php/config.m4 [deleted file]
libs/uuid/php/package.xml [deleted file]
libs/uuid/php/uuid.c [deleted file]
libs/uuid/php/uuid.php4 [deleted file]
libs/uuid/php/uuid.php5 [deleted file]
libs/uuid/php/uuid.ts [deleted file]
libs/uuid/shtool [deleted file]
libs/uuid/uuid++.3 [deleted file]
libs/uuid/uuid++.cc [deleted file]
libs/uuid/uuid++.hh [deleted file]
libs/uuid/uuid++.pod [deleted file]
libs/uuid/uuid-config.1 [deleted file]
libs/uuid/uuid-config.in [deleted file]
libs/uuid/uuid-config.pod [deleted file]
libs/uuid/uuid.1 [deleted file]
libs/uuid/uuid.3 [deleted file]
libs/uuid/uuid.ac [deleted file]
libs/uuid/uuid.c [deleted file]
libs/uuid/uuid.h.in [deleted file]
libs/uuid/uuid.pc.in [deleted file]
libs/uuid/uuid.pod [deleted file]
libs/uuid/uuid_ac.h [deleted file]
libs/uuid/uuid_bm.h [deleted file]
libs/uuid/uuid_cli.c [deleted file]
libs/uuid/uuid_cli.pod [deleted file]
libs/uuid/uuid_dce.c [deleted file]
libs/uuid/uuid_dce.h [deleted file]
libs/uuid/uuid_mac.c [deleted file]
libs/uuid/uuid_mac.h [deleted file]
libs/uuid/uuid_md5.c [deleted file]
libs/uuid/uuid_md5.h [deleted file]
libs/uuid/uuid_prng.c [deleted file]
libs/uuid/uuid_prng.h [deleted file]
libs/uuid/uuid_sha1.c [deleted file]
libs/uuid/uuid_sha1.h [deleted file]
libs/uuid/uuid_str.c [deleted file]
libs/uuid/uuid_str.h [deleted file]
libs/uuid/uuid_time.c [deleted file]
libs/uuid/uuid_time.h [deleted file]
libs/uuid/uuid_ui128.c [deleted file]
libs/uuid/uuid_ui128.h [deleted file]
libs/uuid/uuid_ui64.c [deleted file]
libs/uuid/uuid_ui64.h [deleted file]
libs/uuid/uuid_vers.h [deleted file]

index 96a31880fbabad19ea88558b4b36efe5f1ef1003..b91dc14a4fd9753b9d58e1be69211b4f40de3f4f 100644 (file)
@@ -215,12 +215,10 @@ CORE_CFLAGS    += -I$(switch_srcdir)/libs/pcre
 CORE_CFLAGS    += -I$(switch_srcdir)/libs/speex/include -Ilibs/speex/include
 CORE_CFLAGS    += -I$(switch_srcdir)/libs/srtp/include
 CORE_CFLAGS    += -I$(switch_srcdir)/libs/srtp/crypto/include -Ilibs/srtp/crypto/include
-CORE_CFLAGS    += -I$(switch_builddir)/libs/uuid
-CORE_CFLAGS    += -I$(switch_srcdir)/libs/uuid
 
 CORE_LIBS      = libs/apr-util/libaprutil-1.la libs/apr/libapr-1.la
 CORE_LIBS     += libs/sqlite/libsqlite3.la libs/pcre/libpcre.la libs/speex/libspeex/libspeexdsp.la
-CORE_LIBS     += libs/srtp/libsrtp.la libs/uuid/libuuid.la
+CORE_LIBS     += libs/srtp/libsrtp.la
 
 lib_LTLIBRARIES                  = libfreeswitch.la
 libfreeswitch_la_CFLAGS   = $(CORE_CFLAGS) $(AM_CFLAGS)
@@ -370,18 +368,6 @@ nodepends: .nodepends
 yesdepends:
        rm .nodepends
 
-libs/uuid/configure: 
-       test -f $@ || $(MAKE) uuid-reconf
-       @$(TOUCH_TARGET)
-
-libs/uuid/Makefile: libs/uuid/configure
-       test -f $@ || cd $(top_builddir)/libs/uuid && $(SHELL) ./config.status Makefile
-       @$(TOUCH_TARGET)
-
-libs/uuid/libuuid.la: libs/uuid libs/uuid/.update libs/uuid/Makefile
-       @cd libs/uuid && $(MAKE)
-       @$(TOUCH_TARGET)
-
 libs/apr/libapr-1.la: libs/apr libs/apr/.update
        @cd libs/apr && $(MAKE)
        @$(TOUCH_TARGET)
@@ -494,12 +480,6 @@ iks-reconf:
        cd libs/iksemel && sh ./configure.gnu --prefix=$(PREFIX)
        $(MAKE) mod_dingaling-clean
 
-uuid-reconf:
-       cd libs/uuid && $(MAKE) clean || echo
-       cd libs/uuid && autoreconf -fi
-       cd libs/uuid && sh ./configure.gnu --prefix=$(PREFIX)
-       cd libs/uuid && $(MAKE)
-
 spandsp-reconf:
        cd libs/spandsp && $(MAKE) clean || echo
        cd libs/spandsp && autoreconf -fi
diff --git a/libs/uuid/.update b/libs/uuid/.update
deleted file mode 100644 (file)
index 69eeae4..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Tue Dec 22 14:12:35 EST 2009
diff --git a/libs/uuid/AUTHORS b/libs/uuid/AUTHORS
deleted file mode 100644 (file)
index 9f9d65e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-   _        ___  ____ ____  ____                _     _
-  |_|_ _   / _ \/ ___/ ___||  _ \   _   _ _   _(_) __| |
-  _|_||_| | | | \___ \___ \| |_) | | | | | | | | |/ _` |
- |_||_|_| | |_| |___) |__) |  __/  | |_| | |_| | | (_| |
-  |_|_|_|  \___/|____/____/|_|      \__,_|\__,_|_|\__,_|
-
-  OSSP uuid - Universally Unique Identifier
-
-  AUTHORS
-
-  This is a list of authors who have written
-  or edited major parts of the OSSP uuid sources.
-
-  Ralf S. Engelschall   <rse@engelschall.com>
-
diff --git a/libs/uuid/BINDINGS b/libs/uuid/BINDINGS
deleted file mode 100644 (file)
index 7342f81..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-
-   _        ___  ____ ____  ____                _     _
-  |_|_ _   / _ \/ ___/ ___||  _ \   _   _ _   _(_) __| |
-  _|_||_| | | | \___ \___ \| |_) | | | | | | | | |/ _` |
- |_||_|_| | |_| |___) |__) |  __/  | |_| | |_| | | (_| |
-  |_|_|_|  \___/|____/____/|_|      \__,_|\__,_|_|\__,_|
-
-  OSSP uuid - Universally Unique Identifier
-
-  LANGUAGE BINDINGS
-
-  Various programming language bindings exist for OSSP uuid.
-  The following is the list of known bindings:
-
-  o C
-    (native API)
-
-  o C++
-    (addon API; part of the OSSP uuid distribution; see uuid++.* files) 
-
-  o Perl
-    (addon API; part of the OSSP uuid distribution; see perl/ directory) 
-
-  o PHP
-    (addon API; part of the OSSP uuid distribution; see php/ directory) 
-
-  o PostgreSQL
-    (addon API; part of the OSSP uuid distribution; see pgsql/ directory) 
-
-  o GNU Guile GEE (Scheme)
-    https://gna.org/projects/gee
-
-  o Chicken (Scheme)
-    http://www.call-with-current-continuation.org/eggs/uuid-ossp.html
-
diff --git a/libs/uuid/ChangeLog b/libs/uuid/ChangeLog
deleted file mode 100644 (file)
index eadc313..0000000
+++ /dev/null
@@ -1,624 +0,0 @@
-   _        ___  ____ ____  ____                _     _
-  |_|_ _   / _ \/ ___/ ___||  _ \   _   _ _   _(_) __| |
-  _|_||_| | | | \___ \___ \| |_) | | | | | | | | |/ _` |
- |_||_|_| | |_| |___) |__) |  __/  | |_| | |_| | | (_| |
-  |_|_|_|  \___/|____/____/|_|      \__,_|\__,_|_|\__,_|
-
-  OSSP uuid - Universally Unique Identifier
-
-  CHANGELOG
-
-  This is a list of all changes to OSSP uuid.
-  For a more brief summary please have a look at the NEWS file.
-
-  Changes between 1.6.1 and 1.6.2 (21-Feb-2008 to 04-Jul-2008)
-
-   o Adjust "devtool.func" for latest GNU Libtool compatibility.
-     [Ralf S. Engelschall]
-
-   o Improve PRNG under Win32.
-     [Hiroshi Saito]
-
-   o Consistently annotate "RFC-XXXX" with "IETF" to clearly
-     indicate from which standards body this comes from.
-     [Ralf S. Engelschall]
-
-   o Resolve namespace conflicts of recently introduced time_xxx()
-     functions by using a propoer "uuid_" prefix.
-     [Ralf S. Engelschall]
-
-   o Remove unused "struct timezone" from time_gettimeofday() in
-     order to simplify portability.
-     [Ralf S. Engelschall]
-
-   o Add support for POSIX clock_gettime(3) in case the Unix/POSIX
-     gettimeofday(3) is not available.
-     [Ralf S. Engelschall]
-
-   o Upgrade build environment to GNU autoconf 2.62.
-     [Ralf S. Engelschall]
-
-   o Upgrade build environment to GNU libtool 2.2.4.
-     [Ralf S. Engelschall]
-
-  Changes between 1.6.0 and 1.6.1 (19-May-2007 to 21-Feb-2008)
-
-   o Port to Win32 API.
-     [Hiroshi Saito, Wu Yongwei, Ralf S. Engelschall]
-
-   o Adjust copyright messages for new year 2008.
-     [Ralf S. Engelschall]
-   
-   o Fix __VA_COPY_USE_{CSP,CPP} fallback macros for va_copy.
-     [Mark A. Lindner <mark.a.lindner@gmail.com>]
-
-   o PostgreSQL bindings: use SET_VARSIZE() instead
-     of assigning to bytea->v_len under PostgreSQL >= 8.3
-     [Ralf S. Engelschall]
-
-   o Upgrade build environment to GNU libtool 1.5.26
-     [Ralf S. Engelschall]
-
-  Changes between 1.5.1 and 1.6.0 (31-Jul-2006 to 19-May-2007)
-
-   o Expand unused "datarootdir" in Makefile.in and uuid-config.in to
-     make newer GNU autoconf versions happy.
-     [Ralf S. Engelschall]
-
-   o Upgrade build environment to GNU shtool 2.0.7
-     [Ralf S. Engelschall]
-
-   o Make GNU autoconf procedure of PHP binding more robust by using
-     -Wl,-Bsymbolic only on platforms where uuid_create(3) actually
-     exists and where -Wl,-Bsymbolic is really accepted by the tool
-     chain. This especially unbreaks MacOS X.
-     [Ralf S. Engelschall]
-
-   o Fix "uuid_export" function in PHP bindings under
-     UUID_FMT_SIV, UUID_FMT_STR and UUID_FMT_TXT where the
-     NUL-termination character should be not passed back to PHP.
-     [Neil Caunt <retardis@gmail.com>, Ralf S. Engelschall]
-
-   o Adjust copyright messages for new year 2007.
-     [Ralf S. Engelschall]
-
-   o Upgrade build environment to GNU autoconf 2.61
-     [Ralf S. Engelschall]
-
-   o Disable PostgreSQL "(CSTRING AS uuid)" and "(uuid AS CSTRING)"
-     CASTS as PostgreSQL 8.2 and higher explicitly disallow this.
-     [David Wheeler <david@kineticode.com>, Ralf S. Engelschall]
-
-   o Fix PostgreSQL bindings by mapping the correct DSO symbol
-     to the functions "uuid_send" and "uuid_recv".
-     [Ralf S. Engelschall]
-
-   o Silence PostgreSQL processing messages
-     [David Wheeler <david@kineticode.com>]
-
-   o Support MacOS X (aka Darwin) in PostgreSQL bindings by passing
-     a "-bundle_loader" option to the linker in order to resolve the
-     "undefined symbols" problem.
-     [David Wheeler <david@kineticode.com>, Ralf S. Engelschall]
-
-   o Pass the correct type to PostgreSQL's errmsg().
-     [David Wheeler <david@kineticode.com>, Ralf S. Engelschall]
-
-   o Added PostgreSQL 8.2 PG_MODULE_MAGIC support.
-     [David Wheeler <david@kineticode.com>]
-
-   o Fix the Data::UUID::to_b64string() function of the Perl backward
-     compatibility API: an empty string was not supplied as the EOL
-     marker to MIME::Base64::encode_base64() and hence the returned
-     string ended with a newline character (which in turn breaks many
-     applications using Data::UUID).
-     [Piotr Roszatycki <dexter@debian.org>]
-
-   o Change type of "data_ptr" argument in uuid_export() API signature
-     from "void **" to "void *" as there is unfortunately no
-     "generic pointer to pointer type" in ISO C (see also
-     http://c-faq.com/ptrs/genericpp.html) and "void **" is just a
-     "pointer to a 'void *'".
-     
-     The "void **" especially had the nasty side-effect that it breaks
-     strict pointer aliasing rules of ISO C and hence would require
-     fiddling with temporary variables on all uuid_export() calls if
-     one would be 100% correct and avoid aliasing related compiler
-     warnings. Instead, as uuid_export() internally has to cast the
-     "data_ptr" to the particular expected type anyway, it is better
-     to have "data_ptr" just be a really generic "void *" in the API
-     signature.
-     
-     Keep in mind that although this is an API change, it doesn't cause
-     any incompatibilities as the function still expects the same
-     "pointer to a pointer of a particular type". This expected pointer
-     is just now passed the more correct although less intuitive way.
-     [Hrvoje Niksic <hniksic@xemacs.org>, Ralf S. Engelschall]
-
-   o Optional DMALLOC based memory debugging support.
-     [Ralf S. Engelschall]
-
-   o Consistently include "uuid_ac.h" in all source files to have GNU
-     autoconf results and standard system defines available everywhere.
-     [Ralf S. Engelschall]
-
-  Changes between 1.5.0 and 1.5.1 (28-Jul-2006 to 31-Jul-2006)
-
-   o Use "MODULE_PATHNAME" instead of "@MODULE_PATHNAME@" in
-     uuid.sql.in to be more aligned to the PostgreSQL styles.
-     [Simon "janus" Dassow <janus@errornet.de>]
-
-   o Use the available variables $(LIB_NAME), $(DCE_NAME) and
-     $(CXX_NAME) more consistently in Makefile.in to allow packagers to
-     override the library name with less patching.
-     [Piotr Roszatycki <dexter@debian.org>]
-
-   o Fix the "make distclean" target of php/Makefile.local
-     to make sure the ".deps" file is not left over.
-     [Ralf S. Engelschall]
-
-   o Fix the tarball rolling procedure to make sure we
-     do not distribute binary files again. This now especially uses
-     a MANIFEST file which explicitly lists all files which form the
-     distribution tarball. We compare the tarball and the MANIFEST file
-     for differences in the "devtool dist" now.
-     [Ralf S. Engelschall]
-
-  Changes between 1.4.2 and 1.5.0 (13-Mar-2006 to 28-Jul-2006)
-
-   o Fixed potential memory leak in uuid_create() as spotted by SPLINT.
-     [Ralf S. Engelschall]
-
-   o Cleanup source code according to complains by SPLINT.
-     [Ralf S. Engelschall]
-
-   o Cleanup internal uuid_mac.h header.
-     [Ralf S. Engelschall]
-   
-   o Numerous fixed to the error handling in the PostgreSQL bindings.
-     [Neil Conway <neilc@samurai.com>]
-
-   o Add Hash indexing support UUID data type of PostgreSQL bindings.
-     [Ralf S. Engelschall]
-
-   o Add comparison operators and B-Tree indexing support UUID data
-     type of PostgreSQL bindings.
-     [Roman Neuhauser <neuhauser@sigpipe.cz>]
-
-   o Fix PHP bindings: the wrong argument to uuid_create()
-     was forced to a reference
-     [Roman Neuhauser <neuhauser@sigpipe.cz>]
-
-   o Add full support for Single Integer Value (SIV) UUID representation
-     for both importing and exporting in C/C++/Perl/PHP APIs.
-     [Ralf S. Engelschall]
-   
-   o Upgrade build environment to GNU shtool 2.0.6 and GNU autoconf 2.60
-     [Ralf S. Engelschall]
-
-   o Added an "OVERVIEW" file which tries to give the "big picture"
-     about UUIDs and allows to survice during the nasty UUID bit fiddling.
-     [Ralf S. Engelschall]
-
-   o Replaced "clock_seq_and_reserved" with
-     "clock_seq_high_and_reserved" in uuid.pod to already reflect the
-     description in the forthcoming RFC.
-     [Ralf S. Engelschall]
-
-   o Speed up processing in uuid_str.c by reducing va_copy() calls from
-     two to just one per formatting.
-     [Ralf S. Engelschall]
-
-  Changes between 1.4.1 and 1.4.2 (07-Feb-2006 to 13-Mar-2006)
-
-   o Fix uuid_export() function by fixing the internal
-     uuid_s[ar]printf() functions which require the backup of va_list
-     arguments between subsequent processing.
-     [Ralf S. Engelschall, Thomas Lotterer <thomas@lotterer.net>]
-
-   o Fix Perl API's "export" function by not taking over NUL-termination
-     character under UUID_FMT_TXT.
-     [Thomas Lotterer <thomas@lotterer.net>]
-   
-   o Declare "install", "uninstall" and "clean" make(1) targets
-     ".PHONY". This especially workarounds problems on case insensitive
-     filesystems (like MacOS X' filesystem) where the "INSTALL" document
-     conflicts with the "install" target.
-     [Ralf S. Engelschall, David Wheeler <david@kineticode.com>]
-
-  Changes between 1.4.0 and 1.4.1 (15-Jan-2006 to 07-Feb-2006)
-
-   o Upgrade to GNU shtool 2.0.5
-     [Ralf S. Engelschall]
-
-   o Apply workaround to uuid.h to avoid conflicts with
-     vendor UUID implementations where uuid_t (Darwin/MacOSX)
-     or uuid_create/uuid_compare (POSIX) might exist.
-     [Ralf S. Engelschall]
-
-  Changes between 1.3.2 and 1.4.0 (06-Dec-2005 to 15-Jan-2006)
-
-   o Created a top-level Perl ExtUtils::MakeMaker wrapper script
-     [Ralf S. Engelschall]
-
-   o Adjust copyright messages for new year 2006.
-     [Ralf S. Engelschall]
-
-   o Added experimental PostgreSQL bindings.
-     [Ralf S. Engelschall]
-
-   o Fixed documentation of uuid_make() function.
-     [Ralf S. Engelschall]
-
-   o Upgrade build environment to GNU libtool 1.5.22
-     [Ralf S. Engelschall]
-
-  Changes between 1.3.1 and 1.3.2 (24-Sep-2005 to 06-Dec-2005)
-
-   o Cleaned up and speed optimized perl/uuid_compat.pm
-     (the Data::UUID compatibility module for Perl)
-     [David Wheeler <david@justatheory.com>]
-
-   o Upgrade to GNU shtool 2.0.3
-     [Ralf S. Engelschall]
-   
-   o Consistently use "return" in uuid++.cc
-     [Ralf S. Engelschall]
-
-  Changes between 1.3.0 and 1.3.1 (02-Sep-2005 to 24-Sep-2005)
-
-   o Fix two incorrect casts, detected by compiling the C code
-     under C++ constraints.
-     [Ralf S. Engelschall]
-
-   o Remove a compiler warning in the PHP bindings.
-     [Ralf S. Engelschall]
-
-   o Plug memory leak in PRNG sub-library.
-     [Ralf S. Engelschall]
-
-   o Add VPATH/srcdir support for at the default 
-     build procedure plus at least C++ and DCE build options.
-     [Ralf S. Engelschall]
-
-  Changes between 1.2.1 and 1.3.0 (30-Aug-2005 to 02-Sep-2005)
-
-   o Add an experimental PHP 4/5 language API binding which
-     can be enabled under build-time with opption --with-php.
-     [Ralf S. Engelschall]
-   
-   o Upgrade to GNU libtool 1.5.20
-     [Ralf S. Engelschall]
-
-   o Add missing "const" in manual page.
-     [Ralf S. Engelschall]
-
-   o Add an experimental C++ API binding which can be 
-     enabled under build-time with option --with-cxx.
-     [Ralf S. Engelschall]
-
-   o Cleanup the internals of the uuid_create() function and
-     add a new corresponding uuid_clone() API function.
-     [Ralf S. Engelschall]
-
-   o Cleanup some Makefile parts.
-     [Ralf S. Engelschall]
-
-   o Added a pkg-config(1) specification uuid.pc which is also
-     installed by default in addition to the old-style uuid-config tool.
-     [Ralf S. Engelschall]
-
-   o Added optional Data::UUID backward compatibility Perl API which can
-     be enabled with the build-time option --with-perl-compat.
-     [Piotr Roszatycki <dexter@debian.org>, Ralf S. Engelschall]
-
-   o Add a functionality-reduced TIE-style Perl API OSSP::uuid::tie,
-     intended for very high-level convenience programming.
-     [Ralf S. Engelschall]
-
-   o Reference the new officially published RFC 4122.
-     [Ralf S. Engelschall]
-
-  Changes between 1.2.0 and 1.2.1 (23-Jan-2005 to 30-Aug-2005)
-
-   o Add SEEALSO document which references all known
-     UUID implementations.
-     [Ralf S. Engelschall]
-
-   o Improve the PRNG in case no stronger system PRNG device is
-     available by passing time and rand(3) based entropy into the MD5
-     one-way hash function to achieve at least some sort of weaker PRN data.
-     [Ralf S. Engelschall]
-
-   o Fix MAC address determination under Solaris by using the result of
-     ioctl(...,SIOCGARP,...) only if arp_flags had ATF_COM set.
-     [Ralf S. Engelschall]
-
-   o Upgrade to GNU libtool 1.5.18 and GNU shtool 2.0.2.
-     [Ralf S. Engelschall]
-
-   o Cleanup the source code even more by following a large
-     set of FlexeLint's suggestions.
-     [Ralf S. Engelschall]
-
-   o Fixed generated "section" number in uuid-config(1).
-     [Piotr Roszatycki <dexter@debian.org>]
-
-  Changes between 1.1.2 and 1.2.0 (13-Jan-2005 to 23-Jan-2005)
-
-   o Added support for new version 5 UUIDs (name-based, SHA-1)
-     according to latest draft-mealling-uuid-urn-05.txt.
-     [Ralf S. Engelschall]
-
-   o Reference new ISO/IEC 9834-8:2004 / ITU-T Rec. X.667 2004 standard
-     and latest IETF draft-mealling-uuid-urn-05.txt.
-     [Ralf S. Engelschall]
-
-  Changes between 1.1.1 and 1.1.2 (18-Nov-2004 to 13-Jan-2005)
-
-   o Fix generation of v3 UUIDs by adding support for 64-bit platforms
-     to the underlying uuid_md5.c code (which internally is based on
-     the RFC reference code which in turn assumes a 32-bit environment).
-     [Ralf S. Engelschall, Piotr Roszatycki <Piotr_Roszatycki@netia.net.pl>]
-
-   o Optimize internal md5_store() function by directly finalizing MD5
-     calculation on buffer copy instead of finalizing original buffer
-     and having to restore it from the buffer copy.
-     [Ralf S. Engelschall]
-
-   o Adjust copyright messages for new year 2005.
-     [Ralf S. Engelschall]
-
-   o Do not rebuild the Perl API if there were no actual changes.
-     [Ralf S. Engelschall]
-
-  Changes between 1.1.0 and 1.1.1 (03-Nov-2004 to 18-Nov-2004)
-
-   o Apply the FreeBSD libc uuid_create() related workaround
-     in the Perl bindings also under FreeBSD 6.0-CURRENT. 
-     [Ralf S. Engelschall]
-
-   o Fix --with-perl configure option processing: Perl is
-     only required if --with-perl is used although we search for Perl
-     always in order to provide the PERL variable substitution.
-     [Ralf S. Engelschall]
-
-  Changes between 1.0.4 and 1.1.0 (16-Oct-2004 to 03-Nov-2004)
-
-   o Add --with-perl configure option for optionally enabling
-     the Perl language bindings.
-     [Ralf S. Engelschall]
-
-   o Add Perl language bindings providing both a C-style and OO-style API.
-     [Ralf S. Engelschall]
-
-  Changes between 1.0.3 and 1.0.4 (15-Oct-2004 to 16-Oct-2004)
-
-   o Fix version detection from uuid_vers.h
-     [Ralf S. Engelschall]
-
-  Changes between 1.0.2 and 1.0.3 (12-Sep-2004 to 15-Oct-2004)
-
-   o Support configuring/building/installing from an arbitrary
-     directory via srcdir/top_srcdir/VPATH.
-     [David Lee <t.d.lee@durham.ac.uk>, Ralf S. Engelschall]
-
-   o Upgrade build environment to GNU libtool 1.5.10.
-     [Ralf S. Engelschall]
-
-  Changes between 1.0.1 and 1.0.2 (16-Jul-2004 to 12-Sep-2004)
-
-   o Upgrade build environment to GNU libtool 1.5.8 and GNU shtool 2.0.1
-     [Ralf S. Engelschall]
-
-  Changes between 1.0.0 and 1.0.1 (16-Feb-2004 to 16-Jul-2004)
-
-   o Made documentation of uuid_export() more clear.
-     [Ralf S. Engelschall]
-
-   o Upgrade build environment to GNU libtool 1.5.6 and GNU shtool 2.0.0
-     [Ralf S. Engelschall]
-
-   o Remove some warnings occurring under GCC 3.5
-     [Ralf S. Engelschall]
-
-  Changes between 0.9.7 and 1.0.0 (13-Feb-2004 to 16-Feb-2004)
-
-   o Replace remaining (old) UUID_VERSIONX names with UUID_MAKE_VX
-     in the documentation (uuid.pod).
-     [Ralf S. Engelschall]
-
-   o Resolve namespace conflicts with GCC 3.4 internal pow10() and round()
-     functions within uuid_str.c.
-     [Ralf S. Engelschall]
-
-   o Fix buffer handling in "uuid_export(..., UUID_FMT_TXT, vp, ...)" in
-     case "vp" is not NULL.
-     [Fuyuki <fuyuki@nigredo.org>]
-
-  Changes between 0.9.6 and 0.9.7 (11-Feb-2004 to 13-Feb-2004)
-
-   o remove --with-rfc2518 option and functionality because
-     even the IETF/IESG has finally approved our report about the broken
-     random multicast MAC address generation in the standard (and
-     will fix it in new versions of the draft-mealling-uuid-urn). So,
-     finally get rid of this broken-by-design backward compatibility
-     functionality.
-     [Ralf S. Engelschall]
-
-   o Add support to uuid(1) CLI for decoding from stdin for
-     both binary and string representations.
-     [Ralf S. Engelschall]
-
-   o Add missing documentation entries for UUID_XXXX API constants and
-     uuid_version() function.
-     [Fuyuki <fuyuki@nigredo.org>]
-
-   o Adjust references for new draft-mealling-uuid-urn-02.txt.
-     [Fuyuki <fuyuki@nigredo.org>]
-
-   o Replaced overlooked references to old
-     uuid_{unpack,pack,parse,format,dump}() functions with their
-     current uuid_{import,export}() replacements.
-     [Fuyuki <fuyuki@nigredo.org>]
-
-   o Fixed "uuid -h" command.
-     [Fuyuki <fuyuki@nigredo.org>]
-
-  Changes between 0.9.5 and 0.9.6 (06-Feb-2004 to 11-Feb-2004)
-
-   o Added an experimental additional DCE 1.1 API for backward
-     compatibility with existing applications.
-     [Ralf S. Engelschall]
-
-  Changes between 0.9.4 and 0.9.5 (19-Jan-2004 to 06-Feb-2004)
-
-   o Fixed filedescriptor leak in the PRNG sub-API.
-     [Guerry Semones <guerry@tsunamiresearch.com>]
-
-   o Upgraded build environment to GNU libtool 1.5.2.
-     [Ralf S. Engelschall]
-
-  Changes between 0.9.3 and 0.9.4 (16-Jan-2004 to 19-Jan-2004)
-
-   o Include <string.h> in uuid.h because of size_t usage.
-     [Ralf S. Engelschall]
-
-   o INCOMPATIBILITY: Refactor the API and rename uuid_generate()
-     to uuid_make() and use a "uuid_t" pointer for the namespace
-     on UUID_VERSION3 generation. To allow access to the internal
-     pre-defined namespace UUIDs, provide a new uuid_load() function.
-     Because uuid_load() now also allows the loading of the "nil" UUID,
-     remove uuid_nil() from the API. After this second refactoring the
-     API is now the one we originally wished for the forthcoming version
-     1.0 of OSSP uuid.
-     [Ralf S. Engelschall]
-
-   o INCOMPATIBILITY: rename UUID_VERSIONx to UUID_MAKE_Vx and
-     UUID_MCASTRND to UUID_MAKE_MC to be more consistent throughout API.
-     [Ralf S. Engelschall]
-
-   o Add version support to API via UUID_VERSION (compile-time)
-     and uuid_version() (link-time).
-     [Ralf S. Engelschall]
-
-   o INCOMPATIBILITY: Refactor the API by merging
-     uuid_{unpack,pack,parse,format,dump}() functions into unified
-     uuid_{import,export}() functions. This allows us to easily add
-     support for other formats (e.g. XML) in the future without having
-     the change the API in principle.
-     [Ralf S. Engelschall]
-
-   o Document what DCE 1.1 UUID versions exist and what they are
-     intended for.
-     [Ralf S. Engelschall]
-
-   o Cleanup the C code to also pass warning-free a C++ compiler.
-     [Ralf S. Engelschall]
-
-   o Support C++ by enclosing the C API declarations in
-     'extern "C" {...}' within uuid.h.
-     [Guerry Semones <guerry@tsunamiresearch.com>]
-
-   o Improvide decoding in uuid_dump() by at least hex-dumping the
-     binary representation in case of v3, v4 and Nil UUIDs. Also,
-     annotate with better hints.
-     [Ralf S. Engelschall]
-
-   o Recognize special "Nil UUID" on decoding in uuid_dump().
-     [Ralf S. Engelschall]
-
-  Changes between 0.9.2 and 0.9.3 (15-Jan-2004 to 16-Jan-2004)
-
-   o Tested OSSP uuid on 16 particular Unix platforms and list
-     those in the new PORTING file.
-     [Ralf S. Engelschall]
-
-   o Fixed minor formatting bug in call to str_rsprintf().
-     [Ralf S. Engelschall]
-
-   o Fix syntax error in uuid.ac.
-     [Ralf S. Engelschall]
-
-  Changes between 0.9.1 and 0.9.2 (13-Jan-2004 to 15-Jan-2004)
-
-   o Provide both incorrect RFC2518-based and correct IEEE 802
-     multicast address generation. The default now is the correct
-     IEEE 802 multicast address generation but compile-time option
-     --with-rfc2518 selects the broken variant.
-     [Ralf S. Engelschall]
-
-   o Decode also the IEEE 802 MAC address local/global bit.
-     [Ralf S. Engelschall]
-
-   o Added missing documentation for uuid_dump().
-     [Ralf S. Engelschall]
-
-   o Fixed BM_POW2() macro implementation.
-     [Ralf S. Engelschall]
-
-   o Use BM_XXX() and str_xxx() APIs throughout internal implementation.
-     [Ralf S. Engelschall]
-
-   o Added missing manual page uuid-config(1).
-     [Ralf S. Engelschall]
-
-   o Fixed output of "uuid-config --version"
-     [Ralf S. Engelschall]
-
-   o Fixed typos in uuid.pod
-     [Ralf S. Engelschall]
-
-   o Cleanup uuid.ac for unused elements.
-     [Ralf S. Engelschall]
-
-   o Moved uuid_[u]int{8,16,32}_t auto-configuration into
-     own internal header uuid_ac.h.
-     [Ralf S. Engelschall]
-
-   o Fixed portability by replacing accidentally introduced
-     uint{8,16,32}_t with the portable uuid_uint{8,16,32}_t.
-     [Guerry Semones <guerry@tsunamiresearch.com>]
-
-   o Prefix all variable symbols in uuid.h with underscores
-     to avoid namespace conflicts.
-     [Ralf S. Engelschall]
-
-   o Add decoding examples to uuid(1) manual page.
-     [Ralf S. Engelschall]
-
-  Changes between 0.9.0 and 0.9.1 (11-Jan-2004 to 13-Jan-2004)
-
-   o Make "md5_init" and "mac_address" symbols namespace clean
-     by adding correct embedding support via "uuid_" prefix.
-     [Ralf S. Engelschall]
-
-   o Implement uuid_dump() and corresponding uuid CLI "-d"
-     option for dumping a given UUID into clear text. For convenience
-     reasons add uuid_bm.h (bit mask API) and uuid_str (string
-     formatting API) sub-modules.
-     [Ralf S. Engelschall]
-
-   o Add "-m" option to CLI for allowing to generate v1 UUIDs
-     with random multi-cast addresses (API UUID_MCASTRND option).
-     [Ralf S. Engelschall]
-
-   o Disable the C++ and F77 checks in GNU libtool.
-     [Ralf S. Engelschall]
-
-   o Print involved option character (instead of '?') on invalid
-     option for uuid(1) CLI.
-     [Matthias Andree <matthias.andree@gmx.de>]
-
-   o Fixed "make install" and "make uninstall": the uuid(1) CLI
-     has to be [un]installed through GNU libtool, too.
-     [Matthias Andree <matthias.andree@gmx.de>]
-
-   o Document in uuid(1) [uuid_cli.pod] that for version 3
-     UUIDs additional arguments are required and what pre-defined
-     namespace ids are known.
-     [Ralf S. Engelschall, M.Daniel <mdaniel@scdi.com>]
-
-   o cleaned up source tree documentation files.
-     [Ralf S. Engelschall]
-
diff --git a/libs/uuid/HISTORY b/libs/uuid/HISTORY
deleted file mode 100644 (file)
index 74ab1d3..0000000
+++ /dev/null
@@ -1,358 +0,0 @@
-   _        ___  ____ ____  ____                _     _
-  |_|_ _   / _ \/ ___/ ___||  _ \   _   _ _   _(_) __| |
-  _|_||_| | | | \___ \___ \| |_) | | | | | | | | |/ _` |
- |_||_|_| | |_| |___) |__) |  __/  | |_| | |_| | | (_| |
-  |_|_|_|  \___/|____/____/|_|      \__,_|\__,_|_|\__,_|
-
-  OSSP uuid - Universally Unique Identifier
-
-  HISTORY
-
-  During OSSP uuid we were totally puzzled by a subtle bug in the UUID
-  standards related to the generation of multi-cast MAC addresses.
-  This part of the history shows a very interesting technical bug,
-  the unusual way of having to fix a standard (which was multiple
-  times revised by different standard authorities, including the
-  IETF, the OpenGroup and ISO/IEC) afterwards plus the fixing of six
-  implementations into which the bug was inherited similarly. Below are
-  some snapshot of this part of history: the first implementation fix
-  (for FreeBSD) and the notification of the IETF standards authors.
-
-  ___________________________________________________________________________
-
-  Date: Fri, 13 Feb 2004 16:09:31 +0100
-  From: "Ralf S. Engelschall" <rse@en1.engelschall.com>
-  To: paulle@microsoft.com, michael@neonym.net, rsalz@datapower.com
-  Subject: [PATCH] draft-mealling-uuid-urn-02.txt
-  Message-ID: <20040213150931.GA7656@engelschall.com>
-
-  During implementation of OSSP uuid (a flexible CLI and C API for
-  generation and partial decoding of version 1, 3 and 4 UUIDs, see
-  http://www.ossp.org/pkg/lib/uuid/ for details), I discovered a nasty bug
-  in the generation of random multicast MAC addresses. It is present in
-  all standards and drafts (both expired ones and current ones) and was
-  also inherited (until I fixed it by submitting patches to the authors
-  recently) by all six freely available UUID implementations (Apache APR,
-  FreeBSD uuidgen(2), Java JUG, Linux's libuuid from e2fsutil, Perl's
-  Data::UUID and WINE's UUID generator)).
-
-  In case no real/physical IEEE 802 address is available, both the
-  expired "draft-leach-uuids-guids-01" (section "4. Node IDs when no IEEE
-  802 network card is available"), RFC 2518 (section "6.4.1 Node Field
-  Generation Without the IEEE 802 Address") and now even your current
-  "draft-mealling-uuid-urn-02.txt" (section "4.5 Node IDs that do not
-  identify the host") recommend:
-
-      "A better solution is to obtain a 47-bit cryptographic quality
-      random number, and use it as the low 47 bits of the node ID, with
-      the _most_ significant bit of the first octet of the node ID set to
-      one. This bit is the unicast/multicast bit, which will never be set
-      in IEEE 802 addresses obtained from network cards; hence, there can
-      never be a conflict between UUIDs generated by machines with and
-      without network cards."
-
-  Unfortunately, this incorrectly explains how to implement this and even
-  the example implementation (draft-mealling-uuid-urn-02.txt, "Appendix
-  A. Appendix A - Sample Implementation") inherited this. Correct is
-  "the _least_ significant bit of the first octet of the node ID" as the
-  multicast bit in a memory and hexadecimal string representation of a
-  48-bit IEEE 802 MAC address.
-
-  This standards bug arised from a false interpretation, as the multicast
-  bit is actually the _most_ significant bit in IEEE 802.3 (Ethernet)
-  _transmission order_ of an IEEE 802 MAC address. But you forgot that the
-  bitwise order of an _octet_ from a MAC address _memory_ and hexadecimal
-  string representation is still always from left (MSB, bit 7) to right
-  (LSB, bit 0). And the standard deals with memory representations only,
-  so the transmission order of a MAC doesnt' matter here.
-
-  As mentioned, OSSP uuid already implements this correctly. The FreeBSD
-  uuidgen(2) and Apache APR generators I've also fixed myself recently in
-  CVS. And for the remaining implementations I've submitted patches to the
-  authors and they all (except for WINE) responded that they took over the
-  patch. So the results of this long-standing bug we were able to fix --
-  at least for the free software world ;-). What is now remaining is that
-  you finally also should fix this in your standard so the bug does not
-  spread any longer into other implementations.
-
-  Here is the minimal required patch against your draft:
-
-  --- draft-mealling-uuid-urn-02.txt.orig      Mon Feb  2 21:50:35 2004
-  +++ draft-mealling-uuid-urn-02.txt   Fri Feb 13 15:41:49 2004
-  @@ -751,7 +751,7 @@
-      [6], and the cost was US$550.
-
-      A better solution is to obtain a 47-bit cryptographic quality random
-  -   number, and use it as the low 47 bits of the node ID, with the most
-  +   number, and use it as the low 47 bits of the node ID, with the least
-      significant bit of the first octet of the node ID set to one. This
-      bit is the unicast/multicast bit, which will never be set in IEEE 802
-      addresses obtained from network cards; hence, there can never be a
-  @@ -1369,7 +1369,7 @@
-              }
-              else {
-                  get_random_info(seed);
-  -               seed[0] |= 0x80;
-  +               seed[0] |= 0x01;
-                  memcpy(&saved_node, seed, sizeof saved_node);
-                  fp = fopen("nodeid", "wb");
-                  if (fp) {
-
-  But I recommend you to perhaps also add one or two sentences which
-  explain what I explained above (the difference between memory and
-  transmission order), just to make sure people are not confused in the
-  other direction and then think there is a bug (in the then fixed and
-  correct) standard, because they know about the transmission order of MAC
-  addresses.
-
-  Yours,
-                                         Ralf S. Engelschall
-                                         rse@engelschall.com
-                                         www.engelschall.com
-
-  Date: Fri, 13 Feb 2004 11:05:51 -0500
-  From: Rich Salz <rsalz@datapower.com>
-  To: rse@engelschall.com
-  Cc: paulle@microsoft.com, michael@neonym.net
-  Message-ID: <402CF5DF.4020601@datapower.com>
-  Subject: Re: [PATCH] draft-mealling-uuid-urn-02.txt
-  References: <20040213150931.GA7656@engelschall.com>
-  Content-Length: 431
-  Lines: 11
-
-  Thanks for writing, Ralf.
-
-  You're correct, and this has been noted by the IESG and will be fixed in
-  the next draft.  It's unfortunate we made it this far with the bug.
-
-      /r$
-  --
-  Rich Salz, Chief Security Architect
-  DataPower Technology                           http://www.datapower.com
-  XS40 XML Security Gateway   http://www.datapower.com/products/xs40.html
-  XML Security Overview  http://www.datapower.com/xmldev/xmlsecurity.html
-
-  Date: Thu, 22 Jan 2004 05:34:11 -0800 (PST)
-  From: "Ralf S. Engelschall" <rse@FreeBSD.org>
-  Message-Id: <200401221334.i0MDYB1K018137@repoman.freebsd.org>
-  To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
-  Subject: cvs commit: src/sys/kern kern_uuid.c
-  X-FreeBSD-CVS-Branch: HEAD
-  X-Loop: FreeBSD.ORG
-  Content-Length: 1907
-  Lines: 42
-
-  rse         2004/01/22 05:34:11 PST
-
-    FreeBSD src repository
-
-    Modified files:
-      sys/kern             kern_uuid.c
-    Log:
-    Fix generation of random multicast MAC address.
-
-    In case no real/physical IEEE 802 address is available, both the expired
-    "draft-leach-uuids-guids-01" (section "4. Node IDs when no IEEE 802
-    network card is available") and RFC 2518 (section "6.4.1 Node Field
-    Generation Without the IEEE 802 Address") recommend (quoted from RFC
-    2518):
-
-      "The ideal solution is to obtain a 47 bit cryptographic quality random
-      number, and use it as the low 47 bits of the node ID, with the _most_
-      significant bit of the first octet of the node ID set to 1. This bit
-      is the unicast/multicast bit, which will never be set in IEEE 802
-      addresses obtained from network cards; hence, there can never be a
-      conflict between UUIDs generated by machines with and without network
-      cards."
-
-    Unfortunately, this incorrectly explains how to implement this and
-    the FreeBSD UUID generator code inherited this generation bug from
-    the broken reference code in the standards draft. They should instead
-    specify the "_least_ significant bit of the first octet of the node ID"
-    as the multicast bit in a memory and hexadecimal string representation
-    of a 48-bit IEEE 802 MAC address.
-
-    This standards bug arised from a false interpretation, as the multicast
-    bit is actually the _most_ significant bit in IEEE 802.3 (Ethernet)
-    _transmission order_ of an IEEE 802 MAC address. The standards authors
-    forgot that the bitwise order of an _octet_ from a MAC address _memory_
-    and hexadecimal string representation is still always from left (MSB,
-    bit 7) to right (LSB, bit 0).
-
-    Fortunately, this UUID generation bug could have occurred on systems
-    without any Ethernet NICs only.
-
-    Revision  Changes    Path
-    1.7       +1 -1      src/sys/kern/kern_uuid.c
-
-  Date: Thu, 22 Jan 2004 15:20:22 -0800
-  From: Marcel Moolenaar <marcel@xcllnt.net>
-  To: "Ralf S. Engelschall" <rse@FreeBSD.org>
-  Cc: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
-  Subject: Re: cvs commit: src/sys/kern kern_uuid.c
-  Message-ID: <20040122232022.GA77798@ns1.xcllnt.net>
-  References: <200401221334.i0MDYB1K018137@repoman.freebsd.org>
-  Content-Length: 380
-  Lines: 14
-
-  On Thu, Jan 22, 2004 at 05:34:11AM -0800, Ralf S. Engelschall wrote:
-  > rse         2004/01/22 05:34:11 PST
-  >
-  >   FreeBSD src repository
-  >
-  >   Modified files:
-  >     sys/kern             kern_uuid.c
-  >   Log:
-  >   Fix generation of random multicast MAC address.
-
-  An excellent catch and an outstanding commit log. Chapeau!
-
-  --
-   Marcel Moolenaar      USPA: A-39004          marcel@xcllnt.net
-
-  ___________________________________________________________________________
-
-  Index: ChangeLog
-  ===================================================================
-  RCS file: /e/ossp/cvs/ossp-pkg/uuid/ChangeLog,v
-  retrieving revision 1.42
-  diff -u -d -r1.42 ChangeLog
-  --- ChangeLog        13 Feb 2004 16:17:07 -0000      1.42
-  +++ ChangeLog        13 Feb 2004 21:01:07 -0000
-  @@ -13,6 +13,14 @@
-
-     Changes between 0.9.6 and 0.9.7 (11-Feb-2004 to 13-Feb-2004)
-
-  +   o remove --with-rfc2518 option and functionality because
-  +     even the IETF/IESG has finally approved our report about the broken
-  +     random multicast MAC address generation in the standard (and
-  +     will fix it in new versions of the draft-mealling-uuid-urn). So,
-  +     finally get rid of this broken-by-design backward compatibility
-  +     functionality.
-  +     [Ralf S. Engelschall]
-  +
-      o Add support to uuid(1) CLI for decoding from stdin for
-        both binary and string representations.
-        [Ralf S. Engelschall]
-  Index: uuid.ac
-  ===================================================================
-  RCS file: /e/ossp/cvs/ossp-pkg/uuid/uuid.ac,v
-  retrieving revision 1.10
-  diff -u -d -r1.10 uuid.ac
-  --- uuid.ac  11 Feb 2004 14:38:40 -0000      1.10
-  +++ uuid.ac  13 Feb 2004 19:20:32 -0000
-  @@ -71,12 +71,6 @@
-       AC_CHECK_SIZEOF(unsigned long long, 8)
-
-       dnl #   options
-  -    AC_ARG_WITH(rfc2518,
-  -        AC_HELP_STRING([--with-rfc2518], [use incorrect generation of IEEE 802 multicast addresses according to RFC2518]),
-  -        [ac_cv_with_rfc2518=$withval], [ac_cv_with_rfc2518=no])
-  -    if test ".$ac_cv_with_rfc2518" = ".yes"; then
-  -        AC_DEFINE(WITH_RFC2518, 1, [whether to use incorrect generation of IEEE 802 multicast addresses according to RFC2518])
-  -    fi
-       AC_ARG_WITH(dce,
-           AC_HELP_STRING([--with-dce], [build DCE 1.1 backward compatibility API]),
-           [ac_cv_with_dce=$withval], [ac_cv_with_dce=no])
-  Index: uuid.c
-  ===================================================================
-  RCS file: /e/ossp/cvs/ossp-pkg/uuid/uuid.c,v
-  retrieving revision 1.44
-  diff -u -d -r1.44 uuid.c
-  --- uuid.c   19 Jan 2004 14:56:35 -0000      1.44
-  +++ uuid.c   13 Feb 2004 19:22:01 -0000
-  @@ -61,69 +61,9 @@
-       Unix UTC base time is January  1, 1970) */
-   #define UUID_TIMEOFFSET "01B21DD213814000"
-
-  -/* IEEE 802 MAC address encoding/decoding bit fields
-  -
-  -   ATTENTION:
-  -
-  -   In case no real/physical IEEE 802 address is available, both
-  -   "draft-leach-uuids-guids-01" (section "4. Node IDs when no IEEE 802
-  -   network card is available") and RFC 2518 (section "6.4.1 Node Field
-  -   Generation Without the IEEE 802 Address") recommend (quoted from RFC
-  -   2518):
-  -
-  -     "The ideal solution is to obtain a 47 bit cryptographic quality
-  -     random number, and use it as the low 47 bits of the node ID, with
-  -     the most significant bit of the first octet of the node ID set to
-  -     1. This bit is the unicast/multicast bit, which will never be set
-  -     in IEEE 802 addresses obtained from network cards; hence, there can
-  -     never be a conflict between UUIDs generated by machines with and
-  -     without network cards."
-  -
-  -   This passage clearly explains the intention to use IEEE 802 multicast
-  -   addresses. Unfortunately, it incorrectly explains how to implement
-  -   this! It should instead specify the "*LEAST* significant bit of the
-  -   first octet of the node ID" as the multicast bit in a memory and
-  -   hexadecimal string representation of a 48-bit IEEE 802 MAC address.
-  -
-  -   Unfortunately, even the reference implementation included in the
-  -   expired IETF "draft-leach-uuids-guids-01" incorrectly set the
-  -   multicast bit with an OR bit operation and an incorrect mask of
-  -   0x80. Hence, several other UUID implementations found on the
-  -   Internet have inherited this bug.
-  -
-  -   Luckily, neither DCE 1.1 nor ISO/IEC 11578:1996 are affected by this
-  -   problem. They disregard the topic of missing IEEE 802 addresses
-  -   entirely, and thus avoid adopting this bug from the original draft
-  -   and code ;-)
-  -
-  -   It seems that this standards bug arises from a false interpretation,
-  -   as the multicast bit is actually the *MOST* significant bit in IEEE
-  -   802.3 (Ethernet) _transmission order_ of an IEEE 802 MAC address. The
-  -   authors were likely not aware that the bitwise order of an octet from
-  -   a MAC address memory and hexadecimal string representation is still
-  -   always from left (MSB, bit 7) to right (LSB, bit 0).
-  -
-  -   For more information, see "Understanding Physical Addresses" in
-  -   "Ethernet -- The Definitive Guide", p.43, and the section "ETHERNET
-  -   MULTICAST ADDRESSES" in http://www.iana.org/assignments/ethernet-numbers.
-  -
-  -   At OSSP, we do it the intended/correct way and generate a real
-  -   IEEE 802 multicast address. Those wanting to encode broken IEEE
-  -   802 MAC addresses (as specified) can nevertheless use a brain dead
-  -   compile-time option to switch off the correct behavior. When decoding
-  -   we always use the correct behavior of course. */
-  -
-  -/* encoding */
-  -#ifdef WITH_RFC2518
-  -#define IEEE_MAC_MCBIT_ENC BM_OCTET(1,0,0,0,0,0,0,0)
-  -#else
-  -#define IEEE_MAC_MCBIT_ENC BM_OCTET(0,0,0,0,0,0,0,1)
-  -#endif
-  -#define IEEE_MAC_LOBIT_ENC BM_OCTET(0,0,0,0,0,0,1,0)
-  -
-  -/* decoding */
-  -#define IEEE_MAC_MCBIT_DEC BM_OCTET(0,0,0,0,0,0,0,1)
-  -#define IEEE_MAC_LOBIT_DEC BM_OCTET(0,0,0,0,0,0,1,0)
-  +/* IEEE 802 MAC address encoding/decoding bit fields */
-  +#define IEEE_MAC_MCBIT BM_OCTET(0,0,0,0,0,0,0,1)
-  +#define IEEE_MAC_LOBIT BM_OCTET(0,0,0,0,0,0,1,0)
-
-   /* IEEE 802 MAC address octet length */
-   #define IEEE_MAC_OCTETS 6
-  @@ -622,8 +562,8 @@
-               (unsigned int)uuid->obj.node[3],
-               (unsigned int)uuid->obj.node[4],
-               (unsigned int)uuid->obj.node[5],
-  -            (uuid->obj.node[0] & IEEE_MAC_LOBIT_DEC ? "local" : "global"),
-  -            (uuid->obj.node[0] & IEEE_MAC_MCBIT_DEC ? "multicast" : "unicast"));
-  +            (uuid->obj.node[0] & IEEE_MAC_LOBIT ? "local" : "global"),
-  +            (uuid->obj.node[0] & IEEE_MAC_MCBIT ? "multicast" : "unicast"));
-       }
-       else {
-           /* decode anything else as hexadecimal byte-string only */
-  @@ -843,8 +783,8 @@
-       if ((mode & UUID_MAKE_MC) || (uuid->mac[0] & BM_OCTET(1,0,0,0,0,0,0,0))) {
-           /* generate random IEEE 802 local multicast MAC address */
-           prng_data(uuid->prng, (void *)&(uuid->obj.node), sizeof(uuid->obj.node));
-  -        uuid->obj.node[0] |= IEEE_MAC_MCBIT_ENC;
-  -        uuid->obj.node[0] |= IEEE_MAC_LOBIT_ENC;
-  +        uuid->obj.node[0] |= IEEE_MAC_MCBIT;
-  +        uuid->obj.node[0] |= IEEE_MAC_LOBIT;
-       }
-       else {
-           /* use real regular MAC address */
diff --git a/libs/uuid/INSTALL b/libs/uuid/INSTALL
deleted file mode 100644 (file)
index 938a4da..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-   _        ___  ____ ____  ____                _     _
-  |_|_ _   / _ \/ ___/ ___||  _ \   _   _ _   _(_) __| |
-  _|_||_| | | | \___ \___ \| |_) | | | | | | | | |/ _` |
- |_||_|_| | |_| |___) |__) |  __/  | |_| | |_| | | (_| |
-  |_|_|_|  \___/|____/____/|_|      \__,_|\__,_|_|\__,_|
-
-  OSSP uuid - Universally Unique Identifier
-
-  INSTALLATION
-
-  To install OSSP uuid into /path/to/uuid/ perform
-  the following steps in your shell:
-
-    $ ./configure
-         --prefix=/path/to/uuid
-        [--with-dce]
-        [--with-perl[=/path/to/[bin[/perl]
-         --with-perl-compat]]
-        [--with-php]
-    $ make
-    $ make check
-    $ make install [DESTDIR=/path/to/temp/root]
-
diff --git a/libs/uuid/MANIFEST b/libs/uuid/MANIFEST
deleted file mode 100644 (file)
index faed397..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-AUTHORS
-BINDINGS
-ChangeLog
-HISTORY
-INSTALL
-MANIFEST
-Makefile.PL
-Makefile.in
-NEWS
-OVERVIEW
-PORTING
-README
-SEEALSO
-THANKS
-TODO
-USERS
-aclocal.m4
-config.guess
-config.h.in
-config.sub
-configure
-configure.ac
-libtool.m4
-ltmain.sh
-perl/MANIFEST
-perl/Makefile.PL
-perl/uuid.pm
-perl/uuid.pod
-perl/uuid.tm
-perl/uuid.ts
-perl/uuid.xs
-perl/uuid_compat.pm
-perl/uuid_compat.pod
-perl/uuid_compat.ts
-pgsql/Makefile
-pgsql/uuid.c
-pgsql/uuid.sql.in
-pgsql/uuid.txt
-php/Makefile.local
-php/config.m4
-php/package.xml
-php/uuid.c
-php/uuid.php4
-php/uuid.php5
-php/uuid.ts
-shtool
-uuid++.3
-uuid++.cc
-uuid++.hh
-uuid++.pod
-uuid-config.1
-uuid-config.in
-uuid-config.pod
-uuid.1
-uuid.3
-uuid.ac
-uuid.c
-uuid.h.in
-uuid.pc.in
-uuid.pod
-uuid_ac.h
-uuid_bm.h
-uuid_cli.c
-uuid_cli.pod
-uuid_dce.c
-uuid_dce.h
-uuid_mac.c
-uuid_mac.h
-uuid_md5.c
-uuid_md5.h
-uuid_prng.c
-uuid_prng.h
-uuid_sha1.c
-uuid_sha1.h
-uuid_str.c
-uuid_str.h
-uuid_time.c
-uuid_time.h
-uuid_ui128.c
-uuid_ui128.h
-uuid_ui64.c
-uuid_ui64.h
-uuid_vers.h
diff --git a/libs/uuid/Makefile.PL b/libs/uuid/Makefile.PL
deleted file mode 100644 (file)
index a6d9cc8..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  Makefile.PL: top-level Perl ExtUtils::MakeMaker wrapper script
-##
-
-require 5.008;
-use IO::File;
-
-my $ARGS = join(" ", @ARGV);
-
-print "++ writing Makefile\n";
-
-my $mk = new IO::File ">Makefile" or die;
-$mk->print(<< "EOF");
-
-PERL     = $^X
-FULLPERL = $^X
-ARGS     = $ARGS
-
-all pure_all:
-       \@if [ ! -d build ]; then mkdir build; fi
-       \@if [ ! -f build/Makefile ]; then (cd build && ../configure --disable-shared); fi
-       \@if [ ! -f build/libuuid.la ]; then (cd build && \$(MAKE) \$(MFLAGS) libuuid.la); fi
-       \@if [ ! -f perl/Makefile ]; then (cd perl && \$(PERL) Makefile.PL \$(ARGS)); fi
-       \@cd perl && \$(MAKE) \$(MFLAGS) \$\@
-
-install pure_install test:
-       \@cd perl && \$(MAKE) \$(MFLAGS) \$\@
-
-clean:
-       \@cd build && \$(MAKE) \$(MFLAGS) \$\@
-       \@cd perl && \$(MAKE) \$(MFLAGS) \$\@
-
-distclean realclean:
-       \@cd build && \$(MAKE) \$(MFLAGS) \$\@
-       \@cd perl && \$(MAKE) \$(MFLAGS) \$\@
-       -rm -rf build || true
-       -rm -rf Makefile || true
-
-EOF
-
-$mk->close();
-
diff --git a/libs/uuid/Makefile.in b/libs/uuid/Makefile.in
deleted file mode 100644 (file)
index d28f4be..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  Makefile.in: make(1) build procedure
-##
-
-@SET_MAKE@
-
-VPATH       = @srcdir@
-srcdir      = @srcdir@
-top_srcdir  = @top_srcdir@
-S           = $(srcdir)
-C           = .
-
-DESTDIR     =
-prefix      = @prefix@
-exec_prefix = @exec_prefix@
-datarootdir = @datarootdir@
-bindir      = @bindir@
-libdir      = @libdir@
-includedir  = @includedir@
-mandir      = @mandir@
-
-CC          = @CC@
-CXX         = @CXX@
-CPPFLAGS    = -I. -I$(S) @CPPFLAGS@ @DEFS@
-CFLAGS      = @CFLAGS@
-CXXFLAGS    = @CXXFLAGS@
-LDFLAGS     = @LDFLAGS@
-LIBS        = @LIBS@
-RM          = rm -f
-CP          = cp
-RMDIR       = rmdir
-SHTOOL      = $(S)/shtool
-LIBTOOL     = $(C)/libtool
-TRUE        = true
-POD2MAN     = pod2man
-PERL        = @PERL@
-PHP         = @PHP@
-PG_CONFIG   = @PG_CONFIG@
-
-LIB_NAME    = libuuid.la
-LIB_OBJS    = uuid.lo uuid_md5.lo uuid_sha1.lo uuid_prng.lo uuid_mac.lo uuid_time.lo uuid_ui64.lo uuid_ui128.lo uuid_str.lo
-
-DCE_NAME    = libuuid_dce.la
-DCE_OBJS    = uuid_dce.lo $(LIB_OBJS)
-
-CXX_NAME    = libuuid++.la
-CXX_OBJS    = uuid++.lo $(LIB_OBJS)
-
-PRG_NAME    = uuid
-PRG_OBJS    = uuid_cli.o
-
-MAN_NAME    = uuid.3 uuid++.3 uuid.1
-
-PERL_NAME   = $(S)/perl/blib/lib/OSSP/uuid.pm
-PERL_OBJS   = $(S)/perl/uuid.pm
-
-PHP_NAME    = $(S)/php/modules/uuid.so
-PHP_OBJS    = $(S)/php/uuid.c
-
-PGSQL_NAME  = $(S)/pgsql/libuuid.so
-PGSQL_OBJS  = $(S)/pgsql/uuid.c
-
-TARGETS     = $(LIB_NAME) @DCE_NAME@ @CXX_NAME@ $(PRG_NAME) @PERL_NAME@ @PHP_NAME@ @PGSQL_NAME@
-
-WITH_DCE         = @WITH_DCE@
-WITH_CXX         = @WITH_CXX@
-WITH_PERL        = @WITH_PERL@
-WITH_PERL_COMPAT = @WITH_PERL_COMPAT@
-WITH_PHP         = @WITH_PHP@
-WITH_PGSQL       = @WITH_PGSQL@
-
-.SUFFIXES:
-.SUFFIXES: .c .cc .o .lo
-
-all: $(TARGETS)
-
-.c.o:
-       $(CC) $(CPPFLAGS) $(CFLAGS) -c $<
-
-.cc.o:
-       $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $<
-
-.c.lo:
-       @$(LIBTOOL) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) -c $<
-
-.cc.lo:
-       @$(LIBTOOL) --mode=compile $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $<
-
-$(LIB_NAME): $(LIB_OBJS)
-       @$(LIBTOOL) --mode=link $(CC) -o $(LIB_NAME) $(LIB_OBJS) -rpath $(libdir) \
-           -version-info `$(SHTOOL) version -l c -d libtool $(S)/uuid_vers.h`
-
-$(DCE_NAME): $(DCE_OBJS)
-       @$(LIBTOOL) --mode=link $(CC) -o $(DCE_NAME) $(DCE_OBJS) -rpath $(libdir) \
-           -version-info `$(SHTOOL) version -l c -d libtool $(S)/uuid_vers.h`
-
-$(CXX_NAME): $(CXX_OBJS)
-       @$(LIBTOOL) --mode=link $(CXX) -o $(CXX_NAME) $(CXX_OBJS) -rpath $(libdir) \
-           -version-info `$(SHTOOL) version -l c -d libtool $(S)/uuid_vers.h`
-
-$(PRG_NAME): $(PRG_OBJS) $(LIB_NAME)
-       @$(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $(PRG_NAME) $(PRG_OBJS) $(LIB_NAME) $(LIBS)
-
-$(PERL_NAME): $(PERL_OBJS) $(LIB_NAME)
-       @cd $(S)/perl && $(PERL) Makefile.PL PREFIX=$(prefix) COMPAT=$(WITH_PERL_COMPAT) && $(MAKE) $(MFLAGS) all
-       @touch $(PERL_NAME)
-
-$(PHP_NAME): $(PHP_OBJS) $(LIB_NAME)
-       @cd $(S)/php && $(MAKE) $(MFLAGS) -f Makefile.local PHP=$(PHP)
-       @touch $(PHP_NAME)
-
-$(PGSQL_NAME): $(PGSQL_OBJS) $(LIB_NAME)
-       @cd $(S)/pgsql && $(MAKE) $(MFLAGS) PG_CONFIG=$(PG_CONFIG)
-       @touch $(PGSQL_NAME)
-
-uuid.lo: $(S)/uuid.c uuid.h $(S)/uuid_md5.h $(S)/uuid_sha1.h $(S)/uuid_prng.h $(S)/uuid_mac.h $(S)/uuid_ui64.h $(S)/uuid_ui128.h $(S)/uuid_str.h $(S)/uuid_bm.h $(S)/uuid_ac.h
-uuid_mac.lo: $(S)/uuid_mac.c $(S)/uuid_mac.h
-uuid_md5.lo: $(S)/uuid_md5.c $(S)/uuid_md5.h
-uuid_sha1.lo: $(S)/uuid_sha1.c $(S)/uuid_sha1.h
-uuid_prng.lo: $(S)/uuid_prng.c $(S)/uuid_prng.h
-uuid_str.lo: $(S)/uuid_str.c $(S)/uuid_str.h
-uuid_ui64.lo: $(S)/uuid_ui64.c $(S)/uuid_ui64.h
-uuid_ui128.lo: $(S)/uuid_ui64.c $(S)/uuid_ui128.h
-uuid_dce.lo: $(S)/uuid_dce.c uuid.h $(S)/uuid_dce.h
-uuid_cli.o: $(S)/uuid_cli.c uuid.h
-uuid++.lo: $(S)/uuid++.cc $(S)/uuid++.hh
-
-man: uuid.3 uuid++.3 uuid-config.1 uuid.1
-uuid.3: uuid.pod
-       V1=`$(SHTOOL) version -l c -d short $(S)/uuid_vers.h`; \
-       V2=`$(SHTOOL) version -l c -d long $(S)/uuid_vers.h`; \
-       D=`$(SHTOOL) version -l c -d long $(S)/uuid_vers.h | sed -e 's;.*(;;' -e 's;).*;;'`; \
-       $(POD2MAN) --quotes=none \
-                  --section=3 --center="Universally Unique Identifier" \
-                  --release="$$D" --date="OSSP uuid $$V1" $(S)/uuid.pod | \
-       sed -e "s;UUID_VERSION_STR;$$V2;" >uuid.3
-uuid++.3: uuid++.pod
-       V1=`$(SHTOOL) version -l c -d short $(S)/uuid_vers.h`; \
-       V2=`$(SHTOOL) version -l c -d long $(S)/uuid_vers.h`; \
-       D=`$(SHTOOL) version -l c -d long $(S)/uuid_vers.h | sed -e 's;.*(;;' -e 's;).*;;'`; \
-       $(POD2MAN) --quotes=none \
-                  --section=3 --center="Universally Unique Identifier" \
-                  --release="$$D" --date="OSSP uuid $$V1" $(S)/uuid++.pod | \
-       sed -e "s;UUID_VERSION_STR;$$V2;" >uuid++.3
-uuid-config.1: uuid-config.pod
-       V1=`$(SHTOOL) version -l c -d short $(S)/uuid_vers.h`; \
-       V2=`$(SHTOOL) version -l c -d long $(S)/uuid_vers.h`; \
-       D=`$(SHTOOL) version -l c -d long $(S)/uuid_vers.h | sed -e 's;.*(;;' -e 's;).*;;'`; \
-       $(POD2MAN) --quotes=none \
-                  --section=1 --center="Universally Unique Identifier" \
-                  --release="$$D" --date="OSSP uuid $$V1" $(S)/uuid-config.pod | \
-       sed -e "s;UUID_VERSION_STR;$$V2;" >uuid-config.1
-uuid.1: uuid_cli.pod
-       V1=`$(SHTOOL) version -l c -d short $(S)/uuid_vers.h`; \
-       V2=`$(SHTOOL) version -l c -d long $(S)/uuid_vers.h`; \
-       D=`$(SHTOOL) version -l c -d long $(S)/uuid_vers.h | sed -e 's;.*(;;' -e 's;).*;;'`; \
-       $(CP) $(S)/uuid_cli.pod /tmp/uuid.pod; \
-       $(POD2MAN) --quotes=none \
-                  --section=1 --center="Universally Unique Identifier" \
-                  --release="$$D" --date="OSSP uuid $$V1" /tmp/uuid.pod | \
-       sed -e "s;UUID_VERSION_STR;$$V2;" >uuid.1; \
-       $(RM) /tmp/uuid.pod
-
-check: all
-       @echo "==== UUID version 1 (time and node based): 4 single iterations"; \
-       $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v1 -n 4 -1
-       @echo "==== UUID version 1 (time and node based): 4 subsequent iterations"; \
-       $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v1 -n 4
-       @echo "==== UUID version 3 (name based, MD5): 2 times repeated"; \
-       $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v3 -n 2 ns:URL http://www.ossp.org/
-       @echo "==== UUID version 5 (name based, SHA-1): 2 times repeated"; \
-       $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v5 -n 2 ns:URL http://www.ossp.org/
-       @echo "==== UUID version 4 (random data based): 4 single iterations"; \
-       $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v4 -n 4 -1
-       @echo "==== UUID version 4 (random data based): 4 subsequent iterations"; \
-       $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v4 -n 4
-       @echo "==== UUID version 1 generation and decoding"; \
-       $(LIBTOOL) --mode=execute ./$(PRG_NAME) -d `$(LIBTOOL) --mode=execute ./$(PRG_NAME) -v1`; \
-       $(LIBTOOL) --mode=execute ./$(PRG_NAME) -d `$(LIBTOOL) --mode=execute ./$(PRG_NAME) -v1 -m`
-       @echo "==== UUID version 3 generation and decoding"; \
-       $(LIBTOOL) --mode=execute ./$(PRG_NAME) -d `$(LIBTOOL) --mode=execute ./$(PRG_NAME) -v3 ns:URL http://www.ossp.org/`
-       @echo "==== UUID version 5 generation and decoding"; \
-       $(LIBTOOL) --mode=execute ./$(PRG_NAME) -d `$(LIBTOOL) --mode=execute ./$(PRG_NAME) -v5 ns:URL http://www.ossp.org/`
-       @echo "==== UUID version 3 generation and decoding"; \
-       $(LIBTOOL) --mode=execute ./$(PRG_NAME) -d `$(LIBTOOL) --mode=execute ./$(PRG_NAME) -v4`
-       -@if [ ".$(WITH_PERL)" = .yes ]; then \
-           echo "==== Perl bindings to C API"; \
-           (cd $(S)/perl && $(MAKE) $(MFLAGS) test); \
-       fi
-       -@if [ ".$(WITH_PHP)" = .yes ]; then \
-           echo "==== PHP bindings to C API"; \
-           (cd $(S)/php && $(MAKE) $(MFLAGS) -f Makefile.local test PHP=$(PHP)); \
-       fi
-       -@if [ ".$(WITH_PGSQL)" = .yes ]; then \
-           echo "==== PGSQL bindings to C API"; \
-           (cd $(S)/pgsql && $(MAKE) $(MFLAGS) test PG_CONFIG=$(PG_CONFIG)); \
-       fi
-
-.PHONY: install
-install:
-       $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(prefix)
-       $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(bindir)
-       $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(includedir)
-       $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(libdir)/pkgconfig
-       $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(mandir)/man3
-       $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(mandir)/man1
-       $(SHTOOL) install -c -m 755 uuid-config $(DESTDIR)$(bindir)/
-       $(SHTOOL) install -c -m 644 $(S)/uuid-config.1 $(DESTDIR)$(mandir)/man1/
-       $(SHTOOL) install -c -m 644 $(S)/uuid.pc $(DESTDIR)$(libdir)/pkgconfig/
-       $(SHTOOL) install -c -m 644 uuid.h $(DESTDIR)$(includedir)/
-       -@if [ ".$(WITH_DCE)" = .yes ]; then \
-           echo "$(SHTOOL) install -c -m 644 $(S)/uuid_dce.h $(DESTDIR)$(includedir)/"; \
-           $(SHTOOL) install -c -m 644 $(S)/uuid_dce.h $(DESTDIR)$(includedir)/; \
-       fi
-       -@if [ ".$(WITH_CXX)" = .yes ]; then \
-           echo "$(SHTOOL) install -c -m 644 $(S)/uuid++.hh $(DESTDIR)$(includedir)/"; \
-           $(SHTOOL) install -c -m 644 $(S)/uuid++.hh $(DESTDIR)$(includedir)/; \
-       fi
-       $(SHTOOL) install -c -m 644 $(S)/uuid.3 $(DESTDIR)$(mandir)/man3/
-       -@if [ ".$(WITH_CXX)" = .yes ]; then \
-           echo "$(SHTOOL) install -c -m 644 $(S)/uuid++.3 $(DESTDIR)$(mandir)/man3/"; \
-           $(SHTOOL) install -c -m 644 $(S)/uuid++.3 $(DESTDIR)$(mandir)/man3/; \
-       fi
-       @$(LIBTOOL) --mode=install $(SHTOOL) install -c -m 644 $(LIB_NAME) $(DESTDIR)$(libdir)/
-       -@if [ ".$(WITH_DCE)" = .yes ]; then \
-           $(LIBTOOL) --mode=install $(SHTOOL) install -c -m 644 $(DCE_NAME) $(DESTDIR)$(libdir)/; \
-       fi
-       -@if [ ".$(WITH_CXX)" = .yes ]; then \
-           $(LIBTOOL) --mode=install $(SHTOOL) install -c -m 644 $(CXX_NAME) $(DESTDIR)$(libdir)/; \
-       fi
-       @$(LIBTOOL) --mode=install $(SHTOOL) install -c -s -m 755 uuid $(DESTDIR)$(bindir)/
-       $(SHTOOL) install -c -m 644 $(S)/uuid.1 $(DESTDIR)$(mandir)/man1/
-       -@if [ ".$(WITH_PERL)" = .yes ]; then \
-           (cd $(S)/perl && $(MAKE) $(MFLAGS) install DESTDIR=$(DESTDIR)); \
-       fi
-       -@if [ ".$(WITH_PHP)" = .yes ]; then \
-           (cd $(S)/php && $(MAKE) $(MFLAGS) -f Makefile.local install EXTDIR=$(prefix)/lib/php PHP=$(PHP) DESTDIR=$(DESTDIR)); \
-       fi
-       -@if [ ".$(WITH_PGSQL)" = .yes ]; then \
-           (cd $(S)/pgsql && $(MAKE) $(MFLAGS) install DESTDIR=$(DESTDIR) PG_CONFIG=$(PG_CONFIG)); \
-       fi
-
-.PHONY: uninstall
-uninstall:
-       -$(RM) $(DESTDIR)$(mandir)/man1/uuid.1
-       -@$(LIBTOOL) --mode=uninstall $(RM) $(DESTDIR)$(bindir)/uuid
-       -@$(LIBTOOL) --mode=uninstall $(RM) $(DESTDIR)$(libdir)/$(LIB_NAME)
-       -@if [ ".$(WITH_DCE)" = .yes ]; then \
-           $(LIBTOOL) --mode=uninstall $(RM) $(DESTDIR)$(libdir)/$(DCE_NAME); \
-       fi
-       -@if [ ".$(WITH_CXX)" = .yes ]; then \
-           $(LIBTOOL) --mode=uninstall $(RM) $(DESTDIR)$(libdir)/$(CXX_NAME); \
-       fi
-       -$(RM) $(DESTDIR)$(mandir)/man3/uuid.3
-       -@if [ ".$(WITH_CXX)" = .yes ]; then \
-           echo "$(RM) $(DESTDIR)$(mandir)/man3/uuid++.3"; \
-           $(RM) $(DESTDIR)$(mandir)/man3/uuid++.3; \
-       fi
-       -$(RM) $(DESTDIR)$(includedir)/uuid.h
-       -@if [ ".$(WITH_DCE)" = .yes ]; then \
-           echo "$(RM) $(DESTDIR)$(includedir)/uuid_dce.h"; \
-           $(RM) $(DESTDIR)$(includedir)/uuid_dce.h; \
-       fi
-       -@if [ ".$(WITH_CXX)" = .yes ]; then \
-           echo "$(RM) $(DESTDIR)$(includedir)/uuid++.hh"; \
-           $(RM) $(DESTDIR)$(includedir)/uuid++.hh; \
-       fi
-       -$(RM) $(DESTDIR)$(libdir)/pkgconfig/uuid.pc
-       -$(RM) $(DESTDIR)$(mandir)/man1/uuid-config.1
-       -$(RM) $(DESTDIR)$(bindir)/uuid-config
-       -$(RMDIR) $(DESTDIR)$(mandir)/man1 >/dev/null 2>&1 || $(TRUE)
-       -$(RMDIR) $(DESTDIR)$(mandir)/man3 >/dev/null 2>&1 || $(TRUE)
-       -$(RMDIR) $(DESTDIR)$(mandir) >/dev/null 2>&1 || $(TRUE)
-       -$(RMDIR) $(DESTDIR)$(libdir)/pkgconfig >/dev/null 2>&1 || $(TRUE)
-       -$(RMDIR) $(DESTDIR)$(libdir) >/dev/null 2>&1 || $(TRUE)
-       -$(RMDIR) $(DESTDIR)$(includedir) >/dev/null 2>&1 || $(TRUE)
-       -$(RMDIR) $(DESTDIR)$(bindir) >/dev/null 2>&1 || $(TRUE)
-       -$(RMDIR) $(DESTDIR)$(prefix) >/dev/null 2>&1 || $(TRUE)
-
-.PHONY: clean
-clean:
-       -$(RM) $(LIB_NAME) $(LIB_OBJS)
-       -@if [ ".$(WITH_DCE)" = .yes ]; then \
-           echo "$(RM) $(DCE_NAME) $(DCE_OBJS)"; \
-           $(RM) $(DCE_NAME) $(DCE_OBJS); \
-       fi
-       -@if [ ".$(WITH_CXX)" = .yes ]; then \
-           echo "$(RM) $(CXX_NAME) $(CXX_OBJS)"; \
-           $(RM) $(CXX_NAME) $(CXX_OBJS); \
-       fi
-       -$(RM) $(PRG_NAME) $(PRG_OBJS)
-       -$(RM) -r .libs >/dev/null 2>&1 || $(TRUE)
-       -$(RM) *.o *.lo
-       -@if [ ".$(WITH_PERL)" = .yes ]; then \
-           (cd $(S)/perl && $(MAKE) $(MFLAGS) clean || true); \
-       fi
-       -@if [ ".$(WITH_PHP)" = .yes ]; then \
-           (cd $(S)/php && $(MAKE) $(MFLAGS) -f Makefile.local clean || true); \
-       fi
-       -@if [ ".$(WITH_PGSQL)" = .yes ]; then \
-           (cd $(S)/pgsql && $(MAKE) $(MFLAGS) clean PG_CONFIG=$(PG_CONFIG) || true); \
-       fi
-
-distclean: clean
-       -$(RM) config.log config.status config.cache
-       -$(RM) Makefile config.h uuid-config uuid.h uuid.pc
-       -$(RM) libtool
-       -@if [ ".$(WITH_PERL)" = .yes ]; then \
-           (cd $(S)/perl && $(MAKE) $(MFLAGS) distclean || true; rm -f Makefile.old); \
-       fi
-       -@if [ ".$(WITH_PHP)" = .yes ]; then \
-           (cd $(S)/php && $(MAKE) $(MFLAGS) -f Makefile.local distclean || true); \
-       fi
-       -@if [ ".$(WITH_PGSQL)" = .yes ]; then \
-           (cd $(S)/pgsql && $(MAKE) $(MFLAGS) distclean PG_CONFIG=$(PG_CONFIG) || true); \
-       fi
-
-realclean: distclean
-       -$(RM) uuid.3 uuid.1
-       -$(RM) configure config.h.in
-       -$(RM) shtool
-       -$(RM) ltmain.sh libtool.m4 config.guess config.sub
-       -@if [ ".$(WITH_PERL)" = .yes ]; then \
-           (cd $(S)/perl && $(MAKE) $(MFLAGS) realclean || true; rm -f Makefile.old); \
-       fi
-       -@if [ ".$(WITH_PHP)" = .yes ]; then \
-           (cd $(S)/php && $(MAKE) $(MFLAGS) -f Makefile.local realclean || true); \
-       fi
-       -@if [ ".$(WITH_PGSQL)" = .yes ]; then \
-           (cd $(S)/pgsql && $(MAKE) $(MFLAGS) realclean PG_CONFIG=$(PG_CONFIG) || true); \
-       fi
-
diff --git a/libs/uuid/NEWS b/libs/uuid/NEWS
deleted file mode 100644 (file)
index 015a42c..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-   _        ___  ____ ____  ____                _     _
-  |_|_ _   / _ \/ ___/ ___||  _ \   _   _ _   _(_) __| |
-  _|_||_| | | | \___ \___ \| |_) | | | | | | | | |/ _` |
- |_||_|_| | |_| |___) |__) |  __/  | |_| | |_| | | (_| |
-  |_|_|_|  \___/|____/____/|_|      \__,_|\__,_|_|\__,_|
-
-  OSSP uuid - Universally Unique Identifier
-
-  NEWS
-
-  This is a list of major changes to OSSP uuid. For more detailed
-  change descriptions, please have a look at the ChangeLog file.
-
-  Major changes between 1.4 and 1.5
-
-    o Many internal code cleanups and fixes.
-    o Improved and fixed PostgreSQL API.
-    o Improved and fixed PHP API.
-
-  Major changes between 1.3 and 1.4
-
-    o Added PostgreSQL API.
-
-  Major changes between 1.2 and 1.3
-
-    o Added Perl TIE-style API.
-    o Added Perl Data::UUID backward compatibility API.
-    o Added C++ API.
-    o Added PHP API.
-
-  Major changes between 1.1 and 1.2
-
-    o Added support for version 5 UUIDs (name-based, SHA-1)
-
-  Major changes between 1.0 and 1.1
-
-    o Added Perl API
-
-  Major changes between 0.9 and 1.0
-
-    o Initial functionality
-
diff --git a/libs/uuid/OVERVIEW b/libs/uuid/OVERVIEW
deleted file mode 100644 (file)
index 2fb518f..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-
-   _        ___  ____ ____  ____                _     _
-  |_|_ _   / _ \/ ___/ ___||  _ \   _   _ _   _(_) __| |
-  _|_||_| | | | \___ \___ \| |_) | | | | | | | | |/ _` |
- |_||_|_| | |_| |___) |__) |  __/  | |_| | |_| | | (_| |
-  |_|_|_|  \___/|____/____/|_|      \__,_|\__,_|_|\__,_|
-
-  OSSP uuid - Universally Unique Identifier
-
-  OVERVIEW
-
-  A UUID consists of 128 bits (16-octets) which are split into 6
-  octet-bounded unsigned integer fields ("time_low", "time_mid",
-  "time_hi_and_version", "clk_seq_hi_res", "clk_seq_low" and "node") and
-  where two fields are multiplexed with a fixed size 4-bit "version" and
-  a variable sized 2-3 bit "variant" field.
-
-  The UUID octets are counted from left to right 15 to 0 and the bits
-  in each octet are counted from left to right 7 to 0 (most significant
-  bit first, least significant bit last). The unsigned integer fields
-  formed out of multiple octets are stored in "network byte order" (most
-  significant octet first, least significant octet last). A UUID is
-  stored and transmitted from left to right, i.e., in "network byte
-  order" with the most significant octet first and the least significant
-  octet last.
-
-  Illustration 1:
-  (single octet array, less compact, more annotations)
-
-
-  Bits:                                                   [4]           [2-3]
-  Field:                                                version        variant
-        MSO                                           -->|  |<--      -->| |<--                                                        LSO
-           \                                             |  |            | |                                                          /
-  Octet:    15      14      13      12      11      10   |  |9       8   | | 7       6       5       4       3       2       1       0
-         +------++------++------++------++------++------++------++------++------++------++------++------++------++------++------++------+
-  UUID:  |      ||      ||      ||      ||      ||      |####   ||      |##:    ||      ||      ||      ||      ||      ||      ||      |
-         +------++------++------++------++------++------++------++------++------++------++------++------++------++------++------++------+
-  Bit:   76543210765432107654321076543210765432107654321076543210765432107654321076543210765432107654321076543210765432107654321076543210
-        /|                              ||              ||              ||      ||      ||                                              |\
-     MSB |                              ||              ||              ||      ||      ||                                              | LSB
-         |<---------------------------->||<------------>||<------------>||<---->||<---->||<-------------------------------------------->|
-                                                           time_hi        clk_seq clk_seq
-  Field:           time_low                  time_mid      _and_version   _hi_res _low                         node
-  Bits:              [32]                      [16]           [16]        [5-6]     [8]                        [48]
-
-
-  Illustration 2:
-  (two octet arrays, more compact, less annotations)
-
-                                                        [4]
-                                                      version
-                                                    -->|  |<--
-                                                       |  |
-                                                       |  |  [16]
-                   [32]                      [16]      |  |time_hi
-                 time_low                  time_mid    | _and_version
-       |<---------------------------->||<------------>||<------------>|
-       |    MSO                       ||              ||  |           |
-       |   /                          ||              ||  |           |
-       |  15      14      13      12  ||  11      10  ||  |9       8  |
-       7654321076543210765432107654321076543210765432107654321076543210
-      /+------++------++------++------++------++------++------++------+~
-   MSB |      ||      ||      ||      ||      ||      |####   ||      |  ...
-       +------++------++------++------++------++------++------++------+~
-      ~+------++------++------++------++------++------++------++------+
-  ...  ##:    ||      ||      ||      ||      ||      ||      ||      | LSB
-      ~+------++------++------++------++------++------++------++------+/
-       7654321076543210765432107654321076543210765432107654321076543210
-       | | 7  ||   6  ||   5       4       3       2       1       0  |
-       | |    ||      ||                                          /   |
-       | |    ||      ||                                        LSO   |
-       |<---->||<---->||<-------------------------------------------->|
-       |clk_seq clk_seq                      node
-       |_hi_res _low                         [48]
-       |[5-6]    [8]
-       | |
-    -->| |<--
-     variant
-      [2-3]
-
diff --git a/libs/uuid/PORTING b/libs/uuid/PORTING
deleted file mode 100644 (file)
index b507a7f..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-   _        ___  ____ ____  ____                _     _
-  |_|_ _   / _ \/ ___/ ___||  _ \   _   _ _   _(_) __| |
-  _|_||_| | | | \___ \___ \| |_) | | | | | | | | |/ _` |
- |_||_|_| | |_| |___) |__) |  __/  | |_| | |_| | | (_| |
-  |_|_|_|  \___/|____/____/|_|      \__,_|\__,_|_|\__,_|
-
-  OSSP uuid - Universally Unique Identifier
-
-  PORTING
-
-  OSSP uuid was already written with maximum portability in mind, so
-  there should be no great effort required to get it running on any Unix
-  platform with a reasonable POSIX API. Additionally, the portability
-  was tested by successfully building and running it on the following
-  particular Unix platforms (syntax is "<cpu>-<os> (<compiler>)"):
-
-      alpha-tru644.0 (cc)
-      alpha-tru645.1 (gcc, cc)
-      hppa-hpux11.11 (cc)
-      ia64-hpux11.23 (cc)
-      ix86-debian2.2 (gcc, icc)
-      ix86-debian3.0 (gcc)
-      ix86-debian3.1 (gcc)
-      ix86-freebsd4.9 (gcc)
-      ix86-freebsd5.2 (gcc, icc)
-      ix86-netbsd1.6 (gcc)
-      ix86-qnx6.2 (gcc)
-      ix86-solaris10 (gcc)
-      ix86-unixware7.1.3 (cc)
-      mips64-irix6.5 (gcc)
-      sparc64-solaris8 (gcc, forte)
-      sparc64-solaris9 (gcc)
-
diff --git a/libs/uuid/README b/libs/uuid/README
deleted file mode 100644 (file)
index 5393306..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-   _        ___  ____ ____  ____                _     _
-  |_|_ _   / _ \/ ___/ ___||  _ \   _   _ _   _(_) __| |
-  _|_||_| | | | \___ \___ \| |_) | | | | | | | | |/ _` |
- |_||_|_| | |_| |___) |__) |  __/  | |_| | |_| | | (_| |
-  |_|_|_|  \___/|____/____/|_|      \__,_|\__,_|_|\__,_|
-
-  OSSP uuid - Universally Unique Identifier
-  Version 1.6.2 (04-Jul-2008)
-
-  ABSTRACT
-
-  OSSP uuid is a ISO-C:1999 application programming interface (API)
-  and corresponding command line interface (CLI) for the generation of
-  DCE 1.1, ISO/IEC 11578:1996 and IETF RFC-4122 compliant Universally
-  Unique Identifier (UUID). It supports DCE 1.1 variant UUIDs of version
-  1 (time and node based), version 3 (name based, MD5), version 4
-  (random number based) and version 5 (name based, SHA-1). Additional
-  API bindings are provided for the languages ISO-C++:1998, Perl:5 and
-  PHP:4/5. Optional backward compatibility exists for the ISO-C DCE-1.1
-  and Perl Data::UUID APIs.
-
-  UUIDs are 128 bit numbers which are intended to have a high likelihood
-  of uniqueness over space and time and are computationally difficult
-  to guess. They are globally unique identifiers which can be locally
-  generated without contacting a global registration authority. UUIDs
-  are intended as unique identifiers for both mass tagging objects
-  with an extremely short lifetime and to reliably identifying very
-  persistent objects across a network.
-
-  COPYRIGHT AND LICENSE
-
-  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-
-  This file is part of OSSP uuid, a library for the generation
-  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-
-  Permission to use, copy, modify, and distribute this software for
-  any purpose with or without fee is hereby granted, provided that
-  the above copyright notice and this permission notice appear in all
-  copies.
-
-  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-  SUCH DAMAGE.
-
-  HOME AND DOCUMENTATION
-
-  The documentation and latest release can be found on
-
-  o http://www.ossp.org/pkg/lib/uuid/
-  o  ftp://ftp.ossp.org/pkg/lib/uuid/
-
diff --git a/libs/uuid/SEEALSO b/libs/uuid/SEEALSO
deleted file mode 100644 (file)
index f5a8af1..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-   _        ___  ____ ____  ____                _     _
-  |_|_ _   / _ \/ ___/ ___||  _ \   _   _ _   _(_) __| |
-  _|_||_| | | | \___ \___ \| |_) | | | | | | | | |/ _` |
- |_||_|_| | |_| |___) |__) |  __/  | |_| | |_| | | (_| |
-  |_|_|_|  \___/|____/____/|_|      \__,_|\__,_|_|\__,_|
-
-  OSSP uuid - Universally Unique Identifier
-
-  SEE ALSO
-
-  Although we consider OSSP uuid the ultimate reference implementation
-  of an UUID generator, there are multiple alternatives available.
-  Following is a short reference of all currently known UUID
-  implementations for platforms with an Unix/POSIX API:
-
-  o OSSP uuid (ISO-C), OSSP::uuid (Perl)
-    http://www.ossp.org/pkg/lib/uuid/
-    http://cvs.ossp.org/ossp-pkg/uuid/
-
-  o FreeBSD libc (ISO-C)
-    http://www.freebsd.org/
-    http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/uuid/
-
-  o Sun Solaris libc (ISO-C), DCE::UUID (Perl/XS)
-    http://www.opensolaris.org/
-    http://cvs.opensolaris.org/source/xref/usr/src/lib/libuuid/
-
-  o APR libaprutil (ISO-C), APR::UUID (Perl/XS)
-    http://svn.apache.org/repos/asf/apr/apr-util/trunk/crypto/
-
-  o e2fsprogs/libuuid (ISO-C), UUID (Perl/XS)
-    http://e2fsprogs.sourceforge.net/
-    http://thunk.org/hg/e2fsprogs/
-
-  o Wine rpcrt4 DLL (ISO-C)
-    http://www.winehq.org/
-
-  o Data::UUID (Perl/XS)
-    http://search.cpan.org/src/AGOLOMSH/
-    http://www.cpan.org/modules/by-module/Data/
-
-  o JUG (Java/JNI)
-    http://www.doomdark.org/doomdark/proj/jug/
-
-  o Mozilla (ISO-C, ISO-C++)
-    http://www.mozilla.org/
-    http://lxr.mozilla.org/mozilla1.7/source/calendar/libxpical/token.c
-
-  o HelixPlayer (ISO-C, ISO-C++)
-    https://player.helixcommunity.org/
-    common/util/chxuuid.cpp
-
diff --git a/libs/uuid/THANKS b/libs/uuid/THANKS
deleted file mode 100644 (file)
index c126239..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-   _        ___  ____ ____  ____                _     _
-  |_|_ _   / _ \/ ___/ ___||  _ \   _   _ _   _(_) __| |
-  _|_||_| | | | \___ \___ \| |_) | | | | | | | | |/ _` |
- |_||_|_| | |_| |___) |__) |  __/  | |_| | |_| | | (_| |
-  |_|_|_|  \___/|____/____/|_|      \__,_|\__,_|_|\__,_|
-
-  OSSP uuid - Universally Unique Identifier
-
-  THANKS
-
-  Credit has to be given to the following people who contributed ideas,
-  bugfixes, hints, gave platform feedback, etc. (in alphabetical order):
-
-    o  Matthias Andree             <matthias.andree@gmx.de>
-    o  Neil Caunt                  <retardis@gmail.com> 
-    o  Neil Conway                 <neilc@samurai.com>
-    o  M. Daniel                   <mdaniel@scdi.com>
-    o  Simon "janus" Dassow        <janus@errornet.de>
-    o  Fuyuki                      <fuyuki@nigredo.org>
-    o  Thomas Lotterer             <thomas@lotterer.net>
-    o  Roman Neuhauser             <neuhauser@sigpipe.cz>
-    o  Hrvoje Niksic               <hniksic@xemacs.org>
-    o  Piotr Roszatycki            <dexter@debian.org>
-    o  Hiroshi Saito               <z-saito@guitar.ocn.ne.jp>
-    o  Michael Schloh              <michael@schloh.com>
-    o  Guerry Semones              <guerry@tsunamiresearch.com>
-    o  David Wheeler               <david@justatheory.com>
-    o  Wu Yongwei                  <wuyongwei@gmail.com>
-
diff --git a/libs/uuid/TODO b/libs/uuid/TODO
deleted file mode 100644 (file)
index 9bf2bdb..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-   _        ___  ____ ____  ____                _     _
-  |_|_ _   / _ \/ ___/ ___||  _ \   _   _ _   _(_) __| |
-  _|_||_| | | | \___ \___ \| |_) | | | | | | | | |/ _` |
- |_||_|_| | |_| |___) |__) |  __/  | |_| | |_| | | (_| |
-  |_|_|_|  \___/|____/____/|_|      \__,_|\__,_|_|\__,_|
-
-  OSSP uuid - Universally Unique Identifier
-
-  TODO
-  ====
-
-  - <none>
-
-  CANDO
-  =====
-
-  - allow to re-create version 1 UUIDs by specifying time, etc.
-  - getopt_long support for CLI?
-  - a more sophisticated test suite with UUID references?!
-  - more platform support in uuid_mac.c?!
-  - global memory locking according to standard hints??
-  - persistent/non-volatile state writing according to standard hints??
-
diff --git a/libs/uuid/USERS b/libs/uuid/USERS
deleted file mode 100644 (file)
index 9ce7ed4..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-   _        ___  ____ ____  ____                _     _
-  |_|_ _   / _ \/ ___/ ___||  _ \   _   _ _   _(_) __| |
-  _|_||_| | | | \___ \___ \| |_) | | | | | | | | |/ _` |
- |_||_|_| | |_| |___) |__) |  __/  | |_| | |_| | | (_| |
-  |_|_|_|  \___/|____/____/|_|      \__,_|\__,_|_|\__,_|
-
-  OSSP uuid - Universally Unique Identifier
-
-  USERS
-
-  OSSP uuid is known to be used by at least the following
-  Open Source software packages:
-
-  o PostgreSQL
-    Relational Database Management System (RDBMS)
-    http://www.postgresql.org/
-
-  o Aegis
-    Software Configuration Management (SCM) System
-    http://aegis.sourceforge.net/
-
-  o Heartbeat
-    Core component of the High-Availability Linux (Linux-HA) project
-    http://linux-ha.org/heartbeat/
-
-  o GAT
-    Grid Application Toolkit (GAT) 
-    https://www.gridlab.org/WorkPackages/wp-1/ 
-
-  o Menes
-    High-Level C++ Library for mutexes, networking, etc.
-    http://www.saurik.com/
-    http://svn.saurik.com/repos/menes/trunk/
-
-  o OpenAether OAPR
-    C++ wrapper for NSPR
-    http://www.openaether.org/oapr.html
-
-  o Gauche Scheme Interpreter, UUID extension
-    http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/gauche/Gauche-uuid/
-    http://www.shiro.dreamhost.com/scheme/gauche/
-
-  o Guile Extension Examples (GEE)
-    https://gna.org/projects/gee
-
-  o CGI::Session::ID::uuid
-    UUID based ID generator backend for CGI::Session
-    http://www.cpan.org/modules/by-authors/id/RSE/ 
-
diff --git a/libs/uuid/acinclude.m4 b/libs/uuid/acinclude.m4
deleted file mode 100644 (file)
index c81d368..0000000
+++ /dev/null
@@ -1,352 +0,0 @@
-dnl ##
-dnl ##  SA - OSSP Socket Abstraction Library
-dnl ##  Copyright (c) 2001-2003 Ralf S. Engelschall <rse@engelschall.com>
-dnl ##  Copyright (c) 2001-2003 The OSSP Project <http://www.ossp.org/>
-dnl ##  Copyright (c) 2001-2003 Cable & Wireless Deutschland <http://www.cw.com/de/>
-dnl ##
-dnl ##  This file is part of OSSP SA, a socket abstraction library which
-dnl ##  can be found at http://www.ossp.org/pkg/sa/.
-dnl ##
-dnl ##  Permission to use, copy, modify, and distribute this software for
-dnl ##  any purpose with or without fee is hereby granted, provided that
-dnl ##  the above copyright notice and this permission notice appear in all
-dnl ##  copies.
-dnl ##
-dnl ##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-dnl ##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-dnl ##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-dnl ##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-dnl ##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-dnl ##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-dnl ##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-dnl ##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-dnl ##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-dnl ##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-dnl ##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-dnl ##  SUCH DAMAGE.
-dnl ##
-dnl ##  aclocal.m4: GNU Autoconf local macro definitions
-dnl ##
-
-dnl ##
-dnl ##  Check whether compiler option works
-dnl ##
-dnl ##  configure.in:
-dnl ##    AC_COMPILER_OPTION(<name>, <display>, <option>,
-dnl ##                       <action-success>, <action-failure>)
-dnl ##
-
-AC_DEFUN([AC_COMPILER_OPTION],[dnl
-AC_MSG_CHECKING(whether compiler option(s) $2 work)
-AC_CACHE_VAL(ac_cv_compiler_option_$1,[
-SAVE_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $3"
-AC_TRY_COMPILE([],[], ac_cv_compiler_option_$1=yes, ac_cv_compiler_option_$1=no)
-CFLAGS="$SAVE_CFLAGS"
-])dnl
-if test ".$ac_cv_compiler_option_$1" = .yes; then
-    ifelse([$4], , :, [$4])
-else
-    ifelse([$5], , :, [$5])
-fi
-AC_MSG_RESULT([$ac_cv_compiler_option_$1])
-])dnl
-
-dnl ##
-dnl ##  Debugging Support
-dnl ##
-dnl ##  configure.in:
-dnl ##    AC_CHECK_DEBUGGING
-dnl ##
-
-AC_DEFUN([AC_CHECK_DEBUGGING],[dnl
-AC_ARG_ENABLE(debug,dnl
-[  --enable-debug          build for debugging (default=no)],
-[dnl
-if test ".$ac_cv_prog_gcc" = ".yes"; then
-    case "$CFLAGS" in
-        *-O* ) ;;
-           * ) CFLAGS="$CFLAGS -O2" ;;
-    esac
-    case "$CFLAGS" in
-        *-g* ) ;;
-           * ) CFLAGS="$CFLAGS -g" ;;
-    esac
-    case "$CFLAGS" in
-        *-pipe* ) ;;
-              * ) AC_COMPILER_OPTION(pipe, -pipe, -pipe, CFLAGS="$CFLAGS -pipe") ;;
-    esac
-    AC_COMPILER_OPTION(defdbg, -DDEBUG, -DDEBUG, CFLAGS="$CFLAGS -DDEBUG")
-    CFLAGS="$CFLAGS -pedantic"
-    CFLAGS="$CFLAGS -Wall"
-    WMORE="-Wshadow -Wpointer-arith -Wcast-align -Winline"
-    WMORE="$WMORE -Wmissing-prototypes -Wmissing-declarations -Wnested-externs"
-    AC_COMPILER_OPTION(wmore, -W<xxx>, $WMORE, CFLAGS="$CFLAGS $WMORE")
-    AC_COMPILER_OPTION(wnolonglong, -Wno-long-long, -Wno-long-long, CFLAGS="$CFLAGS -Wno-long-long")
-else
-    case "$CFLAGS" in
-        *-g* ) ;;
-           * ) CFLAGS="$CFLAGS -g" ;;
-    esac
-fi
-msg="enabled"
-],[
-if test ".$ac_cv_prog_gcc" = ".yes"; then
-case "$CFLAGS" in
-    *-pipe* ) ;;
-          * ) AC_COMPILER_OPTION(pipe, -pipe, -pipe, CFLAGS="$CFLAGS -pipe") ;;
-esac
-fi
-case "$CFLAGS" in
-    *-g* ) CFLAGS=`echo "$CFLAGS" |\
-                   sed -e 's/ -g / /g' -e 's/ -g$//' -e 's/^-g //g' -e 's/^-g$//'` ;;
-esac
-case "$CXXFLAGS" in
-    *-g* ) CXXFLAGS=`echo "$CXXFLAGS" |\
-                     sed -e 's/ -g / /g' -e 's/ -g$//' -e 's/^-g //g' -e 's/^-g$//'` ;;
-esac
-msg=disabled
-])dnl
-AC_MSG_CHECKING(for compilation debug mode)
-AC_MSG_RESULT([$msg])
-if test ".$msg" = .enabled; then
-    enable_shared=no
-fi
-])
-
-dnl ##
-dnl ##  Check for C99 va_copy() implementation
-dnl ##  (and provide fallback implementation if neccessary)
-dnl ##
-dnl ##  configure.in:
-dnl ##    AC_CHECK_VA_COPY
-dnl ##  foo.c:
-dnl ##    #include "config.h"
-dnl ##    [...]
-dnl ##    va_copy(d,s)
-dnl ##
-dnl ##  This check is rather complex: first because we really have to
-dnl ##  try various possible implementations in sequence and second, we
-dnl ##  cannot define a macro in config.h with parameters directly.
-dnl ##
-
-dnl #   test program for va_copy() implementation
-changequote(<<,>>)
-m4_define(__va_copy_test, <<[
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#define DO_VA_COPY(d, s) $1
-void test(char *str, ...)
-{
-    va_list ap, ap2;
-    int i;
-    va_start(ap, str);
-    DO_VA_COPY(ap2, ap);
-    for (i = 1; i <= 9; i++) {
-        int k = (int)va_arg(ap, int);
-        if (k != i)
-            abort();
-    }
-    DO_VA_COPY(ap, ap2);
-    for (i = 1; i <= 9; i++) {
-        int k = (int)va_arg(ap, int);
-        if (k != i)
-            abort();
-    }
-    va_end(ap);
-}
-int main(int argc, char *argv[])
-{
-    test("test", 1, 2, 3, 4, 5, 6, 7, 8, 9);
-    exit(0);
-}
-]>>)
-changequote([,])
-
-dnl #   test driver for va_copy() implementation
-m4_define(__va_copy_check, [
-    AH_VERBATIM($1,
-[/* Predefined possible va_copy() implementation (id: $1) */
-#define __VA_COPY_USE_$1(d, s) $2])
-    if test ".$ac_cv_va_copy" = .; then
-        AC_TRY_RUN(__va_copy_test($2), [ac_cv_va_copy="$1"])
-    fi
-])
-
-dnl #   Autoconf check for va_copy() implementation checking
-AC_DEFUN([AC_CHECK_VA_COPY],[
-  dnl #   provide Autoconf display check message
-  AC_MSG_CHECKING(for va_copy() function)
-  dnl #   check for various implementations in priorized sequence   
-  AC_CACHE_VAL(ac_cv_va_copy, [
-    ac_cv_va_copy=""
-    dnl #   1. check for standardized C99 macro
-    __va_copy_check(C99, [va_copy((d), (s))])
-    dnl #   2. check for alternative/deprecated GCC macro
-    __va_copy_check(GCM, [VA_COPY((d), (s))])
-    dnl #   3. check for internal GCC macro (high-level define)
-    __va_copy_check(GCH, [__va_copy((d), (s))])
-    dnl #   4. check for internal GCC macro (built-in function)
-    __va_copy_check(GCB, [__builtin_va_copy((d), (s))])
-    dnl #   5. check for assignment approach (assuming va_list is a struct)
-    __va_copy_check(ASS, [do { (d) = (s); } while (0)])
-    dnl #   6. check for assignment approach (assuming va_list is a pointer)
-    __va_copy_check(ASP, [do { *(d) = *(s); } while (0)])
-    dnl #   7. check for memory copying approach (assuming va_list is a struct)
-    __va_copy_check(CPS, [memcpy((void *)&(d), (void *)&(s), sizeof((s)))])
-    dnl #   8. check for memory copying approach (assuming va_list is a pointer)
-    __va_copy_check(CPP, [memcpy((void *)(d), (void *)(s), sizeof(*(s)))])
-    if test ".$ac_cv_va_copy" = .; then
-        AC_ERROR([no working implementation found])
-    fi
-  ])
-  dnl #   optionally activate the fallback implementation
-  if test ".$ac_cv_va_copy" = ".C99"; then
-      AC_DEFINE(HAVE_VA_COPY, 1, [Define if va_copy() macro exists (and no fallback implementation is required)])
-  fi
-  dnl #   declare which fallback implementation to actually use
-  AC_DEFINE_UNQUOTED([__VA_COPY_USE], [__VA_COPY_USE_$ac_cv_va_copy],
-      [Define to id of used va_copy() implementation])
-  dnl #   provide activation hook for fallback implementation
-  AH_VERBATIM([__VA_COPY_ACTIVATION],
-[/* Optional va_copy() implementation activation */
-#ifndef HAVE_VA_COPY
-#define va_copy(d, s) __VA_COPY_USE(d, s)
-#endif
-])
-  dnl #   provide Autoconf display result message
-  if test ".$ac_cv_va_copy" = ".C99"; then
-      AC_MSG_RESULT([yes])
-  else
-      AC_MSG_RESULT([no (using fallback implementation)])
-  fi
-])
-
-dnl ##
-dnl ##  Check for an external/extension library.
-dnl ##  - is aware of <libname>-config style scripts
-dnl ##  - searches under standard paths include, lib, etc.
-dnl ##  - searches under subareas like .libs, etc.
-dnl ##
-dnl ##  configure.in:
-dnl ##      AC_CHECK_EXTLIB(<realname>, <libname>, <func>, <header>,
-dnl ##                      [<success-action> [, <fail-action>]])
-dnl ##  Makefile.in:
-dnl ##      CFLAGS  = @CFLAGS@
-dnl ##      LDFLAGS = @LDFLAGS@
-dnl ##      LIBS    = @LIBS@
-dnl ##  shell:
-dnl ##      $ ./configure --with-<libname>[=DIR]
-dnl ##
-
-AC_DEFUN([AC_CHECK_EXTLIB],[dnl
-AC_ARG_WITH($2, [dnl
-[  --with-]m4_substr([$2[[=DIR]]                     ], 0, 19)[build with external $1 library (default=no)]], [dnl
-    if test ".$with_$2" = .yes; then
-        #   via config script in PATH
-        $2_version=`($2-config --version) 2>/dev/null`
-        if test ".$$2_version" != .; then
-            CPPFLAGS="$CPPFLAGS `$2-config --cflags`"
-            CFLAGS="$CFLAGS `$2-config --cflags`"
-            LDFLAGS="$LDFLAGS `$2-config --ldflags`"
-        fi
-    else
-        if test -d "$with_$2"; then
-            found=0
-            #   via config script
-            for dir in $with_$2/bin $with_$2; do
-                if test -f "$dir/$2-config" && test ! -f "$dir/$2-config.in"; then
-                    $2_version=`($dir/$2-config --version) 2>/dev/null`
-                    if test ".$$2_version" != .; then
-                        CPPFLAGS="$CPPFLAGS `$dir/$2-config --cflags`"
-                        CFLAGS="$CFLAGS `$dir/$2-config --cflags`"
-                        LDFLAGS="$LDFLAGS `$dir/$2-config --ldflags`"
-                        found=1
-                        break
-                    fi
-                fi
-            done
-            #   in standard sub-areas
-            if test ".$found" = .0; then
-                for dir in $with_$2/include/$2 $with_$2/include $with_$2; do
-                    if test -f "$dir/$4"; then
-                        CPPFLAGS="$CPPFLAGS -I$dir"
-                        CFLAGS="$CFLAGS -I$dir"
-                        found=1
-                        break
-                    fi
-                done
-                for dir in $with_$2/lib/$2 $with_$2/lib $with_$2; do
-                    if test -f "$dir/lib$2.la" && test -d "$dir/.libs"; then
-                        LDFLAGS="$LDFLAGS -L$dir -L$dir/.libs"
-                        found=1
-                        break
-                    elif test -f "$dir/lib$2.a" || test -f "$dir/lib$2.so"; then
-                        LDFLAGS="$LDFLAGS -L$dir"
-                        found=1
-                        break
-                    fi
-                done
-            fi
-            #   in any sub-area
-            if test ".$found" = .0; then
-changequote(, )dnl
-                for file in x `find $with_$2 -name "$4" -type f -print`; do
-                    test .$file = .x && continue
-                    dir=`echo $file | sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;'`
-                    CPPFLAGS="$CPPFLAGS -I$dir"
-                    CFLAGS="$CFLAGS -I$dir"
-                done
-                for file in x `find $with_$2 -name "lib$2.[aso]" -type f -print`; do
-                    test .$file = .x && continue
-                    dir=`echo $file | sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;'`
-                    LDFLAGS="$LDFLAGS -L$dir"
-                done
-changequote([, ])dnl
-            fi
-        fi
-    fi
-    AC_HAVE_HEADERS($4)
-    AC_CHECK_LIB($2, $3)
-    with_$2=yes
-    ac_var="ac_cv_header_`echo $4 | sed 'y%./+-%__p_%'`"
-    eval "ac_val=\$$ac_var"
-    if test ".$ac_val" != .yes; then
-        with_$2=no
-    fi
-    if test ".$ac_cv_lib_$2_$3" != .yes; then
-        with_$2=no
-    fi
-    if test ".$with_$2" = .no; then
-        AC_ERROR([Unable to find $1 library])
-    fi
-    ], [dnl
-if test ".$with_$2" = .; then
-    with_$2=no
-fi
-    ])dnl
-AC_MSG_CHECKING(whether to build against external $1 library)
-if test ".$with_$2" = .yes; then
-    ifelse([$5], , :, [$5])
-else
-    ifelse([$6], , :, [$6])
-fi
-AC_MSG_RESULT([$with_$2])
-])dnl
-
-dnl ##
-dnl ##  Check whether to activate Dmalloc
-dnl ##
-dnl ##  configure.in:
-dnl ##    AC_CHECK_DMALLOC
-dnl ##
-
-AC_DEFUN([AC_CHECK_DMALLOC],[dnl
-AC_CHECK_EXTLIB(Dmalloc, dmalloc, dmalloc_debug, dmalloc.h,
-                AC_DEFINE(WITH_DMALLOC, 1, [define if building with Dmalloc]))
-if test ".$with_dmalloc" = .yes; then
-    CFLAGS=`echo "X$CFLAGS" | sed -e 's;^X;;' -e 's; -Wredundant-decls;;'`
-fi
-])dnl
-
diff --git a/libs/uuid/configure.ac b/libs/uuid/configure.ac
deleted file mode 100644 (file)
index bd8a834..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-dnl ##
-dnl ##  OSSP uuid - Universally Unique Identifier
-dnl ##  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-dnl ##  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-dnl ##
-dnl ##  This file is part of OSSP uuid, a library for the generation
-dnl ##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-dnl ##
-dnl ##  Permission to use, copy, modify, and distribute this software for
-dnl ##  any purpose with or without fee is hereby granted, provided that
-dnl ##  the above copyright notice and this permission notice appear in all
-dnl ##  copies.
-dnl ##
-dnl ##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-dnl ##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-dnl ##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-dnl ##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-dnl ##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-dnl ##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-dnl ##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-dnl ##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-dnl ##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-dnl ##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-dnl ##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-dnl ##  SUCH DAMAGE.
-dnl ##
-dnl ##  configure.ac: GNU Autoconf source script
-dnl ##
-
-AC_PREREQ(2.53)
-AC_INIT
-UUID_VERSION_RAW=`$ac_confdir/shtool version -l c -d short uuid_vers.h`
-UUID_VERSION_STR=`$ac_confdir/shtool version -l c -d long  uuid_vers.h`
-UUID_VERSION_HEX=`$ac_confdir/shtool version -l c -d hex   uuid_vers.h`
-$ac_confdir/shtool echo -e \
-    "Configuring %BOSSP uuid%b (Universally Unique Identifier), version %B${UUID_VERSION_STR}%b"
-AC_SUBST(UUID_VERSION_RAW)
-AC_SUBST(UUID_VERSION_STR)
-AC_SUBST(UUID_VERSION_HEX)
-
-AC_PROG_MAKE_SET
-AC_PROG_CC
-AC_CHECK_DEBUGGING
-AC_CHECK_DMALLOC
-
-with_tags=""
-sinclude(libtool.m4)
-AC_PROG_LIBTOOL
-
-sinclude(uuid.ac)
-UUID_CHECK_ALL
-
-AC_CONFIG_HEADERS(config.h)
-AC_CONFIG_FILES([Makefile uuid-config uuid.pc uuid.h])
-AC_CONFIG_COMMANDS([adjustment], [chmod a-w uuid.h; chmod a+x uuid-config])
-AC_OUTPUT
-
diff --git a/libs/uuid/configure.gnu b/libs/uuid/configure.gnu
deleted file mode 100644 (file)
index c78238d..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#! /bin/sh
-srcpath=$(dirname $0 2>/dev/null )  || srcpath="." 
-$srcpath/configure "$@" --disable-shared --with-pic
-
diff --git a/libs/uuid/perl/MANIFEST b/libs/uuid/perl/MANIFEST
deleted file mode 100644 (file)
index d972203..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-MANIFEST
-Makefile.PL
-uuid.xs
-uuid.tm
-uuid.pm
-uuid.pod
-uuid.ts
-uuid_compat.pm
-uuid_compat.pod
-uuid_compat.ts
diff --git a/libs/uuid/perl/Makefile.PL b/libs/uuid/perl/Makefile.PL
deleted file mode 100644 (file)
index 92f4494..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  Makefile.PL: Perl MakeMaker build source procedure
-##
-
-require 5.008;
-
-use Config;
-use ExtUtils::MakeMaker;
-
-#   determine source directory
-my ($srcdir) = map { my $d = $_; $d =~ s/\/libuuid\.la$//; $d }
-               grep { -f $_ } ("../libuuid.la", glob("../*/libuuid.la"))
-    or die "no source directory found (where libuuid.la is located)";
-
-#   determine extra build options
-my $compat = 0;
-@ARGV = grep { $_ =~ m/^COMPAT=(\d+)$/i ? ($compat = $1, 0) : 1 } @ARGV;
-
-#   generate Makefile
-WriteMakefile(
-    NAME              => 'OSSP::uuid',
-    VERSION_FROM      => 'uuid.pm',
-    ABSTRACT_FROM     => 'uuid.pod',
-    PREREQ_PM         => {},
-    LIBS              => [ "-L$srcdir/.libs -L$srcdir -luuid" ],
-    DEFINE            => '',
-    INC               => "-I. -I$srcdir",
-    PM                => { 'uuid.pm'   => '$(INST_LIBDIR)/uuid.pm',
-                           'uuid.pod'  => '$(INST_LIBDIR)/uuid.pod',
-                           ($compat ? ('uuid_compat.pm'  => '$(INST_LIBDIR)/../Data/UUID.pm')  : ()),
-                           ($compat ? ('uuid_compat.pod' => '$(INST_LIBDIR)/../Data/UUID.pod') : ()), },
-    MAN3PODS          => { 'uuid.pod' => '$(INST_MAN3DIR)/OSSP::uuid.3',
-                           ($compat ? ('uuid_compat.pod' => '$(INST_MAN3DIR)/Data::UUID.3') : ()), },
-    TYPEMAPS          => [ 'uuid.tm' ],
-    test              => { TESTS => 'uuid.ts' . ($compat ? ' uuid_compat.ts' : '') },
-    NO_META           => 1,
-    #    cruel hack to workaround the conflict between OSSP uuid's
-    #    uuid_create() function and one from FreeBSD's libc
-    ((   "$Config{'osname'}$Config{'osvers'}" =~ m/^freebsd[56]\./
-      and $Config{'ld'} =~ m/cc$/ and -f "/usr/include/uuid.h") ?
-      ( LDDLFLAGS => $Config{'lddlflags'} . ' -Wl,-Bsymbolic') : ())
-);
-
diff --git a/libs/uuid/perl/uuid.pm b/libs/uuid/perl/uuid.pm
deleted file mode 100644 (file)
index b322396..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid.pm: Perl Binding (Perl part)
-##
-
-##
-##  High-Level Perl Module TIE-style API
-##  (just a functionality-reduced TIE wrapper around the OO-style API)
-##
-
-package OSSP::uuid::tie;
-
-use 5.008;
-use strict;
-use warnings;
-use Carp;
-
-#   inhert from Tie::Scalar
-require Tie::Scalar;
-our @ISA = qw(Tie::Scalar);
-
-#   helper function
-sub mode_sanity {
-    my ($mode) = @_;
-    if (not (    defined($mode)
-             and ref($mode) eq 'ARRAY'
-             and (   (@{$mode} == 1 and $mode->[0] =~ m|^v[14]$|)
-                  or (@{$mode} == 3 and $mode->[0] =~ m|^v[35]$|)))) {
-        return (undef, "invalid UUID generation mode specification");
-    }
-    if ($mode->[0] =~ m|^v[35]$|) {
-        my $uuid_ns = new OSSP::uuid;
-        $uuid_ns->load($mode->[1])
-            or return (undef, "failed to load UUID $mode->[0] namespace");
-        $mode->[1] = $uuid_ns;
-    }
-    return ($mode, undef);
-}
-
-#   constructor
-sub TIESCALAR {
-    my ($class, @args) = @_;
-    my $self = {};
-    bless ($self, $class);
-    $self->{-uuid} = new OSSP::uuid
-       or croak "failed to create OSSP::uuid object";
-    my ($mode, $error) = mode_sanity(defined($args[0]) ? [ @args ] : [ "v1" ]);
-    croak $error if defined($error);
-    $self->{-mode} = $mode;
-    return $self;
-}
-
-#   destructor
-sub DESTROY {
-    my ($self) = @_;
-    delete $self->{-uuid};
-    delete $self->{-mode};
-    return;
-}
-
-#   fetch value from scalar
-#   (applied semantic: export UUID in string format)
-sub FETCH {
-    my ($self) = @_;
-    $self->{-uuid}->make(@{$self->{-mode}})
-       or croak "failed to generate new UUID";
-    my $value = $self->{-uuid}->export("str")
-       or croak "failed to export new UUID";
-    return $value;
-}
-
-#   store value into scalar
-#   (applied semantic: configure new UUID generation mode)
-sub STORE {
-    my ($self, $value) = @_;
-    my ($mode, $error) = mode_sanity($value);
-    croak $error if defined($error);
-    $self->{-mode} = $mode;
-    return;
-}
-
-##
-##  High-Level Perl Module OO-style API
-##  (just an OO wrapper around the C-style API)
-##
-
-package OSSP::uuid;
-
-use 5.008;
-use strict;
-use warnings;
-use Carp;
-use XSLoader;
-use Exporter;
-
-#   API version
-our $VERSION = do { my @v = ('1.6.2' =~ m/\d+/g); sprintf("%d.".("%02d"x$#v), @v); };
-
-#   API inheritance
-our @ISA = qw(Exporter);
-
-#   API symbols
-my $symbols = {
-    'const' => [qw(
-        UUID_VERSION
-        UUID_LEN_BIN
-        UUID_LEN_STR
-        UUID_LEN_SIV
-        UUID_RC_OK
-        UUID_RC_ARG
-        UUID_RC_MEM
-        UUID_RC_SYS
-        UUID_RC_INT
-        UUID_RC_IMP
-        UUID_MAKE_V1
-        UUID_MAKE_V3
-        UUID_MAKE_V4
-        UUID_MAKE_V5
-        UUID_MAKE_MC
-        UUID_FMT_BIN
-        UUID_FMT_STR
-        UUID_FMT_SIV
-        UUID_FMT_TXT
-    )],
-    'func' => [qw(
-        uuid_create
-        uuid_destroy
-        uuid_load
-        uuid_make
-        uuid_isnil
-        uuid_compare
-        uuid_import
-        uuid_export
-        uuid_error
-        uuid_version
-    )]
-};
-
-#   API symbol exportation
-our %EXPORT_TAGS = (
-    'all'   => [ @{$symbols->{'const'}}, @{$symbols->{'func'}} ],
-    'const' => [ @{$symbols->{'const'}} ],
-    'func'  => [ @{$symbols->{'func'}}  ]
-);
-our @EXPORT_OK = @{$EXPORT_TAGS{'all'}};
-our @EXPORT    = ();
-
-#   constructor
-sub new {
-    my $proto = shift;
-    my $class = ref($proto) || $proto;
-    my $self = {};
-    bless ($self, $class);
-    $self->{-uuid} = undef;
-    $self->{-rc}   = $self->UUID_RC_OK;
-    my $rc = uuid_create($self->{-uuid});
-    if ($rc != $self->UUID_RC_OK) {
-        croak(sprintf("OSSP::uuid::new: uuid_create: %s (%d)", uuid_error($rc), $rc));
-        return undef;
-    }
-    return $self;
-}
-
-#   destructor
-sub DESTROY ($) {
-    my ($self) = @_;
-    $self->{-rc} = uuid_destroy($self->{-uuid}) if (defined($self->{-uuid}));
-    if ($self->{-rc} != $self->UUID_RC_OK) {
-        carp(sprintf("OSSP::uuid::DESTROY: uuid_destroy: %s (%d)", uuid_error($self->{-rc}), $self->{-rc}));
-        return;
-    }
-    $self->{-uuid} = undef;
-    $self->{-rc}   = undef;
-    return;
-}
-
-sub load ($$) {
-    my ($self, $name) = @_;
-    $self->{-rc} = uuid_load($self->{-uuid}, $name);
-    return ($self->{-rc} == $self->UUID_RC_OK);
-}
-
-sub make ($$;@) {
-    my ($self, $mode, @valist) = @_;
-    my $mode_code = 0;
-    foreach my $spec (split(/,/, $mode)) {
-        if    ($spec eq 'v1') { $mode_code |= $self->UUID_MAKE_V1; }
-        elsif ($spec eq 'v3') { $mode_code |= $self->UUID_MAKE_V3; }
-        elsif ($spec eq 'v4') { $mode_code |= $self->UUID_MAKE_V4; }
-        elsif ($spec eq 'v5') { $mode_code |= $self->UUID_MAKE_V5; }
-        elsif ($spec eq 'mc') { $mode_code |= $self->UUID_MAKE_MC; }
-        else  { croak("invalid mode specification \"$spec\""); }
-    }
-    if (($mode_code & $self->UUID_MAKE_V3) or ($mode_code & $self->UUID_MAKE_V5)) {
-        if (not (ref($valist[0]) and $valist[0]->isa("OSSP::uuid"))) {
-            croak("UUID_MAKE_V3/UUID_MAKE_V5 requires namespace argument to be OSSP::uuid object");
-        }
-        my $ns   = $valist[0]->{-uuid};
-        my $name = $valist[1];
-        $self->{-rc} = uuid_make($self->{-uuid}, $mode_code, $ns, $name);
-    }
-    else {
-        $self->{-rc} = uuid_make($self->{-uuid}, $mode_code);
-    }
-    return ($self->{-rc} == $self->UUID_RC_OK);
-}
-
-sub isnil ($) {
-    my ($self) = @_;
-    my $result;
-    $self->{-rc} = uuid_isnil($self->{-uuid}, $result);
-    return ($self->{-rc} == $self->UUID_RC_OK ? $result : undef);
-}
-
-sub compare ($$) {
-    my ($self, $other) = @_;
-    my $result = 0;
-    if (not (ref($other) and $other->isa("OSSP::uuid"))) {
-        croak("argument has to an OSSP::uuid object");
-    }
-    $self->{-rc} = uuid_compare($self->{-uuid}, $other->{-uuid}, $result);
-    return ($self->{-rc} == $self->UUID_RC_OK ? $result : undef);
-}
-
-sub import {
-    #   ATTENTION: The OSSP uuid API function "import" conflicts with
-    #   the standardized "import" method the Perl world expects from
-    #   their modules. In order to keep the Perl binding consist
-    #   with the C API, we solve the conflict under run-time by
-    #   distinguishing between the two types of "import" calls.
-    if (defined($_[0]) and ref($_[0]) =~ m/^OSSP::uuid/) {
-        #   the regular OSSP::uuid "import" method
-        croak("import method expects 3 or 4 arguments") if (@_ < 3 or @_ > 4); # emulate prototype
-        my ($self, $fmt, $data_ptr, $data_len) = @_;
-        if    ($fmt eq 'bin') { $fmt = $self->UUID_FMT_BIN; }
-        elsif ($fmt eq 'str') { $fmt = $self->UUID_FMT_STR; }
-        elsif ($fmt eq 'siv') { $fmt = $self->UUID_FMT_SIV; }
-        elsif ($fmt eq 'txt') { $fmt = $self->UUID_FMT_TXT; }
-        else  { croak("invalid format \"$fmt\""); }
-        $data_len ||= length($data_ptr); # functional redudant, but Perl dislikes undef value here
-        $self->{-rc} = uuid_import($self->{-uuid}, $fmt, $data_ptr, $data_len);
-        return ($self->{-rc} == $self->UUID_RC_OK);
-    }
-    else {
-        #   the special Perl "import" method
-        #   (usually inherited from the Exporter)
-        no strict "refs";
-        return OSSP::uuid->export_to_level(1, @_);
-    }
-}
-
-sub export {
-    #   ATTENTION: The OSSP uuid API function "export" conflicts with
-    #   the standardized "export" method the Perl world expects from
-    #   their modules. In order to keep the Perl binding consist
-    #   with the C API, we solve the conflict under run-time by
-    #   distinguishing between the two types of "export" calls.
-    if (defined($_[0]) and ref($_[0]) =~ m/^OSSP::uuid/) {
-        #   the regular OSSP::uuid "export" method
-        croak("export method expects 2 arguments") if (@_ != 2); # emulate prototype
-        my ($self, $fmt) = @_;
-        my $data_ptr;
-        if    ($fmt eq 'bin') { $fmt = $self->UUID_FMT_BIN; }
-        elsif ($fmt eq 'str') { $fmt = $self->UUID_FMT_STR; }
-        elsif ($fmt eq 'siv') { $fmt = $self->UUID_FMT_SIV; }
-        elsif ($fmt eq 'txt') { $fmt = $self->UUID_FMT_TXT; }
-        else  { croak("invalid format \"$fmt\""); }
-        $self->{-rc} = uuid_export($self->{-uuid}, $fmt, $data_ptr, undef);
-        return ($self->{-rc} == $self->UUID_RC_OK ? $data_ptr : undef);
-    }
-    else {
-        #   the special Perl "export" method
-        #   (usually inherited from the Exporter)
-        return Exporter::export(@_);
-    }
-}
-
-sub error ($;$) {
-    my ($self, $rc) = @_;
-    $rc = $self->{-rc} if (not defined($rc));
-    return wantarray ? (uuid_error($rc), $rc) : uuid_error($rc);
-}
-
-sub version (;$) {
-    my ($self) = @_;
-    return uuid_version();
-}
-
-##
-##  Low-Level Perl XS C-style API
-##  (actually just the activation of the XS part)
-##
-
-#   auto-loading constants
-sub AUTOLOAD {
-    my $constname;
-    our $AUTOLOAD;
-    ($constname = $AUTOLOAD) =~ s/.*:://;
-    croak "&OSSP::uuid::constant not defined" if ($constname eq 'constant');
-    my ($error, $val) = constant($constname);
-    croak $error if ($error);
-    { no strict 'refs'; *$AUTOLOAD = sub { $val }; }
-    goto &$AUTOLOAD;
-}
-
-#   static-loading functions
-XSLoader::load('OSSP::uuid', $VERSION);
-
-1;
-
diff --git a/libs/uuid/perl/uuid.pod b/libs/uuid/perl/uuid.pod
deleted file mode 100644 (file)
index 7c6172f..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid.pod: Perl Binding (Perl/POD part)
-##
-
-=pod
-
-=head1 NAME
-
-OSSP::uuid - B<OSSP uuid> Perl Binding
-
-=head1 DESCRIPTION
-
-B<OSSP uuid> is a ISO-C:1999 application programming interface (API)
-and corresponding command line interface (CLI) for the generation of
-DCE 1.1, ISO/IEC 11578:1996 and RFC 4122 compliant I<Universally Unique
-Identifier> (UUID). It supports DCE 1.1 variant UUIDs of version 1 (time
-and node based), version 3 (name based, MD5), version 4 (random number
-based) and version 5 (name based, SHA-1). Additional API bindings are
-provided for the languages ISO-C++:1998, Perl:5 and PHP:4/5. Optional
-backward compatibility exists for the ISO-C DCE-1.1 and Perl Data::UUID
-APIs.
-
-B<OSSP::uuid> is the Perl binding to the B<OSSP uuid> API.
-Three variants are provided:
-
-=head2 TIE-STYLE API
-
-The TIE-style API is a functionality-reduced wrapper around the OO-style
-API and intended for very high-level convenience programming:
-
-=over 4
-
-=item C<use OSSP::uuid;>
-
-=item B<tie>C< my $uuid, 'OSSP::uuid::tie', $mode, ...;>
-
-=item C<$uuid = [ $mode, ... ];>
-
-=item C<print "UUID=$uuid\n";>
-
-=item C<untie $uuid;>
-
-=back
-
-=head2 OO-STYLE API
-
-The OO-style API is a wrapper around the C-style API and intended for
-high-level regular programming.
-
-=over 4
-
-=item C<use OSSP::uuid;>
-
-=item C<my $uuid = >B<new>C< OSSP::uuid;>
-
-=item C<$uuid-E<gt>>B<load>C<($name);>
-
-=item C<$uuid-E<gt>>B<make>C<($mode, ...);>
-
-=item C<$result = $uuid-E<gt>>B<isnil>C<();>
-
-=item C<$result = $uuid-E<gt>>B<compare>C<($uuid2);>
-
-=item C<$uuid-E<gt>>B<import>C<($fmt, $data_ptr);>
-
-=item C<$data_ptr = $uuid-E<gt>>B<export>C<($fmt);>
-
-=item C<[(]$str[, $rc)] = $uuid-E<gt>>B<error>C<();>
-
-=item C<$ver = $uuid-E<gt>>B<version>C<();>
-
-=item C<undef $uuid;>
-
-=back
-
-Additionally, the strings C<"v1">, C<"v3">, C<"v4">, C<"v5"> and C<"mc">
-can be used in C<$mode> and the strings C<"bin">, C<"str">, and C<"txt">
-can be used for C<$fmt>.
-
-=head2 C-STYLE API
-
-The C-style API is a direct mapping
-of the B<OSSP uuid> ISO-C API to Perl and is intended for low-level
-programming. See uuid(3) for a description of the functions and
-their expected arguments.
-
-=over 4
-
-=item C<use OSSP::uuid qw(:all);>
-
-=item C<my $uuid; $rc = >B<uuid_create>C<($uuid);>
-
-=item C<$rc = >B<uuid_load>C<($uuid, $name);>
-
-=item C<$rc = >B<uuid_make>C<($uuid, $mode, ...);>
-
-=item C<$rc = >B<uuid_isnil>C<($uuid, $result);>
-
-=item C<$rc = >B<uuid_compare>C<($uuid, $uuid2, $result);>
-
-=item C<$rc = >B<uuid_import>C<($uuid, $fmt, $data_ptr, $data_len);>
-
-=item C<$rc = >B<uuid_export>C<($uuid, $fmt, $data_ptr, $data_len);>
-
-=item C<$str = >B<uuid_error>C<($rc);>
-
-=item C<$ver = >B<uuid_version>C<();>
-
-=item C<$rc = >B<uuid_destroy>C<($uuid);>
-
-=back
-
-Additionally, the following constants are exported for use in C<$rc>, C<$mode>, C<$fmt> and C<$ver>:
-
-C<UUID_VERSION>,
-C<UUID_LEN_BIN>,
-C<UUID_LEN_STR>,
-C<UUID_RC_OK>,
-C<UUID_RC_ARG>,
-C<UUID_RC_MEM>,
-C<UUID_RC_SYS>,
-C<UUID_RC_INT>,
-C<UUID_RC_IMP>,
-C<UUID_MAKE_V1>,
-C<UUID_MAKE_V3>,
-C<UUID_MAKE_V4>,
-C<UUID_MAKE_V5>,
-C<UUID_MAKE_MC>,
-C<UUID_FMT_BIN>,
-C<UUID_FMT_STR>,
-C<UUID_FMT_SIV>,
-C<UUID_FMT_TXT>.
-
-=head1 EXAMPLES
-
-The following two examples create the version 3 UUID
-C<02d9e6d5-9467-382e-8f9b-9300a64ac3cd>, both via the OO-style and the
-C-style API. Error handling is omitted here for easier reading, but has
-to be added for production-quality code.
-
-  #   TIE-style API (very high-level)
-  use OSSP::uuid;
-  tie my $uuid, 'OSSP::uuid::tie';
-  $uuid = [ "v1" ];
-  print "UUIDs: $uuid, $uuid, $uuid\n";
-  $uuid = [ "v3", "ns:URL", "http://www.ossp.org/" ];
-  print "UUIDs: $uuid, $uuid, $uuid\n";
-  untie $uuid;
-
-  #   OO-style API (high-level)
-  use OSSP::uuid;
-  my $uuid    = new OSSP::uuid;
-  my $uuid_ns = new OSSP::uuid;
-  $uuid_ns->load("ns:URL");
-  $uuid->make("v3", $uuid_ns, "http://www.ossp.org/");
-  undef $uuid_ns;
-  my $str = $uuid->export("str");
-  undef $uuid;
-  print "$str\n";
-
-  #   C-style API (low-level)
-  use OSSP::uuid qw(:all);
-  my $uuid;    uuid_create($uuid);
-  my $uuid_ns; uuid_create($uuid_ns);
-  uuid_load($uuid_ns, "ns:URL");
-  uuid_make($uuid, UUID_MAKE_V3, $uuid_ns, "http://www.ossp.org/");
-  uuid_destroy($uuid_ns);
-  my $str; uuid_export($uuid, UUID_FMT_STR, $str, undef);
-  uuid_destroy($uuid);
-  print "$str\n";
-
-=head1 SEE ALSO
-
-uuid(1), uuid-config(1), uuid(3).
-
-=head1 HISTORY
-
-The Perl binding B<OSSP::uuid> to B<OSSP uuid> was implemented in
-November 2004 by Ralf S. Engelschall E<lt>rse@engelschall.comE<gt>.
-
-=cut
-
diff --git a/libs/uuid/perl/uuid.tm b/libs/uuid/perl/uuid.tm
deleted file mode 100644 (file)
index 71ac32f..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid.tm: Perl XS typemap for xsubpp(1)
-##
-
-TYPEMAP
-uuid_t *        T_PTRREF
-uuid_t **       T_PTRREF
-uuid_rc_t       T_IV
-uuid_fmt_t      T_IV
-int *           T_PV
-size_t *        T_PV
-const void *    T_PV
-void **         T_PV
-
diff --git a/libs/uuid/perl/uuid.ts b/libs/uuid/perl/uuid.ts
deleted file mode 100644 (file)
index 298e26d..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid.ts: Perl Binding (Perl test suite part)
-##
-
-use Test::More tests => 36;
-
-##
-##  Module Loading
-##
-
-BEGIN {
-    use_ok('OSSP::uuid');
-};
-BEGIN {
-    use OSSP::uuid qw(:all);
-    ok(defined(UUID_VERSION), "UUID_VERSION");
-    ok(UUID_RC_OK == 0, "UUID_RC_OK");
-};
-
-##
-##  C-Style API
-##
-
-my ($rc, $result, $uuid, $uuid_ns, $str, $ptr, $len);
-
-$rc = uuid_create($uuid);
-ok($rc == UUID_RC_OK, "uuid_create (1)");
-$rc = uuid_create($uuid_ns);
-ok($rc == UUID_RC_OK, "uuid_create (2)");
-
-$rc = uuid_isnil($uuid, $result);
-ok(($rc == UUID_RC_OK and $result == 1), "uuid_isnil (1)");
-$rc = uuid_isnil($uuid_ns, $result);
-ok(($rc == UUID_RC_OK and $result == 1), "uuid_isnil (2)");
-$rc = uuid_compare($uuid, $uuid_ns, $result);
-ok(($rc == UUID_RC_OK and $result == 0), "uuid_compare (1)");
-$rc = uuid_export($uuid, UUID_FMT_STR, $ptr, $len);
-ok((    $rc == UUID_RC_OK
-    and $ptr eq "00000000-0000-0000-0000-000000000000"
-    and $len == UUID_LEN_STR), "uuid_export (1)");
-
-$rc = uuid_load($uuid_ns, "ns:URL");
-ok($rc == UUID_RC_OK, "uuid_load (1)");
-$rc = uuid_export($uuid_ns, UUID_FMT_STR, $ptr, $len);
-ok((    $rc == UUID_RC_OK
-    and $ptr eq "6ba7b811-9dad-11d1-80b4-00c04fd430c8"
-    and $len == UUID_LEN_STR), "uuid_export (2)");
-
-$rc = uuid_make($uuid, UUID_MAKE_V3, $uuid_ns, "http://www.ossp.org/");
-ok($rc == UUID_RC_OK, "uuid_make (1)");
-$rc = uuid_export($uuid, UUID_FMT_STR, $ptr, $len);
-ok((    $rc == UUID_RC_OK
-    and $ptr eq "02d9e6d5-9467-382e-8f9b-9300a64ac3cd"
-    and $len == UUID_LEN_STR), "uuid_export (3)");
-
-$rc = uuid_export($uuid, UUID_FMT_BIN, $ptr, $len);
-ok((    $rc == UUID_RC_OK
-    and $len == UUID_LEN_BIN), "uuid_export (4)");
-$rc = uuid_import($uuid_ns, UUID_FMT_BIN, $ptr, $len);
-ok($rc == UUID_RC_OK, "uuid_import (1)");
-$rc = uuid_export($uuid_ns, UUID_FMT_STR, $ptr, $len);
-ok((    $rc == UUID_RC_OK
-    and $ptr eq "02d9e6d5-9467-382e-8f9b-9300a64ac3cd"
-    and $len == UUID_LEN_STR), "uuid_export (5)");
-$rc = uuid_export($uuid_ns, UUID_FMT_SIV, $ptr, $len);
-ok((    $rc == UUID_RC_OK
-    and $ptr eq "3789866285607910888100818383505376205"
-    and $len <= UUID_LEN_SIV), "uuid_export (6)");
-
-$rc = uuid_destroy($uuid_ns);
-ok($rc == UUID_RC_OK, "uuid_destroy (1)");
-$rc = uuid_destroy($uuid);
-ok($rc == UUID_RC_OK, "uuid_destroy (2)");
-
-##
-##  OO-style API
-##
-
-$uuid = new OSSP::uuid;
-ok(defined($uuid), "new OSSP::uuid (1)");
-$uuid_ns = new OSSP::uuid;
-ok(defined($uuid_ns), "new OSSP::uuid (2)");
-
-$rc = $uuid->isnil();
-ok((defined($rc) and $rc == 1), "isnil (1)");
-$rc = $uuid_ns->isnil();
-ok((defined($rc) and $rc == 1), "isnil (2)");
-
-$rc = $uuid->compare($uuid_ns);
-ok((defined($rc) and $rc == 0), "compare (1)");
-
-$ptr = $uuid->export("str");
-ok((    defined($ptr)
-    and $ptr eq "00000000-0000-0000-0000-000000000000"
-    and length($ptr) == UUID_LEN_STR), "export (1)");
-
-$rc = $uuid_ns->load("ns:URL");
-ok(defined($rc), "uuid_load (1)");
-$ptr = $uuid_ns->export("str");
-ok((    defined($ptr)
-    and $ptr eq "6ba7b811-9dad-11d1-80b4-00c04fd430c8"
-    and length($ptr) == UUID_LEN_STR), "export (2)");
-
-$rc = $uuid->make("v3", $uuid_ns, "http://www.ossp.org/");
-ok(defined($rc), "make (1)");
-$ptr = $uuid->export("str");
-ok((    defined($ptr)
-    and $ptr eq "02d9e6d5-9467-382e-8f9b-9300a64ac3cd"
-    and length($ptr) == UUID_LEN_STR), "export (3)");
-
-$ptr = $uuid->export("bin");
-ok((    defined($ptr)
-    and length($ptr) == UUID_LEN_BIN), "export (4)");
-$rc = $uuid_ns->import("bin", $ptr);
-ok(defined($rc), "import (1)");
-$ptr = $uuid_ns->export("str");
-ok((    defined($ptr)
-    and $ptr eq "02d9e6d5-9467-382e-8f9b-9300a64ac3cd"
-    and length($ptr) == UUID_LEN_STR), "export (5)");
-
-undef $uuid;
-undef $uuid_ns;
-
-##
-##  TIE API
-##
-
-$uuid = new OSSP::uuid;
-
-tie my $var, 'OSSP::uuid::tie';
-
-my $val_get1 = $var;
-my $val_get2 = $var;
-ok($val_get1 ne $val_get2, "subsequent generation");
-
-$uuid->import("str", $val_get1);
-my $val_cmp1 = $uuid->export("str");
-$uuid->import("str", $val_get2);
-my $val_cmp2 = $uuid->export("str");
-ok($val_get1 eq $val_cmp1, "validity comparison 1");
-ok($val_get2 eq $val_cmp2, "validity comparison 2");
-
-$var = [ "v3", "ns:URL", "http://www.ossp.org/" ];
-$val_get1 = $var;
-ok($val_get1 eq "02d9e6d5-9467-382e-8f9b-9300a64ac3cd", "generation of UUID v3");
-
diff --git a/libs/uuid/perl/uuid.xs b/libs/uuid/perl/uuid.xs
deleted file mode 100644 (file)
index a9ed41d..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid.xs: Perl Binding (Perl/XS part)
-*/
-
-#include "uuid.h"
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-MODULE = OSSP::uuid PACKAGE = OSSP::uuid
-
-void
-constant(sv)
-    PREINIT:
-        dXSTARG;
-        STRLEN          len;
-        int             i;
-        static struct {
-            const char *name;
-            int         value;
-        } constant_table[] = {
-            { "UUID_VERSION", UUID_VERSION },
-            { "UUID_LEN_BIN", UUID_LEN_BIN },
-            { "UUID_LEN_STR", UUID_LEN_STR },
-            { "UUID_LEN_SIV", UUID_LEN_SIV },
-            { "UUID_RC_OK",   UUID_RC_OK   },
-            { "UUID_RC_ARG",  UUID_RC_ARG  },
-            { "UUID_RC_MEM",  UUID_RC_MEM  },
-            { "UUID_RC_SYS",  UUID_RC_SYS  },
-            { "UUID_RC_INT",  UUID_RC_INT  },
-            { "UUID_RC_IMP",  UUID_RC_IMP  },
-            { "UUID_MAKE_V1", UUID_MAKE_V1 },
-            { "UUID_MAKE_V3", UUID_MAKE_V3 },
-            { "UUID_MAKE_V4", UUID_MAKE_V4 },
-            { "UUID_MAKE_V5", UUID_MAKE_V5 },
-            { "UUID_MAKE_MC", UUID_MAKE_MC },
-            { "UUID_FMT_BIN", UUID_FMT_BIN },
-            { "UUID_FMT_STR", UUID_FMT_STR },
-            { "UUID_FMT_SIV", UUID_FMT_SIV },
-            { "UUID_FMT_TXT", UUID_FMT_TXT }
-        };
-    INPUT:
-        SV             *sv;
-        const char     *s = SvPV(sv, len);
-    PPCODE:
-        for (i = 0; i < sizeof(constant_table)/sizeof(constant_table[0]); i++) {
-            if (strcmp(s, constant_table[i].name) == 0) {
-                EXTEND(SP, 1);
-                PUSHs(&PL_sv_undef);
-                PUSHi(constant_table[i].value);
-                break;
-            }
-        }
-        if (i == sizeof(constant_table)/sizeof(constant_table[0])) {
-            sv = sv_2mortal(newSVpvf("unknown contant OSSP::uuid::%s", s));
-            PUSHs(sv);
-        }
-
-
-uuid_rc_t
-uuid_create(uuid)
-    PROTOTYPE:
-        $
-    INPUT:
-        uuid_t *&uuid = NO_INIT
-    CODE:
-        RETVAL = uuid_create(&uuid);
-    OUTPUT:
-        uuid
-        RETVAL
-
-uuid_rc_t
-uuid_destroy(uuid)
-    PROTOTYPE:
-        $
-    INPUT:
-        uuid_t *uuid
-    CODE:
-        RETVAL = uuid_destroy(uuid);
-    OUTPUT:
-        RETVAL
-
-uuid_rc_t
-uuid_load(uuid,name)
-    PROTOTYPE:
-        $$
-    INPUT:
-        uuid_t *uuid
-        const char *name
-    CODE:
-        RETVAL = uuid_load(uuid, name);
-    OUTPUT:
-        RETVAL
-
-uuid_rc_t
-uuid_make(uuid,mode,...)
-    PROTOTYPE:
-        $$;$$
-    INPUT:
-        uuid_t *uuid
-        unsigned int mode
-    PREINIT:
-        uuid_t *ns;
-        const char *name;
-    CODE:
-        if ((mode & UUID_MAKE_V3) || (mode & UUID_MAKE_V5)) {
-            if (items != 4)
-                croak("mode UUID_MAKE_V3/UUID_MAKE_V5 requires two additional arguments to uuid_make()");
-               if (!SvROK(ST(2)))
-                croak("mode UUID_MAKE_V3/UUID_MAKE_V5 requires a UUID object as namespace");
-            ns   = INT2PTR(uuid_t *, SvIV((SV*)SvRV(ST(2))));
-            name = (const char *)SvPV_nolen(ST(3));
-            RETVAL = uuid_make(uuid, mode, ns, name);
-        }
-        else {
-            if (items != 2)
-                croak("invalid number of arguments to uuid_make()");
-            RETVAL = uuid_make(uuid, mode);
-        }
-    OUTPUT:
-        RETVAL
-
-uuid_rc_t
-uuid_isnil(uuid,result)
-    PROTOTYPE:
-        $$
-    INPUT:
-        uuid_t *uuid
-        int &result = NO_INIT
-    CODE:
-        RETVAL = uuid_isnil(uuid, &result);
-    OUTPUT:
-        result
-        RETVAL
-
-uuid_rc_t
-uuid_compare(uuid,uuid2,result)
-    PROTOTYPE:
-        $$$
-    INPUT:
-        uuid_t *uuid
-        uuid_t *uuid2
-        int &result = NO_INIT
-    CODE:
-        RETVAL = uuid_compare(uuid, uuid2, &result);
-    OUTPUT:
-        result
-        RETVAL
-
-uuid_rc_t
-uuid_import(uuid,fmt,data_ptr,data_len)
-    PROTOTYPE:
-        $$$$
-    INPUT:
-        uuid_t *uuid
-        uuid_fmt_t fmt
-        const void *data_ptr
-        size_t data_len
-    CODE:
-        if (ST(3) == &PL_sv_undef)
-            data_len = sv_len(ST(2));
-        RETVAL = uuid_import(uuid, fmt, data_ptr, data_len);
-    OUTPUT:
-        RETVAL
-
-uuid_rc_t
-uuid_export(uuid,fmt,data_ptr,data_len)
-    PROTOTYPE:
-        $$$$
-    INPUT:
-        uuid_t *uuid
-        uuid_fmt_t fmt
-        void *&data_ptr = NO_INIT
-        size_t &data_len = NO_INIT
-    PPCODE:
-        data_ptr = NULL;
-        data_len = 0;
-        RETVAL = uuid_export(uuid, fmt, &data_ptr, &data_len);
-        if (RETVAL == UUID_RC_OK) {
-            if (fmt == UUID_FMT_SIV)
-                data_len = strlen((char *)data_ptr);
-            else if (fmt == UUID_FMT_STR || fmt == UUID_FMT_TXT)
-                data_len--; /* Perl doesn't wish NUL-termination on strings */
-            sv_setpvn(ST(2), data_ptr, data_len);
-            free(data_ptr);
-            if (ST(3) != &PL_sv_undef)
-                sv_setuv(ST(3), (UV)data_len);
-        }
-        PUSHi((IV)RETVAL);
-
-char *
-uuid_error(rc)
-    PROTOTYPE:
-        $
-    INPUT:
-        uuid_rc_t rc
-    CODE:
-        RETVAL = uuid_error(rc);
-    OUTPUT:
-        RETVAL
-
-unsigned long
-uuid_version()
-    PROTOTYPE:
-    INPUT:
-    CODE:
-        RETVAL = uuid_version();
-    OUTPUT:
-        RETVAL
-
diff --git a/libs/uuid/perl/uuid_compat.pm b/libs/uuid/perl/uuid_compat.pm
deleted file mode 100644 (file)
index fdc5712..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-##  Copyright (c) 2004 Piotr Roszatycki <dexter@debian.org>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid_compat.pm: Data::UUID Backward Compatibility Perl API
-##
-
-package Data::UUID;
-
-use 5.006;
-use warnings;
-use strict;
-
-use OSSP::uuid;
-use MIME::Base64 qw();
-
-require Exporter;
-
-our @ISA     = qw(Exporter);
-our @EXPORT  = qw(NameSpace_DNS NameSpace_OID NameSpace_URL NameSpace_X500);
-
-our $VERSION = do { my @v = ('1.6.2' =~ m/\d+/g); sprintf("%d.".("%02d"x$#v), @v); };
-
-sub new {
-    my $class = shift;
-    my $self = bless {}, $class;
-    return $self;
-}
-
-sub create {
-    my ($self) = @_;
-    my $uuid = OSSP::uuid->new;
-    $uuid->make('v4');
-    return $uuid->export('bin');
-}
-
-sub create_from_name {
-    my ($self, $nsid, $name) = @_;
-    my $uuid = OSSP::uuid->new;
-    my $nsiduuid = OSSP::uuid->new;
-    $nsiduuid->import('bin', $nsiduuid);
-    $uuid = OSSP::uuid->new;
-    $uuid->make('v3', $nsiduuid, $name);
-    return $uuid->export('bin');
-}
-
-sub to_string {
-    my ($self, $bin) = @_;
-    my $uuid = OSSP::uuid->new;
-    $uuid->import('bin', $bin);
-    return $uuid->export('str');
-}
-
-sub to_hexstring {
-    my ($self, $bin) = @_;
-    my $uuid = OSSP::uuid->new;
-    $uuid->import('bin', $bin);
-    (my $string = '0x' . $uuid->export('str')) =~ s/-//g;
-    return $string;
-}
-
-sub to_b64string {
-    my ($self, $bin) = @_;
-    return MIME::Base64::encode_base64($bin, '');
-}
-
-sub from_string {
-    my ($self, $str) = @_;
-    my $uuid = OSSP::uuid->new;
-    $uuid->import('str',
-          $str =~ /^0x/
-        ? join '-', unpack('x2 a8 a4 a4 a4 a12', $str)
-        : $str
-    );
-    return $uuid->export('bin');
-}
-
-sub from_hexstring {
-    my ($self, $str) = @_;
-    my $uuid = OSSP::uuid->new;
-    $uuid->import('str', join '-', unpack('x2 a8 a4 a4 a4 a12', $str));
-    return $uuid->export('bin');
-}
-
-sub from_b64string {
-    my ($self, $b64) = @_;
-    return MIME::Base64::decode_base64($b64);
-}
-
-sub compare {
-    my ($self, $bin1, $bin2) = @_;
-    my $uuid1 = OSSP::uuid->new;
-    my $uuid2 = OSSP::uuid->new;
-    $uuid1->import('bin', $bin1);
-    $uuid2->import('bin', $bin2);
-    return $uuid1->compare($uuid2);
-}
-
-my %NS = (
-    'NameSpace_DNS'  => 'ns:DNS',
-    'NameSpace_URL'  => 'ns:URL',
-    'NameSpace_OID'  => 'ns:OID',
-    'NameSpace_X500' => 'ns:X500',
-);
-
-while (my ($k, $v) = each %NS) {
-    no strict 'refs';
-    *{$k} = sub () {
-        my $uuid = OSSP::uuid->new;
-        $uuid->load($v);
-        return $uuid->export('bin');
-    };
-}
-
-sub constant {
-    my ($self, $arg) = @_;
-    my $uuid = OSSP::uuid->new;
-    $uuid->load($NS{$arg} || 'nil');
-    return $uuid->export('bin');
-}
-
-sub create_str {
-    my $self = shift;
-    return $self->to_string($self->create);
-}
-
-sub create_hex {
-    my $self = shift;
-    return $self->to_hexstring($self->create);
-}
-
-sub create_b64 {
-    my $self = shift;
-    return $self->to_b64string($self->create);
-}
-
-sub create_from_name_str {
-    my $self = shift;
-    return $self->to_string($self->create_from_name(@_));
-}
-
-sub create_from_name_hex {
-    my $self = shift;
-    return $self->to_hexstring($self->create_from_name(@_));
-}
-
-sub create_from_name_b64 {
-    my $self = shift;
-    return $self->to_b64string($self->create_from_name(@_));
-}
-
-1;
-
diff --git a/libs/uuid/perl/uuid_compat.pod b/libs/uuid/perl/uuid_compat.pod
deleted file mode 100644 (file)
index e695aca..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid_compat.pod: Data::UUID Backward Compatibility Perl API (Perl/POD part)
-##
-
-=pod
-
-=head1 NAME
-
-Data::UUID - B<OSSP uuid> Backward Compatibility Perl Binding
-
-=head1 DESCRIPTION
-
-B<Data::UUID> is the B<OSSP uuid> backward compatibility Perl binding
-to the API of the original B<Data::UUID> module. It allows other
-B<Data::UUID> based Perl modules to run with B<OSSP::uuid> without
-changes.
-
-=head1 SEE ALSO
-
-B<OSSP::uuid>.
-
-=head1 HISTORY
-
-The backward compatibility Perl binding B<Data::UUID> for B<OSSP
-uuid> was originally implemented in 2004 by Piotr Roszatycki
-E<lt>dexter@debian.orgE<gt>. It was later cleaned up and speed optimized
-in December 2005 by David Wheeler E<lt>david@justatheory.comE<gt>.
-
-=cut
-
diff --git a/libs/uuid/perl/uuid_compat.ts b/libs/uuid/perl/uuid_compat.ts
deleted file mode 100644 (file)
index 12507c6..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-##  Copyright (c) 2004 Piotr Roszatycki <dexter@debian.org>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid_compat.ts: Data::UUID Backward Compatibility Perl API (Perl test suite part)
-##
-
-use Test::More tests => 14;
-
-BEGIN {
-    use_ok('Data::UUID');
-    use Data::UUID;
-};
-
-ok($ug = new Data::UUID);
-
-ok($uuid1 = $ug->create());
-ok($uuid2 = $ug->to_hexstring($uuid1));
-ok($uuid3 = $ug->from_string($uuid2));
-ok($ug->compare($uuid1, $uuid3) == 0);
-
-ok($uuid4 = $ug->to_b64string($uuid1));
-ok($uuid5 = $ug->to_b64string($uuid3));
-ok($uuid4 eq $uuid5);
-
-ok($uuid6 = $ug->from_b64string($uuid5));
-ok($ug->compare($uuid6, $uuid1) == 0);
-
-ok($uuid7 = NameSpace_URL);
-ok($uuid8 = $ug->from_string("6ba7b811-9dad-11d1-80b4-00c04fd430c8"));
-ok($ug->compare($uuid7, $uuid8) == 0);
-
diff --git a/libs/uuid/pgsql/Makefile b/libs/uuid/pgsql/Makefile
deleted file mode 100644 (file)
index a71bbc2..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-##
-##  Makefile for PostgreSQL extension module
-##
-
-#   NOTICE: This requires GNU make as the PostgreSQL PGXS build
-#   environment is based on GNU make features!
-#
-#   NOTICE: Usually one would just use "PGXS := $(shell pg_config
-#   --pgxs)" followed by "include $(PGXS)" as the template. The problem
-#   just is that this way (at least still under PostgreSQL 8.1) one
-#   cannot pass the "-L../.libs -luuid" to the command which links the
-#   DSO. Hence we fiddle around with the Makefiles which "PGXS" uses
-#   itself ourself.
-
-PG_CONFIG         ?= pg_config
-PGXS              := $(shell $(PG_CONFIG) --pgxs)
-POSTGRES          := $(shell $(PG_CONFIG) --bindir)/postgres
-top_builddir      := $(dir $(PGXS))../..
-include           $(top_builddir)/src/Makefile.global
-    
-NAME              = uuid
-OBJS              = uuid.o
-SO_MAJOR_VERSION  = 1
-SO_MINOR_VERSION  = 0
-
-override CPPFLAGS := -I.. $(CPPFLAGS)
-SHLIB_LINK        := -L../.libs -luuid
-SHLIB_LINK        += $(shell test $(shell uname -s) = FreeBSD && echo "-Wl,-Bsymbolic")
-SHLIB_LINK        += $(shell test $(shell uname -s) = Darwin && echo "-bundle_loader $(POSTGRES)")
-rpath             :=
-
-all: uuid.sql all-lib
-
-enable_shared     = yes
-include           $(top_builddir)/src/Makefile.shlib
-
-uuid.sql: uuid.sql.in
-       sed -e 's;MODULE_PATHNAME;$(DESTDIR)$(pkglibdir)/uuid$(DLSUFFIX);g' <uuid.sql.in >uuid.sql
-
-install: all
-       $(mkinstalldirs) $(DESTDIR)$(pkglibdir)
-       $(mkinstalldirs) $(DESTDIR)$(datadir)
-       $(INSTALL_SHLIB) $(shlib) $(DESTDIR)$(pkglibdir)/uuid$(DLSUFFIX)
-       $(INSTALL_DATA) uuid.sql $(DESTDIR)$(datadir)/uuid.sql
-
-uninstall:
-       -rm -f $(DESTDIR)$(pkglibdir)/uuid$(DLSUFFIX)
-       -rm -f $(DESTDIR)$(datadir)/uuid.sql
-
-clean distclean: clean-lib
-       rm -f $(OBJS)
-       rm -f uuid.sql
-
-realclean: distclean
-
-test:
-
diff --git a/libs/uuid/pgsql/uuid.c b/libs/uuid/pgsql/uuid.c
deleted file mode 100644 (file)
index 023eda9..0000000
+++ /dev/null
@@ -1,436 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid.c: PostgreSQL Binding (C part)
-*/
-
-/*  own headers */
-#include "uuid.h"
-
-/*  PostgreSQL (part 1/2) headers */
-#include "postgres.h"
-
-/*  system headers */
-#include <string.h>
-
-/*  PostgreSQL (part 2/2) headers */
-#include "fmgr.h"
-#include "lib/stringinfo.h"
-#include "access/hash.h"
-
-/*  PostgreSQL module magic cookie
-    (PostgreSQL >= 8.2 only) */
-#ifdef PG_MODULE_MAGIC
-PG_MODULE_MAGIC;
-#endif
-
-/* internal UUID datum data structure */
-typedef struct {
-    unsigned char uuid_bin[UUID_LEN_BIN];
-} uuid_datum_t;
-
-/* forward declarations */
-Datum pg_uuid_in     (PG_FUNCTION_ARGS);
-Datum pg_uuid_out    (PG_FUNCTION_ARGS);
-Datum pg_uuid_recv   (PG_FUNCTION_ARGS);
-Datum pg_uuid_send   (PG_FUNCTION_ARGS);
-Datum pg_uuid_hash   (PG_FUNCTION_ARGS);
-Datum pg_uuid_make   (PG_FUNCTION_ARGS);
-Datum pg_uuid_eq     (PG_FUNCTION_ARGS);
-Datum pg_uuid_ne     (PG_FUNCTION_ARGS);
-Datum pg_uuid_lt     (PG_FUNCTION_ARGS);
-Datum pg_uuid_gt     (PG_FUNCTION_ARGS);
-Datum pg_uuid_le     (PG_FUNCTION_ARGS);
-Datum pg_uuid_ge     (PG_FUNCTION_ARGS);
-Datum pg_uuid_cmp    (PG_FUNCTION_ARGS);
-
-/* API function: uuid_in */
-PG_FUNCTION_INFO_V1(pg_uuid_in);
-Datum pg_uuid_in(PG_FUNCTION_ARGS)
-{
-    char *uuid_str;
-    uuid_datum_t *uuid_datum;
-    uuid_rc_t rc;
-    uuid_t *uuid;
-    void *vp;
-    size_t len;
-
-    /* sanity check input argument */
-    if ((uuid_str = PG_GETARG_CSTRING(0)) == NULL)
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("invalid UUID string")));
-    if ((len = strlen(uuid_str)) != UUID_LEN_STR)
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("invalid UUID string length %d (expected %d)", (int)len, UUID_LEN_STR)));
-
-    /* import as string representation */
-    if ((rc = uuid_create(&uuid)) != UUID_RC_OK)
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to create UUID object: %s", uuid_error(rc))));
-    if ((rc = uuid_import(uuid, UUID_FMT_STR, uuid_str, len)) != UUID_RC_OK) {
-        uuid_destroy(uuid);
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to import UUID string representation: %s", uuid_error(rc))));
-    }
-
-    /* export as binary representation */
-    if ((uuid_datum = (uuid_datum_t *)palloc(sizeof(uuid_datum_t))) == NULL) {
-        uuid_destroy(uuid);
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to allocate UUID datum")));
-    }
-    vp = &(uuid_datum->uuid_bin);
-    len = sizeof(uuid_datum->uuid_bin);
-    if ((rc = uuid_export(uuid, UUID_FMT_BIN, &vp, &len)) != UUID_RC_OK) {
-        uuid_destroy(uuid);
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to export UUID binary representation: %s", uuid_error(rc))));
-    }
-    uuid_destroy(uuid);
-
-    /* return UUID datum */
-    PG_RETURN_POINTER(uuid_datum);
-}
-
-/* API function: uuid_out */
-PG_FUNCTION_INFO_V1(pg_uuid_out);
-Datum pg_uuid_out(PG_FUNCTION_ARGS)
-{
-    uuid_datum_t *uuid_datum;
-    uuid_rc_t rc;
-    uuid_t *uuid;
-    char *uuid_str;
-    void *vp;
-    size_t len;
-
-    /* sanity check input argument */
-    if ((uuid_datum = (uuid_datum_t *)PG_GETARG_POINTER(0)) == NULL)
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("invalid UUID datum")));
-
-    /* import as binary representation */
-    if ((rc = uuid_create(&uuid)) != UUID_RC_OK)
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to create UUID object: %s", uuid_error(rc))));
-    if ((rc = uuid_import(uuid, UUID_FMT_BIN, uuid_datum->uuid_bin, sizeof(uuid_datum->uuid_bin))) != UUID_RC_OK) {
-        uuid_destroy(uuid);
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to import UUID binary representation: %s", uuid_error(rc))));
-    }
-
-    /* export as string representation */
-    len = UUID_LEN_STR+1;
-    if ((vp = uuid_str = (char *)palloc(len)) == NULL) {
-        uuid_destroy(uuid);
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to allocate UUID string")));
-    }
-    if ((rc = uuid_export(uuid, UUID_FMT_STR, &vp, &len)) != UUID_RC_OK) {
-        uuid_destroy(uuid);
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to export UUID string representation: %s", uuid_error(rc))));
-    }
-    uuid_destroy(uuid);
-
-    /* return UUID string */
-    PG_RETURN_CSTRING(uuid_str);
-}
-
-/* API function: uuid_recv */
-PG_FUNCTION_INFO_V1(pg_uuid_recv);
-Datum pg_uuid_recv(PG_FUNCTION_ARGS)
-{
-    StringInfo uuid_internal;
-    uuid_datum_t *uuid_datum;
-
-    /* sanity check input argument */
-    if ((uuid_internal = (StringInfo)PG_GETARG_POINTER(0)) == NULL)
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("invalid UUID StringInfo object")));
-    if (uuid_internal->len != UUID_LEN_BIN)
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("invalid UUID binary length %d (expected %d)", uuid_internal->len, UUID_LEN_BIN)));
-
-    /* import as binary representation */
-    if ((uuid_datum = (uuid_datum_t *)palloc(sizeof(uuid_datum_t))) == NULL)
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to allocate UUID datum")));
-    memcpy(uuid_datum->uuid_bin, uuid_internal->data, uuid_internal->len);
-
-    /* return UUID datum */
-    PG_RETURN_POINTER(uuid_datum);
-}
-
-/* API function: uuid_send */
-PG_FUNCTION_INFO_V1(pg_uuid_send);
-Datum pg_uuid_send(PG_FUNCTION_ARGS)
-{
-    uuid_datum_t *uuid_datum;
-    bytea *uuid_bytea;
-
-    /* sanity check input argument */
-    if ((uuid_datum = (uuid_datum_t *)PG_GETARG_POINTER(0)) == NULL)
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("invalid UUID datum")));
-
-    /* export as binary representation */
-    if ((uuid_bytea = (bytea *)palloc(VARHDRSZ + UUID_LEN_BIN)) == NULL)
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to allocate UUID bytea")));
-#if defined(SET_VARSIZE) /* PostgreSQL >= 8.3 */
-    SET_VARSIZE(uuid_bytea, VARHDRSZ + UUID_LEN_BIN);
-#else
-    uuid_bytea->vl_len = VARHDRSZ + UUID_LEN_BIN;
-#endif
-    memcpy(uuid_bytea->vl_dat, uuid_datum->uuid_bin, UUID_LEN_BIN);
-
-    /* return UUID bytea */
-    PG_RETURN_BYTEA_P(uuid_bytea);
-}
-
-/* API function: uuid_make */
-PG_FUNCTION_INFO_V1(pg_uuid_make);
-Datum pg_uuid_make(PG_FUNCTION_ARGS)
-{
-    uuid_t *uuid;
-    uuid_t *uuid_ns;
-    uuid_rc_t rc;
-    int version;
-    unsigned int mode = 0;
-    uuid_datum_t *uuid_datum;
-    char *str_ns;
-    char *str_name;
-    void *vp;
-    size_t len;
-
-    /* sanity check input argument */
-    version = (int)PG_GETARG_INT32(0);
-    switch (version) {
-        case 1: mode = UUID_MAKE_V1; break;
-        case 3: mode = UUID_MAKE_V3; break;
-        case 4: mode = UUID_MAKE_V4; break;
-        case 5: mode = UUID_MAKE_V5; break;
-        default:
-            ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                    errmsg("invalid UUID version %d (expected 1, 3, 4 or 5)", version)));
-    }
-    if (   ((mode & (UUID_MAKE_V1|UUID_MAKE_V4)) && PG_NARGS() != 1)
-        || ((mode & (UUID_MAKE_V3|UUID_MAKE_V5)) && PG_NARGS() != 3))
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("invalid number (%d) of arguments", PG_NARGS())));
-
-    /* make a new UUID */
-    if ((rc = uuid_create(&uuid)) != UUID_RC_OK)
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to create UUID object: %s", uuid_error(rc))));
-    if (version == 3 || version == 5) {
-        if ((str_ns = PG_GETARG_CSTRING(1)) == NULL)
-            ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                    errmsg("invalid namespace UUID string")));
-        if ((str_name = PG_GETARG_CSTRING(2)) == NULL)
-            ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                    errmsg("invalid name string")));
-        if ((rc = uuid_create(&uuid_ns)) != UUID_RC_OK)
-            ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                    errmsg("failed to create UUID namespace object: %s", uuid_error(rc))));
-        if ((rc = uuid_load(uuid_ns, str_ns)) != UUID_RC_OK) {
-            if ((rc = uuid_import(uuid_ns, UUID_FMT_STR, str_ns, strlen(str_ns))) != UUID_RC_OK)
-                ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                        errmsg("failed to import UUID namespace: %s", uuid_error(rc))));
-        }
-        if ((rc = uuid_make(uuid, mode, uuid_ns, str_name)) != UUID_RC_OK) {
-            uuid_destroy(uuid);
-            ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                    errmsg("failed to make v%d UUID: %s", version, uuid_error(rc))));
-        }
-        uuid_destroy(uuid_ns);
-    }
-    else {
-        if ((rc = uuid_make(uuid, mode)) != UUID_RC_OK) {
-            uuid_destroy(uuid);
-            ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                    errmsg("failed to make v%d UUID: %s", version, uuid_error(rc))));
-        }
-    }
-
-    /* export as binary representation */
-    if ((uuid_datum = (uuid_datum_t *)palloc(sizeof(uuid_datum_t))) == NULL) {
-        uuid_destroy(uuid);
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to allocate UUID datum")));
-    }
-    vp = &(uuid_datum->uuid_bin);
-    len = sizeof(uuid_datum->uuid_bin);
-    if ((rc = uuid_export(uuid, UUID_FMT_BIN, &vp, &len)) != UUID_RC_OK) {
-        uuid_destroy(uuid);
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to export UUID binary representation: %s", uuid_error(rc))));
-    }
-    uuid_destroy(uuid);
-    PG_RETURN_POINTER(uuid_datum);
-}
-
-/* API function: uuid_hash */
-PG_FUNCTION_INFO_V1(pg_uuid_hash);
-Datum pg_uuid_hash(PG_FUNCTION_ARGS)
-{
-    uuid_datum_t *uuid_datum;
-
-    /* sanity check input argument */
-    if ((uuid_datum = (uuid_datum_t *)PG_GETARG_POINTER(0)) == NULL)
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("invalid UUID datum argument")));
-
-    /* return hash value of the UUID */
-    PG_RETURN_INT32(hash_any(uuid_datum->uuid_bin, sizeof(uuid_datum->uuid_bin)));
-}
-
-/* INTERNAL function: _uuid_cmp */
-static int _uuid_cmp(PG_FUNCTION_ARGS)
-{
-    uuid_datum_t *uuid_datum1;
-    uuid_datum_t *uuid_datum2;
-    uuid_t *uuid1;
-    uuid_t *uuid2;
-    uuid_rc_t rc;
-    int result;
-
-    /* sanity check input argument */
-    if ((uuid_datum1 = (uuid_datum_t *)PG_GETARG_POINTER(0)) == NULL)
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("invalid first UUID datum argument")));
-    if ((uuid_datum2 = (uuid_datum_t *)PG_GETARG_POINTER(1)) == NULL)
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("invalid second UUID datum argument")));
-
-    /* load both UUIDs */
-    if ((rc = uuid_create(&uuid1)) != UUID_RC_OK)
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to create UUID object: %s", uuid_error(rc))));
-    if ((rc = uuid_create(&uuid2)) != UUID_RC_OK) {
-        uuid_destroy(uuid1);
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to create UUID object: %s", uuid_error(rc))));
-    }
-    if ((rc = uuid_import(uuid1, UUID_FMT_BIN, uuid_datum1->uuid_bin, sizeof(uuid_datum1->uuid_bin))) != UUID_RC_OK) {
-        uuid_destroy(uuid1);
-        uuid_destroy(uuid2);
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to import UUID: %s", uuid_error(rc))));
-    }
-    if ((rc = uuid_import(uuid2, UUID_FMT_BIN, uuid_datum2->uuid_bin, sizeof(uuid_datum2->uuid_bin))) != UUID_RC_OK) {
-        uuid_destroy(uuid1);
-        uuid_destroy(uuid2);
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to import UUID: %s", uuid_error(rc))));
-    }
-
-    /* compare UUIDs */
-    if ((rc = uuid_compare(uuid1, uuid2, &result)) != UUID_RC_OK) {
-        uuid_destroy(uuid1);
-        uuid_destroy(uuid2);
-        ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION),
-                errmsg("failed to compare UUID objects: %s", uuid_error(rc))));
-    }
-
-    /* cleanup */
-    uuid_destroy(uuid1);
-    uuid_destroy(uuid2);
-
-    /* return result */
-    return result;
-}
-
-/* API function: uuid_eq */
-PG_FUNCTION_INFO_V1(pg_uuid_eq);
-Datum pg_uuid_eq(PG_FUNCTION_ARGS)
-{
-    int rc;
-
-    rc = _uuid_cmp(fcinfo);
-    PG_RETURN_BOOL(rc == 0);
-}
-
-/* API function: uuid_ne */
-PG_FUNCTION_INFO_V1(pg_uuid_ne);
-Datum pg_uuid_ne(PG_FUNCTION_ARGS)
-{
-    int rc;
-
-    rc = _uuid_cmp(fcinfo);
-    PG_RETURN_BOOL(rc != 0);
-}
-
-/* API function: uuid_lt */
-PG_FUNCTION_INFO_V1(pg_uuid_lt);
-Datum pg_uuid_lt(PG_FUNCTION_ARGS)
-{
-    int rc;
-
-    rc = _uuid_cmp(fcinfo);
-    PG_RETURN_BOOL(rc == -1);
-}
-
-/* API function: uuid_gt */
-PG_FUNCTION_INFO_V1(pg_uuid_gt);
-Datum pg_uuid_gt(PG_FUNCTION_ARGS)
-{
-    int rc;
-
-    rc = _uuid_cmp(fcinfo);
-    PG_RETURN_BOOL(rc == 1);
-}
-
-/* API function: uuid_le */
-PG_FUNCTION_INFO_V1(pg_uuid_le);
-Datum pg_uuid_le(PG_FUNCTION_ARGS)
-{
-    int rc;
-
-    rc = _uuid_cmp(fcinfo);
-    PG_RETURN_BOOL(rc < 1);
-}
-
-/* API function: uuid_ge */
-PG_FUNCTION_INFO_V1(pg_uuid_ge);
-Datum pg_uuid_ge(PG_FUNCTION_ARGS)
-{
-    int rc;
-
-    rc = _uuid_cmp(fcinfo);
-    PG_RETURN_BOOL(rc > -1);
-}
-
-/* API function: uuid_cmp */
-PG_FUNCTION_INFO_V1(pg_uuid_cmp);
-Datum pg_uuid_cmp(PG_FUNCTION_ARGS)
-{
-    int rc;
-
-    rc = _uuid_cmp(fcinfo);
-    PG_RETURN_INT32(rc);
-}
-
diff --git a/libs/uuid/pgsql/uuid.sql.in b/libs/uuid/pgsql/uuid.sql.in
deleted file mode 100644 (file)
index c2f01fc..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
---
---  OSSP uuid - Universally Unique Identifier
---  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
---  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
---
---  This file is part of OSSP uuid, a library for the generation
---  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
---
---  Permission to use, copy, modify, and distribute this software for
---  any purpose with or without fee is hereby granted, provided that
---  the above copyright notice and this permission notice appear in all
---  copies.
---
---  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
---  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
---  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
---  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
---  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
---  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
---  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
---  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
---  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
---  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
---  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
---  SUCH DAMAGE.
---
---  uuid.sql: PostgreSQL Binding (SQL part)
---
-
---
---  prolog
---
-
-SET search_path TO public;
-SET client_min_messages TO warning;
-
-DROP FUNCTION uuid_in(CSTRING)                    CASCADE;
-DROP FUNCTION uuid_out(uuid)                      CASCADE;
-DROP FUNCTION uuid_recv(INTERNAL)                 CASCADE;
-DROP FUNCTION uuid_send(uuid)                     CASCADE;
-DROP TYPE     uuid                                CASCADE;
-DROP CAST     (CSTRING AS uuid)                   CASCADE;
-DROP CAST     (uuid AS CSTRING)                   CASCADE;
-
-DROP FUNCTION uuid(CSTRING)                       CASCADE;
-DROP FUNCTION uuid(INTEGER)                       CASCADE;
-DROP FUNCTION uuid(INTEGER, CSTRING, CSTRING)     CASCADE;
-
-DROP FUNCTION uuid_eq(uuid)                       CASCADE;
-DROP FUNCTION uuid_ne(uuid)                       CASCADE;
-DROP FUNCTION uuid_lt(uuid, uuid)                 CASCADE;
-DROP FUNCTION uuid_gt(uuid, uuid)                 CASCADE;
-DROP FUNCTION uuid_le(uuid, uuid)                 CASCADE;
-DROP FUNCTION uuid_ge(uuid, uuid)                 CASCADE;
-DROP OPERATOR =(uuid,uuid)                        CASCADE;
-DROP OPERATOR <>(uuid,uuid)                       CASCADE;
-DROP OPERATOR <(uuid,uuid)                        CASCADE;
-DROP OPERATOR >(uuid,uuid)                        CASCADE;
-DROP OPERATOR <=(uuid,uuid)                       CASCADE;
-DROP OPERATOR >=(uuid,uuid)                       CASCADE;
-
-DROP FUNCTION uuid_hash(uuid)                     CASCADE;
-DROP FUNCTION uuid_cmp(uuid, uuid)                CASCADE;
-DROP OPERATOR CLASS uuid_ops USING hash           CASCADE;
-DROP OPERATOR CLASS uuid_ops USING btree          CASCADE;
-
-BEGIN;
-
---
---  the UUID data type
---
-
-CREATE FUNCTION
-    uuid_in(CSTRING) RETURNS uuid
-    STRICT
-    LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_in';
-
-CREATE FUNCTION
-    uuid_out(uuid) RETURNS CSTRING
-    STRICT
-    LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_out';
-
-CREATE FUNCTION
-    uuid_recv(INTERNAL) RETURNS uuid
-    STRICT
-    LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_recv';
-
-CREATE FUNCTION
-    uuid_send(uuid) RETURNS BYTEA
-    STRICT
-    LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_send';
-
-CREATE TYPE uuid (
-    INPUT   = uuid_in,   -- for SQL input
-    OUTPUT  = uuid_out,  -- for SQL output
-    RECEIVE = uuid_recv, -- for DB input
-    SEND    = uuid_send, -- for DB output
-    DEFAULT = 'uuid(1)',
-    INTERNALLENGTH = 16,
-    ALIGNMENT = char
-);
-
-COMMENT ON TYPE uuid
-    IS 'UUID type';
-
--- CREATE CAST (CSTRING AS uuid)
---     WITH FUNCTION uuid_in(CSTRING) AS ASSIGNMENT;
--- 
--- CREATE CAST (uuid AS CSTRING)
---     WITH FUNCTION uuid_out(uuid)   AS ASSIGNMENT;
-
---
---  the UUID constructor function
---
-
-CREATE FUNCTION
-    uuid(CSTRING) RETURNS uuid
-    IMMUTABLE STRICT
-    LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_in';
-
-CREATE FUNCTION
-    uuid(INTEGER) RETURNS uuid
-    VOLATILE CALLED ON NULL INPUT
-    LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_make';
-
-CREATE FUNCTION
-    uuid(INTEGER, CSTRING, CSTRING) RETURNS uuid
-    VOLATILE CALLED ON NULL INPUT
-    LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_make';
-
---
---  the UUID operators
---
-
-CREATE FUNCTION
-    uuid_eq(uuid, uuid) RETURNS BOOL
-    IMMUTABLE STRICT
-    LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_eq';
-
-CREATE FUNCTION
-    uuid_ne(uuid, uuid) RETURNS BOOL
-    IMMUTABLE STRICT
-    LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_ne';
-
-CREATE FUNCTION
-    uuid_lt(uuid, uuid) RETURNS BOOL
-    IMMUTABLE STRICT
-    LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_lt';
-
-CREATE FUNCTION
-    uuid_gt(uuid, uuid) RETURNS BOOL
-    IMMUTABLE STRICT
-    LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_gt';
-
-CREATE FUNCTION
-    uuid_le(uuid, uuid) RETURNS BOOL
-    IMMUTABLE STRICT
-    LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_le';
-
-CREATE FUNCTION
-    uuid_ge(uuid, uuid) RETURNS BOOL
-    IMMUTABLE STRICT
-    LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_ge';
-
-CREATE OPERATOR = (
-    leftarg    = uuid,
-    rightarg   = uuid,
-    negator    = <>,
-    procedure  = uuid_eq
-);
-
-CREATE OPERATOR <> (
-    leftarg    = uuid,
-    rightarg   = uuid,
-    negator    = =,
-    procedure  = uuid_ne
-);
-
-CREATE OPERATOR < (
-    leftarg    = uuid,
-    rightarg   = uuid,
-    commutator = >,
-    negator    = >=,
-    procedure  = uuid_lt
-);
-
-CREATE OPERATOR > (
-    leftarg    = uuid,
-    rightarg   = uuid,
-    commutator = <,
-    negator    = <=,
-    procedure  = uuid_gt
-);
-
-CREATE OPERATOR <= (
-    leftarg    = uuid,
-    rightarg   = uuid,
-    commutator = >=,
-    negator    = >,
-    procedure  = uuid_le
-);
-
-CREATE OPERATOR >= (
-    leftarg    = uuid,
-    rightarg   = uuid,
-    commutator = <=,
-    negator    = <,
-    procedure  = uuid_ge
-);
-
---
---  the UUID support for indexing
---
-
-CREATE FUNCTION
-    uuid_hash(uuid) RETURNS INTEGER
-    IMMUTABLE STRICT
-    LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_hash';
-
-CREATE FUNCTION
-    uuid_cmp(uuid, uuid) RETURNS INTEGER
-    IMMUTABLE STRICT
-    LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_cmp';
-
-CREATE OPERATOR CLASS uuid_ops
-    DEFAULT FOR TYPE uuid USING hash AS
-    OPERATOR 1 =,   -- 1: equal
-    FUNCTION 1 uuid_hash(uuid);
-
-CREATE OPERATOR CLASS uuid_ops
-    DEFAULT FOR TYPE uuid USING btree AS
-    OPERATOR 1 <,   -- 1: less than
-    OPERATOR 2 <=,  -- 2: less than or equal
-    OPERATOR 3 =,   -- 3: equal
-    OPERATOR 4 >=,  -- 4: greater than or equal
-    OPERATOR 5 >,   -- 5: greater than
-    FUNCTION 1 uuid_cmp(uuid, uuid);
-
---
---  epilog
---
-
-COMMIT;
-
diff --git a/libs/uuid/pgsql/uuid.txt b/libs/uuid/pgsql/uuid.txt
deleted file mode 100644 (file)
index c9506de..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-
-  OSSP uuid bindings for PostgreSQL
-  =================================
-
-  This is the OSSP uuid binding for the PostgreSQL RDBMS, providing
-  native UUID data type support.
-
-  Installation
-  ------------
-
-  In order to install the OSSP uuid binding into the PostgreSQL database
-  <database> one has run:
-
-  $ <prefix>/bin/psql \
-    -d <database> \
-    -U postgresql \
-    -f <prefix>/share/postgresql/uuid.sql
-
-  Usage
-  -----
-
-  psql -d <database>
-  psql> CREATE TABLE test (id UUID DEFAULT uuid(1), name TEXT);
-  psql> INSERT INTO test (name) VALUES
-        ('foo');
-  psql> INSERT INTO test (id, name) VALUES
-        (uuid(1), 'bar');
-  psql> INSERT INTO test (id, name) VALUES
-        (uuid(3, 'ns:URL', 'http://www.ossp.org/'), 'baz');
-  psql> INSERT INTO test (id, name) VALUES
-        (uuid(3, '6ba7b811-9dad-11d1-80b4-00c04fd430c8',
-                 'http://www.ossp.org/'), 'quux');
-  psql> SELECT uuid(4);
-  psql> SELECT * FROM test WHERE id = uuid(3, 'ns:URL', 'http://www.ossp.org/');
-  psql> DROP TABLE test;
-
diff --git a/libs/uuid/php/Makefile.local b/libs/uuid/php/Makefile.local
deleted file mode 100644 (file)
index 64e48f7..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  Makefile.local: PHP/Zend API build procedure (language: make)
-##
-
-PHP     = php
-EXTDIR  = `$(PHP)-config --extension-dir`
-DESTDIR =
-
-all: build
-
-config:
-       @if [ ! -f ./configure ]; then $(PHP)ize 2>/dev/null; fi
-       @if [ ! -f ./Makefile ]; then ./configure --with-php-config=$(PHP)-config; fi
-
-build: config
-       @$(MAKE) $(MFLAGS) -f Makefile
-
-test: build
-       @version=`$(PHP)-config --version | sed -e 's;^\([0-9]\).*$$;\1;'`; \
-       $(PHP) -q -d "safe_mode=0" -d "extension_dir=./" uuid.ts $$version
-
-install: build
-       @version=`$(PHP)-config --version | sed -e 's;^\([0-9]\).*$$;\1;'`; extdir="$(EXTDIR)"; \
-       echo "installing PHP$$version API into $$extdir"; \
-       ./build/shtool mkdir -f -p -m 755 $(DESTDIR)$$extdir; \
-       ./build/shtool install -c -m 755 modules/uuid.so $(DESTDIR)$$extdir/uuid.so; \
-       ./build/shtool install -c -m 644 uuid.php$$version $(DESTDIR)$$extdir/uuid.php
-
-clean:
-       @$(MAKE) $(MFLAGS) -f Makefile clean || true
-
-distclean: clean
-       -rm -f Makefile .deps
-       -rm -f config.status configure.lineno
-       -rm -f config.h config.log
-       -rm -f *.core *~
-
-realclean: distclean
-       -rm -rf autom4te.cache build include modules
-       -rm -f Makefile.fragments Makefile.objects Makefile.global
-       -rm -f acinclude.m4 aclocal.m4
-       -rm -f config.guess config.h.in config.nice config.sub
-       -rm -f configure configure.in 
-       -rm -f install-sh libtool ltmain.sh missing mkinstalldirs
-       -rm -f run-tests.php
-
diff --git a/libs/uuid/php/config.m4 b/libs/uuid/php/config.m4
deleted file mode 100644 (file)
index 5091b96..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-dnl
-dnl  OSSP uuid - Universally Unique Identifier
-dnl  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-dnl  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-dnl
-dnl  This file is part of OSSP uuid, a library for the generation
-dnl  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-dnl
-dnl  Permission to use, copy, modify, and distribute this software for
-dnl  any purpose with or without fee is hereby granted, provided that
-dnl  the above copyright notice and this permission notice appear in all
-dnl  copies.
-dnl
-dnl  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-dnl  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-dnl  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-dnl  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-dnl  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-dnl  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-dnl  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-dnl  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-dnl  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-dnl  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-dnl  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-dnl  SUCH DAMAGE.
-dnl
-dnl  config.m4: PHP/Zend API build-time configuration (language: m4)
-dnl
-
-PHP_ARG_ENABLE(uuid, OSSP uuid module,
-[  --enable-uuid             Enable OSSP uuid extension module.])
-
-if test "$PHP_UUID" != "no"; then
-    PHP_NEW_EXTENSION(uuid, uuid.c, $ext_shared)
-    AC_DEFINE(HAVE_UUID, 1, [Have OSSP uuid library])
-    PHP_ADD_LIBPATH([..], )
-    PHP_ADD_LIBRARY([uuid],, UUID_SHARED_LIBADD)
-    PHP_ADD_INCLUDE([..])
-    PHP_SUBST(UUID_SHARED_LIBADD)
-
-    dnl  avoid linking conflict with a potentially existing uuid_create(3) in libc
-    AC_CHECK_FUNC(uuid_create,[
-        SAVE_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -Wl,-Bsymbolic"
-        AC_TRY_LINK([],[], [EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-Bsymbolic"])
-        LDFLAGS="$SAVE_LDFLAGS"])
-fi
-
diff --git a/libs/uuid/php/package.xml b/libs/uuid/php/package.xml
deleted file mode 100644 (file)
index 14e2f86..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<package>
-  <name>uuid</name>
-  <summary>Universally Unique Identifiers (UUID) extension</summary>
-  <description>
-    UUID is a PHP extension for the creation
-    of Universally Unique Identifiers (UUID).
-  </description>
-  <license>MIT-Style License</license>
-  <maintainers>
-    <maintainer>
-      <user>rse</user>
-      <name>Ralf S. Engelschall</name>
-      <email>rse@engelschall.com</email>
-    </maintainer>
-  </maintainers>
-    <release>
-      <version>1.0</version>
-      <date>2003-05-17</date>
-      <state>unstable</state>
-    </release>
-  <configureoptions>
-    <configureoption name="with-uuid" default="autodetect" prompt="path to OSSP uuid?"/>
-  </configureoptions>
-  <filelist>
-    <dir role="src" name="/">
-      <file role="src">Makefile.local</file>
-      <file role="src">config.m4</file>
-      <file role="src">uuid.c</file>
-      <file role="php">uuid.php4</file>
-      <file role="php">uuid.php5</file>
-      <file role="src">uuid.ts</file>
-    </dir>
-  </filelist>
-</package>
diff --git a/libs/uuid/php/uuid.c b/libs/uuid/php/uuid.c
deleted file mode 100644 (file)
index b76b718..0000000
+++ /dev/null
@@ -1,531 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid.c: PHP/Zend API (language: C)
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "uuid.h"
-#include "php.h"
-#include "ext/standard/info.h"
-
-/* context structure */
-typedef struct {
-    uuid_t *uuid;
-} ctx_t;
-
-/* context implicit destruction */
-static void ctx_destructor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
-{
-    ctx_t *ctx = (ctx_t *)rsrc->ptr;
-
-    if (ctx != NULL) {
-        if (ctx->uuid != NULL) {
-            uuid_destroy(ctx->uuid);
-            ctx->uuid = NULL;
-        }
-        free(ctx);
-    }
-    return;
-}
-
-/* context resource identification */
-static int ctx_id;               /* internal number */
-#define ctx_name "UUID context"  /* external name   */
-
-/* module initialization */
-PHP_MINIT_FUNCTION(uuid)
-{
-    /* register resource identifier */
-    ctx_id = zend_register_list_destructors_ex(
-        ctx_destructor, NULL, ctx_name, module_number);
-
-    /* register API constants */
-    REGISTER_LONG_CONSTANT("UUID_VERSION", UUID_VERSION, CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_LEN_BIN", UUID_LEN_BIN, CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_LEN_STR", UUID_LEN_STR, CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_LEN_SIV", UUID_LEN_SIV, CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_RC_OK",   UUID_RC_OK,   CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_RC_ARG",  UUID_RC_ARG,  CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_RC_MEM",  UUID_RC_MEM,  CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_RC_SYS",  UUID_RC_SYS,  CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_RC_INT",  UUID_RC_INT,  CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_RC_IMP",  UUID_RC_IMP,  CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_MAKE_V1", UUID_MAKE_V1, CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_MAKE_V3", UUID_MAKE_V3, CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_MAKE_V4", UUID_MAKE_V4, CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_MAKE_V5", UUID_MAKE_V5, CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_MAKE_MC", UUID_MAKE_MC, CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_FMT_BIN", UUID_FMT_BIN, CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_FMT_STR", UUID_FMT_STR, CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_FMT_SIV", UUID_FMT_SIV, CONST_CS|CONST_PERSISTENT);
-    REGISTER_LONG_CONSTANT("UUID_FMT_TXT", UUID_FMT_TXT, CONST_CS|CONST_PERSISTENT);
-
-    return SUCCESS;
-}
-
-/* module shutdown */
-PHP_MSHUTDOWN_FUNCTION(uuid)
-{
-    return SUCCESS;
-}
-
-/* module information */
-PHP_MINFO_FUNCTION(uuid)
-{
-    char version[32];
-
-    /* provide PHP module information */
-    sprintf(version, "%lx", uuid_version());
-    php_info_print_table_start();
-    php_info_print_table_row(2, "UUID (Universally Unique Identifier) Support", "enabled");
-    php_info_print_table_row(2, "UUID Library Version", version);
-    php_info_print_table_end();
-
-    return;
-}
-
-/* API FUNCTION:
-   proto rc uuid_create(ctx)
-   $rc = uuid_create(&$uuid);
-   create UUID context */
-PHP_FUNCTION(uuid_create)
-{
-    zval *z_ctx;
-    ctx_t *ctx;
-    uuid_rc_t rc;
-
-    /* parse parameters */
-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &z_ctx) == FAILURE)
-        RETURN_LONG((long)UUID_RC_ARG);
-
-    /* post-process and sanity check parameters */
-    if (!PZVAL_IS_REF(z_ctx)) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_create: parameter wasn't passed by reference");
-        RETURN_LONG((long)UUID_RC_ARG);
-    }
-
-    /* perform operation */
-    if ((ctx = (ctx_t *)malloc(sizeof(ctx_t))) == NULL)
-        RETURN_LONG((long)UUID_RC_MEM);
-    if ((rc = uuid_create(&ctx->uuid)) != UUID_RC_OK) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_create: %s", uuid_error(rc));
-        RETURN_LONG((long)rc);
-    }
-    ZEND_REGISTER_RESOURCE(z_ctx, ctx, ctx_id);
-
-    RETURN_LONG((long)rc);
-}
-
-/* API FUNCTION:
-   proto rc uuid_destroy(ctx)
-   $rc = uuid_destroy($uuid);
-   destroy UUID context */
-PHP_FUNCTION(uuid_destroy)
-{
-    zval *z_ctx;
-    ctx_t *ctx;
-    uuid_rc_t rc;
-
-    /* parse parameters */
-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_ctx) == FAILURE)
-        RETURN_LONG((long)UUID_RC_ARG);
-
-    /* post-process and sanity check parameters */
-    ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
-    if (ctx == NULL || ctx->uuid == NULL) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_destroy: invalid context");
-        RETURN_LONG((long)UUID_RC_ARG);
-    }
-
-    /* perform operation */
-    if ((rc = uuid_destroy(ctx->uuid)) != UUID_RC_OK) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_destroy: %s", uuid_error(rc));
-        RETURN_LONG((long)rc);
-    }
-    ctx->uuid = NULL;
-
-    RETURN_LONG((long)rc);
-}
-
-/* API FUNCTION:
-   proto rc uuid_clone(ctx, &ctx2)
-   $rc = uuid_clone($uuid, &$uuid);
-   clone UUID context */
-PHP_FUNCTION(uuid_clone)
-{
-    zval *z_ctx;
-    ctx_t *ctx;
-    zval *z_clone;
-    ctx_t *clone;
-    uuid_rc_t rc;
-
-    /* parse parameters */
-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rz", &z_ctx, &z_clone) == FAILURE)
-        RETURN_LONG((long)UUID_RC_ARG);
-
-    /* post-process and sanity check parameters */
-    ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
-    if (ctx == NULL || ctx->uuid == NULL) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_clone: invalid context");
-        RETURN_LONG((long)UUID_RC_ARG);
-    }
-    if (!PZVAL_IS_REF(z_clone)) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_clone: clone parameter wasn't passed by reference");
-        RETURN_LONG((long)UUID_RC_ARG);
-    }
-
-    /* perform operation */
-    if ((clone = (ctx_t *)malloc(sizeof(ctx_t))) == NULL)
-        RETURN_LONG((long)UUID_RC_MEM);
-    if ((rc = uuid_clone(ctx->uuid, &clone->uuid)) != UUID_RC_OK) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_clone: %s", uuid_error(rc));
-        RETURN_LONG((long)rc);
-    }
-    ZEND_REGISTER_RESOURCE(z_clone, clone, ctx_id);
-
-    RETURN_LONG((long)rc);
-}
-
-/* API FUNCTION:
-   proto rc uuid_load(ctx, name)
-   $rc = uuid_name($uuid, $name);
-   load an existing UUID */
-PHP_FUNCTION(uuid_load)
-{
-    zval *z_ctx;
-    ctx_t *ctx;
-    char *name;
-    size_t name_len;
-    uuid_rc_t rc;
-
-    /* parse parameters */
-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &z_ctx, &name, &name_len) == FAILURE)
-        RETURN_LONG((long)UUID_RC_ARG);
-
-    /* post-process and sanity check parameters */
-    ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
-    if (ctx == NULL || ctx->uuid == NULL) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_load: invalid context");
-        RETURN_LONG((long)UUID_RC_ARG);
-    }
-
-    /* perform operation */
-    if ((rc = uuid_load(ctx->uuid, name)) != UUID_RC_OK) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_load: %s", uuid_error(rc));
-        RETURN_LONG((long)rc);
-    }
-
-    RETURN_LONG((long)rc);
-}
-
-/* API FUNCTION:
-   proto rc uuid_make(ctx, mode[, ..., ...])
-   $rc = uuid_make($uuid, $mode[, ..., ...]);
-   make a new UUID */
-PHP_FUNCTION(uuid_make)
-{
-    zval *z_ctx;
-    ctx_t *ctx;
-    uuid_rc_t rc;
-    long z_mode;
-    unsigned long mode;
-    zval *z_ctx_ns;
-    ctx_t *ctx_ns;
-    char *url;
-    size_t url_len;
-
-    /* parse parameters */
-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl|rs", &z_ctx, &z_mode, &z_ctx_ns, &url, &url_len) == FAILURE)
-        RETURN_LONG((long)UUID_RC_ARG);
-
-    /* post-process and sanity check parameters */
-    ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
-    if (ctx == NULL || ctx->uuid == NULL) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_make: invalid context");
-        RETURN_LONG((long)UUID_RC_ARG);
-    }
-    mode = (unsigned long)z_mode;
-
-    /* perform operation */
-    if (ZEND_NUM_ARGS() == 2 && ((mode & UUID_MAKE_V1) || (mode & UUID_MAKE_V4))) {
-        if ((rc = uuid_make(ctx->uuid, mode)) != UUID_RC_OK) {
-            php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_make: %s", uuid_error(rc));
-            RETURN_LONG((long)rc);
-        }
-    }
-    else if (ZEND_NUM_ARGS() == 4 && ((mode & UUID_MAKE_V3) || (mode & UUID_MAKE_V5))) {
-        ZEND_FETCH_RESOURCE(ctx_ns, ctx_t *, &z_ctx_ns, -1, ctx_name, ctx_id);
-        if (ctx_ns == NULL) {
-            php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_make: invalid namespace context");
-            RETURN_LONG((long)UUID_RC_ARG);
-        }
-        if (url == NULL) {
-            php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_make: invalid URL");
-            RETURN_LONG((long)UUID_RC_ARG);
-        }
-        if ((rc = uuid_make(ctx->uuid, mode, ctx_ns->uuid, url)) != UUID_RC_OK) {
-            php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_make: %s", uuid_error(rc));
-            RETURN_LONG((long)rc);
-        }
-    }
-    else {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_make: invalid mode");
-        RETURN_LONG((long)UUID_RC_ARG);
-    }
-
-    RETURN_LONG((long)rc);
-}
-
-/* API FUNCTION:
-   proto rc uuid_isnil(ctx, result)
-   $rc = uuid_isnil($uuid, &$result);
-   compare UUID for being Nil UUID */
-PHP_FUNCTION(uuid_isnil)
-{
-    zval *z_ctx;
-    ctx_t *ctx;
-    uuid_rc_t rc;
-    zval *z_result;
-    int result;
-
-    /* parse parameters */
-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rz", &z_ctx, &z_result) == FAILURE)
-        RETURN_LONG((long)UUID_RC_ARG);
-
-    /* post-process and sanity check parameters */
-    ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
-    if (ctx == NULL || ctx->uuid == NULL) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_isnil: invalid context");
-        RETURN_LONG((long)UUID_RC_ARG);
-    }
-    if (!PZVAL_IS_REF(z_result)) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_isnil: result parameter wasn't passed by reference");
-        RETURN_LONG((long)UUID_RC_ARG);
-    }
-
-    /* perform operation */
-    if ((rc = uuid_isnil(ctx->uuid, &result)) != UUID_RC_OK) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_isnil: %s", uuid_error(rc));
-        RETURN_LONG((long)rc);
-    }
-    ZVAL_LONG(z_result, (long)result);
-
-    RETURN_LONG((long)rc);
-}
-
-/* API FUNCTION:
-   proto rc uuid_compare(ctx, ctx2, result)
-   $rc = uuid_compare($uuid, $uuid2, &$result);
-   compare two UUIDs */
-PHP_FUNCTION(uuid_compare)
-{
-    zval *z_ctx;
-    ctx_t *ctx;
-    zval *z_ctx2;
-    ctx_t *ctx2;
-    uuid_rc_t rc;
-    zval *z_result;
-    int result;
-
-    /* parse parameters */
-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rrz", &z_ctx, &z_ctx2, &z_result) == FAILURE)
-        RETURN_LONG((long)UUID_RC_ARG);
-
-    /* post-process and sanity check parameters */
-    ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
-    if (ctx == NULL || ctx->uuid == NULL) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_compare: invalid context");
-        RETURN_LONG((long)UUID_RC_ARG);
-    }
-    ZEND_FETCH_RESOURCE(ctx2, ctx_t *, &z_ctx2, -1, ctx_name, ctx_id);
-    if (ctx2 == NULL || ctx2->uuid) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_compare: invalid context");
-        RETURN_LONG((long)UUID_RC_ARG);
-    }
-    if (!PZVAL_IS_REF(z_result)) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_compare: result parameter wasn't passed by reference");
-        RETURN_LONG((long)UUID_RC_ARG);
-    }
-
-    /* perform operation */
-    if ((rc = uuid_compare(ctx->uuid, ctx2->uuid, &result)) != UUID_RC_OK) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_compare: %s", uuid_error(rc));
-        RETURN_LONG((long)rc);
-    }
-    ZVAL_LONG(z_result, (long)result);
-
-    RETURN_LONG((long)rc);
-}
-
-/* API FUNCTION:
-   proto rc uuid_import(ctx, fmt, data)
-   $rc = uuid_import($ctx, $fmt, $data);
-   import UUID from variable */
-PHP_FUNCTION(uuid_import)
-{
-    zval *z_ctx;
-    ctx_t *ctx;
-    long z_fmt;
-    unsigned long fmt;
-    zval *z_data;
-    uuid_rc_t rc;
-    void *data_ptr;
-    size_t data_len;
-
-    /* parse parameters */
-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rls", &z_ctx, &z_fmt, &data_ptr, &data_len) == FAILURE)
-        RETURN_LONG((long)UUID_RC_ARG);
-
-    /* post-process and sanity check parameters */
-    ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
-    if (ctx == NULL || ctx->uuid == NULL) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_import: invalid context");
-        RETURN_LONG((long)UUID_RC_ARG);
-    }
-    fmt = (unsigned long)z_fmt;
-
-    /* perform operation */
-    if ((rc = uuid_import(ctx->uuid, fmt, data_ptr, data_len)) != UUID_RC_OK) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_import: %s", uuid_error(rc));
-        RETURN_LONG((long)rc);
-    }
-
-    RETURN_LONG((long)rc);
-}
-
-/* API FUNCTION:
-   proto rc uuid_export(ctx, fmt, data)
-   $rc = uuid_error($ctx, $fmt, &$data);
-   export UUID into variable */
-PHP_FUNCTION(uuid_export)
-{
-    zval *z_ctx;
-    ctx_t *ctx;
-    long z_fmt;
-    unsigned long fmt;
-    zval *z_data;
-    uuid_rc_t rc;
-    void *data_ptr;
-    size_t data_len;
-
-    /* parse parameters */
-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlz", &z_ctx, &z_fmt, &z_data) == FAILURE)
-        RETURN_LONG((long)UUID_RC_ARG);
-
-    /* post-process and sanity check parameters */
-    ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
-    if (ctx == NULL || ctx->uuid == NULL) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_export: invalid context");
-        RETURN_LONG((long)UUID_RC_ARG);
-    }
-    fmt = (unsigned long)z_fmt;
-    if (!PZVAL_IS_REF(z_data)) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_export: data parameter wasn't passed by reference");
-        RETURN_LONG((long)UUID_RC_ARG);
-    }
-
-    /* perform operation */
-    data_ptr = NULL;
-    data_len = 0;
-    if ((rc = uuid_export(ctx->uuid, fmt, &data_ptr, &data_len)) != UUID_RC_OK) {
-        php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_export: %s", uuid_error(rc));
-        RETURN_LONG((long)rc);
-    }
-    if (fmt == UUID_FMT_SIV)
-        data_len = strlen((char *)data_ptr);
-    else if (fmt == UUID_FMT_STR || fmt == UUID_FMT_TXT)
-        data_len--; /* PHP doesn't wish NUL-termination on strings */
-    ZVAL_STRINGL(z_data, data_ptr, data_len, 1);
-    free(data_ptr);
-
-    RETURN_LONG((long)rc);
-}
-
-/* API FUNCTION:
-   proto rc uuid_error(ctx)
-   $error = uuid_error($rc);
-   return error string corresponding to error return code */
-PHP_FUNCTION(uuid_error)
-{
-    int z_rc;
-    uuid_rc_t rc;
-    char *error;
-
-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &z_rc) == FAILURE)
-        RETURN_NULL();
-    rc = (uuid_rc_t)z_rc;
-    if ((error = uuid_error(rc)) == NULL)
-        RETURN_NULL();
-    RETURN_STRING(error, 1);
-}
-
-/* API FUNCTION:
-   proto int uuid_version()
-   $version = uuid_version();
-   return library version number */
-PHP_FUNCTION(uuid_version)
-{
-    RETURN_LONG((long)uuid_version());
-}
-
-/* module function table */
-static function_entry uuid_functions[] = {
-    PHP_FE(uuid_create,  NULL)
-    PHP_FE(uuid_destroy, NULL)
-    PHP_FE(uuid_clone,   NULL)
-    PHP_FE(uuid_load,    NULL)
-    PHP_FE(uuid_make,    NULL)
-    PHP_FE(uuid_isnil,   NULL)
-    PHP_FE(uuid_compare, NULL)
-    PHP_FE(uuid_import,  NULL)
-    PHP_FE(uuid_export,  NULL)
-    PHP_FE(uuid_error,   NULL)
-    PHP_FE(uuid_version, NULL)
-    { NULL, NULL, NULL }
-};
-
-/* module entry table */
-zend_module_entry uuid_module_entry = {
-    STANDARD_MODULE_HEADER,
-    "uuid",
-    uuid_functions,
-    PHP_MINIT(uuid),
-    PHP_MSHUTDOWN(uuid),
-    NULL,
-    NULL,
-    PHP_MINFO(uuid),
-    NO_VERSION_YET,
-    STANDARD_MODULE_PROPERTIES
-};
-
-#ifdef COMPILE_DL_UUID
-ZEND_GET_MODULE(uuid)
-#endif
-
diff --git a/libs/uuid/php/uuid.php4 b/libs/uuid/php/uuid.php4
deleted file mode 100644 (file)
index dd1cf03..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid.php: PHP/Zend API (language: php 4.x)
-##
-
-class UUID {
-    var $uuid = null;
-    function UUID() {
-        uuid_create(&$this->uuid);
-    }
-    function clone() {
-        $clone = new UUID;
-        uuid_clone($this->uuid, &$clone->uuid);
-        return $clone;
-    }
-    function load($name) {
-        uuid_load($this->uuid, $name);
-    }
-    function make($fmt, $ns = null, $url = null) {
-        if (func_num_args() == 3) {
-            uuid_make($this->uuid, $fmt, $ns->uuid, $url);
-        }
-        else {
-            uuid_make($this->uuid, $fmt);
-        }
-    }
-    function isnil() {
-        $result = 0;
-        uuid_isnil($this->uuid, &$result);
-        return $result;
-    }
-    function compare($other) {
-        $result = 0;
-        uuid_compare($this->uuid, $other->uuid, &$result);
-        return $result;
-    }
-    function import($fmt, $data) {
-        uuid_import($this->uuid, $fmt, $data);
-    }
-    function export($fmt) {
-        $data = "";
-        uuid_export($this->uuid, $fmt, &$data);
-        return $data;
-    }
-    function error($rc) {
-        return uuid_error($this->uuid, $rc);
-    }
-    function version() {
-        return uuid_version();
-    }
-}
-
-?>
diff --git a/libs/uuid/php/uuid.php5 b/libs/uuid/php/uuid.php5
deleted file mode 100644 (file)
index b5f4448..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid.php: PHP/Zend API (language: php 5.x)
-##
-
-class UUID {
-    private $uuid = null;
-    public function __construct() {
-        uuid_create(&$this->uuid);
-    }
-    public function __destruct() {
-        uuid_destroy($this->uuid);
-    }
-    public function __clone() {
-        $uuid = null;
-        uuid_clone($this->uuid, &$uuid);
-        $this->uuid = $uuid;
-    }
-    public function load($name) {
-        uuid_load($this->uuid, $name);
-    }
-    public function make($fmt, $ns = null, $url = null) {
-        if (func_num_args() == 3) {
-            uuid_make($this->uuid, $fmt, $ns->uuid, $url);
-        }
-        else {
-            uuid_make($this->uuid, $fmt);
-        }
-    }
-    public function isnil() {
-        $result = 0;
-        uuid_isnil($this->uuid, &$result);
-        return $result;
-    }
-    public function compare($other) {
-        $result = 0;
-        uuid_compare($this->uuid, $other->uuid, &$result);
-        return $result;
-    }
-    public function import($fmt, $data) {
-        uuid_import($this->uuid, $fmt, $data);
-    }
-    public function export($fmt) {
-        $data = "";
-        uuid_export($this->uuid, $fmt, &$data);
-        return $data;
-    }
-    public function error($rc) {
-        return uuid_error($this->uuid, $rc);
-    }
-    public function version() {
-        return uuid_version();
-    }
-}
-
-?>
diff --git a/libs/uuid/php/uuid.ts b/libs/uuid/php/uuid.ts
deleted file mode 100644 (file)
index 9349b3f..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-<?php
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid.ts: PHP/Zend API test procedure (language: php)
-##
-
-##
-##  INITIALIZATION
-##
-
-$php_version = $argv[1];
-
-print "++ loading DSO uuid.so (low-level API)\n";
-if (!extension_loaded('uuid')) {
-    dl('modules/uuid.so');
-}
-
-print "++ loading PHP uuid.php${php_version} (high-level API)\n";
-require "uuid.php${php_version}";
-
-print "++ establishing assertion environment\n";
-assert_options(ASSERT_ACTIVE, 1);
-assert_options(ASSERT_WARNING, 0);
-assert_options(ASSERT_QUIET_EVAL, 1);
-function my_assert_handler($file, $line, $code)
-{
-    echo "ASSERTION FAILED: $file: $line: $code\n";
-    exit(1);
-}
-assert_options(ASSERT_CALLBACK, 'my_assert_handler');
-
-##
-##  LOW-LEVEL API TESTING
-##
-
-print "++ testing low-level C-style API:\n";
-
-$uuid = 42;
-$rc = uuid_create(&$uuid);
-assert('$rc == 0');
-assert('$uuid != 42');
-
-$rc = uuid_make($uuid, UUID_MAKE_V1);
-assert('$rc == 0');
-
-$str = "foo";
-$rc = uuid_export($uuid, UUID_FMT_STR, &$str);
-assert('$rc == 0');
-assert('$str != "foo"');
-print "UUID: $str\n";
-
-$uuid_ns = 42;
-$rc = uuid_create(&$uuid_ns);
-assert('$rc == 0');
-
-$rc = uuid_load($uuid_ns, "ns:URL");
-assert('$rc == 0');
-
-$rc = uuid_make($uuid, UUID_MAKE_V3, $uuid_ns, "http://www.ossp.org/");
-assert('$rc == 0');
-
-$str = "bar";
-$rc = uuid_export($uuid, UUID_FMT_STR, &$str);
-assert('$rc == 0');
-assert('$str != "bar"');
-#assert('$str == "02d9e6d5-9467-382e-8f9b-9300a64ac3cd"');
-print "UUID: $str\n";
-
-$rc = uuid_destroy($uuid);
-assert('$rc == 0');
-
-$rc = uuid_create(&$uuid);
-assert('$rc == 0');
-
-$rc = uuid_import($uuid, UUID_FMT_STR, $str);
-assert('$rc == 0');
-
-$str = "baz";
-$rc = uuid_export($uuid, UUID_FMT_STR, &$str);
-assert('$rc == 0');
-assert('$str != "baz"');
-#assert('$str == "02d9e6d5-9467-382e-8f9b-9300a64ac3cd"');
-print "UUID: $str\n";
-
-$clone = null;
-$rc = uuid_clone($uuid, &$clone);
-assert('$rc == 0');
-assert('$clone != null');
-
-$rc = uuid_destroy($uuid);
-assert('$rc == 0');
-
-$str = "quux";
-$rc = uuid_export($clone, UUID_FMT_STR, &$str);
-assert('$rc == 0');
-assert('$str != "quux"');
-#assert('$str == "02d9e6d5-9467-382e-8f9b-9300a64ac3cd"');
-print "UUID: $str\n";
-
-##
-##  HIGH-LEVEL API TESTING
-##
-
-print "++ testing high-level OO-style API:\n";
-
-$uuid = new UUID;
-$uuid->make(UUID_MAKE_V1);
-$str = $uuid->export(UUID_FMT_STR);
-print "UUID: $str\n";
-
-$uuid_ns = new UUID;
-$uuid_ns->load("ns:URL");
-$uuid->make(UUID_MAKE_V3, $uuid_ns, "http://www.ossp.org/");
-$str = $uuid->export(UUID_FMT_STR);
-print "UUID: $str\n";
-$uuid = null;
-$uuid_ns = null;
-
-$uuid = new UUID;
-$uuid->import(UUID_FMT_STR, $str);
-$str = $uuid->export(UUID_FMT_STR);
-print "UUID: $str\n";
-
-if ($php_version == 4) {
-    eval('$clone = $uuid->clone();');
-}
-else {
-    eval('$clone = clone $uuid;');
-}
-$uuid = null;
-
-$str = $clone->export(UUID_FMT_STR);
-print "UUID: $str\n";
-
-$clone = null;
-
-?>
diff --git a/libs/uuid/shtool b/libs/uuid/shtool
deleted file mode 100755 (executable)
index a2d2567..0000000
+++ /dev/null
@@ -1,4007 +0,0 @@
-#!/bin/sh
-##
-##  GNU shtool -- The GNU Portable Shell Tool
-##  Copyright (c) 1994-2007 Ralf S. Engelschall <rse@engelschall.com>
-##
-##  See http://www.gnu.org/software/shtool/ for more information.
-##  See ftp://ftp.gnu.org/gnu/shtool/ for latest version.
-##
-##  Version:  2.0.7 (19-May-2007)
-##  Contents: all available modules
-##
-
-##
-##  This program is free software; you can redistribute it and/or modify
-##  it under the terms of the GNU General Public License as published by
-##  the Free Software Foundation; either version 2 of the License, or
-##  (at your option) any later version.
-##
-##  This program is distributed in the hope that it will be useful,
-##  but WITHOUT ANY WARRANTY; without even the implied warranty of
-##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-##  General Public License for more details.
-##
-##  You should have received a copy of the GNU General Public License
-##  along with this program; if not, write to the Free Software
-##  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-##  USA, or contact Ralf S. Engelschall <rse@engelschall.com>.
-##
-##  NOTICE: Given that you include this file verbatim into your own
-##  source tree, you are justified in saying that it remains separate
-##  from your package, and that this way you are simply just using GNU
-##  shtool. So, in this situation, there is no requirement that your
-##  package itself is licensed under the GNU General Public License in
-##  order to take advantage of GNU shtool.
-##
-
-##
-##  Usage: shtool [<options>] [<cmd-name> [<cmd-options>] [<cmd-args>]]
-##
-##  Available commands:
-##    echo       Print string with optional construct expansion
-##    mdate      Pretty-print modification time of a file or dir
-##    table      Pretty-print a field-separated list as a table
-##    prop       Display progress with a running propeller
-##    move       Move files with simultaneous substitution
-##    install    Install a program, script or datafile
-##    mkdir      Make one or more directories
-##    mkln       Make link with calculation of relative paths
-##    mkshadow   Make a shadow tree through symbolic links
-##    fixperm    Fix file permissions inside a source tree
-##    rotate     Logfile rotation
-##    tarball    Roll distribution tarballs
-##    subst      Apply sed(1) substitution operations
-##    platform   Platform Identification Utility
-##    arx        Extended archive command
-##    slo        Separate linker options by library class
-##    scpp       Sharing C Pre-Processor
-##    version    Maintain a version information file
-##    path       Deal with program paths
-##
-
-#   maximum Bourne-Shell compatibility
-if [ ".$ZSH_VERSION" != . ] && (emulate sh) >/dev/null 2>&1; then
-    #   reconfigure zsh(1)
-    emulate sh
-    NULLCMD=:
-    alias -g '${1+"$@"}'='"$@"'
-elif [ ".$BASH_VERSION" != . ] && (set -o posix) >/dev/null 2>&1; then
-    #   reconfigure bash(1)
-    set -o posix
-fi
-
-#   maximum independence of NLS nuisances
-for var in \
-    LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-    LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-    LC_TELEPHONE LC_TIME
-do
-    if (set +x; test -z "`(eval $var=C; export $var) 2>&1`"); then
-        eval $var=C; export $var
-    else
-        unset $var
-    fi
-done
-
-#   initial command line handling
-if [ $# -eq 0 ]; then
-    echo "$0:Error: invalid command line" 1>&2
-    echo "$0:Hint:  run \`$0 -h' for usage" 1>&2
-    exit 1
-fi
-if [ ".$1" = ".-h" ] || [ ".$1" = ".--help" ]; then
-    echo "This is GNU shtool, version 2.0.7 (19-May-2007)"
-    echo 'Copyright (c) 1994-2007 Ralf S. Engelschall <rse@engelschall.com>'
-    echo 'Report bugs to <bug-shtool@gnu.org>'
-    echo ''
-    echo 'Usage: shtool [<options>] [<cmd-name> [<cmd-options>] [<cmd-args>]]'
-    echo ''
-    echo 'Available global <options>:'
-    echo '  -v, --version   display shtool version information'
-    echo '  -h, --help      display shtool usage help page (this one)'
-    echo '  -d, --debug     display shell trace information'
-    echo '  -r, --recreate  recreate this shtool script via shtoolize'
-    echo ''
-    echo 'Available <cmd-name> [<cmd-options>] [<cmd-args>]:'
-    echo '  echo     [-n|--newline] [-e|--expand] [<string> ...]'
-    echo '  mdate    [-n|--newline] [-z|--zero] [-s|--shorten] [-d|--digits]'
-    echo '           [-f|--field-sep <str>] [-o|--order <spec>] <path>'
-    echo '  table    [-F|--field-sep <sep>] [-w|--width <width>] [-c|--columns'
-    echo '           <cols>] [-s|--strip <strip>] <str><sep><str>...'
-    echo '  prop     [-p|--prefix <str>]'
-    echo '  move     [-v|--verbose] [-t|--trace] [-e|--expand] [-p|--preserve]'
-    echo '           <src-file> <dst-file>'
-    echo '  install  [-v|--verbose] [-t|--trace] [-d|--mkdir] [-c|--copy]'
-    echo '           [-C|--compare-copy] [-s|--strip] [-m|--mode <mode>]'
-    echo '           [-o|--owner <owner>] [-g|--group <group>] [-e|--exec'
-    echo '           <sed-cmd>] <file> [<file> ...] <path>'
-    echo '  mkdir    [-t|--trace] [-f|--force] [-p|--parents] [-m|--mode'
-    echo '           <mode>] [-o|--owner <owner>] [-g|--group <group>] <dir>'
-    echo '           [<dir> ...]'
-    echo '  mkln     [-t|--trace] [-f|--force] [-s|--symbolic] <src-path>'
-    echo '           [<src-path> ...] <dst-path>'
-    echo '  mkshadow [-v|--verbose] [-t|--trace] [-a|--all] <src-dir> <dst-dir>'
-    echo '  fixperm  [-v|--verbose] [-t|--trace] <path> [<path> ...]'
-    echo '  rotate   [-v|--verbose] [-t|--trace] [-f|--force] [-n|--num-files'
-    echo '           <count>] [-s|--size <size>] [-c|--copy] [-r|--remove]'
-    echo '           [-a|--archive-dir <dir>] [-z|--compress [<tool>:]<level>]'
-    echo '           [-b|--background] [-d|--delay] [-p|--pad <len>] [-m|--mode'
-    echo '           <mode>] [-o|--owner <owner>] [-g|--group <group>] [-M|--migrate'
-    echo '           <cmd>] [-P|--prolog <cmd>] [-E|--epilog <cmd>] <file> [...]'
-    echo '  tarball  [-t|--trace] [-v|--verbose] [-o|--output <tarball>]'
-    echo '           [-c|--compress <prog>] [-d|--directory <dir>] [-u|--user'
-    echo '           <user>] [-g|--group <group>] [-e|--exclude <pattern>]'
-    echo '           <path> [<path> ...]'
-    echo '  subst    [-v|--verbose] [-t|--trace] [-n|--nop] [-w|--warning]'
-    echo '           [-q|--quiet] [-s|--stealth] [-i|--interactive] [-b|--backup'
-    echo '           <ext>] [-e|--exec <cmd>] [-f|--file <cmd-file>] [<file>]'
-    echo '           [...]'
-    echo '  platform [-F|--format <format>] [-S|--sep <string>] [-C|--conc'
-    echo '           <string>] [-L|--lower] [-U|--upper] [-v|--verbose]'
-    echo '           [-c|--concise] [-n|--no-newline] [-t|--type <type>]'
-    echo '           [-V|--version] [-h|--help]'
-    echo '  arx      [-t|--trace] [-C|--command <cmd>] <op> <archive> [<file>'
-    echo '           ...]'
-    echo '  slo      [-p|--prefix <str>] -- -L<dir> -l<lib> [-L<dir> -l<lib>'
-    echo '           ...]'
-    echo '  scpp     [-v|--verbose] [-p|--preserve] [-f|--filter <filter>]'
-    echo '           [-o|--output <ofile>] [-t|--template <tfile>] [-M|--mark'
-    echo '           <mark>] [-D|--define <dname>] [-C|--class <cname>]'
-    echo '           <file> [<file> ...]'
-    echo '  version  [-l|--language <lang>] [-n|--name <name>] [-p|--prefix'
-    echo '           <prefix>] [-s|--set <version>] [-e|--edit] [-i|--increase'
-    echo '           <knob>] [-d|--display <type>] <file>'
-    echo '  path     [-s|--suppress] [-r|--reverse] [-d|--dirname] [-b|--basename]'
-    echo '           [-m|--magic] [-p|--path <path>] <str> [<str> ...]'
-    echo ''
-    exit 0
-fi
-if [ ".$1" = ".-v" ] || [ ".$1" = ".--version" ]; then
-    echo "GNU shtool 2.0.7 (19-May-2007)"
-    exit 0
-fi
-if [ ".$1" = ".-r" ] || [ ".$1" = ".--recreate" ]; then
-    shtoolize -oshtool all
-    exit 0
-fi
-if [ ".$1" = ".-d" ] || [ ".$1" = ".--debug" ]; then
-    shift
-    set -x
-fi
-name=`echo "$0" | sed -e 's;.*/\([^/]*\)$;\1;' -e 's;-sh$;;' -e 's;\.sh$;;'`
-case "$name" in
-    echo|mdate|table|prop|move|install|mkdir|mkln|mkshadow|fixperm|rotate|tarball|subst|platform|arx|slo|scpp|version|path )
-        #   implicit tool command selection
-        tool="$name"
-        ;;
-    * )
-        #   explicit tool command selection
-        tool="$1"
-        shift
-        ;;
-esac
-arg_spec=""
-opt_spec=""
-gen_tmpfile=no
-
-##
-##  DISPATCH INTO SCRIPT PROLOG
-##
-
-case $tool in
-    echo )
-        str_tool="echo"
-        str_usage="[-n|--newline] [-e|--expand] [<string> ...]"
-        arg_spec="0+"
-        opt_spec="n.e."
-        opt_alias="n:newline,e:expand"
-        opt_n=no
-        opt_e=no
-        ;;
-    mdate )
-        str_tool="mdate"
-        str_usage="[-n|--newline] [-z|--zero] [-s|--shorten] [-d|--digits] [-f|--field-sep <str>] [-o|--order <spec>] <path>"
-        arg_spec="1="
-        opt_spec="n.z.s.d.f:o:"
-        opt_alias="n:newline,z:zero,s:shorten,d:digits,f:field-sep,o:order"
-        opt_n=no
-        opt_z=no
-        opt_s=no
-        opt_d=no
-        opt_f=" "
-        opt_o="dmy"
-        ;;
-    table )
-        str_tool="table"
-        str_usage="[-F|--field-sep <sep>] [-w|--width <width>] [-c|--columns <cols>] [-s|--strip <strip>] <str><sep><str>..."
-        arg_spec="1+"
-        opt_spec="F:w:c:s:"
-        opt_alias="F:field-sep,w:width,c:columns,s:strip"
-        opt_F=":"
-        opt_w=15
-        opt_c=3
-        opt_s=79
-        ;;
-    prop )
-        str_tool="prop"
-        str_usage="[-p|--prefix <str>]"
-        arg_spec="0="
-        opt_spec="p:"
-        opt_alias="p:prefix"
-        opt_p=""
-        ;;
-    move )
-        str_tool="move"
-        str_usage="[-v|--verbose] [-t|--trace] [-e|--expand] [-p|--preserve] <src-file> <dst-file>"
-        arg_spec="2="
-        opt_spec="v.t.e.p."
-        opt_alias="v:verbose,t:trace,e:expand,p:preserve"
-        opt_v=no
-        opt_t=no
-        opt_e=no
-        opt_p=no
-        ;;
-    install )
-        str_tool="install"
-        str_usage="[-v|--verbose] [-t|--trace] [-d|--mkdir] [-c|--copy] [-C|--compare-copy] [-s|--strip] [-m|--mode <mode>] [-o|--owner <owner>] [-g|--group <group>] [-e|--exec <sed-cmd>] <file> [<file> ...] <path>"
-        arg_spec="1+"
-        opt_spec="v.t.d.c.C.s.m:o:g:e+"
-        opt_alias="v:verbose,t:trace,d:mkdir,c:copy,C:compare-copy,s:strip,m:mode,o:owner,g:group,e:exec"
-        opt_v=no
-        opt_t=no
-        opt_d=no
-        opt_c=no
-        opt_C=no
-        opt_s=no
-        opt_m="0755"
-        opt_o=""
-        opt_g=""
-        opt_e=""
-        ;;
-    mkdir )
-        str_tool="mkdir"
-        str_usage="[-t|--trace] [-f|--force] [-p|--parents] [-m|--mode <mode>] [-o|--owner <owner>] [-g|--group <group>] <dir> [<dir> ...]"
-        arg_spec="1+"
-        opt_spec="t.f.p.m:o:g:"
-        opt_alias="t:trace,f:force,p:parents,m:mode,o:owner,g:group"
-        opt_t=no
-        opt_f=no
-        opt_p=no
-        opt_m=""
-        opt_o=""
-        opt_g=""
-        ;;
-    mkln )
-        str_tool="mkln"
-        str_usage="[-t|--trace] [-f|--force] [-s|--symbolic] <src-path> [<src-path> ...] <dst-path>"
-        arg_spec="2+"
-        opt_spec="t.f.s."
-        opt_alias="t:trace,f:force,s:symbolic"
-        opt_t=no
-        opt_f=no
-        opt_s=no
-        ;;
-    mkshadow )
-        str_tool="mkshadow"
-        str_usage="[-v|--verbose] [-t|--trace] [-a|--all] <src-dir> <dst-dir>"
-        arg_spec="2="
-        opt_spec="v.t.a."
-        opt_alias="v:verbose,t:trace,a:all"
-        opt_v=no
-        opt_t=no
-        opt_a=no
-        ;;
-    fixperm )
-        str_tool="fixperm"
-        str_usage="[-v|--verbose] [-t|--trace] <path> [<path> ...]"
-        arg_spec="1+"
-        opt_spec="v.t."
-        opt_alias="v:verbose,t:trace"
-        opt_v=no
-        opt_t=no
-        ;;
-    rotate )
-        str_tool="rotate"
-        str_usage="[-v|--verbose] [-t|--trace] [-f|--force] [-n|--num-files <count>] [-s|--size <size>] [-c|--copy] [-r|--remove] [-a|--archive-dir <dir>] [-z|--compress [<tool>:]<level>] [-b|--background] [-d|--delay] [-p|--pad <len>] [-m|--mode <mode>] [-o|--owner <owner>] [-g|--group <group>] [-M|--migrate <cmd>] [-P|--prolog <cmd>] [-E|--epilog <cmd>] <file> [...]"
-        arg_spec="1+"
-        opt_spec="v.t.f.n:s:c.r.a:z:b.d.p:o:g:m:M:P:E:"
-        opt_alias="v:verbose,t:trace,f:force,n:num-files,s:size,c:copy,r:remove,a:archive-dir,z:compress,b:background,d:delay,p:pad,o:owner,g:group,m:mode,M:migrate,P:prolog,E:epilog"
-        opt_v=no
-        opt_t=no
-        opt_f=no
-        opt_n=10
-        opt_s=""
-        opt_c=no
-        opt_r=no
-        opt_a=""
-        opt_z=""
-        opt_b=no
-        opt_d=no
-        opt_p=1
-        opt_o=""
-        opt_g=""
-        opt_m=""
-        opt_M=""
-        opt_P=""
-        opt_E=""
-        ;;
-    tarball )
-        str_tool="tarball"
-        str_usage="[-t|--trace] [-v|--verbose] [-o|--output <tarball>] [-c|--compress <prog>] [-d|--directory <dir>] [-u|--user <user>] [-g|--group <group>] [-e|--exclude <pattern>] <path> [<path> ...]"
-        gen_tmpfile=yes
-        arg_spec="1+"
-        opt_spec="t.v.o:c:d:u:g:e:"
-        opt_alias="t:trace,v:verbose,o:output,c:compress,d:directory,u:user,g:group,e:exclude"
-        opt_t=no
-        opt_v=no
-        opt_o=""
-        opt_c=""
-        opt_d=""
-        opt_u=""
-        opt_g=""
-        opt_e="CVS,\\.cvsignore,\\.svn,\\.[oa]\$"
-        ;;
-    subst )
-        str_tool="subst"
-        str_usage="[-v|--verbose] [-t|--trace] [-n|--nop] [-w|--warning] [-q|--quiet] [-s|--stealth] [-i|--interactive] [-b|--backup <ext>] [-e|--exec <cmd>] [-f|--file <cmd-file>] [<file>] [...]"
-        gen_tmpfile=yes
-        arg_spec="0+"
-        opt_spec="v.t.n.w.q.s.i.b:e+f:"
-        opt_alias="v:verbose,t:trace,n:nop,w:warning,q:quiet,s:stealth,i:interactive,b:backup,e:exec,f:file"
-        opt_v=no
-        opt_t=no
-        opt_n=no
-        opt_w=no
-        opt_q=no
-        opt_s=no
-        opt_i=no
-        opt_b=""
-        opt_e=""
-        opt_f=""
-        ;;
-    platform )
-        str_tool="platform"
-        str_usage="[-F|--format <format>] [-S|--sep <string>] [-C|--conc <string>] [-L|--lower] [-U|--upper] [-v|--verbose] [-c|--concise] [-n|--no-newline] [-t|--type <type>] [-V|--version] [-h|--help]"
-        arg_spec="0="
-        opt_spec="F:S:C:L.U.v.c.n.t:d.V.h."
-        opt_alias="F:format,S:sep,C:conc,L:lower,U:upper,v:verbose,c:consise,t:type,n:no-newline,V:version,h:help"
-        opt_F="%{sp} (%{ap})"
-        opt_S=" "
-        opt_C="/"
-        opt_L=no
-        opt_U=no
-        opt_t=""
-        opt_v=no
-        opt_c=no
-        opt_n=no
-        opt_V=no
-        opt_h=no
-        ;;
-    arx )
-        str_tool="arx"
-        str_usage="[-t|--trace] [-C|--command <cmd>] <op> <archive> [<file> ...]"
-        arg_spec="2+"
-        opt_spec="t.C:"
-        opt_alias="t:trace,C:command"
-        opt_t=no
-        opt_C="ar"
-        ;;
-    slo )
-        str_tool="slo"
-        str_usage="[-p|--prefix <str>] -- -L<dir> -l<lib> [-L<dir> -l<lib> ...]"
-        arg_spec="1+"
-        opt_spec="p:"
-        opt_alias="p:prefix"
-        opt_p="SLO_"
-        ;;
-    scpp )
-        str_tool="scpp"
-        str_usage="[-v|--verbose] [-p|--preserve] [-f|--filter <filter>] [-o|--output <ofile>] [-t|--template <tfile>] [-M|--mark <mark>] [-D|--define <dname>] [-C|--class <cname>] <file> [<file> ...]"
-        gen_tmpfile=yes
-        arg_spec="1+"
-        opt_spec="v.p.f+o:t:M:D:C:"
-        opt_alias="v:verbose,p:preserve,f:filter,o:output,t:template,M:mark,D:define,C:class"
-        opt_v=no
-        opt_p=no
-        opt_f=""
-        opt_o="lib.h"
-        opt_t="lib.h.in"
-        opt_M="%%MARK%%"
-        opt_D="cpp"
-        opt_C="intern"
-        ;;
-    version )
-        str_tool="version"
-        str_usage="[-l|--language <lang>] [-n|--name <name>] [-p|--prefix <prefix>] [-s|--set <version>] [-e|--edit] [-i|--increase <knob>] [-d|--display <type>] <file>"
-        arg_spec="1="
-        opt_spec="l:n:p:s:i:e.d:"
-        opt_alias="l:language,n:name,p:prefix,s:set,e:edit,i:increase,d:display"
-        opt_l="txt"
-        opt_n="unknown"
-        opt_p=""
-        opt_s=""
-        opt_e="no"
-        opt_i=""
-        opt_d="short"
-        ;;
-    path )
-        str_tool="path"
-        str_usage="[-s|--suppress] [-r|--reverse] [-d|--dirname] [-b|--basename] [-m|--magic] [-p|--path <path>] <str> [<str> ...]"
-        gen_tmpfile=yes
-        arg_spec="1+"
-        opt_spec="s.r.d.b.m.p:"
-        opt_alias="s:suppress,r:reverse,d:dirname,b:basename,m:magic,p:path"
-        opt_s=no
-        opt_r=no
-        opt_d=no
-        opt_b=no
-        opt_m=no
-        opt_p="$PATH"
-        ;;
-    -* )
-        echo "$0:Error: unknown option \`$tool'" 2>&1
-        echo "$0:Hint:  run \`$0 -h' for usage" 2>&1
-        exit 1
-        ;;
-    * )
-        echo "$0:Error: unknown command \`$tool'" 2>&1
-        echo "$0:Hint:  run \`$0 -h' for usage" 2>&1
-        exit 1
-        ;;
-esac
-
-##
-##  COMMON UTILITY CODE
-##
-
-#   commonly used ASCII values
-ASC_TAB="      "
-ASC_NL="
-"
-
-#   determine name of tool
-if [ ".$tool" != . ]; then
-    #   used inside shtool script
-    toolcmd="$0 $tool"
-    toolcmdhelp="shtool $tool"
-    msgprefix="shtool:$tool"
-else
-    #   used as standalone script
-    toolcmd="$0"
-    toolcmdhelp="sh $0"
-    msgprefix="$str_tool"
-fi
-
-#   parse argument specification string
-eval `echo $arg_spec |\
-      sed -e 's/^\([0-9]*\)\([+=]\)/arg_NUMS=\1; arg_MODE=\2/'`
-
-#   parse option specification string
-eval `echo h.$opt_spec |\
-      sed -e 's/\([a-zA-Z0-9]\)\([.:+]\)/opt_MODE_\1=\2;/g'`
-
-#   parse option alias string
-eval `echo h:help,$opt_alias |\
-      sed -e 's/-/_/g' -e 's/\([a-zA-Z0-9]\):\([^,]*\),*/opt_ALIAS_\2=\1;/g'`
-
-#   interate over argument line
-opt_PREV=''
-while [ $# -gt 0 ]; do
-    #   special option stops processing
-    if [ ".$1" = ".--" ]; then
-        shift
-        break
-    fi
-
-    #   determine option and argument
-    opt_ARG_OK=no
-    if [ ".$opt_PREV" != . ]; then
-        #   merge previous seen option with argument
-        opt_OPT="$opt_PREV"
-        opt_ARG="$1"
-        opt_ARG_OK=yes
-        opt_PREV=''
-    else
-        #   split argument into option and argument
-        case "$1" in
-            --[a-zA-Z0-9]*=*)
-                eval `echo "x$1" |\
-                      sed -e 's/^x--\([a-zA-Z0-9-]*\)=\(.*\)$/opt_OPT="\1";opt_ARG="\2"/'`
-                opt_STR=`echo $opt_OPT | sed -e 's/-/_/g'`
-                eval "opt_OPT=\${opt_ALIAS_${opt_STR}-${opt_OPT}}"
-                ;;
-            --[a-zA-Z0-9]*)
-                opt_OPT=`echo "x$1" | cut -c4-`
-                opt_STR=`echo $opt_OPT | sed -e 's/-/_/g'`
-                eval "opt_OPT=\${opt_ALIAS_${opt_STR}-${opt_OPT}}"
-                opt_ARG=''
-                ;;
-            -[a-zA-Z0-9]*)
-                eval `echo "x$1" |\
-                      sed -e 's/^x-\([a-zA-Z0-9]\)/opt_OPT="\1";/' \
-                          -e 's/";\(.*\)$/"; opt_ARG="\1"/'`
-                ;;
-            -[a-zA-Z0-9])
-                opt_OPT=`echo "x$1" | cut -c3-`
-                opt_ARG=''
-                ;;
-            *)
-                break
-                ;;
-        esac
-    fi
-
-    #   eat up option
-    shift
-
-    #   determine whether option needs an argument
-    eval "opt_MODE=\$opt_MODE_${opt_OPT}"
-    if [ ".$opt_ARG" = . ] && [ ".$opt_ARG_OK" != .yes ]; then
-        if [ ".$opt_MODE" = ".:" ] || [ ".$opt_MODE" = ".+" ]; then
-            opt_PREV="$opt_OPT"
-            continue
-        fi
-    fi
-
-    #   process option
-    case $opt_MODE in
-        '.' )
-            #   boolean option
-            eval "opt_${opt_OPT}=yes"
-            ;;
-        ':' )
-            #   option with argument (multiple occurances override)
-            eval "opt_${opt_OPT}=\"\$opt_ARG\""
-            ;;
-        '+' )
-            #   option with argument (multiple occurances append)
-            eval "opt_${opt_OPT}=\"\$opt_${opt_OPT}\${ASC_NL}\$opt_ARG\""
-            ;;
-        * )
-            echo "$msgprefix:Error: unknown option: \`$opt_OPT'" 1>&2
-            echo "$msgprefix:Hint:  run \`$toolcmdhelp -h' or \`man shtool' for details" 1>&2
-            exit 1
-            ;;
-    esac
-done
-if [ ".$opt_PREV" != . ]; then
-    echo "$msgprefix:Error: missing argument to option \`$opt_PREV'" 1>&2
-    echo "$msgprefix:Hint:  run \`$toolcmdhelp -h' or \`man shtool' for details" 1>&2
-    exit 1
-fi
-
-#   process help option
-if [ ".$opt_h" = .yes ]; then
-    echo "Usage: $toolcmdhelp $str_usage"
-    exit 0
-fi
-
-#   complain about incorrect number of arguments
-case $arg_MODE in
-    '=' )
-        if [ $# -ne $arg_NUMS ]; then
-            echo "$msgprefix:Error: invalid number of arguments (exactly $arg_NUMS expected)" 1>&2
-            echo "$msgprefix:Hint:  run \`$toolcmd -h' or \`man shtool' for details" 1>&2
-            exit 1
-        fi
-        ;;
-    '+' )
-        if [ $# -lt $arg_NUMS ]; then
-            echo "$msgprefix:Error: invalid number of arguments (at least $arg_NUMS expected)" 1>&2
-            echo "$msgprefix:Hint:  run \`$toolcmd -h' or \`man shtool' for details" 1>&2
-            exit 1
-        fi
-        ;;
-esac
-
-#   establish a temporary file on request
-if [ ".$gen_tmpfile" = .yes ]; then
-    #   create (explicitly) secure temporary directory
-    if [ ".$TMPDIR" != . ]; then
-        tmpdir="$TMPDIR"
-    elif [ ".$TEMPDIR" != . ]; then
-        tmpdir="$TEMPDIR"
-    else
-        tmpdir="/tmp"
-    fi
-    tmpdir="$tmpdir/.shtool.$$"
-    ( umask 077
-      rm -rf "$tmpdir" >/dev/null 2>&1 || true
-      mkdir  "$tmpdir" >/dev/null 2>&1
-      if [ $? -ne 0 ]; then
-          echo "$msgprefix:Error: failed to create temporary directory \`$tmpdir'" 1>&2
-          exit 1
-      fi
-    )
-
-    #   create (implicitly) secure temporary file
-    tmpfile="$tmpdir/shtool.tmp"
-    touch "$tmpfile"
-fi
-
-#   utility function: map string to lower case
-util_lower () {
-    echo "$1" | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'
-}
-
-#   utility function: map string to upper case
-util_upper () {
-    echo "$1" | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-}
-
-#   cleanup procedure
-shtool_exit () {
-    rc="$1"
-    if [ ".$gen_tmpfile" = .yes ]; then
-        rm -rf "$tmpdir" >/dev/null 2>&1 || true
-    fi
-    exit $rc
-}
-
-##
-##  DISPATCH INTO SCRIPT BODY
-##
-
-case $tool in
-
-echo )
-    ##
-    ##  echo -- Print string with optional construct expansion
-    ##  Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    text="$*"
-
-    #   check for broken escape sequence expansion
-    seo=''
-    bytes=`echo '\1' | wc -c | awk '{ printf("%s", $1); }'`
-    if [ ".$bytes" != .3 ]; then
-        bytes=`echo -E '\1' | wc -c | awk '{ printf("%s", $1); }'`
-        if [ ".$bytes" = .3 ]; then
-            seo='-E'
-        fi
-    fi
-
-    #   check for existing -n option (to suppress newline)
-    minusn=''
-    bytes=`echo -n 123 2>/dev/null | wc -c | awk '{ printf("%s", $1); }'`
-    if [ ".$bytes" = .3 ]; then
-        minusn='-n'
-    fi
-
-    #   determine terminal bold sequence
-    term_bold=''
-    term_norm=''
-    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%[Bb]'`" != . ]; then
-        case $TERM in
-            #   for the most important terminal types we directly know the sequences
-            xterm|xterm*|vt220|vt220*)
-                term_bold=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' </dev/null 2>/dev/null`
-                term_norm=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' </dev/null 2>/dev/null`
-                ;;
-            vt100|vt100*|cygwin)
-                term_bold=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }' </dev/null 2>/dev/null`
-                term_norm=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }' </dev/null 2>/dev/null`
-                ;;
-            #   for all others, we try to use a possibly existing `tput' or `tcout' utility
-            * )
-                paths=`echo $PATH | sed -e 's/:/ /g'`
-                for tool in tput tcout; do
-                    for dir in $paths; do
-                        if [ -r "$dir/$tool" ]; then
-                            for seq in bold md smso; do # 'smso' is last
-                                bold="`$dir/$tool $seq 2>/dev/null`"
-                                if [ ".$bold" != . ]; then
-                                    term_bold="$bold"
-                                    break
-                                fi
-                            done
-                            if [ ".$term_bold" != . ]; then
-                                for seq in sgr0 me rmso init reset; do # 'reset' is last
-                                    norm="`$dir/$tool $seq 2>/dev/null`"
-                                    if [ ".$norm" != . ]; then
-                                        term_norm="$norm"
-                                        break
-                                    fi
-                                done
-                            fi
-                            break
-                        fi
-                    done
-                    if [ ".$term_bold" != . ] && [ ".$term_norm" != . ]; then
-                        break;
-                    fi
-                done
-                ;;
-        esac
-        if [ ".$term_bold" = . ] || [ ".$term_norm" = . ]; then
-            echo "$msgprefix:Warning: unable to determine terminal sequence for bold mode" 1>&2
-            term_bold=''
-            term_norm=''
-        fi
-    fi
-
-    #   determine user name
-    username=''
-    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%[uUgG]'`" != . ]; then
-        username="`(id -un) 2>/dev/null`"
-        if [ ".$username" = . ]; then
-            str="`(id) 2>/dev/null`"
-            if [ ".`echo $str | grep '^uid[    ]*=[    ]*[0-9]*('`" != . ]; then
-                username=`echo $str | sed -e 's/^uid[  ]*=[    ]*[0-9]*(//' -e 's/).*$//'`
-            fi
-            if [ ".$username" = . ]; then
-                username="$LOGNAME"
-                if [ ".$username" = . ]; then
-                    username="$USER"
-                    if [ ".$username" = . ]; then
-                        username="`(whoami) 2>/dev/null |\
-                                   awk '{ printf("%s", $1); }'`"
-                        if [ ".$username" = . ]; then
-                            username="`(who am i) 2>/dev/null |\
-                                       awk '{ printf("%s", $1); }'`"
-                            if [ ".$username" = . ]; then
-                                username='unknown'
-                            fi
-                        fi
-                    fi
-                fi
-            fi
-        fi
-    fi
-
-    #   determine user id
-    userid=''
-    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%U'`" != . ]; then
-        userid="`(id -u) 2>/dev/null`"
-        if [ ".$userid" = . ]; then
-            userid="`(id -u ${username}) 2>/dev/null`"
-            if [ ".$userid" = . ]; then
-                str="`(id) 2>/dev/null`"
-                if [ ".`echo $str | grep '^uid[        ]*=[    ]*[0-9]*('`" != . ]; then
-                    userid=`echo $str | sed -e 's/^uid[        ]*=[    ]*//' -e 's/(.*$//'`
-                fi
-                if [ ".$userid" = . ]; then
-                    userid=`(getent passwd ${username}) 2>/dev/null | \
-                            sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'`
-                    if [ ".$userid" = . ]; then
-                        userid=`grep "^${username}:" /etc/passwd 2>/dev/null | \
-                                sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'`
-                        if [ ".$userid" = . ]; then
-                            userid=`(ypmatch "${username}" passwd; nismatch "${username}" passwd) 2>/dev/null | \
-                                    sed -e 'q' | sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'`
-                            if [ ".$userid" = . ]; then
-                                userid=`(nidump passwd . | grep "^${username}:") 2>/dev/null | \
-                                        sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'`
-                                if [ ".$userid" = . ]; then
-                                    userid='?'
-                                fi
-                            fi
-                        fi
-                    fi
-                fi
-            fi
-        fi
-    fi
-
-    #   determine (primary) group id
-    groupid=''
-    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%[gG]'`" != . ]; then
-        groupid="`(id -g ${username}) 2>/dev/null`"
-        if [ ".$groupid" = . ]; then
-            str="`(id) 2>/dev/null`"
-            if [ ".`echo $str | grep 'gid[     ]*=[    ]*[0-9]*('`" != . ]; then
-                groupid=`echo $str | sed -e 's/^.*gid[         ]*=[    ]*//' -e 's/(.*$//'`
-            fi
-            if [ ".$groupid" = . ]; then
-                groupid=`(getent passwd ${username}) 2>/dev/null | \
-                         sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'`
-                if [ ".$groupid" = . ]; then
-                    groupid=`grep "^${username}:" /etc/passwd 2>/dev/null | \
-                             sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'`
-                    if [ ".$groupid" = . ]; then
-                        groupid=`(ypmatch "${username}" passwd; nismatch "${username}" passwd) 2>/dev/null | \
-                                 sed -e 'q' | sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'`
-                        if [ ".$groupid" = . ]; then
-                            groupid=`(nidump passwd . | grep "^${username}:") 2>/dev/null | \
-                                     sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'`
-                            if [ ".$groupid" = . ]; then
-                                groupid='?'
-                            fi
-                        fi
-                    fi
-                fi
-            fi
-        fi
-    fi
-
-    #   determine (primary) group name
-    groupname=''
-    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%g'`" != . ]; then
-        groupname="`(id -gn ${username}) 2>/dev/null`"
-        if [ ".$groupname" = . ]; then
-            str="`(id) 2>/dev/null`"
-            if [ ".`echo $str | grep 'gid[     ]*=[    ]*[0-9]*('`" != . ]; then
-                groupname=`echo $str | sed -e 's/^.*gid[       ]*=[    ]*[0-9]*(//' -e 's/).*$//'`
-            fi
-            if [ ".$groupname" = . ]; then
-                groupname=`(getent group) 2>/dev/null | \
-                           grep "^[^:]*:[^:]*:${groupid}:" | \
-                           sed -e 's/:.*$//'`
-                if [ ".$groupname" = . ]; then
-                    groupname=`grep "^[^:]*:[^:]*:${groupid}:" /etc/group 2>/dev/null | \
-                               sed -e 's/:.*$//'`
-                    if [ ".$groupname" = . ]; then
-                        groupname=`(ypcat group; niscat group) 2>/dev/null | \
-                                   sed -e 'q' | grep "^[^:]*:[^:]*:${groupid}:" | \
-                                   sed -e 's/:.*$//'`
-                        if [ ".$groupname" = . ]; then
-                            groupname=`(nidump group .) 2>/dev/null | \
-                                       grep "^[^:]*:[^:]*:${groupid}:" | \
-                                       sed -e 's/:.*$//'`
-                            if [ ".$groupname" = . ]; then
-                                groupname='?'
-                            fi
-                        fi
-                    fi
-                fi
-            fi
-        fi
-    fi
-
-    #   determine host and domain name
-    hostname=''
-    domainname=''
-    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%h'`" != . ]; then
-        hostname="`(uname -n) 2>/dev/null |\
-                   awk '{ printf("%s", $1); }'`"
-        if [ ".$hostname" = . ]; then
-            hostname="`(hostname) 2>/dev/null |\
-                       awk '{ printf("%s", $1); }'`"
-            if [ ".$hostname" = . ]; then
-                hostname='unknown'
-            fi
-        fi
-        case $hostname in
-            *.* )
-                domainname=".`echo $hostname | cut -d. -f2-`"
-                hostname="`echo $hostname | cut -d. -f1`"
-                ;;
-        esac
-    fi
-    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%d'`" != . ]; then
-        if [ ".$domainname" = . ]; then
-            if [ -f /etc/resolv.conf ]; then
-                domainname="`grep '^[  ]*domain' /etc/resolv.conf | sed -e 'q' |\
-                             sed -e 's/.*domain//' \
-                                 -e 's/^[      ]*//' -e 's/^ *//' -e 's/^      *//' \
-                                 -e 's/^\.//' -e 's/^/./' |\
-                             awk '{ printf("%s", $1); }'`"
-                if [ ".$domainname" = . ]; then
-                    domainname="`grep '^[      ]*search' /etc/resolv.conf | sed -e 'q' |\
-                                 sed -e 's/.*search//' \
-                                     -e 's/^[  ]*//' -e 's/^ *//' -e 's/^      *//' \
-                                     -e 's/ .*//' -e 's/       .*//' \
-                                     -e 's/^\.//' -e 's/^/./' |\
-                                 awk '{ printf("%s", $1); }'`"
-                fi
-            fi
-        fi
-    fi
-
-    #   determine current time
-    time_day=''
-    time_month=''
-    time_year=''
-    time_monthname=''
-    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%[DMYm]'`" != . ]; then
-        time_day=`date '+%d'`
-        time_month=`date '+%m'`
-        time_year=`date '+%Y' 2>/dev/null`
-        if [ ".$time_year" = . ]; then
-            time_year=`date '+%y'`
-            case $time_year in
-                [5-9][0-9]) time_year="19$time_year" ;;
-                [0-4][0-9]) time_year="20$time_year" ;;
-            esac
-        fi
-        case $time_month in
-            1|01) time_monthname='Jan' ;;
-            2|02) time_monthname='Feb' ;;
-            3|03) time_monthname='Mar' ;;
-            4|04) time_monthname='Apr' ;;
-            5|05) time_monthname='May' ;;
-            6|06) time_monthname='Jun' ;;
-            7|07) time_monthname='Jul' ;;
-            8|08) time_monthname='Aug' ;;
-            9|09) time_monthname='Sep' ;;
-              10) time_monthname='Oct' ;;
-              11) time_monthname='Nov' ;;
-              12) time_monthname='Dec' ;;
-        esac
-    fi
-
-    #   expand special ``%x'' constructs
-    if [ ".$opt_e" = .yes ]; then
-        text=`echo $seo "$text" |\
-              sed -e "s/%B/${term_bold}/g" \
-                  -e "s/%b/${term_norm}/g" \
-                  -e "s/%u/${username}/g" \
-                  -e "s/%U/${userid}/g" \
-                  -e "s/%g/${groupname}/g" \
-                  -e "s/%G/${groupid}/g" \
-                  -e "s/%h/${hostname}/g" \
-                  -e "s/%d/${domainname}/g" \
-                  -e "s/%D/${time_day}/g" \
-                  -e "s/%M/${time_month}/g" \
-                  -e "s/%Y/${time_year}/g" \
-                  -e "s/%m/${time_monthname}/g" 2>/dev/null`
-    fi
-
-    #   create output
-    if [ .$opt_n = .no ]; then
-        echo $seo "$text"
-    else
-        #   the harder part: echo -n is best, because
-        #   awk may complain about some \xx sequences.
-        if [ ".$minusn" != . ]; then
-            echo $seo $minusn "$text"
-        else
-            echo dummy | awk '{ printf("%s", TEXT); }' TEXT="$text"
-        fi
-    fi
-
-    shtool_exit 0
-    ;;
-
-mdate )
-    ##
-    ##  mdate -- Pretty-print modification time of a file or dir
-    ##  Copyright (c) 1995-1997 Free Software Foundation, Inc.
-    ##  Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    fod="$1"
-    case "$opt_o" in
-        [dmy][dmy][dmy] )
-            ;;
-        * ) echo "$msgprefix:Error: invalid argument to option \`-o': $opt_o" 1>&2
-            shtool_exit 1
-            ;;
-    esac
-    if [ ! -r "$fod" ]; then
-        echo "$msgprefix:Error: file or directory not found: $fod" 1>&2
-        shtool_exit 1
-    fi
-
-    #   GNU ls changes its time format in response to the TIME_STYLE
-    #   variable. Since we cannot assume "unset" works, revert this
-    #   variable to its documented default.
-    if [ ".$TIME_STYLE" != . ]; then
-        TIME_STYLE=posix-long-iso
-        export TIME_STYLE
-    fi
-
-    #   get the extended ls output of the file or directory.
-    if /bin/ls -L /dev/null >/dev/null 2>&1; then
-        set - x`/bin/ls -L -l -d $fod`
-    else
-        set - x`/bin/ls -l -d $fod`
-    fi
-
-    #   The month is at least the fourth argument
-    #   (3 shifts here, the next inside the loop).
-    shift; shift; shift
-
-    #   Find the month. Next argument is day, followed by the year or time.
-    month=""
-    while [ ".$month" = . ]; do
-        shift
-        case $1 in
-            Jan) month=January;   nummonth=1  ;;
-            Feb) month=February;  nummonth=2  ;;
-            Mar) month=March;     nummonth=3  ;;
-            Apr) month=April;     nummonth=4  ;;
-            May) month=May;       nummonth=5  ;;
-            Jun) month=June;      nummonth=6  ;;
-            Jul) month=July;      nummonth=7  ;;
-            Aug) month=August;    nummonth=8  ;;
-            Sep) month=September; nummonth=9  ;;
-            Oct) month=October;   nummonth=10 ;;
-            Nov) month=November;  nummonth=11 ;;
-            Dec) month=December;  nummonth=12 ;;
-        esac
-    done
-    day="$2"
-    year="$3"
-
-    #   We finally have to deal with the problem that the "ls" output
-    #   gives either the time of the day or the year.
-    case $year in
-        *:*)
-            this_year=`date '+%Y' 2>/dev/null`
-            if [ ".$this_year" = . ]; then
-                this_year=`date '+%y'`
-                case $this_year in
-                    [5-9][0-9]) this_year="19$this_year" ;;
-                    [0-4][0-9]) this_year="20$this_year" ;;
-                esac
-            fi
-            #   for the following months of the last year the time notation
-            #   is usually also used for files modified in the last year.
-            this_month=`date '+%m'`
-            if (expr $nummonth \> $this_month) >/dev/null; then
-                this_year=`expr $this_year - 1`
-            fi
-            year="$this_year"
-            ;;
-    esac
-
-    #   Optionally fill day and month with leeding zeros
-    if [ ".$opt_z" = .yes ]; then
-        case $day in
-            [0-9][0-9] ) ;;
-                 [0-9] ) day="0$day" ;;
-        esac
-        case $nummonth in
-            [0-9][0-9] ) ;;
-                 [0-9] ) nummonth="0$nummonth" ;;
-        esac
-    fi
-
-    #   Optionally use digits for month
-    if [ ".$opt_d" = .yes ]; then
-        month="$nummonth"
-    fi
-
-    #   Optionally shorten the month name to three characters
-    if [ ".$opt_s" = .yes ]; then
-        month=`echo $month | cut -c1-3`
-    fi
-
-    #   Output the resulting date string
-    echo dummy | awk '{
-        for (i = 0; i < 3; i++) {
-            now = substr(order, 1, 1);
-            order = substr(order, 2);
-            if (now == "d")
-                out = day;
-            else if (now == "m")
-                out = month;
-            else if (now == "y")
-                out = year;
-            if (i < 2)
-                printf("%s%s", out, field);
-            else
-                printf("%s", out);
-        }
-        if (newline != "yes")
-            printf("\n");
-    }' "day=$day" "month=$month" "year=$year" \
-       "field=$opt_f" "order=$opt_o" "newline=$opt_n"
-
-    shtool_exit 0
-    ;;
-
-table )
-    ##
-    ##  table -- Pretty-print a field-separated list as a table
-    ##  Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    if [ $opt_c -gt 4 ]; then
-        echo "$msgprefix:Error: Invalid number of colums (1..4 allowed only)" 1>&2
-        shtool_exit 1
-    fi
-    case "x$opt_F" in
-        x? ) ;;
-        *  ) echo "$msgprefix:Error: Invalid separator (one char allowed only)" 1>&2; shtool_exit 1 ;;
-    esac
-
-    #   split the list into a table
-    list=`
-        IFS="$opt_F"
-        for entry in $*; do
-            if [ ".$entry" != . ]; then
-                echo "$entry"
-            fi
-        done |\
-        awk "
-            BEGIN { list = \"\"; n = 0; }
-            {
-                list = list \\$1;
-                n = n + 1;
-                if (n < $opt_c) {
-                    list = list \":\";
-                }
-                if (n == $opt_c) {
-                    list = list \"\\n\";
-                    n = 0;
-                }
-            }
-            END { print list; }
-         "
-    `
-
-    #   format table cells and make sure table
-    #   doesn't exceed maximum width
-    OIFS="$IFS"
-    IFS='
-'
-    for entry in $list; do
-        case $opt_c in
-            1 ) eval "echo \"\${entry}\" | awk -F: '{ printf(\"%-${opt_w}s\\n\", \$1); }'" ;;
-            2 ) eval "echo \"\${entry}\" | awk -F: '{ printf(\"%-${opt_w}s %-${opt_w}s\\n\", \$1, \$2); }'" ;;
-            3 ) eval "echo \"\${entry}\" | awk -F: '{ printf(\"%-${opt_w}s %-${opt_w}s %-${opt_w}s\\n\", \$1, \$2, \$3); }'" ;;
-            4 ) eval "echo \"\${entry}\" | awk -F: '{ printf(\"%-${opt_w}s %-${opt_w}s %-${opt_w}s %-${opt_w}s\\n\", \$1, \$2, \$3, \$4); }'" ;;
-        esac
-    done |\
-    awk "{
-        if (length(\$0) > $opt_s) {
-            printf(\"%s\\n\", substr(\$0, 0, $opt_s-1));
-        } else {
-            print \$0;
-        }
-    }"
-    IFS="$OIFS"
-
-    shtool_exit 0
-    ;;
-
-prop )
-    ##
-    ##  prop -- Display progress with a running propeller
-    ##  Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    perl=''
-    for dir in `echo $PATH | sed -e 's/:/ /g'` .; do
-        if [ -f "$dir/perl" ]; then
-            perl="$dir/perl"
-            break
-        fi
-    done
-    if [ ".$perl" != . ]; then
-        #   Perl is preferred because writing to STDERR in
-        #   Perl really writes immediately as one would expect
-        $perl -e '
-            @p = ("|","/","-","\\");
-            $i = 0;
-            while (<STDIN>) {
-                printf(STDERR "\r%s...%s\b", $ARGV[0], $p[$i++]);
-                $i = 0 if ($i > 3);
-            }
-            printf(STDERR "\r%s    \n", $ARGV[0]);
-        ' "$opt_p"
-    else
-        #   But if Perl doesn't exists we use Awk even
-        #   some Awk's buffer even the /dev/stderr writing :-(
-        awk '
-            BEGIN {
-                split("|#/#-#\\", p, "#");
-                i = 1;
-            }
-            {
-                printf("\r%s%c\b", prefix, p[i++]) > "/dev/stderr";
-                if (i > 4) { i = 1; }
-            }
-            END {
-                printf("\r%s    \n", prefix) > "/dev/stderr";
-            }
-        ' "prefix=$opt_p"
-    fi
-
-    shtool_exit 0
-    ;;
-
-move )
-    ##
-    ##  move -- Move files with simultaneous substitution
-    ##  Copyright (c) 1999-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    src="$1"
-    dst="$2"
-
-    #   consistency checks
-    if [ ".$src" = . ] || [ ".$dst" = . ]; then
-        echo "$msgprefix:Error: Invalid arguments" 1>&2
-        shtool_exit 1
-    fi
-    if [ ".$src" = ".$dst" ]; then
-        echo "$msgprefix:Error: Source and destination files are the same" 1>&2
-        shtool_exit 1
-    fi
-    expsrc="$src"
-    if [ ".$opt_e" = .yes ]; then
-        expsrc="`echo $expsrc`"
-    fi
-    if [ ".$opt_e" = .yes ]; then
-        if [ ".`echo "$src" | sed -e 's;^.*\\*.*$;;'`" = ".$src" ]; then
-            echo "$msgprefix:Error: Source doesn't contain wildcard ('*'): $dst" 1>&2
-            shtool_exit 1
-        fi
-        if [ ".`echo "$dst" | sed -e 's;^.*%[1-9].*$;;'`" = ".$dst" ]; then
-            echo "$msgprefix:Error: Destination doesn't contain substitution ('%N'): $dst" 1>&2
-            shtool_exit 1
-        fi
-        if [ ".$expsrc" = ".$src" ]; then
-            echo "$msgprefix:Error: Sources not found or no asterisk : $src" 1>&2
-            shtool_exit 1
-        fi
-    else
-        if [ ! -r "$src" ]; then
-            echo "$msgprefix:Error: Source not found: $src" 1>&2
-            shtool_exit 1
-        fi
-    fi
-
-    #   determine substitution patterns
-    if [ ".$opt_e" = .yes ]; then
-        srcpat=`echo "$src" | sed -e 's/\\./\\\\./g' -e 's/;/\\;/g' -e 's;\\*;\\\\(.*\\\\);g'`
-        dstpat=`echo "$dst" | sed -e 's;%\([1-9]\);\\\\\1;g'`
-    fi
-
-    #   iterate over source(s)
-    for onesrc in $expsrc; do
-        if [ .$opt_e = .yes ]; then
-            onedst=`echo $onesrc | sed -e "s;$srcpat;$dstpat;"`
-        else
-            onedst="$dst"
-        fi
-        errorstatus=0
-        if [ ".$opt_v" = .yes ]; then
-            echo "$onesrc -> $onedst"
-        fi
-        if [ ".$opt_p" = .yes ]; then
-            if [ -r $onedst ]; then
-                if cmp -s $onesrc $onedst; then
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "rm -f $onesrc" 1>&2
-                    fi
-                    rm -f $onesrc || errorstatus=$?
-                else
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "mv -f $onesrc $onedst" 1>&2
-                    fi
-                    mv -f $onesrc $onedst || errorstatus=$?
-                fi
-            else
-                if [ ".$opt_t" = .yes ]; then
-                    echo "mv -f $onesrc $onedst" 1>&2
-                fi
-                mv -f $onesrc $onedst || errorstatus=$?
-            fi
-        else
-            if [ ".$opt_t" = .yes ]; then
-                echo "mv -f $onesrc $onedst" 1>&2
-            fi
-            mv -f $onesrc $onedst || errorstatus=$?
-        fi
-        if [ $errorstatus -ne 0 ]; then
-            break;
-        fi
-    done
-
-    shtool_exit $errorstatus
-    ;;
-
-install )
-    ##
-    ##  install -- Install a program, script or datafile
-    ##  Copyright (c) 1997-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    #   special case: "shtool install -d <dir> [...]" internally
-    #   maps to "shtool mkdir -f -p -m 755 <dir> [...]"
-    if [ "$opt_d" = yes ]; then
-        cmd="$0 mkdir -f -p -m 755"
-        if [ ".$opt_o" != . ]; then
-            cmd="$cmd -o '$opt_o'"
-        fi
-        if [ ".$opt_g" != . ]; then
-            cmd="$cmd -g '$opt_g'"
-        fi
-        if [ ".$opt_v" = .yes ]; then
-            cmd="$cmd -v"
-        fi
-        if [ ".$opt_t" = .yes ]; then
-            cmd="$cmd -t"
-        fi
-        for dir in "$@"; do
-            eval "$cmd $dir" || shtool_exit $?
-        done
-        shtool_exit 0
-    fi
-
-    #   determine source(s) and destination
-    argc=$#
-    srcs=""
-    while [ $# -gt 1 ]; do
-        srcs="$srcs $1"
-        shift
-    done
-    dstpath="$1"
-
-    #   type check for destination
-    dstisdir=0
-    if [ -d $dstpath ]; then
-        dstpath=`echo "$dstpath" | sed -e 's:/$::'`
-        dstisdir=1
-    fi
-
-    #   consistency check for destination
-    if [ $argc -gt 2 ] && [ $dstisdir = 0 ]; then
-        echo "$msgprefix:Error: multiple sources require destination to be directory" 1>&2
-        shtool_exit 1
-    fi
-
-    #   iterate over all source(s)
-    for src in $srcs; do
-        dst=$dstpath
-
-        #   if destination is a directory, append the input filename
-        if [ $dstisdir = 1 ]; then
-            dstfile=`echo "$src" | sed -e 's;.*/\([^/]*\)$;\1;'`
-            dst="$dst/$dstfile"
-        fi
-
-        #   check for correct arguments
-        if [ ".$src" = ".$dst" ]; then
-            echo "$msgprefix:Warning: source and destination are the same - skipped" 1>&2
-            continue
-        fi
-        if [ -d "$src" ]; then
-            echo "$msgprefix:Warning: source \`$src' is a directory - skipped" 1>&2
-            continue
-        fi
-
-        #   make a temp file name in the destination directory
-        dsttmp=`echo $dst |\
-                sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;' -e 's;^$;.;' \
-                    -e "s;\$;/#INST@$$#;"`
-
-        #   verbosity
-        if [ ".$opt_v" = .yes ]; then
-            echo "$src -> $dst" 1>&2
-        fi
-
-        #   copy or move the file name to the temp name
-        #   (because we might be not allowed to change the source)
-        if [ ".$opt_C" = .yes ]; then
-            opt_c=yes
-        fi
-        if [ ".$opt_c" = .yes ]; then
-            if [ ".$opt_t" = .yes ]; then
-                echo "cp $src $dsttmp" 1>&2
-            fi
-            cp "$src" "$dsttmp" || shtool_exit $?
-        else
-            if [ ".$opt_t" = .yes ]; then
-                echo "mv $src $dsttmp" 1>&2
-            fi
-            mv "$src" "$dsttmp" || shtool_exit $?
-        fi
-
-        #   adjust the target file
-        if [ ".$opt_e" != . ]; then
-            sed='sed'
-            OIFS="$IFS"; IFS="$ASC_NL"; set -- $opt_e; IFS="$OIFS"
-            for e
-            do
-                sed="$sed -e '$e'"
-            done
-            cp "$dsttmp" "$dsttmp.old"
-            chmod u+w $dsttmp
-            eval "$sed <$dsttmp.old >$dsttmp" || shtool_exit $?
-            rm -f $dsttmp.old
-        fi
-        if [ ".$opt_s" = .yes ]; then
-            if [ ".$opt_t" = .yes ]; then
-                echo "strip $dsttmp" 1>&2
-            fi
-            strip $dsttmp || shtool_exit $?
-        fi
-        if [ ".$opt_o" != . ]; then
-            if [ ".$opt_t" = .yes ]; then
-                echo "chown $opt_o $dsttmp" 1>&2
-            fi
-            chown $opt_o $dsttmp || shtool_exit $?
-        fi
-        if [ ".$opt_g" != . ]; then
-            if [ ".$opt_t" = .yes ]; then
-                echo "chgrp $opt_g $dsttmp" 1>&2
-            fi
-            chgrp $opt_g $dsttmp || shtool_exit $?
-        fi
-        if [ ".$opt_m" != ".-" ]; then
-            if [ ".$opt_t" = .yes ]; then
-                echo "chmod $opt_m $dsttmp" 1>&2
-            fi
-            chmod $opt_m $dsttmp || shtool_exit $?
-        fi
-
-        #   determine whether to do a quick install
-        #   (has to be done _after_ the strip was already done)
-        quick=no
-        if [ ".$opt_C" = .yes ]; then
-            if [ -r $dst ]; then
-                if cmp -s "$src" "$dst"; then
-                    quick=yes
-                fi
-            fi
-        fi
-
-        #   finally, install the file to the real destination
-        if [ $quick = yes ]; then
-            if [ ".$opt_t" = .yes ]; then
-                echo "rm -f $dsttmp" 1>&2
-            fi
-            rm -f $dsttmp
-        else
-            if [ ".$opt_t" = .yes ]; then
-                echo "rm -f $dst && mv $dsttmp $dst" 1>&2
-            fi
-            rm -f $dst && mv $dsttmp $dst
-        fi
-    done
-
-    shtool_exit 0
-    ;;
-
-mkdir )
-    ##
-    ##  mkdir -- Make one or more directories
-    ##  Copyright (c) 1996-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    errstatus=0
-    for p in ${1+"$@"}; do
-        #   if the directory already exists...
-        if [ -d "$p" ]; then
-            if [ ".$opt_f" = .no ] && [ ".$opt_p" = .no ]; then
-                echo "$msgprefix:Error: directory already exists: $p" 1>&2
-                errstatus=1
-                break
-            else
-                continue
-            fi
-        fi
-        #   if the directory has to be created...
-        if [ ".$opt_p" = .no ]; then
-            if [ ".$opt_t" = .yes ]; then
-                echo "mkdir $p" 1>&2
-            fi
-            mkdir $p || errstatus=$?
-            if [ ".$opt_o" != . ]; then
-                if [ ".$opt_t" = .yes ]; then
-                    echo "chown $opt_o $p" 1>&2
-                fi
-                chown $opt_o $p || errstatus=$?
-            fi
-            if [ ".$opt_g" != . ]; then
-                if [ ".$opt_t" = .yes ]; then
-                    echo "chgrp $opt_g $p" 1>&2
-                fi
-                chgrp $opt_g $p || errstatus=$?
-            fi
-            if [ ".$opt_m" != . ]; then
-                if [ ".$opt_t" = .yes ]; then
-                    echo "chmod $opt_m $p" 1>&2
-                fi
-                chmod $opt_m $p || errstatus=$?
-            fi
-        else
-            #   the smart situation
-            set fnord `echo ":$p" |\
-                       sed -e 's/^:\//%/' \
-                           -e 's/^://' \
-                           -e 's/\// /g' \
-                           -e 's/^%/\//'`
-            shift
-            pathcomp=''
-            for d in ${1+"$@"}; do
-                pathcomp="$pathcomp$d"
-                case "$pathcomp" in
-                    -* ) pathcomp="./$pathcomp" ;;
-                esac
-                if [ ! -d "$pathcomp" ]; then
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "mkdir $pathcomp" 1>&2
-                    fi
-                    mkdir $pathcomp || errstatus=$?
-                    if [ ".$opt_o" != . ]; then
-                        if [ ".$opt_t" = .yes ]; then
-                            echo "chown $opt_o $pathcomp" 1>&2
-                        fi
-                        chown $opt_o $pathcomp || errstatus=$?
-                    fi
-                    if [ ".$opt_g" != . ]; then
-                        if [ ".$opt_t" = .yes ]; then
-                            echo "chgrp $opt_g $pathcomp" 1>&2
-                        fi
-                        chgrp $opt_g $pathcomp || errstatus=$?
-                    fi
-                    if [ ".$opt_m" != . ]; then
-                        if [ ".$opt_t" = .yes ]; then
-                            echo "chmod $opt_m $pathcomp" 1>&2
-                        fi
-                        chmod $opt_m $pathcomp || errstatus=$?
-                    fi
-                fi
-                pathcomp="$pathcomp/"
-            done
-        fi
-    done
-
-    shtool_exit $errstatus
-    ;;
-
-mkln )
-    ##
-    ##  mkln -- Make link with calculation of relative paths
-    ##  Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    #   determine source(s) and destination
-    args=$?
-    srcs=""
-    while [ $# -gt 1 ]; do
-        srcs="$srcs $1"
-        shift
-    done
-    dst="$1"
-    if [ ! -d $dst ]; then
-        if [ $args -gt 2 ]; then
-            echo "$msgprefix:Error: multiple sources not allowed when target isn't a directory" 1>&2
-            shtool_exit 1
-        fi
-    fi
-
-    #   determine link options
-    lnopt=""
-    if [ ".$opt_f" = .yes ]; then
-        lnopt="$lnopt -f"
-    fi
-    if [ ".$opt_s" = .yes ]; then
-        lnopt="$lnopt -s"
-    fi
-
-    #   iterate over sources
-    for src in $srcs; do
-        #   determine if one of the paths is an absolute path,
-        #   because then we _have_ to use an absolute symlink
-        oneisabs=0
-        srcisabs=0
-        dstisabs=0
-        case $src in
-            /* ) oneisabs=1; srcisabs=1 ;;
-        esac
-        case $dst in
-            /* ) oneisabs=1; dstisabs=1 ;;
-        esac
-
-        #   split source and destination into dir and base name
-        if [ -d $src ]; then
-            srcdir=`echo $src | sed -e 's;/*$;;'`
-            srcbase=""
-        else
-            srcdir=`echo  $src | sed -e 's;^[^/]*$;;' -e 's;^\(.*/\)[^/]*$;\1;' -e 's;\(.\)/$;\1;'`
-            srcbase=`echo $src | sed -e 's;.*/\([^/]*\)$;\1;'`
-        fi
-        if [ -d $dst ]; then
-            dstdir=`echo $dst | sed -e 's;/*$;;'`
-            dstbase=""
-        else
-            dstdir=`echo  $dst | sed -e 's;^[^/]*$;;' -e 's;^\(.*/\)[^/]*$;\1;' -e 's;\(.\)/$;\1;'`
-            dstbase=`echo $dst | sed -e 's;.*/\([^/]*\)$;\1;'`
-        fi
-
-        #   consistency check
-        if [ ".$dstdir" != . ]; then
-            if [ ! -d $dstdir ]; then
-                echo "$msgprefix:Error: destination directory not found: $dstdir" 1>&2
-                shtool_exit 1
-            fi
-        fi
-
-        #   make sure the source is reachable from the destination
-        if [ $dstisabs = 1 ]; then
-            if [ $srcisabs = 0 ]; then
-                if [ ".$srcdir" = . ]; then
-                    srcdir="`pwd | sed -e 's;/*$;;'`"
-                    srcisabs=1
-                    oneisabs=1
-                elif [ -d $srcdir ]; then
-                    srcdir="`cd $srcdir; pwd | sed -e 's;/*$;;'`"
-                    srcisabs=1
-                    oneisabs=1
-                fi
-            fi
-        fi
-
-        #   split away a common prefix
-        prefix=""
-        if [ ".$srcdir" = ".$dstdir" ] && [ ".$srcdir" != . ]; then
-            prefix="$srcdir/"
-            srcdir=""
-            dstdir=""
-        else
-            while [ ".$srcdir" != . ] && [ ".$dstdir" != . ]; do
-                presrc=`echo $srcdir | sed -e 's;^\([^/]*\)/.*;\1;'`
-                predst=`echo $dstdir | sed -e 's;^\([^/]*\)/.*;\1;'`
-                if [ ".$presrc" != ".$predst" ]; then
-                    break
-                fi
-                prefix="$prefix$presrc/"
-                srcdir=`echo $srcdir | sed -e 's;^[^/]*/*;;'`
-                dstdir=`echo $dstdir | sed -e 's;^[^/]*/*;;'`
-            done
-        fi
-
-        #   destination prefix is just the common prefix
-        dstpre="$prefix"
-
-        #   determine source prefix which is the reverse directory
-        #   step-up corresponding to the destination directory
-        srcpre=""
-        allow_relative_srcpre=no
-        if [ ".$prefix" != . ] && [ ".$prefix" != ./ ]; then
-            allow_relative_srcpre=yes
-        fi  
-        if [ $oneisabs = 0 ]; then
-            allow_relative_srcpre=yes
-        fi  
-        if [ ".$opt_s" != .yes ]; then
-            allow_relative_srcpre=no
-        fi  
-        if [ ".$allow_relative_srcpre" = .yes ]; then
-            pl="$dstdir/"
-            OIFS="$IFS"; IFS='/'
-            for pe in $pl; do
-                [ ".$pe" = .  ] && continue
-                [ ".$pe" = .. ] && continue
-                srcpre="../$srcpre"
-            done
-            IFS="$OIFS"
-        else
-            if [ $srcisabs = 1 ]; then
-                srcpre="$prefix"
-            fi
-        fi
-
-        #   determine destination symlink name
-        if [ ".$dstbase" = . ]; then
-            if [ ".$srcbase" != . ]; then
-                dstbase="$srcbase"
-            else
-                dstbase=`echo "$prefix$srcdir" | sed -e 's;/*$;;' -e 's;.*/\([^/]*\)$;\1;'`
-            fi
-        fi
-
-        #   now finalize source and destination directory paths
-        srcdir=`echo $srcdir | sed -e 's;\([^/]\)$;\1/;'`
-        dstdir=`echo $dstdir | sed -e 's;\([^/]\)$;\1/;'`
-
-        #   run the final link command
-        if [ ".$opt_t" = .yes ]; then
-            echo "ln$lnopt $srcpre$srcdir$srcbase $dstpre$dstdir$dstbase"
-        fi
-        eval ln$lnopt $srcpre$srcdir$srcbase $dstpre$dstdir$dstbase
-    done
-
-    shtool_exit 0
-    ;;
-
-mkshadow )
-    ##
-    ##  mkshadow -- Make a shadow tree through symbolic links
-    ##  Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    #   source and destination directory
-    src=`echo "$1" | sed -e 's:/$::' -e 's:^\./\(.\):\1:'`
-    dst=`echo "$2" | sed -e 's:/$::' -e 's:^\./\(.\):\1:'`
-
-    #   check whether source exists
-    if [ ! -d $src ]; then
-        echo "$msgprefix:Error: source directory not found: \`$src'" 1>&2
-        shtool_exit 1
-    fi
-
-    #   determine if one of the paths is an absolute path,
-    #   because then we have to use an absolute symlink
-    oneisabs=0
-    case $src in
-        /* ) oneisabs=1 ;;
-    esac
-    case $dst in
-        /* ) oneisabs=1 ;;
-    esac
-
-    #   determine reverse directory for destination directory
-    dstrevdir=''
-    if [ $oneisabs = 0 ]; then
-        #   derive reverse path from forward path
-        pwd=`pwd`
-        OIFS="$IFS"; IFS='/'
-        for pe in $dst; do
-            if [ "x$pe" = "x.." ]; then
-                OIFS2="$IFS"; IFS="$DIFS"
-                eval `echo "$pwd" |\
-                      sed -e 's:\([^/]*\)$:; dir="\1":' \
-                          -e 's:^\(.*\)/[^/]*;:pwd="\1";:'\
-                          -e 's:^;:pwd="";:'`
-                dstrevdir="$dir/$dstrevdir"
-                IFS="$OIFS2"
-            else
-                dstrevdir="../$dstrevdir"
-            fi
-        done
-        IFS="$OIFS"
-    else
-        src="`cd $src; pwd`";
-    fi
-
-    #   create directory tree at destination
-    if [ ! -d $dst ]; then
-        if [ ".$opt_t" = .yes ]; then
-            echo "mkdir $dst" 1>&2
-        fi
-        mkdir $dst
-    fi
-    if [ ".$opt_a" = .yes ]; then
-        DIRS=`cd $src; find . -type d -print |\
-              sed -e '/^\.$/d' -e 's:^\./::'`
-    else
-        DIRS=`cd $src; find . -type d -print |\
-              sed -e '/\/CVS/d' -e '/^\.$/d' -e 's:^\./::'`
-    fi
-    for dir in $DIRS; do
-        if [ ".$opt_t" = .yes ]; then
-            echo "mkdir $dst/$dir" 1>&2
-        fi
-        mkdir $dst/$dir
-    done
-
-    #   fill directory tree with symlinks to files
-    if [ ".$opt_a" = .yes ]; then
-        FILES="`cd $src; find . -depth -print |\
-                sed -e 's/^\.\///'`"
-    else
-        FILES="`cd $src; find . -depth -print |\
-                sed -e '/\.o$/d' -e '/\.a$/d' -e '/\.so$/d' \
-                    -e '/\.cvsignore$/d' -e '/\/CVS/d' \
-                    -e '/\/\.#/d' -e '/\.orig$/d' \
-                    -e 's/^\.\///'`"
-    fi
-    for file in $FILES; do
-         #  don't use `-type f' above for find because of symlinks
-         if [ -d "$src/$file" ]; then
-             continue
-         fi
-         basename=`echo $file | sed -e 's:^.*/::'`
-         dir=`echo $file | sed -e 's:[^/]*$::' -e 's:/$::' -e 's:$:/:' -e 's:^/$::'`
-         from=`echo "$src/$file" | sed -e 's/^\.\///'`
-         to="$dst/$dir$basename"
-         if [ $oneisabs = 0 ]; then
-             if [ ".$dir" != . ]; then
-                 subdir=`echo $dir | sed -e 's:/$::'`
-                 #   derive reverse path from forward path
-                 revdir=''
-                 OIFS="$IFS"; IFS='/'
-                 for pe in $subdir; do
-                     revdir="../$revdir"
-                 done
-                 IFS="$OIFS"
-                 #   finalize from
-                 from="$revdir$from"
-             fi
-             from="$dstrevdir$from"
-         fi
-         if [ ".$opt_v" = .yes ]; then
-             echo "    $to" 1>&2
-         fi
-         if [ ".$opt_t" = .yes ]; then
-             echo "ln -s $from $to" 1>&2
-         fi
-         ln -s $from $to
-    done
-
-    shtool_exit 0
-    ;;
-
-fixperm )
-    ##
-    ##  fixperm -- Fix file permissions inside a source tree
-    ##  Copyright (c) 1996-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    paths="$*"
-
-    #   check whether the test command supports the -x option
-    if [ -x /bin/sh ] 2>/dev/null; then
-        minusx="-x"
-    else
-        minusx="-r"
-    fi
-
-    #   iterate over paths
-    for p in $paths; do
-        for file in `find $p -depth -print`; do
-            if [ -f $file ]; then
-                if [ $minusx $file ]; then
-                    if [ ".$opt_v" = .yes ]; then
-                        echo "-rwxr-xr-x $file" 2>&1
-                    fi
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "chmod 755 $file" 2>&1
-                    fi
-                    chmod 755 $file
-                else
-                    if [ ".$opt_v" = .yes ]; then
-                        echo "-rw-r--r-- $file" 2>&1
-                    fi
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "chmod 644 $file" 2>&1
-                    fi
-                    chmod 644 $file
-                fi
-                continue
-            fi
-            if [ -d $file ]; then
-                if [ ".$opt_v" = .yes ]; then
-                    echo "drwxr-xr-x $file" 2>&1
-                fi
-                if [ ".$opt_t" = .yes ]; then
-                    echo "chmod 755 $file" 2>&1
-                fi
-                chmod 755 $file
-                continue
-            fi
-            if [ ".$opt_v" = .yes ]; then
-                echo "?????????? $file" 2>&1
-            fi
-        done
-    done
-
-    shtool_exit 0
-    ;;
-
-rotate )
-    ##
-    ##  rotate -- Logfile rotation
-    ##  Copyright (c) 2001-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    #   make sure we have at least one file to rotate
-    if [ ".$opt_n" = .0 ]; then
-        echo "$msgprefix:Error: invalid argument \`$opt_n' to option -n." 1>&2
-        shtool_exit 1
-    fi
-
-    #   canonicalize -s option argument
-    if [ ".$opt_s" != . ]; then
-        if [ ".`expr $opt_s : '[0-9]*$'`" != .0 ]; then
-            :
-        elif [ ".`expr $opt_s : '[0-9]*[Kk]$'`" != .0 ]; then
-            opt_s=`expr $opt_s : '\([0-9]*\)[Kk]$'`
-            opt_s=`expr $opt_s \* 1024`
-        elif [ ".`expr $opt_s : '[0-9]*[Mm]$'`" != .0 ]; then
-            opt_s=`expr $opt_s : '\([0-9]*\)[Mm]$'`
-            opt_s=`expr $opt_s \* 1048576` # 1024*1024
-        elif [ ".`expr $opt_s : '[0-9]*[Gg]$'`" != .0 ]; then
-            opt_s=`expr $opt_s : '\([0-9]*\)[Gg]$'`
-            opt_s=`expr $opt_s \* 1073741824` # 1024*1024*1024
-        else
-            echo "$msgprefix:Error: invalid argument \`$opt_s' to option -s." 1>&2
-            shtool_exit 1
-        fi
-    fi
-
-    #   option -d/-z consistency
-    if [ ".$opt_d" = .yes ] && [ ".$opt_z" = . ]; then
-        echo "$msgprefix:Error: option -d requires option -z." 1>&2
-        shtool_exit 1
-    fi
-
-    #   make sure target directory exists
-    if [ ".$opt_a" != . ]; then
-        if [ ! -d $opt_a ]; then
-            if [ ".$opt_f" = .no ]; then
-                echo "$msgprefix:Error: archive directory \`$opt_a' does not exist." 1>&2
-                shtool_exit 1
-            fi
-            mkdir $opt_a || shtool_exit $?
-            chmod 755 $opt_a
-        fi
-        if [ ! -w $opt_a ]; then
-            echo "$msgprefix:Error: archive directory \`$opt_a' not writable." 1>&2
-            shtool_exit 1
-        fi
-    fi
-
-    #   determine compression approach
-    if [ ".$opt_z" != . ]; then
-        comp_lvl="$opt_z"
-        comp_prg=""
-        case $comp_lvl in
-            *:* ) eval `echo $comp_lvl |\
-                        sed -e 's%^\(.*\):\(.*\)$%comp_prg="\1"; comp_lvl="\2"%'` ;;
-        esac
-
-        #   compression level consistency
-        case $comp_lvl in
-            [0-9] )
-                ;;
-            * ) echo "$msgprefix:Error: invalid compression level \`$comp_lvl'" 1>&2
-                shtool_exit 1
-                ;;
-        esac
-
-        #   determine a suitable compression tool
-        if [ ".$comp_prg" = . ]; then
-            #   check whether the test command supports the -x option
-            if [ -x /bin/sh ] 2>/dev/null; then
-                minusx="-x"
-            else
-                minusx="-r"
-            fi
-            #   search for tools in $PATH
-            paths="`echo $PATH |\
-                    sed -e 's%/*:%:%g' -e 's%/*$%%' \
-                        -e 's/^:/.:/' -e 's/::/:.:/g' -e 's/:$/:./' \
-                        -e 's/:/ /g'`"
-            for prg in bzip2 gzip compress; do
-                for path in $paths; do
-                    if [ $minusx "$path/$prg" ] && [ ! -d "$path/$prg" ]; then
-                        comp_prg="$prg"
-                        break
-                    fi
-                done
-                if [ ".$comp_prg" != . ]; then
-                    break
-                fi
-            done
-            if [ ".$comp_prg" = . ]; then
-                echo "$msgprefix:Error: no suitable compression tool found in \$PATH" 1>&2
-                shtool_exit 1
-            fi
-        fi
-
-        #   determine standard compression extension
-        #   and make sure it is a known tool
-        case $comp_prg in
-            */bzip2    | bzip2    ) comp_ext="bz2" comp_lvl="-$comp_lvl" ;;
-            */gzip     | gzip     ) comp_ext="gz"  comp_lvl="-$comp_lvl" ;;
-            */compress | compress ) comp_ext="Z";  comp_lvl=""           ;;
-            * ) echo "$msgprefix:Error: tool \`$comp_prg' is not a known compression tool" 1>&2
-                shtool_exit 1
-                ;;
-        esac
-        comp_suf=".$comp_ext"
-    fi
-
-    #   iterate over all given logfile arguments
-    for file in $*; do
-        #   make sure the logfile exists
-        if [ ! -f $file ]; then
-            if [ ".$opt_f" = .yes ]; then
-                continue
-            fi
-            echo "$msgprefix:Error: logfile \`$file' not found" 1>&2
-            shtool_exit 1
-        fi
-
-        #   determine log directory (where original logfile is placed)
-        ldir="."
-        case $file in
-            */* ) eval `echo $file | sed -e 's%^\(.*\)/\([^/]*\)$%ldir="\1"; file="\2";%'` ;;
-        esac
-
-        #   determine archive directory (where rotated logfiles are placed)
-        adir="$ldir"
-        if [ ".$opt_a" != . ]; then
-            case "$opt_a" in
-                /* | ./* ) adir="$opt_a" ;;
-                * ) adir="$ldir/$opt_a"  ;;
-            esac
-        fi
-
-        #   optionally take logfile size into account
-        if [ ".$opt_s" != . ]; then
-            #   determine size of logfile
-            set -- `env -i /bin/ls -l "$ldir/$file" | sed -e "s;$ldir/$file;;" |\
-                    sed -e 's; -> .*$;;' -e 's;[       ][      ]*; ;g'`
-            n=`expr $# - 3`
-            eval "size=\`echo \${$n}\`"
-
-            #   skip logfile if size is still too small
-            if [ $size -lt $opt_s ]; then
-                if [ ".$opt_v" = .yes ]; then
-                    echo "$ldir/$file: still too small in size -- skipping"
-                fi
-                continue
-            fi
-        fi
-
-        #   verbosity
-        if [ ".$opt_v" = .yes ]; then
-            echo "rotating $ldir/$file"
-        fi
-
-        #   execute prolog
-        if [ ".$opt_P" != . ]; then
-            if [ ".$opt_t" = .yes ]; then
-                echo "$opt_P"
-            fi
-            eval $opt_P
-            [ $? -ne 0 ] && shtool_exit $?
-        fi
-
-        #   kick away out-rotated logfile
-        n=`expr $opt_n - 1`
-        n=`echo dummy | awk "{ printf(\"%0${opt_p}d\", n); }" n=$n`
-        if [ -f "${adir}/${file}.${n}${comp_suf}" ]; then
-            #   optionally migrate away the out-rotated logfile
-            if [ ".$opt_M" != . ]; then
-                if [ ".$opt_t" = .yes ]; then
-                    echo "$opt_M ${adir}/${file}.${n}${comp_suf}"
-                fi
-                eval "$opt_M ${adir}/${file}.${n}${comp_suf}"
-                [ $? -ne 0 ] && shtool_exit $?
-            fi
-            #   finally get rid of the out-rotated logfile
-            if [ ".$opt_t" = .yes ]; then
-                echo "rm -f ${adir}/${file}.${n}${comp_suf}"
-            fi
-            rm -f ${adir}/${file}.${n}${comp_suf} || shtool_exit $?
-        fi
-
-        #   rotate already archived logfiles
-        while [ $n -gt 0 ]; do
-            m=$n
-            n=`expr $n - 1`
-            n=`echo dummy | awk "{ printf(\"%0${opt_p}d\", n); }" n=$n`
-            if [ $n -eq 0 ] && [ ".$opt_d" = .yes ]; then
-                #   special case: first rotation file under delayed compression situation
-                if [ ! -f "${adir}/${file}.${n}" ]; then
-                    continue
-                fi
-
-                #   compress file (delayed)
-                if [ ".$opt_b" = .yes ]; then
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "mv ${adir}/${file}.${n} ${adir}/${file}.${m}"
-                    fi
-                    mv ${adir}/${file}.${n} ${adir}/${file}.${m} || shtool_exit $?
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "(${comp_prg} ${comp_lvl} <${adir}/${file}.${m} >${adir}/${file}.${m}${comp_suf}; rm -f ${adir}/${file}.${m}) &"
-                    fi
-                    ( ${comp_prg} ${comp_lvl} \
-                          <${adir}/${file}.${m} \
-                          >${adir}/${file}.${m}${comp_suf} || shtool_exit $?
-                      rm -f ${adir}/${file}.${m} || shtool_exit $?
-                    ) </dev/null >/dev/null 2>&1 &
-                else
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "${comp_prg} ${comp_lvl} <${adir}/${file}.${n} >${adir}/${file}.${m}${comp_suf}"
-                    fi
-                    ${comp_prg} ${comp_lvl} \
-                        <${adir}/${file}.${n} \
-                        >${adir}/${file}.${m}${comp_suf} || shtool_exit $?
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "rm -f ${adir}/${file}.${n}"
-                    fi
-                    rm -f ${adir}/${file}.${n} || shtool_exit $?
-                fi
-
-                #   fix file attributes
-                if [ ".$opt_o" != . ]; then
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "chown $opt_o ${adir}/${file}.${m}${comp_suf}"
-                    fi
-                    chown $opt_o ${adir}/${file}.${m}${comp_suf} || shtool_exit $?
-                fi
-                if [ ".$opt_g" != . ]; then
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "chgrp $opt_g ${adir}/${file}.${m}${comp_suf}"
-                    fi
-                    chgrp $opt_g ${adir}/${file}.${m}${comp_suf} || shtool_exit $?
-                fi
-                if [ ".$opt_m" != . ]; then
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "chmod $opt_m ${adir}/${file}.${m}${comp_suf}"
-                    fi
-                    chmod $opt_m ${adir}/${file}.${m}${comp_suf} || shtool_exit $?
-                fi
-            else
-                #   standard case: second and following rotation file
-                if [ ! -f "${adir}/${file}.${n}${comp_suf}" ]; then
-                    continue
-                fi
-                if [ ".$opt_t" = .yes ]; then
-                    echo "mv ${adir}/${file}.${n}${comp_suf} ${adir}/${file}.${m}${comp_suf}"
-                fi
-                mv ${adir}/${file}.${n}${comp_suf} ${adir}/${file}.${m}${comp_suf} || shtool_exit $?
-            fi
-        done
-
-        #   move away current logfile
-        if [ ".$opt_c" = .yes ]; then
-            #   approach: copy[+truncate]
-            if [ ".$opt_t" = .yes ]; then
-                echo "cp -p ${ldir}/${file} ${adir}/${file}.${n}"
-            fi
-            cp -p ${ldir}/${file} ${adir}/${file}.${n} || shtool_exit $?
-            if [ ".$opt_r" = .no ]; then
-                if [ ".$opt_t" = .yes ]; then
-                    echo "cp /dev/null ${ldir}/${file}"
-                fi
-                cp /dev/null ${ldir}/${file} || shtool_exit $?
-            fi
-        else
-            #   approach: move[+touch]
-            if [ ".$opt_t" = .yes ]; then
-                echo "mv ${ldir}/${file} ${adir}/${file}.${n}"
-            fi
-            mv ${ldir}/${file} ${adir}/${file}.${n} || shtool_exit $?
-            if [ ".$opt_r" = .no ]; then
-                if [ ".$opt_t" = .yes ]; then
-                    echo "touch ${ldir}/${file}"
-                fi
-                touch ${ldir}/${file} || shtool_exit $?
-                #   fix file attributes
-                if [ ".$opt_o" != . ]; then
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "chown $opt_o ${ldir}/${file}"
-                    fi
-                    chown $opt_o ${ldir}/${file} || shtool_exit $?
-                fi
-                if [ ".$opt_g" != . ]; then
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "chgrp $opt_g ${ldir}/${file}"
-                    fi
-                    chgrp $opt_g ${ldir}/${file} || shtool_exit $?
-                fi
-                if [ ".$opt_m" != . ]; then
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "chmod $opt_m ${ldir}/${file}"
-                    fi
-                    chmod $opt_m ${ldir}/${file} || shtool_exit $?
-                fi
-            fi
-        fi
-
-        #   regular compression step
-        if [ ".$opt_z" != . ] && [ ".$opt_d" = .no ]; then
-            #   compress file
-            if [ ".$opt_b" = .yes ]; then
-                if [ ".$opt_t" = .yes ]; then
-                    echo "(${comp_prg} ${comp_lvl} <${adir}/${file}.${n} >${adir}/${file}.${n}${comp_suf}; rm -f ${adir}/${file}.${n}) &"
-                fi
-                ( ${comp_prg} ${comp_lvl} \
-                      <${adir}/${file}.${n} \
-                      >${adir}/${file}.${n}${comp_suf} || shtool_exit $?
-                  rm -f ${adir}/${file}.${n} || shtool_exit $?
-                ) </dev/null >/dev/null 2>&1 &
-            else
-                if [ ".$opt_t" = .yes ]; then
-                    echo "${comp_prg} ${comp_lvl} <${adir}/${file}.${n} >${adir}/${file}.${n}${comp_suf}"
-                fi
-                ${comp_prg} ${comp_lvl} \
-                    <${adir}/${file}.${n} \
-                    >${adir}/${file}.${n}${comp_suf} || shtool_exit $?
-                if [ ".$opt_t" = .yes ]; then
-                    echo "rm -f ${opt_a}${file}.${n}"
-                fi
-                rm -f ${adir}/${file}.${n} || shtool_exit $?
-            fi
-
-            #   fix file attributes
-            if [ ".$opt_o" != . ]; then
-                if [ ".$opt_t" = .yes ]; then
-                    echo "chown $opt_o ${adir}/${file}.${n}${comp_suf}"
-                fi
-                chown $opt_o ${adir}/${file}.${n}${comp_suf} || shtool_exit $?
-            fi
-            if [ ".$opt_g" != . ]; then
-                if [ ".$opt_t" = .yes ]; then
-                    echo "chgrp $opt_g ${adir}/${file}.${n}${comp_suf}"
-                fi
-                chgrp $opt_g ${adir}/${file}.${n}${comp_suf} || shtool_exit $?
-            fi
-            if [ ".$opt_m" != . ]; then
-                if [ ".$opt_t" = .yes ]; then
-                    echo "chmod $opt_m ${adir}/${file}.${n}${comp_suf}"
-                fi
-                chmod $opt_m ${adir}/${file}.${n}${comp_suf} || shtool_exit $?
-            fi
-        fi
-
-        #   execute epilog
-        if [ ".$opt_E" != . ]; then
-            if [ ".$opt_t" = .yes ]; then
-                echo "$opt_E"
-            fi
-            eval $opt_E
-            [ $? -ne 0 ] && shtool_exit $?
-        fi
-    done
-
-    shtool_exit 0
-    ;;
-
-tarball )
-    ##
-    ##  tarball -- Roll distribution tarballs
-    ##  Copyright (c) 1999-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    srcs="$*"
-
-    #   check whether the test command supports the -x option
-    if [ -x /bin/sh ] 2>/dev/null; then
-        minusx="-x"
-    else
-        minusx="-r"
-    fi
-
-    #   find the tools
-    paths="`echo $PATH |\
-            sed -e 's%/*:%:%g' -e 's%/*$%%' \
-                -e 's/^:/.:/' -e 's/::/:.:/g' -e 's/:$/:./' \
-                -e 's/:/ /g'`"
-    for spec in find:gfind,find tar:gtar,tar tardy:tardy,tarcust; do
-        prg=`echo $spec | sed -e 's/:.*$//'`
-        tools=`echo $spec | sed -e 's/^.*://'`
-        eval "prg_${prg}=''"
-        #   iterate over tools
-        for tool in `echo $tools | sed -e 's/,/ /g'`; do
-            #   iterate over paths
-            for path in $paths; do
-                if [ $minusx "$path/$tool" ] && [ ! -d "$path/$tool" ]; then
-                    eval "prg_${prg}=\"$path/$tool\""
-                    break
-                fi
-            done
-            eval "val=\$prg_${prg}"
-            if [ ".$val" != . ]; then
-                break
-            fi
-        done
-    done
-
-    #   expand source paths
-    exclude=''
-    for pat in `echo $opt_e | sed 's/,/ /g'`; do
-        exclude="$exclude | grep -v '$pat'"
-    done
-    if [ ".$opt_t" = .yes ]; then
-        echo "cp /dev/null $tmpfile.lst" 1>&2
-    fi
-    cp /dev/null $tmpfile.lst
-    for src in $srcs; do
-        if [ -d $src ]; then
-            if [ ".$opt_t" = .yes ]; then
-                echo "(cd $src && $prg_find . -type f -depth -print) | sed -e 's:^\\.\$::' -e 's:^\\./::' | cat $exclude >>$tmpfile.lst" 1>&2
-            fi
-            (cd $src && $prg_find . -type f -depth -print) |\
-            sed -e 's:^\.$::' -e 's:^\./::' | eval cat $exclude >>$tmpfile.lst
-        else
-            if [ ".$opt_t" = .yes ]; then
-                echo "echo $src >>$tmpfile.lst" 1>&2
-            fi
-            echo $src >>$tmpfile.lst
-        fi
-    done
-    sort <$tmpfile.lst >$tmpfile.lst.n
-    mv $tmpfile.lst.n $tmpfile.lst
-    if [ ".$opt_v" = .yes ]; then
-        cat $tmpfile.lst | sed -e 's/^/  /' 1>&2
-    fi
-
-    #   determine tarball file and directory name
-    if [ ".$opt_o" != . ]; then
-        tarfile="$opt_o"
-        if [ ".$opt_d" != . ]; then
-            tarname="$opt_d"
-        else
-            tarname=`echo $tarfile | sed -e 's/\.tar.*$//' -e 's;.*/\([^/]*\)$;\1;'`
-        fi
-    else
-        if [ ".$opt_d" != . ]; then
-            tarname="$opt_d"
-        elif [ -d "$from" ]; then
-            tarname=`echo $from | sed -e 's;.*/\([^/]*\)$;\1;'`
-        else
-            tarname="out"
-        fi
-        tarfile="$tarname.tar"
-    fi
-
-    #   roll the tarball
-    compress=''
-    if [ ".$opt_c" != . ]; then
-        compress="| $opt_c"
-    fi
-    if [ ".$prg_tardy" != . ]; then
-        #   the elegant hackers way
-        tardy_opt="--prefix=$tarname"
-        tardy_opt="$tardy_opt --user_number=0 --group_number=0" # security!
-        if [ ".$opt_u" != . ]; then
-            tardy_opt="$tardy_opt --user_name=$opt_u"
-        fi
-        if [ ".$opt_g" != . ]; then
-            tardy_opt="$tardy_opt --group_name=$opt_g"
-        fi
-        if [ ".$opt_t" = .yes ]; then
-            echo "cat $tmpfile.lst | xargs $prg_tar cf - | $prg_tardy $tardy_opt | cat $compress >$tmpfile.out" 1>&2
-        fi
-        cat $tmpfile.lst |\
-        xargs $prg_tar cf - |\
-        $prg_tardy $tardy_opt |\
-        eval cat $compress >$tmpfile.out
-        if [ ".$opt_t" = .yes ]; then
-            echo "cp $tmpfile.out $tarfile" 1>&2
-        fi
-        cp $tmpfile.out $tarfile
-    else
-        #  the portable standard way
-        if [ ".$opt_t" = .yes ]; then
-            echo "mkdir $tmpdir/$tarname" 1>&2
-        fi
-        mkdir $tmpdir/$tarname || shtool_exit 1
-        if [ ".$opt_t" = .yes ]; then
-            echo "cat $tmpfile.lst | xargs $prg_tar cf - | (cd $tmpdir/$tarname && $prg_tar xf -)" 1>&2
-        fi
-        cat $tmpfile.lst |\
-        xargs $prg_tar cf - |\
-        (cd $tmpdir/$tarname && $prg_tar xf -)
-        if [ ".$opt_u" != . ]; then
-            if [ ".$opt_t" = .yes ]; then
-                echo "chown -R $opt_u $tmpdir/$tarname >/dev/null 2>&1" 2>&1
-            fi
-            chown -R $opt_u $tmpdir/$tarname >/dev/null 2>&1 ||\
-            echo "$msgprefix:Warning: cannot set user name \`$opt_u' (would require root privileges)"
-        fi
-        if [ ".$opt_g" != . ]; then
-            if [ ".$opt_t" = .yes ]; then
-                echo "chgrp -R $opt_g $tmpdir/$tarname >/dev/null 2>&1" 2>&1
-            fi
-            chgrp -R $opt_g $tmpdir/$tarname >/dev/null 2>&1 ||\
-            echo "$msgprefix:Warning: cannot set group name \`$opt_g' (would require root privileges)"
-        fi
-        if [ ".$opt_t" = .yes ]; then
-            echo "(cd $tmpdir && $prg_find $tarname -type f -depth -print | sort | xargs $prg_tar cf -) | cat $compress >$tmpfile.out" 1>&2
-        fi
-        (cd $tmpdir && $prg_find $tarname -type f -depth -print | sort | xargs $prg_tar cf -) |\
-        eval cat $compress >$tmpfile.out
-        if [ ".$opt_t" = .yes ]; then
-            echo "cp $tmpfile.out $tarfile" 1>&2
-        fi
-        cp $tmpfile.out $tarfile
-        if [ ".$opt_t" = .yes ]; then
-            echo "rm -rf $tmpdir/$tarname" 1>&2
-        fi
-        rm -rf $tmpdir/$tarname
-    fi
-
-    #   cleanup
-    if [ ".$opt_t" = .yes ]; then
-        echo "rm -f $tmpfile.lst $tmpfile.out" 1>&2
-    fi
-    rm -f $tmpfile.lst $tmpfile.out
-
-    shtool_exit 0
-    ;;
-
-subst )
-    ##
-    ##  subst -- Apply sed(1) substitution operations
-    ##  Copyright (c) 2001-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    #   remember optional list of file(s)
-    files="$*"
-    files_num="$#"
-
-    #   parameter consistency check
-    if [ $# -eq 0 ] && [ ".$opt_b" != . ]; then
-        echo "$msgprefix:Error: option -b cannot be applied to stdin" 1>&2
-        shtool_exit 1
-    fi
-    if [ $# -eq 0 ] && [ ".$opt_s" = .yes ]; then
-        echo "$msgprefix:Error: option -s cannot be applied to stdin" 1>&2
-        shtool_exit 1
-    fi
-
-    #   build underlying sed(1) command
-    sedcmd='sed'
-    if [ ".$opt_e" != . ]; then
-        OIFS="$IFS"; IFS="$ASC_NL"; set -- $opt_e; IFS="$OIFS"
-        for e
-        do
-            sedcmd="$sedcmd -e '$e'"
-        done
-    elif [ ".$opt_f" != . ]; then
-        if [ ! -f $opt_f ]; then
-            echo "$msgprefix:Error: command file \`$opt_f' not found or not a regular file" 1>&2
-            shtool_exit 1
-        fi
-        sedcmd="$sedcmd -f '$opt_f'"
-    else
-        echo "$msgprefix:Error: either -e option(s) or -f option required" 1>&2
-        shtool_exit 1
-    fi
-
-    #   determine extension for original file
-    orig=".orig"
-    if [ ".$opt_b" != . ]; then
-        orig="$opt_b"
-    fi
-
-    #   apply sed(1) operation(s)
-    if [ ".$files" != . ]; then
-        #   apply operation(s) to files
-        substdone=no
-        for file in $files; do
-            test ".$file" = . && continue
-            if [ ! -f $file ]; then
-                echo "$msgprefix:Warning: file \`$file' not found or not a regular file" 1>&2
-                continue
-            fi
-
-            #   handle interactive mode
-            if [ ".$opt_i" = .yes ]; then
-                eval "$sedcmd <$file >$file.new"
-                skip=no
-                if cmp $file $file.new >/dev/null 2>&1; then
-                    rm -f $file.new
-                    skip=yes
-                else
-                    (diff -U1 $file $file.new >$tmpfile) 2>/dev/null
-                    if [ ".`cat $tmpfile`" = . ]; then
-                        (diff -C1 $file $file.new >$tmpfile) 2>/dev/null
-                        if [ ".`cat $tmpfile`" = . ]; then
-                            echo "$msgprefix:Warning: unable to show difference for file \`$file'" 1>&2
-                            cp /dev/null $tmpfile
-                        fi
-                    fi
-                    rm -f $file.new
-                    cat $tmpfile
-                    echo dummy | awk '{ printf("%s", TEXT); }' TEXT=">>> Apply [Y/n]: "
-                    read input
-                    if [ ".$input" != .Y ] &&\
-                       [ ".$input" != .y ] &&\
-                       [ ".$input" != . ]; then
-                       skip=yes
-                    fi
-                fi
-                if [ ".$skip" = .yes ]; then
-                    if [ ".$opt_v" = .yes ]; then
-                        echo "file \`$file' -- skipped" 1>&2
-                    fi
-                    continue
-                fi
-            fi
-
-            #   apply sed(1) operation(s)
-            if [ ".$opt_v" = .yes ]; then
-                echo "patching \`$file'" 1>&2
-            fi
-            if [ ".$opt_t" = .yes ]; then
-                echo "\$ cp -p $file $file$orig"
-                echo "\$ chmod u+w $file"
-                echo "\$ $sedcmd <$file$orig >$file"
-            fi
-            if [ ".$opt_n" = .no ]; then
-                cp -p $file $file$orig
-                chmod u+w $file >/dev/null 2>&1 || true
-                eval "$sedcmd <$file$orig >$file"
-            fi
-
-            #   optionally fix timestamp
-            if [ ".$opt_s" = .yes ]; then
-                if [ ".$opt_t" = .yes ]; then
-                    echo "\$ touch -r $file$orig $file"
-                fi
-                if [ ".$opt_n" = .no ]; then
-                    touch -r $file$orig $file
-                fi
-            fi
-
-            #   optionally check whether any content change actually occurred 
-            if [ ".$opt_q" = .no ]; then
-                if cmp $file$orig $file >/dev/null 2>&1; then
-                    if [ ".$opt_w" = .yes ]; then
-                        echo "$msgprefix:Warning: substitution resulted in no content change on file \"$file\"" 1>&2
-                    fi
-                else
-                    substdone=yes
-                fi
-            fi
-
-            #   optionally remove preserved original file
-            if [ ".$opt_b" = . ]; then
-                if [ ".$opt_t" = .yes ]; then
-                    echo "\$ rm -f $file$orig"
-                fi
-                if [ ".$opt_n" = .no ]; then
-                    rm -f $file$orig
-                fi
-            fi
-        done
-        if [ ".$opt_q" = .no ] && [ ".$opt_w" = .no ]; then
-            if [ ".$substdone" = .no ]; then
-                if [ ".$files_num" = .1 ]; then
-                    echo "$msgprefix:Warning: substitution resulted in no content change on file \"$file\"" 1>&2
-                else
-                    echo "$msgprefix:Warning: substitution resulted in no content change on any file" 1>&2
-                fi
-            fi
-        fi
-    else
-        #   apply operation(s) to stdin/stdout
-        if [ ".$opt_v" = .yes ]; then
-            echo "patching <stdin>" 1>&2
-        fi
-        if [ ".$opt_t" = .yes ]; then
-            echo "\$ $sedcmd"
-        fi
-        if [ ".$opt_n" = .no ]; then
-            eval "$sedcmd"
-        fi
-    fi
-
-    shtool_exit 0
-    ;;
-
-platform )
-    ##
-    ##  platform -- Platform Identification Utility
-    ##  Copyright (c) 2003-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    #   option post-processing
-    if [ ".$opt_t" != . ]; then
-        case "$opt_t" in
-            binary )
-                #   binary package id (OpenPKG RPM)
-                opt_F="%<ap>-%<sp>"
-                opt_L=yes
-                opt_S=""
-                opt_C="+"
-                ;;
-            build )
-                #   build time checking (OpenPKG RPM)
-                opt_F="%<at>-%<st>"
-                opt_L=yes
-                opt_S=""
-                opt_C="+"
-                ;;
-            gnu )
-                #   GNU config.guess style <arch>-<vendor>-<os><osversion>
-                opt_F="%<at>-unknown-%<st>"
-                opt_L=yes
-                opt_S=""
-                opt_C="+"
-                ;;
-            web )
-                #   non-whitespace HTTP Server-header id
-                opt_F="%<sp>-%<ap>"
-                opt_S="/"
-                opt_C="+"
-                ;;
-            summary)
-                #   human readable verbose summary information
-                opt_F="Class:      %[sc] (%[ac])\\nProduct:    %[sp] (%[ap])\\nTechnology: %[st] (%[at])"
-                opt_S=" "
-                opt_C="/"
-                ;;
-            all-in-one )
-                #   full-table all-in-one information
-                opt_F=""
-                opt_F="${opt_F}concise architecture class:      %<ac>\\n"
-                opt_F="${opt_F}regular architecture class:      %{ac}\\n"
-                opt_F="${opt_F}verbose architecture class:      %[ac]\\n"
-                opt_F="${opt_F}concise architecture product:    %<ap>\\n"
-                opt_F="${opt_F}regular architecture product:    %{ap}\\n"
-                opt_F="${opt_F}verbose architecture product:    %[ap]\\n"
-                opt_F="${opt_F}concise architecture technology: %<at>\\n"
-                opt_F="${opt_F}regular architecture technology: %{at}\\n"
-                opt_F="${opt_F}verbose architecture technology: %[at]\\n"
-                opt_F="${opt_F}concise system class:            %<sc>\\n"
-                opt_F="${opt_F}regular system class:            %{sc}\\n"
-                opt_F="${opt_F}verbose system class:            %[sc]\\n"
-                opt_F="${opt_F}concise system product:          %<sp>\\n"
-                opt_F="${opt_F}regular system product:          %{sp}\\n"
-                opt_F="${opt_F}verbose system product:          %[sp]\\n"
-                opt_F="${opt_F}concise system technology:       %<st>\\n"
-                opt_F="${opt_F}regular system technology:       %{st}\\n"
-                opt_F="${opt_F}verbose system technology:       %[st]"
-                ;;
-            * )
-                echo "$msgprefix:Error: invalid type \`$opt_t'" 1>&2
-                exit 1
-                ;;
-        esac
-    fi
-
-    #   assemble initial platform information
-    UNAME_MACHINE=`(uname -m) 2>/dev/null` ||\
-    UNAME_MACHINE=`(uname -p) 2>/dev/null` ||\
-    UNAME_MACHINE='unknown'
-    UNAME_SYSTEM=`(uname -s) 2>/dev/null`  ||\
-    UNAME_SYSTEM='unknown'
-    UNAME_RELEASE=`(uname -r) 2>/dev/null` ||\
-    UNAME_RELEASE=`(uname -v) 2>/dev/null` ||\
-    UNAME_RELEASE='unknown'
-
-    UNAME="${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}"
-
-    AC=""; AP=""; AT=""
-    SC=""; SP=""; ST=""
-
-    #    dispatch into platform specific sections
-    case "${UNAME}" in
-
-        #   FreeBSD
-        *:FreeBSD:* )
-            #   determine architecture
-            AC="${UNAME_MACHINE}"
-            case "${AC}" in
-                i386 ) AC="iX86" ;;
-            esac
-            AP="${AC}"
-            AT="${AP}"
-            if [ ".${AT}" = ".iX86" ]; then
-                case "`(/sbin/sysctl -n hw.model) 2>&1`" in
-                    *"Xeon"* | *"Pentium Pro"* | *"Cyrix 6x86MX"* | *"Pentium II"* | *"Pentium III"* | *"Pentium 4"* | *"Celeron"* ) AT="i686" ;;
-                    *"Pentium"* ) AT="i586" ;; *"i486[SD]X"* | *"Cyrix 486"* | *"Cyrix [56]x86"* | *"Blue Lightning" | *"Cyrix 486S/DX" ) AT="i486" ;;
-                    *"i386[SD]X"* | *"NexGen 586"* ) AT="i386" ;;
-                esac
-            fi
-            #   determine system
-            r=`echo "${UNAME_RELEASE}" |\
-               sed -e 's;[()];;' -e 's/\(-.*\)$/[\1]/'`
-            ST="FreeBSD ${r}"
-            SP="${ST}"
-            case "${r}" in
-                1.* ) SC="4.3BSD" ;;
-                *   ) SC="4.4BSD" ;;
-            esac
-            ;;
-
-        #   NetBSD
-        *:NetBSD:* )
-            #   determine architecture
-            AT="${UNAME_MACHINE}"
-            AP="${AT}"
-            case "${AP}" in
-                i[3-6]86 ) AP="iX86" ;;
-            esac
-            AC="${AP}"
-            #   determine system
-            r=`echo "${UNAME_RELEASE}" | sed -e 's/\([-_].*\)$/[\1]/'`
-            ST="NetBSD ${r}"
-            SP="${ST}"
-            case "${r}" in
-                0.* ) SC="4.3BSD" ;;
-                *   ) SC="4.4BSD" ;;
-            esac
-            ;;
-
-        #   OpenBSD
-        *:OpenBSD:* )
-            #   determine architecture
-            AT="${UNAME_MACHINE}"
-            AP="${AT}"
-            case "${AP}" in
-                i[3-6]86 ) AP="iX86" ;;
-            esac
-            AC="${AP}"
-            #   determine system
-            r=`echo "${UNAME_RELEASE}" | sed -e 's/\([-_].*\)$/[\1]/'`
-            ST="OpenBSD ${r}"
-            SP="${ST}"
-            SC="4.4BSD"
-            ;;
-
-        #   GNU/Linux
-        *:Linux:* )
-            #   determine architecture
-            AT="${UNAME_MACHINE}"
-            case "${AT}" in
-               ia64     ) AT="IA64"   ;;
-               x86_64   ) AT='AMD64'  ;;
-               parisc   ) AT="HPPA32" ;;
-               parisc64 ) AT="HPPA64" ;;
-            esac
-            AP="${AT}"
-            case "${AP}" in
-               i[3-6]86 ) AP='iX86' ;;
-            esac
-            AC="${AP}"
-            #   determine system
-            v_kern=`echo "${UNAME_RELEASE}" |\
-                sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/'`
-            v_libc=`(strings /lib/libc.so.* | grep '^GLIBC_' | sed -e 's/^GLIBC_//' |\
-                env -i sort -n | sed -n -e '$p' | sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/') 2>/dev/null`
-            ST="GNU/<Linux >${v_libc}/<${v_kern}>"
-            if [ -f /etc/lsb-release ]; then
-                eval `( . /etc/lsb-release
-                    echo "SC=\"LSB${LSB_VERSION}\""
-                    if [ ".${DISTRIB_ID}" != . -a ".${DISTRIB_RELEASE}" != . ]; then
-                        echo "SP=\"${DISTRIB_ID} ${DISTRIB_RELEASE}\""
-                    fi
-                ) 2>/dev/null`
-            fi
-            if [ ".$SP" = . ]; then
-                for tagfile in x \
-                    `cd /etc && \
-                    /bin/ls *[_-]release *[_-]version 2>/dev/null | env -i sort | \
-                    sed -e '/^redhat-release$/d' -e '/^lsb-release$/d'; \
-                    echo redhat-release lsb-release`
-                do
-                    [ ".${tagfile}" = .x ] && continue
-                    [ ! -f "/etc/${tagfile}" ] && continue
-                    n=`echo ${tagfile} | sed -e 's/[_-]release$//' -e 's/[_-]version$//'`
-                    v=`(grep VERSION /etc/${tagfile}; cat /etc/${tagfile}) | grep '[0-9]' | sed -e 'q' |\
-                       sed -e 's/^/#/' \
-                           -e 's/^#[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/' \
-                           -e 's/^#[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/' \
-                           -e 's/^#[^0-9]*\([0-9][0-9]*\).*$/\1/' \
-                           -e 's/^#.*$//'`
-                    case "`util_lower ${n}`" in
-                        redhat )
-                            if [ ".`grep 'Red Hat Enterprise Linux' /etc/${tagfile}`" != . ]; then
-                                n="<R>ed <H>at <E>nterprise <L>inux"
-                            else
-                                n="<R>ed <H>at <L>inux"
-                            fi
-                            ;;
-                        debian             ) n="Debian[ GNU/Linux]"        ;;
-                        ubuntu             ) n="Ubuntu[ GNU/Linux]"        ;;
-                        fedora             ) n="<Fedora> Core[ GNU/Linux]" ;;
-                        suse               ) n="SuSE[ Linux]"              ;;
-                        mandrake*|mandriva ) n="Mandriva[ Linux]"          ;;
-                        gentoo             ) n="Gentoo[ GNU/Linux]"        ;;
-                        slackware          ) n="Slackware[ Linux]"         ;;
-                        turbolinux         ) n="TurboLinux"                ;;
-                        unitedlinux        ) n="UnitedLinux"               ;;
-                        *                  ) n="${n}[ GNU/Linux]"          ;;
-                    esac
-                    case "$n" in
-                        *"<"*">"* ) SP="$n <$v>" ;;
-                        *         ) SP="$n $v"   ;;
-                    esac
-                    break
-                done
-            fi
-            [ ".$SP" = . ] && SP="${ST}"
-            [ ".$SC" = . ] && SC="LSB"
-            ;;
-
-        #   Sun Solaris
-        *:SunOS:* )
-            #   determine architecture
-            AT="${UNAME_MACHINE}"
-            case "${AT}" in
-                i86pc )
-                    AT="iX86"
-                    case "`(/bin/isainfo -k) 2>&1`" in
-                        amd64 ) AT="AMD64" ;;
-                    esac
-                    ;;
-            esac
-            AP="${AT}"
-            case "${AP}" in
-                sun4[cdm] ) AP="SPARC32" ;;
-                sun4[uv]  ) AP="SPARC64" ;;
-                sun4*     ) AP="SPARC"   ;;
-            esac
-            AC="${AP}"
-            case "${AC}" in
-                SPARC* ) AC="SPARC" ;;
-            esac
-            #   determine system
-            ST="[Sun ]SunOS ${UNAME_RELEASE}"
-            v=`echo "${UNAME_RELEASE}" |\
-               sed -e 's;^4\.;1.;' \
-                   -e 's;^5\.\([0-6]\)[^0-9]*$;2.\1;' \
-                   -e 's;^5\.\([0-9][0-9]*\).*;\1;'`
-            SP="[Sun ]Solaris $v"
-            case "${UNAME_RELEASE}" in
-                4.* ) SC="4.3BSD" ;;
-                5.* ) SC="SVR4"   ;;
-            esac
-            ;;
-
-        #   SCO UnixWare
-        *:UnixWare:* )
-            #   determine architecture
-            AT="${UNAME_MACHINE}"
-            case "${AT}" in
-                i[3-6]86 | ix86at ) AT="iX86" ;;
-            esac
-            AP="${AT}"
-            #   determine system
-            v=`/sbin/uname -v`
-            ST="[SCO ]UnixWare ${v}"
-            SP="${ST}"
-            SC="SVR${UNAME_RELEASE}"
-            ;;
-
-        #   QNX
-        *:QNX:* )
-            #   determine architecture
-            AT="${UNAME_MACHINE}"
-            case "${AT}" in
-                x86pc ) AT="iX86" ;;
-            esac
-            AP="${AT}"
-            #   determine system
-            v="${UNAME_RELEASE}"
-            ST="QNX[ Neutrino RTOS] ${v}"
-            v=`echo "${v}" | sed -e 's;^\([0-9][0-9]*\.[0-9][0-9]*\).*$;\1;'`
-            SP="QNX[ Neutrino RTOS] ${v}"
-            SC="QNX"
-            ;;
-
-        #   SGI IRIX
-        *:IRIX*:* )
-            #   determine architecture
-            AT="${UNAME_MACHINE}"
-            AP="${AT}"
-            case "${AP}:${UNAME_SYSTEM}" in
-                IP*:IRIX64 ) AP="MIPS64" ;;
-                IP*:*      ) AP="MIPS"   ;;
-            esac
-            AC="${AP}"
-            #   determine system
-            v=`(/bin/uname -R || /bin/uname -r) 2>/dev/null | sed -e 's;[0-9.]* ;;'`
-            ST="[SGI ]IRIX ${v}"
-            v="${UNAME_RELEASE}"
-            SP="[SGI ]IRIX ${v}"
-            SC="4.2BSD/SVR3"
-            ;;
-
-        #   HP HP-UX
-        *:HP-UX:* )
-            #   determine architecture
-            AT="${UNAME_MACHINE}"
-            case "${AT}" in
-                ia64 ) AT="IA64" ;;
-                9000/[34]?? ) AT=M68K ;;
-                9000/[678][0-9][0-9])
-                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
-                        523 ) AT="HPPA1.0" ;;
-                        528 ) AT="HPPA1.1" ;;
-                        532 ) AT="HPPA2.0"
-                            case "${sc_kernel_bits}" in
-                                32 ) AT="${AT}n" ;;
-                                64 ) AT="${AT}w" ;;
-                            esac
-                            ;;
-                    esac
-                    ;;
-            esac
-            AP="${AT}"
-            case "${AP}" in
-                HPPA* ) AP="HPPA" ;;
-            esac
-            AC="${AP}"
-            #   determine system
-            v=`echo "${UNAME_RELEASE}" | sed -e 's;^[^0-9]*;;'`
-            ST="[HP ]<HP>-<UX ${v}>"
-            SP="${ST}"
-            case "${v}" in
-                10.*   ) SC="SVR4.2" ;;
-                [7-9]* ) SC="SVR4"   ;;
-            esac
-            ;;
-
-        #   HP Tru64 (OSF1)
-        *:OSF1:* )
-            #   determine architecture
-            AP="${UNAME_MACHINE}"
-            case "${AP}" in
-                alpha ) AP="Alpha" ;;
-            esac
-            alpha_type=`(/usr/sbin/psrinfo -v) 2>/dev/null |\
-                sed -n -e 's/^.*The alpha \([^ ][^ ]*\).*processor.*$/\1/p' | sed -e 'q'`
-            AT="${AP}${alpha_type}"
-            AC="${AP}"
-            #   determine system
-            v=`echo "${UNAME_RELEASE}" | sed -e 's;^[VTX];;'`
-            ST="[HP ]Tru64 ${v}"
-            SP="${ST}"
-            SC="OSF1"
-            ;;
-
-        #   IBM AIX
-        *:AIX:* )
-            cpu_arch=rs6000
-            if [ -x /usr/sbin/lsdev -a -x /usr/sbin/lsattr ]; then
-                cpu_id=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
-                if [ ".`/usr/sbin/lsattr -El ${cpu_id} | grep -i powerpc`" != . ]; then
-                    cpu_arch=powerpc
-                fi
-            elif [ -d /QOpenSys ]; then
-                #   IBM i5/OS (aka OS/400) with PASE (Portable Application Solutions Environment)
-                cpu_arch=powerpc
-            fi
-            if [ -x /usr/bin/oslevel ]; then
-                os_level=`/usr/bin/oslevel`
-            else
-                os_level="`uname -v`.`uname -r`"
-            fi
-            os_level=`echo "${os_level}" |\
-                      sed -e 's;^\([0-9][0-9]*\.[0-9][0-9]*\)\(\.[0-9][0-9]*\)\(.*\)$;<\1>\2[\3];' \
-                          -e 's;^\([0-9][0-9]*\.[0-9][0-9]*\)\(.*\)$;<\1>\2;'`
-            AT="${cpu_arch}"
-            AP="${AT}"
-            AC="${AP}"
-            ST="[IBM ]<AIX >${os_level}"
-            SP="${ST}"
-            case "${os_level}" in
-                [12]* ) SC="SVR2" ;;
-                *     ) SC="SVR4" ;;
-            esac
-            ;;
-
-        #   Apple MacOS X Darwin
-        *:Darwin:* )
-            AT=`uname -p`
-            case "${AT}" in
-                powerpc ) AT="PPC" ;;
-            esac
-            AP="${AT}"
-            AC="${AP}"
-            case "${AC}" in
-                i?86 ) AC="iX86" ;;
-            esac
-            ST="[Apple ]${UNAME_SYSTEM} ${UNAME_RELEASE}"
-            SP="${ST}"
-            SC="4.4BSD/Mach3"
-            ;;
-
-        #   TODO ...ADD YOUR NEW PLATFORM CHECK HERE... TODO
-        # *:XXX:* )
-        #   ...
-        #   ;;
-
-        #   ...A STILL UNKNOWN PLATFORM...
-        * )
-            AT=`echo "${UNAME_MACHINE}" | sed -e "s; ;${opt_C};g"`
-            AP="${AT}"
-            AC="${AP}"
-            v=`echo "${UNAME_RELEASE}" |\
-               sed -e 's/^/#/' \
-                   -e 's/^#[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/' \
-                   -e 's/^#[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/' \
-                   -e 's/^#[^0-9]*\([0-9][0-9]*\).*$/\1/' \
-                   -e 's/^#.*$/?/'`
-            ST="${UNAME_SYSTEM} ${v}"
-            SP="${ST}"
-            SC="${SP}"
-            ;;
-
-    esac
-
-    #   provide fallback values
-    [ ".$AT" = . ] && AT="${AP:-${AC}}"
-    [ ".$AP" = . ] && AP="${AT:-${AC}}"
-    [ ".$AC" = . ] && AC="${AP:-${AT}}"
-    [ ".$ST" = . ] && ST="${SP:-${SC}}"
-    [ ".$SP" = . ] && SP="${ST:-${SC}}"
-    [ ".$SC" = . ] && SC="${SP:-${ST}}"
-
-    #   support explicit enforced verbose/concise output
-    if [ ".$opt_v" = .yes ]; then
-        opt_F=`echo ":$opt_F" | sed -e 's/^://' -e 's/%\([as][cpt]\)/%[\1]/g'`
-    elif [ ".$opt_c" = .yes ]; then
-        opt_F=`echo ":$opt_F" | sed -e 's/^://' -e 's/%\([as][cpt]\)/%<\1>/g'`
-    fi
-
-    #   provide verbose and concise variants
-    AC_V=""; AC_N=""; AC_C=""
-    AP_V=""; AP_N=""; AP_C=""
-    AT_V=""; AT_N=""; AT_C=""
-    SC_V=""; SC_N=""; SC_C=""
-    SP_V=""; SP_N=""; SP_C=""
-    ST_V=""; ST_N=""; ST_C=""
-    for var_lc in at ap ac st sp sc; do
-        case "$opt_F" in
-            *"%[${val_lc}]"* | *"%{${val_lc}}"* | *"%${val_lc}"* | *"%<${val_lc}>"* )
-            var_uc=`util_upper "$var_lc"`
-            eval "val=\"\$${var_uc}\""
-            val_V=""; val_N=""; val_C=""
-            case "$opt_F" in
-                *"%[${var_lc}]"* )
-                    val_V=`echo ":$val" | \
-                           sed -e 's/^://' \
-                               -e 's;\[\([^]]*\)\];\1;g' \
-                               -e 's;<\([^>]*\)>;\1;g' \
-                               -e "s; ;§§;g" \
-                               -e "s;/;%%;g" \
-                               -e "s;§§;${opt_S};g" \
-                               -e "s;%%;${opt_C};g"`
-                    eval "${var_uc}_V=\"\${val_V}\""
-                    ;;
-            esac
-            case "$opt_F" in
-                *"%{${var_lc}}"* | *"%${var_lc}"* )
-                    val_N=`echo ":$val" | \
-                           sed -e 's/^://' \
-                               -e 's;\[\([^]]*\)\];;g' \
-                               -e 's;<\([^>]*\)>;\1;g' \
-                               -e "s; ;§§;g" \
-                               -e "s;/;%%;g" \
-                               -e "s;§§;${opt_S};g" \
-                               -e "s;%%;${opt_C};g"`
-                    eval "${var_uc}_N=\"\${val_N}\""
-                    ;;
-            esac
-            case "$opt_F" in
-                *"%<${var_lc}>"* )
-                    val_C=`echo ":$val" | \
-                           sed -e 's/^://' \
-                               -e 's;\[\([^]]*\)\];;g' \
-                               -e 's;[^<]*<\([^>]*\)>[^<]*;\1;g' \
-                               -e "s; ;§§;g" \
-                               -e "s;/;%%;g" \
-                               -e "s;§§;${opt_S};g" \
-                               -e "s;%%;${opt_C};g"`
-                    eval "${var_uc}_C=\"\${val_C}\""
-                    ;;
-            esac
-            ;;
-        esac
-    done
-
-    #   create output string
-    output=`echo ":$opt_F" |\
-            sed -e "s/^://" \
-                -e "s;%\\[ac\\];${AC_V};g" \
-                -e "s;%{ac};${AC_N};g" \
-                -e "s;%ac;${AC_N};g" \
-                -e "s;%<ac>;${AC_C};g" \
-                -e "s;%\\[ap\\];${AP_V};g" \
-                -e "s;%{ap};${AP_N};g" \
-                -e "s;%ap;${AP_N};g" \
-                -e "s;%<ap>;${AP_C};g" \
-                -e "s;%\\[at\\];${AT_V};g" \
-                -e "s;%{at};${AT_N};g" \
-                -e "s;%at;${AT_N};g" \
-                -e "s;%<at>;${AT_C};g" \
-                -e "s;%\\[sc\\];${SC_V};g" \
-                -e "s;%{sc};${SC_N};g" \
-                -e "s;%sc;${SC_N};g" \
-                -e "s;%<sc>;${SC_C};g" \
-                -e "s;%\\[sp\\];${SP_V};g" \
-                -e "s;%{sp};${SP_N};g" \
-                -e "s;%sp;${SP_N};g" \
-                -e "s;%<sp>;${SP_C};g" \
-                -e "s;%\\[st\\];${ST_V};g" \
-                -e "s;%{st};${ST_N};g" \
-                -e "s;%st;${ST_N};g" \
-                -e "s;%<st>;${ST_C};g" \
-                -e 's/\\\\n/^/g' |\
-             tr '^' '\012'`
-
-    #   support lower/upper-case mapping
-    if [ ".$opt_L" = .yes ]; then
-        output=`util_lower "$output"`
-    elif [ ".$opt_U" = .yes ]; then
-        output=`util_upper "$output"`
-    fi
-
-    #   display output string
-    if [ ".$opt_n" = .yes ]; then
-        echo . | awk '{ printf("%s", output); }' output="$output"
-    else
-        echo "$output"
-    fi
-
-    shtool_exit 0
-    ;;
-
-arx )
-    ##
-    ##  arx -- Extended archive command
-    ##  Copyright (c) 1999-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    ar_prg="$opt_C"
-    ar_cmd="$1"; shift
-    archive="$1"; shift
-    files="$*"
-
-    #   walk through the file list and expand archives members
-    ar_tmpdir=`echo $archive | sed -e 's;[^/]*$;.arx;'`
-    nfiles=''
-    if [ ".$files" != . ]; then
-        for file in $files; do
-            if [ ! -f $file ]; then
-                echo "$msgprefix:Error: input file not found: $file" 1>&2
-                shtool_exit 1
-            fi
-            case $file in
-                *.a )
-                    if [ ! -d $ar_tmpdir ]; then
-                        if [ ".$opt_t" = .yes ]; then
-                            echo "mkdir $ar_tmpdir" 1>&2
-                        fi
-                        mkdir $ar_tmpdir
-                    fi
-                    case $ar_tmpdir in
-                         .arx )
-                             from="../$file"
-                             ;;
-                         * )
-                             dir=`echo $file | sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;' -e 's;^$;.;'`
-                             base=`echo $file | sed -e 's;.*/\([^/]*\)$;\1;'`
-                             from="`cd $dir; pwd`/$base"
-                             ;;
-                    esac
-                    if [ ".$opt_t" = .yes ]; then
-                        echo "(cd $ar_tmpdir && $ar_prg x $from)" 1>&2
-                    fi
-                    (cd $ar_tmpdir && eval $ar_prg x $from)
-                    if [ $? -ne 0 ]; then
-                        echo "$msgprefix:Error: member extraction failed for archive: $file" 1>&2
-                        shtool_exit 1
-                    fi
-                    for member in - `eval $ar_prg t $file | sed -e '/_\.SYMDEF/d'`; do
-                        [ ".$member" = .- ] && continue
-                        nfiles="$nfiles $ar_tmpdir/$member"
-                    done
-                    ;;
-                * )
-                    nfiles="$nfiles $file"
-                    ;;
-            esac
-        done
-    fi
-
-    #   run the final archive command
-    if [ ".$opt_t" = .yes ]; then
-        echo "$ar_prg $ar_cmd $archive $nfiles" 1>&2
-    fi
-    eval $ar_prg $ar_cmd $archive $nfiles
-    if [ $? -ne 0 ]; then
-        echo "$msgprefix:Error: archive command failed" 1>&2
-        shtool_exit $?
-    fi
-
-    #   cleanup and die gracefully
-    if [ -d $ar_tmpdir ]; then
-        if [ ".$opt_t" = .yes ]; then
-            echo "rm -rf $ar_tmpdir" 1>&2
-        fi
-        rm -rf $ar_tmpdir
-    fi
-
-    shtool_exit 0
-    ;;
-
-slo )
-    ##
-    ##  slo -- Separate linker options by library class
-    ##  Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    DIFS="$IFS"
-
-    #   parse out -L and -l options from command line
-    DIRS=''
-    LIBS=''
-    ARGV=''
-    optprev=''
-    for opt
-    do
-        #   concatenate with previous option if exists
-        if [ ".$optprev" != . ]; then
-            opt="${optprev}${opt}";
-            optprev=''
-        fi
-        #   remember options for arg if used stand-alone
-        if [ ".$opt" = ".-L" ] || [ ".$opt" = ".-l" ]; then
-            optprev="$opt"
-            continue;
-        fi
-        #   split argument into option plus option argument
-        arg="`echo $opt | cut -c3-`"
-        opt="`echo $opt | cut -c1-2`"
-        #   store into containers
-        case $opt in
-            -L) DIRS="$DIRS:$arg" ;;
-            -l) LIBS="$LIBS:$arg" ;;
-             *) ARGV="$ARGV $opt" ;;
-        esac
-    done
-
-    #   set linker default directories
-    DIRS_DEFAULT='/lib:/usr/lib'
-    if [ ".$LD_LIBRARY_PATH" != . ]; then
-        DIRS_DEFAULT="$DIRS_DEFAULT:$LD_LIBRARY_PATH"
-    fi
-
-    #   sort options by class
-    DIRS_OBJ=''
-    LIBS_OBJ=''
-    DIRS_PIC=''
-    LIBS_PIC=''
-    DIRS_DSO=''
-    LIBS_DSO=''
-
-    #    for each library...
-    OIFS="$IFS"; IFS=':'
-    for lib in $LIBS; do
-        [ ".$lib" = . ] && continue
-
-        found='no'
-        found_indefdir='no'
-        found_type=''
-        found_dir=''
-
-        #    for each directory...
-        OIFS2="$IFS"; IFS=":$DIFS"
-        for dir in ${DIRS} switch-to-defdirs ${DIRS_DEFAULT}; do
-            [ ".$dir" = . ] && continue
-            [ ".$dir" = .switch-to-defdirs ] && found_indefdir=yes
-            [ ! -d $dir ] && continue
-
-            #    search the file
-            OIFS3="$IFS"; IFS="$DIFS"
-            for file in '' `cd $dir && env -i /bin/ls lib${lib}.* 2>/dev/null`; do
-                 [ ".$file" = . ] && continue
-                 case $file in
-                     *.so|*.so.[0-9]*|*.sl|*.sl.[0-9]* )
-                          found=yes;
-                          found_type=DSO;
-                          break
-                          ;;
-                     *.lo|*.la )
-                          found=yes;
-                          found_type=PIC
-                          ;;
-                     *.a )
-                          if [ ".$found_type" = . ]; then
-                              found=yes
-                              found_type=OBJ
-                          fi
-                          ;;
-                 esac
-            done
-            IFS="$OIFS3"
-            if [ ".$found" = .yes ]; then
-                found_dir="$dir"
-                break
-            fi
-        done
-        IFS="$OIFS2"
-
-        if [ ".$found" = .yes ]; then
-            if [ ".$found_indefdir" != .yes ]; then
-                eval "dirlist=\"\${DIRS_${found_type}}:\""
-                case "$dirlist" in
-                    *:$found_dir:* ) ;;
-                    * ) eval "DIRS_${found_type}=\"\$DIRS_${found_type}:${found_dir}\"" ;;
-                esac
-                eval "LIBS_${found_type}=\"\$LIBS_${found_type}:$lib\""
-            else
-                eval "LIBS_${found_type}=\"\$LIBS_${found_type}:$lib\""
-            fi
-        else
-            LIBS_OBJ="$LIBS_OBJ:$lib"
-            #dirlist="`echo $DIRS $DIRS_DEFAULT | sed -e 's/:/ /g'`"
-            #echo "slo:Warning: library \"$lib\" not found in any of the following dirs:" 2>&1
-            #echo "slo:Warning: $dirlist" 1>&1
-        fi
-    done
-    IFS="$OIFS"
-
-    #   also pass-through unused dirs even if it's useless
-    OIFS="$IFS"; IFS=':'
-    for dir in $DIRS; do
-        dirlist="${DIRS_OBJ}:${DIRS_PIC}:${DIRS_DSO}:"
-        case "$dirlist" in
-            *:$dir:* ) ;;
-            * ) DIRS_OBJ="$DIRS_OBJ:$dir" ;;
-        esac
-    done
-    IFS="$OIFS"
-
-    #   reassemble the options but separated by type
-    for type in OBJ PIC DSO; do
-        OIFS="$IFS"; IFS=':'
-        eval "libs=\"\$LIBS_${type}\""
-        opts=''
-        for lib in $libs; do
-            [ ".$lib" = . ] && continue
-            opts="$opts -l$lib"
-        done
-        eval "LIBS_${type}=\"$opts\""
-
-        eval "dirs=\"\$DIRS_${type}\""
-        opts=''
-        for dir in $dirs; do
-            [ ".$dir" = . ] && continue
-            opts="$opts -L$dir"
-        done
-        eval "DIRS_${type}=\"$opts\""
-        IFS="$OIFS"
-    done
-
-    #   give back results
-    for var in ARGV DIRS_OBJ LIBS_OBJ DIRS_PIC LIBS_PIC DIRS_DSO LIBS_DSO; do
-        eval "val=\"\$${var}\""
-        val="`echo $val | sed -e 's/^ *//'`"
-        echo "${opt_p}${var}=\"${val}\""
-    done
-
-    shtool_exit 0
-    ;;
-
-scpp )
-    ##
-    ##  scpp -- Sharing C Pre-Processor
-    ##  Copyright (c) 1999-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    srcs="$*"
-    output="${opt_o}.n"
-
-    #   find a reasonable Awk
-    awk=''
-    paths=`echo $PATH |\
-           sed -e 's%/*:%:%g' -e 's%/$%%' \
-               -e 's/^:/.:/' -e 's/::/:.:/g' -e 's/:$/:./' \
-               -e 's/:/ /g'`
-    for name in gawk nawk awk; do
-        for path in $paths; do
-            if [ -r "$path/$name" ]; then
-                awk="$path/$name"
-                break
-            fi
-        done
-        if [ ".$awk" != . ]; then
-            break
-        fi
-    done
-    if [ ".$awk" = . ]; then
-        echo "$msgprefix:Error: cannot find a reasonable Awk" 1>&2
-        shtool_exit 1
-    fi
-
-    #   parse source file(s)
-    if [ ".$opt_v" = .yes ]; then
-        echo "Parsing:" | $awk '{ printf("%s", $0); }' 1>&2
-    fi
-    for src in $srcs; do
-        if [ ".$opt_v" = .yes ]; then
-            echo $src | $awk '{ printf(" %s", $0); }' 1>&2
-        fi
-        if [ ".$opt_f" != . ]; then
-            inputcmd="sed"
-            OIFS="$IFS"; IFS="$ASC_NL"; set -- $opt_f; IFS="$OIFS"
-            for e
-            do
-                inputcmd="$inputcmd -e '$e'"
-            done
-            inputcmd="$inputcmd '$src'"
-        else
-            inputcmd="cat '$src'"
-        fi
-        eval $inputcmd |\
-        $awk '
-           BEGIN {
-               ln    = 0;
-               fln   = 0;
-               level = 0;
-               mode  = "";
-               store = "";
-           }
-           {
-               ln++;
-           }
-           /^#if.*/ {
-               level++;
-           }
-           /^#if [a-zA-Z_][a-zA-Z0-9_]* *$/ {
-               if ($2 == define) {
-                   mode = "D";
-                   printf("D:#line %d \"%s\"\n", ln, src);
-                   next;
-               }
-           }
-           /^#endif.*/ {
-               level--;
-               if (mode == "D" && level == 0) {
-                   mode = "";
-                   next;
-               }
-           }
-           /^[a-zA-Z_][a-zA-Z0-9_].*;.*/ {
-               if ($1 == class) {
-                   printf("V:#line %d \"%s\"\n", ln, src);
-                   printf("V:%s\n", $0);
-                   printf("J:%s\n", $0);
-                   next;
-               }
-           }
-           /^[a-zA-Z_][a-zA-Z0-9_].*=.*/ {
-               if ($1 == class) {
-                   printf("V:#line %d \"%s\"\n", ln, src);
-                   printf("V:%s\n", $0);
-                   printf("J:%s\n", $0);
-                   next;
-               }
-           }
-           /^[a-zA-Z_][a-zA-Z0-9_]*/ {
-               if ($1 == class) {
-                   fln = ln;
-                   store = $0;
-                   mode = "F";
-                   next;
-               }
-           }
-           /^\{ *$/ {
-               if (mode == "F") {
-                   printf("F:#line %d \"%s\"\n", fln, src);
-                   printf("F:%s;\n", store);
-                   printf("I:%s;\n", store);
-                   store = "";
-                   mode = "";
-                   next;
-               }
-           }
-           {
-               if (mode == "D")
-                   printf("D:%s\n", $0);
-               else if (mode == "F")
-                   store = store " " $0;
-           }
-        ' "src=$src" "define=$opt_D" "class=$opt_C" >>$tmpfile
-    done
-    if [ ".$opt_v" = .yes ]; then
-        echo "" 1>&2
-    fi
-
-    #   start generating output header
-    echo "/* $opt_o -- autogenerated from $opt_t, DO NOT EDIT! */" >$output
-    echo "#line 1 \"$opt_t\"" >>$output
-    sed <$opt_t -e "1,/^${opt_M} *\$/p" -e 'd' |\
-    sed -e "/^${opt_M} *\$/d" >>$output
-
-    #   merge in the define blocks
-    grep '^D:' $tmpfile | sed -e 's/^D://' >>$output
-
-    #   generate standard prolog
-    echo "#line 1 \"_ON_THE_FLY_\"" >>$output
-    echo "" >>$output
-    echo "/* make sure the scpp source extensions are skipped */" >>$output
-    echo "#define $opt_D 0" >>$output
-    echo "#define $opt_C /**/" >>$output
-
-    #   generate namespace hiding for variables
-    echo "" >>$output
-    echo "/* move intern variables to hidden namespace */" >>$output
-    grep '^J:' $tmpfile | sed >>$output \
-        -e 's/^J://' \
-        -e 's/  */ /g' \
-        -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\)\[\];.*$/#define \1 __\1/' \
-        -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\)\[\] =.*$/#define \1 __\1/' \
-        -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\);.*$/#define \1 __\1/' \
-        -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\) =.*$/#define \1 __\1/'
-
-    #   generate namespace hiding for functions
-    echo "" >>$output
-    echo "/* move intern functions to hidden namespace */" >>$output
-    grep '^I:' $tmpfile | sed >>$output \
-        -e 's/^I://' \
-        -e 's/\([ (]\) */\1/g' \
-        -e 's/ *\([),]\)/\1/g' \
-        -e 's/^[^(]*[ *]\([a-zA-Z0-9_]*\)(.*$/#define \1 __\1/'
-
-    #   generate prototypes for variables
-    echo "" >>$output
-    echo "/* prototypes for intern variables */" >>$output
-    grep '^V:' $tmpfile | sed >>$output \
-        -e 's/^V://' \
-        -e 's/  */ /g' \
-        -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\[\]\);.*$/\1;/' \
-        -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\[\]\) =.*$/\1;/' \
-        -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\);.*$/\1;/' \
-        -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\) =.*$/\1;/' \
-        -e 's/ ;/;/g' \
-        -e "s/^$opt_C /extern /"
-
-    #   generate prototypes for functions
-    echo "" >>$output
-    echo "/* prototypes for intern functions */" >>$output
-    grep '^F:' $tmpfile | sed >>$output \
-        -e 's/^F://' \
-        -e 's/\([ (]\) */\1/g' \
-        -e 's/ *\([),]\)/\1/g' \
-        -e 's/\([* ]\)[a-zA-Z0-9_]*,/\1,/g' \
-        -e 's/\([* ]\)[a-zA-Z0-9_]*);/\1);/g' \
-        -e 's/(\*[a-zA-Z0-9_]*)(/(*)(/g' \
-        -e 's/\([ (]\) */\1/g' \
-        -e 's/ *\([),]\)/\1/g' \
-        -e "s/^$opt_C /extern /"
-
-    #   finish generating output header
-    n=`(echo ''; sed <$opt_t -e "1,/^${opt_M} *\$/p" -e 'd') |\
-       wc -l | sed -e 's;^ *\([0-9]*\) *$;\1;'`
-    echo "#line $n \"$opt_t\"" >>$output
-    sed <$opt_t -e "/^${opt_M} *\$/,\$p" -e 'd' |\
-    sed -e "/^${opt_M} *\$/d" >>$output
-
-    #   create final output file
-    if [ -f $opt_o ]; then
-        if [ ".$opt_p" = .yes ]; then
-            grep -v '^#line' $opt_o  >$tmpfile.o
-            grep -v '^#line' $output >$tmpfile.n
-            out_old="$tmpfile.o"
-            out_new="$tmpfile.n"
-        else
-            out_old="$opt_o"
-            out_new="$output"
-        fi
-        if cmp -s $out_old $out_new; then
-            :
-        else
-            cp $output $opt_o
-        fi
-    else
-        cp $output $opt_o
-    fi
-    rm -f $output
-    rm -f $tmpfile $tmpfile.* >/dev/null 2>&1
-
-    shtool_exit 0
-    ;;
-
-version )
-    ##
-    ##  version -- Maintain a version information file
-    ##  Copyright (c) 1994-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    file="$1"
-
-    #   determine prefix and name
-    name="$opt_n"
-    prefix="$opt_p"
-
-    #   determine current version
-    triple="$opt_s"
-    if [ ".$triple" != . ]; then
-        #   use given triple
-        if [ ".`echo $triple | grep '[0-9]*.[0-9]*[sabp.][0-9]*'`" = . ]; then
-            echo "$msgprefix:Error: invalid argument to option \`-s': \`$opt_s'" 1>&2
-            shtool_exit 1
-        fi
-        eval `echo $triple |\
-              sed -e 's%\([0-9]*\)\.\([0-9]*\)\([sabp.]\)\([0-9]*\).*%\
-              ver="\1";rev="\2";typ="\3";lev="\4"%'`
-        tim=calc
-    elif [ -r $file ]; then
-        #   determine triple from given file
-        eval `grep 'Version [0-9]*.[0-9]*[sabp.][0-9]* ([0-9]*-[a-zA-Z]*-[0-9]*)' $file |\
-              sed -e 's%.*Version \([0-9]*\)\.\([0-9]*\)\([sabp.]\)\([0-9]*\) (\([0-9]*-[a-zA-Z]*-[0-9]*\)).*%\
-              ver="\1";rev="\2";typ="\3";lev="\4";tim="\5"%' -e 'q'`
-    else
-        #   intialise to first version
-        ver=0
-        rev=1
-        typ=.
-        lev=0
-        tim=calc
-    fi
-
-    #   determine new version in batch
-    if [ ".$opt_i" != . ]; then
-        case $opt_i in
-            v ) ver=`expr $ver + 1`
-                rev=0
-                lev=0
-                ;;
-            r ) rev=`expr $rev + 1`
-                lev=0
-                ;;
-            l ) lev=`expr $lev + 1`
-                ;;
-            * ) echo "$msgprefix:Error: invalid argument to option \`-i': \`$opt_i'" 1>&2
-                shtool_exit 1
-                ;;
-        esac
-        tim=calc
-    fi
-
-    #   determine new version interactively
-    if [ ".$opt_e" = .yes ]; then
-        echo "old version: ${ver}.${rev}${typ}${lev}"
-        while [ 1 ]; do
-            echo dummy | awk '{ printf("new version: "); }'
-            read triple
-            case $triple in
-                [0-9]*.[0-9]*[sabp.][0-9]* )
-                    ;;
-                * ) echo "$msgprefix:Error: invalid version string entered: \`$triple'" 1>&2
-                    continue
-                    ;;
-            esac
-            break
-        done
-        eval `echo $triple |\
-              sed -e 's%^\([0-9]*\)\.\([0-9]*\)\([sabp.]\)\([0-9]*\)$%\
-              ver="\1";rev="\2";typ="\3";lev="\4"%'`
-        tim=calc
-    fi
-
-    #   determine hexadecimal and libtool value of version
-    case $typ in
-        a     ) typnum=0;  levnum=$lev ;;
-        b     ) typnum=1;  levnum=$lev ;;
-        p | . ) typnum=2;  levnum=$lev ;;
-        s     ) typnum=15; levnum=255  ;; # snapshots are special
-    esac
-    hex=`echo "$ver:$rev:$typnum:$levnum" |\
-         awk -F: '{ printf("0x%x%02x%1x%02x", $1, $2, $3, $4); }' |\
-         tr 'abcdef' 'ABCDEF'`
-    ltv=`echo "$ver:$rev:$typnum:$levnum" |\
-         awk -F: '{ printf("%d:%d", $1*10 + $2, $3*10 + $4); }'`
-
-    #   determine date
-    if [ ".$tim" = .calc ]; then
-        day=`date '+%d'`
-        month=`date '+%m'`
-        year=`date '+%Y' 2>/dev/null`
-        if [ ".$time_year" = . ]; then
-            year=`date '+%y'`
-            case $year in
-                [5-9][0-9]) year="19$year" ;;
-                [0-4][0-9]) year="20$year" ;;
-            esac
-        fi
-        case $month in
-            1|01) month='Jan' ;;
-            2|02) month='Feb' ;;
-            3|03) month='Mar' ;;
-            4|04) month='Apr' ;;
-            5|05) month='May' ;;
-            6|06) month='Jun' ;;
-            7|07) month='Jul' ;;
-            8|08) month='Aug' ;;
-            9|09) month='Sep' ;;
-              10) month='Oct' ;;
-              11) month='Nov' ;;
-              12) month='Dec' ;;
-        esac
-        tim="${day}-${month}-${year}"
-    fi
-
-    #   perform result actions
-    mode=show
-    if [ ".$opt_i" != . ]; then
-        mode=edit
-    elif [ ".$opt_e" = .yes ]; then
-        mode=edit
-    elif [ ".$opt_s" != . ]; then
-        mode=edit
-    fi
-    if [ ".$mode" = .show ]; then
-        #   just display the current version
-        case $opt_d in
-            short )
-                echo "${ver}.${rev}${typ}${lev}"
-                ;;
-            long )
-                echo "${ver}.${rev}${typ}${lev} ($tim)"
-                ;;
-            libtool )
-                echo "${ltv}"
-                ;;
-            hex )
-                echo "${hex}"
-                ;;
-            * ) echo "$msgprefix:Error: invalid argument to option \`-d': \`$opt_d'" 1>&2
-                shtool_exit 1
-                ;;
-        esac
-    else
-        #   update the version file
-
-        #   pre-generate various strings
-        triple="${ver}.${rev}${typ}${lev}"
-        vHex="$hex"
-        vShort="${triple}"
-        vLong="${triple} (${tim})"
-        vTeX="This is ${name}, Version ${triple} (${tim})"
-        vGNU="${name} ${triple} (${tim})"
-        vWeb="${name}/${triple}"
-        vSCCS="@(#)${name} ${triple} (${tim})"
-        vRCS="\$Id: ${name} ${triple} (${tim}) \$"
-
-        #   determine string out of filename
-        #   (do NOT try to optimize this in any way because of portability)
-        filestr=`util_upper "$file" | tr './%+' '____' | sed -e 's/-/_/g'`
-
-        #   generate uppercase prefix
-        prefixupper=`util_upper "$prefix"`
-
-        #   create the version file according the the selected language
-        echo "new version: ${vLong}"
-
-        cp /dev/null $file
-        case $opt_l in
-            txt )
-                echo >>$file ""
-                echo >>$file "  ${file} -- Version Information for ${name} (syntax: Text)"
-                echo >>$file "  [automatically generated and maintained by GNU shtool]"
-                echo >>$file ""
-                echo >>$file "  $vTeX"
-                echo >>$file ""
-                ;;
-            c )
-                echo >>$file "/*"
-                echo >>$file "**  ${file} -- Version Information for ${name} (syntax: C/C++)"
-                echo >>$file "**  [automatically generated and maintained by GNU shtool]"
-                echo >>$file "*/"
-                echo >>$file ""
-                echo >>$file "#ifdef _${filestr}_AS_HEADER_"
-                echo >>$file ""
-                echo >>$file "#ifndef _${filestr}_"
-                echo >>$file "#define _${filestr}_"
-                echo >>$file ""
-                echo >>$file "#define ${prefixupper}VERSION ${vHex}"
-                echo >>$file ""
-                echo >>$file "typedef struct {"
-                echo >>$file "    const int   v_hex;"
-                echo >>$file "    const char *v_short;"
-                echo >>$file "    const char *v_long;"
-                echo >>$file "    const char *v_tex;"
-                echo >>$file "    const char *v_gnu;"
-                echo >>$file "    const char *v_web;"
-                echo >>$file "    const char *v_sccs;"
-                echo >>$file "    const char *v_rcs;"
-                echo >>$file "} ${prefix}version_t;"
-                echo >>$file ""
-                echo >>$file "extern ${prefix}version_t ${prefix}version;"
-                echo >>$file ""
-                echo >>$file "#endif /* _${filestr}_ */"
-                echo >>$file ""
-                echo >>$file "#else /* _${filestr}_AS_HEADER_ */"
-                echo >>$file ""
-                echo >>$file "#define _${filestr}_AS_HEADER_"
-                echo >>$file "#include \"${file}\""
-                echo >>$file "#undef  _${filestr}_AS_HEADER_"
-                echo >>$file ""
-                echo >>$file "${prefix}version_t ${prefix}version = {"
-                echo >>$file "    ${vHex},"
-                echo >>$file "    \"${vShort}\","
-                echo >>$file "    \"${vLong}\","
-                echo >>$file "    \"${vTeX}\","
-                echo >>$file "    \"${vGNU}\","
-                echo >>$file "    \"${vWeb}\","
-                echo >>$file "    \"${vSCCS}\","
-                echo >>$file "    \"${vRCS}\""
-                echo >>$file "};"
-                echo >>$file ""
-                echo >>$file "#endif /* _${filestr}_AS_HEADER_ */"
-                echo >>$file ""
-                ;;
-            m4 )
-                echo >>$file "##"
-                echo >>$file "##  ${file} -- Version Information for ${name} (syntax: M4)"
-                echo >>$file "##  [automatically generated and maintained by GNU shtool]"
-                echo >>$file "##"
-                echo >>$file ""
-                echo >>$file "m4_define([v_hex],   [${vHex}])"
-                echo >>$file "m4_define([v_short], [${vShort}])"
-                echo >>$file "m4_define([v_long],  [${vLong}])"
-                echo >>$file "m4_define([v_tex],   [${vTeX}])"
-                echo >>$file "m4_define([v_gnu],   [${vGNU}])"
-                echo >>$file "m4_define([v_web],   [${vWeb}])"
-                echo >>$file "m4_define([v_sccs],  [${vSCCS}])"
-                echo >>$file "m4_define([v_rcs],   [${vRCS}])"
-                echo >>$file ""
-                ;;
-            perl )
-                echo >>$file "##"
-                echo >>$file "##  ${file} -- Version Information for ${name} (syntax: Perl)"
-                echo >>$file "##  [automatically generated and maintained by GNU shtool]"
-                echo >>$file "##"
-                echo >>$file ""
-                echo >>$file "our \$${prefix}version = {"
-                echo >>$file "    'v_hex'   => ${vHex},"
-                echo >>$file "    'v_short' => \"${vShort}\","
-                echo >>$file "    'v_long'  => \"${vLong}\","
-                echo >>$file "    'v_tex'   => \"${vTeX}\","
-                echo >>$file "    'v_gnu'   => \"${vGNU}\","
-                echo >>$file "    'v_web'   => \"${vWeb}\","
-                echo >>$file "    'v_sccs'  => \"${vSCCS}\","
-                echo >>$file "    'v_rcs'   => \"\\${vRCS}/\""
-                echo >>$file "};"
-                echo >>$file ""
-                echo >>$file "1;"
-                echo >>$file ""
-                ;;
-            python )
-                echo >>$file "##"
-                echo >>$file "##  ${file} -- Version Information for ${name} (syntax: Python)"
-                echo >>$file "##  [automatically generated and maintained by GNU shtool]"
-                echo >>$file "##"
-                echo >>$file ""
-                echo >>$file "class ${prefix}version:"
-                echo >>$file "    v_hex       = ${vHex}"
-                echo >>$file "    v_short     = \"${vShort}\""
-                echo >>$file "    v_long      = \"${vLong}\""
-                echo >>$file "    v_tex       = \"${vTeX}\""
-                echo >>$file "    v_gnu       = \"${vGNU}\""
-                echo >>$file "    v_web       = \"${vWeb}\""
-                echo >>$file "    v_sccs      = \"${vSCCS}\""
-                echo >>$file "    v_rcs       = \"${vRCS}\""
-                echo >>$file ""
-                ;;
-            * ) echo "$msgprefix:Error: invalid argument to option \`-l': \`$opt_l'" 1>&2
-                shtool_exit 1
-                ;;
-        esac
-    fi
-
-    shtool_exit 0
-    ;;
-
-path )
-    ##
-    ##  path -- Deal with program paths
-    ##  Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com>
-    ##
-
-    namelist="$*"
-
-    #   check whether the test command supports the -x option
-    if [ -x /bin/sh ] 2>/dev/null; then
-        minusx="-x"
-    else
-        minusx="-r"
-    fi
-
-    #   split path string
-    paths="`echo $opt_p |\
-            sed -e 's/^:/.:/' \
-                -e 's/::/:.:/g' \
-                -e 's/:$/:./' \
-                -e 's/:/ /g'`"
-
-    #   SPECIAL REQUEST
-    #   translate forward to reverse path
-    if [ ".$opt_r" = .yes ]; then
-        if [ "x$namelist" = "x." ]; then
-            rp='.'
-        else
-            rp=''
-            for pe in `IFS="$IFS/"; echo $namelist`; do
-                rp="../$rp"
-            done
-        fi
-        echo $rp | sed -e 's:/$::'
-        shtool_exit 0
-    fi
-
-    #   SPECIAL REQUEST
-    #   strip out directory or base name
-    if [ ".$opt_d" = .yes ]; then
-        echo "$namelist" |\
-        sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;'
-        shtool_exit 0
-    fi
-    if [ ".$opt_b" = .yes ]; then
-        echo "$namelist" |\
-        sed -e 's;.*/\([^/]*\)$;\1;'
-        shtool_exit 0
-    fi
-
-    #   MAGIC SITUATION
-    #   Perl Interpreter (perl)
-    if [ ".$opt_m" = .yes ] && [ ".$namelist" = .perl ]; then
-        rm -f $tmpfile >/dev/null 2>&1
-        touch $tmpfile
-        found=0
-        pc=99
-        for dir in $paths; do
-            dir=`echo $dir | sed -e 's;/*$;;'`
-            nc=99
-            for name in perl perl5 miniperl; do
-                 if [ $minusx "$dir/$name" ] && [ ! -d "$dir/$name" ]; then
-                     perl="$dir/$name"
-                     pv=`$perl -e 'printf("%.3f", $]);'`
-                     echo "$pv:$pc:$nc:$perl" >>$tmpfile
-                     found=1
-                 fi
-                 nc=`expr $nc - 1`
-            done
-            pc=`expr $pc - 1`
-        done
-        if [ $found = 1 ]; then
-            perl="`cat $tmpfile | sort -r -u | sed -e 'q' | cut -d: -f4`"
-            rm -f $tmpfile >/dev/null 2>&1
-            echo "$perl"
-            shtool_exit 0
-        fi
-        rm -f $tmpfile >/dev/null 2>&1
-        shtool_exit 1
-    fi
-
-    #   MAGIC SITUATION
-    #   C pre-processor (cpp)
-    if [ ".$opt_m" = .yes ] && [ ".$namelist" = .cpp ]; then
-        echo >$tmpfile.c "#include <assert.h>"
-        echo >>$tmpfile.c "Syntax Error"
-        #   1. try the standard cc -E approach
-        cpp="${CC-cc} -E"
-        (eval "$cpp $tmpfile.c >/dev/null") 2>$tmpfile.out
-        my_error=`grep -v '^ *+' $tmpfile.out`
-        if [ ".$my_error" != . ]; then
-            #   2. try the cc -E approach and GCC's -traditional-ccp option
-            cpp="${CC-cc} -E -traditional-cpp"
-            (eval "$cpp $tmpfile.c >/dev/null") 2>$tmpfile.out
-            my_error=`grep -v '^ *+' $tmpfile.out`
-            if [ ".$my_error" != . ]; then
-                #   3. try a standalone cpp command in path and lib dirs
-                for path in $paths /lib /usr/lib /usr/local/lib; do
-                    path=`echo $path | sed -e 's;/*$;;'`
-                    if [ $minusx "$path/cpp" ] && [ ! -d "$path/cpp" ]; then
-                        cpp="$path/cpp"
-                        break
-                    fi
-                done
-                if [ ".$cpp" != . ]; then
-                    (eval "$cpp $tmpfile.c >/dev/null") 2>$tmpfile.out
-                    my_error=`grep -v '^ *+' $tmpfile.out`
-                    if [ ".$my_error" != . ]; then
-                        #   ok, we gave up...
-                        cpp=''
-                    fi
-                fi
-            fi
-        fi
-        rm -f $tmpfile >/dev/null 2>&1
-        rm -f $tmpfile.c $tmpfile.out >/dev/null 2>&1
-        if [ ".$cpp" != . ]; then
-            echo "$cpp"
-            shtool_exit 0
-        fi
-        shtool_exit 1
-    fi
-
-    #   STANDARD SITUATION
-    #   iterate over names
-    for name in $namelist; do
-        #   iterate over paths
-        for path in $paths; do
-            path=`echo $path | sed -e 's;/*$;;'`
-            if [ $minusx "$path/$name" ] && [ ! -d "$path/$name" ]; then
-                if [ ".$opt_s" != .yes ]; then
-                    echo "$path/$name"
-                fi
-                shtool_exit 0
-            fi
-        done
-    done
-
-    shtool_exit 1
-    ;;
-
-esac
-
-shtool_exit 0
-
diff --git a/libs/uuid/uuid++.3 b/libs/uuid/uuid++.3
deleted file mode 100644 (file)
index 17daac5..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.07)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` 
-.    ds C' 
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.ie \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.el \{\
-.    de IX
-..
-.\}
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title ".::uuid++ 3"
-.TH .::uuid++ 3 "OSSP uuid 1.6.2" "04-Jul-2008" "Universally Unique Identifier"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-\&\fB\s-1OSSP\s0 uuid\fR \- \fBUniversally Unique Identifier\fR (\*(C+ \s-1API\s0)
-.SH "VERSION"
-.IX Header "VERSION"
-\&\s-1OSSP\s0 uuid \s-11.6.2 (04-Jul-2008)\s0
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBuuid++\fR is the \s-1ISO\-\*(C+\s0 language binding of the \fB\s-1OSSP\s0 uuid\fR C \s-1API\s0.
-It provides a thin \s-1ISO\-\*(C+\s0 class \fBuuid\fR wrapping the ISO-C \s-1API\s0 type
-\&\fBuuid_t\fR.
-.SH "APPLICATION PROGRAMMING INTERFACE"
-.IX Header "APPLICATION PROGRAMMING INTERFACE"
-The \s-1ISO\-\*(C+\s0 Application Programming Interface (\s-1API\s0) of \fB\s-1OSSP\s0 uuid\fR
-consists of the following components:
-.Sh "\s-1CONSTANTS\s0"
-.IX Subsection "CONSTANTS"
-The constants are the same to those provided by the ISO-C \s-1API\s0.
-See \fIuuid\fR\|(3) for details.
-.Sh "\s-1CLASSES\s0"
-.IX Subsection "CLASSES"
-The following classes are provided:
-.IP "\fBuuid\fR" 4
-.IX Item "uuid"
-This is the class corresponding to the C \s-1API\s0 type \fBuuid_t\fR.
-It is the main object.
-.IP "\fBuuid_error_t\fR" 4
-.IX Item "uuid_error_t"
-This is the class corresponding to the C \s-1API\s0 function \fBuuid_error\fR.
-It is the object thrown as an exception in case of any errors.
-.Sh "\s-1METHODS\s0"
-.IX Subsection "METHODS"
-The following methods are provided:
-.IP "\fBuuid\fR();" 4
-.IX Item "uuid();"
-The standard constructor.
-.IP "\fBuuid\fR(const uuid &_obj);" 4
-.IX Item "uuid(const uuid &_obj);"
-The copy constructor for \fBuuid\fR class.
-.IP "\fBuuid\fR(const uuid_t *_obj);" 4
-.IX Item "uuid(const uuid_t *_obj);"
-The import constructor for C \s-1API\s0 objects.
-.IP "\fBuuid\fR(const void *_bin);" 4
-.IX Item "uuid(const void *_bin);"
-The import constructor for binary representation.
-.IP "\fBuuid\fR(const char *_str);" 4
-.IX Item "uuid(const char *_str);"
-The import constructor for string representation.
-.IP "~\fBuuid\fR();" 4
-.IX Item "~uuid();"
-The standard destructor for \fBuuid\fR class.
-.IP "uuid &\fBuuid::operator=\fR(const uuid &_obj);" 4
-.IX Item "uuid &uuid::operator=(const uuid &_obj);"
-The assignment operator corresponding to the copy constructor.
-.IP "uuid &\fBuuid::operator=\fR(const uuid_t *_obj);" 4
-.IX Item "uuid &uuid::operator=(const uuid_t *_obj);"
-The assignment operator corresponding to the import constructor for C \s-1API\s0 objects.
-.IP "uuid &\fBuuid::operator=\fR(const void *_bin);" 4
-.IX Item "uuid &uuid::operator=(const void *_bin);"
-The assignment operator corresponding to the import constructor for binary representation.
-.IP "uuid &\fBuuid::operator=\fR(const char *_str);" 4
-.IX Item "uuid &uuid::operator=(const char *_str);"
-The assignment operator corresponding to the import constructor for string and single integer value representation.
-.IP "uuid \fBuuid::clone\fR(void);" 4
-.IX Item "uuid uuid::clone(void);"
-Regular method corresponding to the C \s-1API\s0 function \fBuuid_clone\fR.
-.IP "void \fBuuid::load\fR(const char *_name);" 4
-.IX Item "void uuid::load(const char *_name);"
-Regular method corresponding to the C \s-1API\s0 function \fBuuid_load\fR.
-.IP "void \fBuuid::make\fR(unsigned int _mode, ...);" 4
-.IX Item "void uuid::make(unsigned int _mode, ...);"
-Regular method corresponding to the C \s-1API\s0 function \fBuuid_make\fR.
-.IP "int \fBuuid::isnil\fR(void);" 4
-.IX Item "int uuid::isnil(void);"
-Regular method corresponding to the C \s-1API\s0 function \fBuuid_isnil\fR.
-.IP "int \fBuuid::compare\fR(const uuid &_obj);" 4
-.IX Item "int uuid::compare(const uuid &_obj);"
-Regular method corresponding to the C \s-1API\s0 function \fBuuid_compare\fR.
-.IP "int \fBuuid::operator==\fR(const uuid &_obj);" 4
-.IX Item "int uuid::operator==(const uuid &_obj);"
-The comparison operator corresponding to \fBuuid_compare\fR usage for equality.
-.IP "int \fBuuid::operator!=\fR(const uuid &_obj);" 4
-.IX Item "int uuid::operator!=(const uuid &_obj);"
-The comparison operator corresponding to \fBuuid_compare\fR usage for inequality.
-.IP "int \fBuuid::operator<\fR(const uuid &_obj);" 4
-.IX Item "int uuid::operator<(const uuid &_obj);"
-The comparison operator corresponding to \fBuuid_compare\fR usage for less-than.
-.IP "int \fBuuid::operator<=\fR(const uuid &_obj);" 4
-.IX Item "int uuid::operator<=(const uuid &_obj);"
-The comparison operator corresponding to \fBuuid_compare\fR usage for less-than-or-equal.
-.IP "int \fBuuid::operator>\fR(const uuid &_obj);" 4
-.IX Item "int uuid::operator>(const uuid &_obj);"
-The comparison operator corresponding to \fBuuid_compare\fR usage for greater-than.
-.IP "int \fBuuid::operator>=\fR(const uuid &_obj);" 4
-.IX Item "int uuid::operator>=(const uuid &_obj);"
-The comparison operator corresponding to \fBuuid_compare\fR usage for greater-than-or-equal.
-.IP "void \fBuuid::import\fR(const void *_bin);" 4
-.IX Item "void uuid::import(const void *_bin);"
-Regular method corresponding to the C \s-1API\s0 function \fBuuid_import\fR for binary representation usage.
-.IP "void \fBuuid::import\fR(const char *_str);" 4
-.IX Item "void uuid::import(const char *_str);"
-Regular method corresponding to the C \s-1API\s0 function \fBuuid_import\fR for string representation usage.
-.IP "void *\fBuuid::binary\fR(void);" 4
-.IX Item "void *uuid::binary(void);"
-Regular method corresponding to the C \s-1API\s0 function \fBuuid_export\fR for binary representation usage.
-.IP "char *\fBuuid::string\fR(void);" 4
-.IX Item "char *uuid::string(void);"
-Regular method corresponding to the C \s-1API\s0 function \fBuuid_export\fR for string representation usage.
-.IP "char *\fBuuid::integer\fR(void);" 4
-.IX Item "char *uuid::integer(void);"
-Regular method corresponding to the C \s-1API\s0 function \fBuuid_export\fR for single integer value representation usage.
-.IP "char *\fBuuid::summary\fR(void);" 4
-.IX Item "char *uuid::summary(void);"
-Regular method corresponding to the C \s-1API\s0 function \fBuuid_export\fR for textual summary representation usage.
-.IP "unsigned long \fBuuid::version\fR(void);" 4
-.IX Item "unsigned long uuid::version(void);"
-Regular method corresponding to the C \s-1API\s0 function \fBuuid_version\fR.
-.IP "\fBuuid_error_t\fR()" 4
-.IX Item "uuid_error_t()"
-The standard constructor for \fBuuid_error_t\fR class.
-.IP "\fBuuid_error_t\fR(uuid_rc_t _code)" 4
-.IX Item "uuid_error_t(uuid_rc_t _code)"
-The standard constructor for \fBuuid_error_t\fR class with return code initialization.
-.IP "~\fBuuid_error_t\fR()" 4
-.IX Item "~uuid_error_t()"
-The standard destructor for \fBuuid_error_t\fR class.
-.IP "void \fBuuid_error_t::code\fR(uuid_rc_t _code)" 4
-.IX Item "void uuid_error_t::code(uuid_rc_t _code)"
-Regular method for setting the return code.
-.IP "uuid_rc_t \fBuuid_error_t::code\fR(void)" 4
-.IX Item "uuid_rc_t uuid_error_t::code(void)"
-Regular method for fetching the return code.
-.IP "char *\fBuuid_error_t::string\fR(void)" 4
-.IX Item "char *uuid_error_t::string(void)"
-Regular method for fetching the string corresponding to the current return code.
-.SH "EXAMPLE"
-.IX Header "EXAMPLE"
-The following shows an example usage of the \*(C+ \s-1API\s0. Exception handling is
-omitted for code simplification and has to be re-added for production
-code.
-.PP
-.Vb 5
-\& /* generate a DCE 1.1 v1 UUID from system environment */
-\& char *uuid_v1(void)
-\& {
-\&     uuid id;
-\&     char *str;
-\&
-\&     id.make(UUID_MAKE_V1);
-\&     str = id.string();
-\&     return str;
-\& }
-\&
-\& /* generate a DCE 1.1 v3 UUID from an URL */
-\& char *uuid_v3(const char *url)
-\& {
-\&     uuid id;
-\&     uuid id_ns;
-\&     char *str;
-\&
-\&     id_ns.load("ns:URL");
-\&     id.make(UUID_MAKE_V3, &id_ns, url);
-\&     str = id.string();
-\&     return str;
-\& }
-.Ve
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIuuid\fR\|(3).
diff --git a/libs/uuid/uuid++.cc b/libs/uuid/uuid++.cc
deleted file mode 100644 (file)
index d710cef..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid++.cc: library C++ API implementation
-*/
-
-#include <string.h>
-#include <stdarg.h>
-
-#include "uuid++.hh"
-
-/*  standard constructor */
-uuid::uuid()
-{
-    uuid_rc_t rc;
-    if ((rc = uuid_create(&ctx)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-}
-
-/*  copy constructor */
-uuid::uuid(const uuid &obj)
-{
-    /* Notice: the copy constructor is the same as the assignment
-       operator (with the object as the argument) below, except that
-       (1) no check for self-assignment is required, (2) no existing
-       internals have to be destroyed and (3) no return value is given back. */
-    uuid_rc_t rc;
-    if ((rc = uuid_clone(obj.ctx, &ctx)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    return;
-}
-
-/*  extra constructor via C API object */
-uuid::uuid(const uuid_t *obj)
-{
-    uuid_rc_t rc;
-    if (obj == NULL)
-        throw uuid_error_t(UUID_RC_ARG);
-    if ((rc = uuid_clone(obj, &ctx)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    return;
-}
-
-/*  extra constructor via binary representation */
-uuid::uuid(const void *bin)
-{
-    uuid_rc_t rc;
-    if (bin == NULL)
-        throw uuid_error_t(UUID_RC_ARG);
-    if ((rc = uuid_create(&ctx)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    import(bin);
-    return;
-}
-
-/*  extra constructor via string representation */
-uuid::uuid(const char *str)
-{
-    uuid_rc_t rc;
-    if (str == NULL)
-        throw uuid_error_t(UUID_RC_ARG);
-    if ((rc = uuid_create(&ctx)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    import(str);
-    return;
-}
-
-/*  standard destructor */
-uuid::~uuid()
-{
-    uuid_destroy(ctx);
-    return;
-}
-
-/*  assignment operator: import of other C++ API object */
-uuid &uuid::operator=(const uuid &obj)
-{
-    uuid_rc_t rc;
-    if (this == &obj)
-        return *this;
-    if ((rc = uuid_destroy(ctx)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    if ((rc = uuid_clone(obj.ctx, &ctx)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    return *this;
-}
-
-/*  assignment operator: import of other C API object */
-uuid &uuid::operator=(const uuid_t *obj)
-{
-    uuid_rc_t rc;
-    if (obj == NULL)
-        throw uuid_error_t(UUID_RC_ARG);
-    if ((rc = uuid_clone(obj, &ctx)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    return *this;
-}
-
-/*  assignment operator: import of binary representation */
-uuid &uuid::operator=(const void *bin)
-{
-    if (bin == NULL)
-        throw uuid_error_t(UUID_RC_ARG);
-    import(bin);
-    return *this;
-}
-
-/*  assignment operator: import of string representation */
-uuid &uuid::operator=(const char *str)
-{
-    if (str == NULL)
-        throw uuid_error_t(UUID_RC_ARG);
-    import(str);
-    return *this;
-}
-
-/*  method: clone object */
-uuid uuid::clone(void)
-{
-    return new uuid(this);
-}
-
-/*  method: loading existing UUID by name */
-void uuid::load(const char *name)
-{
-    uuid_rc_t rc;
-    if (name == NULL)
-        throw uuid_error_t(UUID_RC_ARG);
-    if ((rc = uuid_load(ctx, name)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    return;
-}
-
-/*  method: making new UUID one from scratch */
-void uuid::make(unsigned int mode, ...)
-{
-    uuid_rc_t rc;
-    va_list ap;
-
-    va_start(ap, mode);
-    if ((mode & UUID_MAKE_V3) || (mode & UUID_MAKE_V5)) {
-        const uuid *ns = (const uuid *)va_arg(ap, const uuid *);
-        const char *name = (const char *)va_arg(ap, char *);
-        if (ns == NULL || name == NULL)
-            throw uuid_error_t(UUID_RC_ARG);
-        rc = uuid_make(ctx, mode, ns->ctx, name);
-    }
-    else
-        rc = uuid_make(ctx, mode);
-    va_end(ap);
-    if (rc != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    return;
-}
-
-/*  method: comparison for Nil UUID */
-int uuid::isnil(void)
-{
-    uuid_rc_t rc;
-    int rv;
-
-    if ((rc = uuid_isnil(ctx, &rv)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    return rv;
-}
-
-/*  method: comparison against other object */
-int uuid::compare(const uuid &obj)
-{
-    uuid_rc_t rc;
-    int rv;
-
-    if ((rc = uuid_compare(ctx, obj.ctx, &rv)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    return rv;
-}
-
-/*  method: comparison for equality */
-int uuid::operator==(const uuid &obj)
-{
-    return (compare(obj) == 0);
-}
-
-/*  method: comparison for inequality */
-int uuid::operator!=(const uuid &obj)
-{
-    return (compare(obj) != 0);
-}
-
-/*  method: comparison for lower-than */
-int uuid::operator<(const uuid &obj)
-{
-    return (compare(obj) < 0);
-}
-
-/*  method: comparison for lower-than-or-equal */
-int uuid::operator<=(const uuid &obj)
-{
-    return (compare(obj) <= 0);
-}
-
-/*  method: comparison for greater-than */
-int uuid::operator>(const uuid &obj)
-{
-    return (compare(obj) > 0);
-}
-
-/*  method: comparison for greater-than-or-equal */
-int uuid::operator>=(const uuid &obj)
-{
-    return (compare(obj) >= 0);
-}
-
-/*  method: import binary representation */
-void uuid::import(const void *bin)
-{
-    uuid_rc_t rc;
-    if ((rc = uuid_import(ctx, UUID_FMT_BIN, bin, UUID_LEN_BIN)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    return;
-}
-
-/*  method: import string or single integer value representation */
-void uuid::import(const char *str)
-{
-    uuid_rc_t rc;
-    if ((rc = uuid_import(ctx, UUID_FMT_STR, str, UUID_LEN_STR)) != UUID_RC_OK)
-        if ((rc = uuid_import(ctx, UUID_FMT_SIV, str, UUID_LEN_SIV)) != UUID_RC_OK)
-            throw uuid_error_t(rc);
-    return;
-}
-
-/*  method: export binary representation */
-void *uuid::binary(void)
-{
-    uuid_rc_t rc;
-    void *bin = NULL;
-    if ((rc = uuid_export(ctx, UUID_FMT_BIN, &bin, NULL)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    return bin;
-}
-
-/*  method: export string representation */
-char *uuid::string(void)
-{
-    uuid_rc_t rc;
-    char *str = NULL;
-    if ((rc = uuid_export(ctx, UUID_FMT_STR, (void **)&str, NULL)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    return str;
-}
-
-/*  method: export single integer value representation */
-char *uuid::integer(void)
-{
-    uuid_rc_t rc;
-    char *str = NULL;
-    if ((rc = uuid_export(ctx, UUID_FMT_SIV, (void **)&str, NULL)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    return str;
-}
-
-/*  method: export textual summary representation */
-char *uuid::summary(void)
-{
-    uuid_rc_t rc;
-    char *txt = NULL;
-    if ((rc = uuid_export(ctx, UUID_FMT_TXT, (void **)&txt, NULL)) != UUID_RC_OK)
-        throw uuid_error_t(rc);
-    return txt;
-}
-
-/*  method: return library version */
-unsigned long uuid::version(void)
-{
-    return uuid_version();
-}
-
diff --git a/libs/uuid/uuid++.hh b/libs/uuid/uuid++.hh
deleted file mode 100644 (file)
index f99c63f..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid++.hh: library C++ API definition
-*/
-
-#ifndef __UUIDXX_HH__
-#define __UUIDXX_HH__
-
-/* required C API header */
-#include <stdlib.h>
-#include "uuid.h"
-
-/* UUID object class */
-class uuid {
-    public:
-        /* construction & destruction */
-                      uuid         ();                         /* standard constructor */
-                      uuid         (const uuid   &_obj);       /* copy     constructor */
-                      uuid         (const uuid_t *_obj);       /* import   constructor */
-                      uuid         (const void   *_bin);       /* import   constructor */
-                      uuid         (const char   *_str);       /* import   constructor */
-                     ~uuid         ();                         /* destructor */
-
-        /* copying & cloning */
-        uuid         &operator=    (const uuid   &_obj);       /* copy   assignment operator */
-        uuid         &operator=    (const uuid_t *_obj);       /* import assignment operator */
-        uuid         &operator=    (const void   *_bin);       /* import assignment operator */
-        uuid         &operator=    (const char   *_str);       /* import assignment operator */
-        uuid          clone        (void);                     /* regular method */
-
-        /* content generation */
-        void          load         (const char *_name);        /* regular method */
-        void          make         (unsigned int _mode, ...);  /* regular method */
-
-        /* content comparison */
-        int           isnil        (void);                     /* regular method */
-        int           compare      (const uuid &_obj);         /* regular method */
-        int           operator==   (const uuid &_obj);         /* comparison operator */
-        int           operator!=   (const uuid &_obj);         /* comparison operator */
-        int           operator<    (const uuid &_obj);         /* comparison operator */
-        int           operator<=   (const uuid &_obj);         /* comparison operator */
-        int           operator>    (const uuid &_obj);         /* comparison operator */
-        int           operator>=   (const uuid &_obj);         /* comparison operator */
-
-        /* content importing & exporting */
-        void          import       (const void *_bin);         /* regular method */
-        void          import       (const char *_str);         /* regular method */
-        void         *binary       (void);                     /* regular method */
-        char         *string       (void);                     /* regular method */
-        char         *integer      (void);                     /* regular method */
-        char         *summary      (void);                     /* regular method */
-
-        unsigned long version      (void);                     /* regular method */
-
-    private:
-        uuid_t *ctx;
-};
-
-/* UUID exception class */
-class uuid_error_t {
-    public:
-                      uuid_error_t ()                     { code(UUID_RC_OK); };
-                      uuid_error_t (uuid_rc_t _code)      { code(_code); };
-                     ~uuid_error_t ()                     { };
-        void          code         (uuid_rc_t _code)      { rc = _code; };
-        uuid_rc_t     code         (void)                 { return rc; };
-        char         *string       (void)                 { return uuid_error(rc); };
-
-    private:
-        uuid_rc_t rc;
-};
-
-#endif /* __UUIDXX_HH__ */
-
diff --git a/libs/uuid/uuid++.pod b/libs/uuid/uuid++.pod
deleted file mode 100644 (file)
index 8b5a4b1..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid++.pod: manual page for C++ API
-##
-
-=pod
-
-=head1 NAME
-
-B<OSSP uuid> - B<Universally Unique Identifier> (C++ API)
-
-=head1 VERSION
-
-OSSP uuid UUID_VERSION_STR
-
-=head1 DESCRIPTION
-
-B<uuid++> is the ISO-C++ language binding of the B<OSSP uuid> C API.
-It provides a thin ISO-C++ class B<uuid> wrapping the ISO-C API type
-B<uuid_t>.
-
-=head1 APPLICATION PROGRAMMING INTERFACE
-
-The ISO-C++ Application Programming Interface (API) of B<OSSP uuid>
-consists of the following components:
-
-=head2 CONSTANTS
-
-The constants are the same to those provided by the ISO-C API.
-See uuid(3) for details.
-
-=head2 CLASSES
-
-The following classes are provided:
-
-=over 4
-
-=item B<uuid>
-
-This is the class corresponding to the C API type B<uuid_t>.
-It is the main object.
-
-=item B<uuid_error_t>
-
-This is the class corresponding to the C API function B<uuid_error>.
-It is the object thrown as an exception in case of any errors.
-
-=back
-
-=head2 METHODS
-
-The following methods are provided:
-
-=over 4
-
-=item B<uuid>();
-
-The standard constructor.
-
-=item B<uuid>(const uuid &_obj);
-
-The copy constructor for B<uuid> class.
-
-=item B<uuid>(const uuid_t *_obj);
-
-The import constructor for C API objects.
-
-=item B<uuid>(const void *_bin);
-
-The import constructor for binary representation.
-
-=item B<uuid>(const char *_str);
-
-The import constructor for string representation.
-
-=item ~B<uuid>();
-
-The standard destructor for B<uuid> class.
-
-=item uuid &B<uuid::operator=>(const uuid &_obj);
-
-The assignment operator corresponding to the copy constructor.
-
-=item uuid &B<uuid::operator=>(const uuid_t *_obj);
-
-The assignment operator corresponding to the import constructor for C API objects.
-
-=item uuid &B<uuid::operator=>(const void *_bin);
-
-The assignment operator corresponding to the import constructor for binary representation.
-
-=item uuid &B<uuid::operator=>(const char *_str);
-
-The assignment operator corresponding to the import constructor for string and single integer value representation.
-
-=item uuid B<uuid::clone>(void);
-
-Regular method corresponding to the C API function B<uuid_clone>.
-
-=item void B<uuid::load>(const char *_name);
-
-Regular method corresponding to the C API function B<uuid_load>.
-
-=item void B<uuid::make>(unsigned int _mode, ...);
-
-Regular method corresponding to the C API function B<uuid_make>.
-
-=item int B<uuid::isnil>(void);
-
-Regular method corresponding to the C API function B<uuid_isnil>.
-
-=item int B<uuid::compare>(const uuid &_obj);
-
-Regular method corresponding to the C API function B<uuid_compare>.
-
-=item int B<uuid::operator==>(const uuid &_obj);
-
-The comparison operator corresponding to B<uuid_compare> usage for equality.
-
-=item int B<uuid::operator!=>(const uuid &_obj);
-
-The comparison operator corresponding to B<uuid_compare> usage for inequality.
-
-=item int B<uuid::operatorE<lt>>(const uuid &_obj);
-
-The comparison operator corresponding to B<uuid_compare> usage for less-than.
-
-=item int B<uuid::operatorE<lt>=>(const uuid &_obj);
-
-The comparison operator corresponding to B<uuid_compare> usage for less-than-or-equal.
-
-=item int B<uuid::operatorE<gt>>(const uuid &_obj);
-
-The comparison operator corresponding to B<uuid_compare> usage for greater-than.
-
-=item int B<uuid::operatorE<gt>=>(const uuid &_obj);
-
-The comparison operator corresponding to B<uuid_compare> usage for greater-than-or-equal.
-
-=item void B<uuid::import>(const void *_bin);
-
-Regular method corresponding to the C API function B<uuid_import> for binary representation usage.
-
-=item void B<uuid::import>(const char *_str);
-
-Regular method corresponding to the C API function B<uuid_import> for string representation usage.
-
-=item void *B<uuid::binary>(void);
-
-Regular method corresponding to the C API function B<uuid_export> for binary representation usage.
-
-=item char *B<uuid::string>(void);
-
-Regular method corresponding to the C API function B<uuid_export> for string representation usage.
-
-=item char *B<uuid::integer>(void);
-
-Regular method corresponding to the C API function B<uuid_export> for single integer value representation usage.
-
-=item char *B<uuid::summary>(void);
-
-Regular method corresponding to the C API function B<uuid_export> for textual summary representation usage.
-
-=item unsigned long B<uuid::version>(void);
-
-Regular method corresponding to the C API function B<uuid_version>.
-
-=item B<uuid_error_t>()
-
-The standard constructor for B<uuid_error_t> class.
-
-=item B<uuid_error_t>(uuid_rc_t _code)
-
-The standard constructor for B<uuid_error_t> class with return code initialization.
-
-=item ~B<uuid_error_t>()
-
-The standard destructor for B<uuid_error_t> class.
-
-=item void B<uuid_error_t::code>(uuid_rc_t _code)
-
-Regular method for setting the return code.
-
-=item uuid_rc_t B<uuid_error_t::code>(void)
-
-Regular method for fetching the return code.
-
-=item char *B<uuid_error_t::string>(void)
-
-Regular method for fetching the string corresponding to the current return code.
-
-=back
-
-=head1 EXAMPLE
-
-The following shows an example usage of the C++ API. Exception handling is
-omitted for code simplification and has to be re-added for production
-code.
-
- /* generate a DCE 1.1 v1 UUID from system environment */
- char *uuid_v1(void)
- {
-     uuid id;
-     char *str;
-
-     id.make(UUID_MAKE_V1);
-     str = id.string();
-     return str;
- }
-
- /* generate a DCE 1.1 v3 UUID from an URL */
- char *uuid_v3(const char *url)
- {
-     uuid id;
-     uuid id_ns;
-     char *str;
-
-     id_ns.load("ns:URL");
-     id.make(UUID_MAKE_V3, &id_ns, url);
-     str = id.string();
-     return str;
- }
-
-=head1 SEE ALSO
-
-uuid(3).
-
-=cut
-
diff --git a/libs/uuid/uuid-config.1 b/libs/uuid/uuid-config.1
deleted file mode 100644 (file)
index 0018d46..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.07)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` 
-.    ds C' 
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.ie \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.el \{\
-.    de IX
-..
-.\}
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "UUID-CONFIG 1"
-.TH UUID-CONFIG 1 "OSSP uuid 1.6.2" "04-Jul-2008" "Universally Unique Identifier"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-\&\fBuuid-config\fR \- \fB\s-1OSSP\s0 uuid \s-1API\s0 build utility\fR
-.SH "VERSION"
-.IX Header "VERSION"
-\&\s-1OSSP\s0 uuid \s-11.6.2 (04-Jul-2008)\s0
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-\&\fBuuid-config\fR
-[\fB\-\-help\fR]
-[\fB\-\-version\fR]
-[\fB\-\-all\fR]
-[\fB\-\-prefix\fR]
-[\fB\-\-exec\-prefix\fR]
-[\fB\-\-bindir\fR]
-[\fB\-\-libdir\fR]
-[\fB\-\-includedir\fR]
-[\fB\-\-mandir\fR]
-[\fB\-\-datadir\fR]
-[\fB\-\-acdir\fR]
-[\fB\-\-cflags\fR]
-[\fB\-\-ldflags\fR]
-[\fB\-\-libs\fR]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \fBuuid-config\fR program is a little helper utility for easy configuring and
-building applications based on the \fIuuid\fR\|(3) library.  It can be used to query the
-C compiler and linker flags which are required to correctly compile and link
-the application against the \fIuuid\fR\|(3) library.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-\&\fBuuid-config\fR accepts the following options:
-.IP "\fB\-\-help\fR" 2
-.IX Item "--help"
-Prints the short usage information.
-.IP "\fB\-\-version\fR" 2
-.IX Item "--version"
-Prints the version number and date of the installed \fIuuid\fR\|(3) library.
-.IP "\fB\-\-all\fR" 2
-.IX Item "--all"
-Forces the output of all flags, that is, including extra flags which are not
-\&\fB\s-1OSSP\s0 uuid\fR specific.
-.IP "\fB\-\-prefix\fR" 2
-.IX Item "--prefix"
-Prints the installation prefix of architecture independent files
-.IP "\fB\-\-exec\-prefix\fR" 2
-.IX Item "--exec-prefix"
-Prints the installation prefix of architecture dependent files.
-.IP "\fB\-\-bindir\fR" 2
-.IX Item "--bindir"
-Prints the installation directory of binaries.
-.IP "\fB\-\-libdir\fR" 2
-.IX Item "--libdir"
-Prints the installation directory of libraries.
-.IP "\fB\-\-includedir\fR" 2
-.IX Item "--includedir"
-Prints the installation directory of include headers.
-.IP "\fB\-\-mandir\fR" 2
-.IX Item "--mandir"
-Prints the installation directory of manual pages.
-.IP "\fB\-\-datadir\fR" 2
-.IX Item "--datadir"
-Prints the installation directory of shared data.
-.IP "\fB\-\-acdir\fR" 2
-.IX Item "--acdir"
-Prints the installation directory of \fBautoconf\fR data.
-.IP "\fB\-\-cflags\fR" 2
-.IX Item "--cflags"
-Prints the C compiler flags which are needed to compile the \fIuuid\fR\|(3)\-based
-application. The output is usually added to the \f(CW\*(C`CFLAGS\*(C'\fR uuidiable of the
-applications \f(CW\*(C`Makefile\*(C'\fR.
-.IP "\fB\-\-ldflags\fR" 2
-.IX Item "--ldflags"
-Prints the linker flags (\f(CW\*(C`\-L\*(C'\fR) which are needed to link the application with
-the \fIuuid\fR\|(3) library. The output is usually added to the \f(CW\*(C`LDFLAGS\*(C'\fR uuidiable of
-the applications \f(CW\*(C`Makefile\*(C'\fR.
-.IP "\fB\-\-libs\fR" 2
-.IX Item "--libs"
-Prints the library flags (\f(CW\*(C`\-l\*(C'\fR) which are needed to link the application with
-the C \fIuuid\fR\|(3) library. The output is usually added to the \f(CW\*(C`LIBS\*(C'\fR uuidiable of the
-applications \f(CW\*(C`Makefile\*(C'\fR.
-.SH "EXAMPLE"
-.IX Header "EXAMPLE"
-.Vb 4
-\& CC      = cc
-\& CFLAGS  = \-O \`uuid\-config \-\-cflags\`
-\& LDFLAGS = \`uuid\-config \-\-ldflags\`
-\& LIBS    = \-lm \`uuid\-config \-\-libs\`
-\&
-\& all: foo
-\& foo: foo.o
-\&     $(CC) $(LDFLAGS) \-o foo foo.o $(LIBS)
-\& foo.o: foo.c
-\&     $(CC) $(CFLAGS) \-c foo.c
-.Ve
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIuuid\fR\|(3), \fIuuid\fR\|(1), \fIOSSP::uuid\fR\|(3).
diff --git a/libs/uuid/uuid-config.in b/libs/uuid/uuid-config.in
deleted file mode 100644 (file)
index 8d2a063..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/bin/sh
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid-config.in: library build utility
-##
-
-DIFS=' 
-'
-
-prefix="@prefix@"
-exec_prefix="@exec_prefix@"
-datarootdir="@datarootdir@"
-
-uuid_prefix="$prefix"
-uuid_exec_prefix="$exec_prefix"
-uuid_bindir="@bindir@"
-uuid_libdir="@libdir@"
-uuid_includedir="@includedir@"
-uuid_mandir="@mandir@"
-uuid_datadir="@datadir@"
-uuid_acdir="@datadir@/aclocal"
-uuid_cflags="@CFLAGS@"
-uuid_ldflags="@LDFLAGS@"
-uuid_libs="@LIBS@"
-uuid_version="@UUID_VERSION_STR@"
-
-help=no
-version=no
-
-usage="uuid-config"
-usage="$usage [--help] [--version] [--all]"
-usage="$usage [--prefix] [--exec-prefix] [--bindir] [--libdir] [--includedir] [--mandir] [--datadir] [--acdir]"
-usage="$usage [--cflags] [--ldflags] [--libs]"
-if [ $# -eq 0 ]; then
-    echo "uuid-config:Error: Invalid option" 1>&2
-    echo "uuid-config:Usage: $usage" 1>&2
-    exit 1
-fi
-output=''
-output_extra=''
-all=no
-prev=''
-OIFS="$IFS" IFS="$DIFS"
-for option
-do
-    if [ ".$prev" != . ]; then
-        eval "$prev=\$option"
-        prev=''
-        continue
-    fi
-    case "$option" in
-        -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-           *) optarg='' ;;
-    esac
-    case "$option" in
-        --help|-h)
-            echo "Usage: $usage"
-            exit 0
-            ;;
-        --version|-v)
-            echo "OSSP uuid $uuid_version"
-            exit 0
-            ;;
-        --all)
-            all=yes
-            ;;
-        --prefix)
-            output="$output $uuid_prefix"
-            ;;
-        --exec-prefix)
-            output="$output $uuid_exec_prefix"
-            ;;
-        --bindir)
-            output="$output $uuid_bindir"
-            ;;
-        --libdir)
-            output="$output $uuid_libdir"
-            ;;
-        --includedir)
-            output="$output $uuid_includedir"
-            ;;
-        --mandir)
-            output="$output $uuid_mandir"
-            ;;
-        --datadir)
-            output="$output $uuid_datadir"
-            ;;
-        --acdir)
-            output="$output $uuid_acdir"
-            ;;
-        --cflags)
-            output="$output -I$uuid_includedir"
-            output_extra="$output_extra $uuid_cflags"
-            ;;
-        --ldflags)
-            output="$output -L$uuid_libdir"
-            output_extra="$output_extra $uuid_ldflags"
-            ;;
-        --libs)
-            output="$output -luuid"
-            output_extra="$output_extra $uuid_libs"
-            ;;
-        * )
-            echo "uuid-config:Error: Invalid option" 1>&2
-            echo "uuid-config:Usage: $usage" 1>&2
-            exit 1;
-            ;;
-    esac
-done
-IFS="$OIFS"
-if [ ".$prev" != . ]; then
-    echo "uuid-config:Error: missing argument to --`echo $prev | sed 's/_/-/g'`" 1>&2
-    exit 1
-fi
-if [ ".$output" != . ]; then
-    if [ ".$all" = .yes ]; then
-        output="$output $output_extra"
-    fi
-    echo $output
-fi
-
diff --git a/libs/uuid/uuid-config.pod b/libs/uuid/uuid-config.pod
deleted file mode 100644 (file)
index 77d86b8..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-#!/bin/sh
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid-config.pod: library build utility manpage
-##
-
-=pod
-
-=head1 NAME
-
-B<uuid-config> - B<OSSP uuid API build utility>
-
-=head1 VERSION
-
-OSSP uuid UUID_VERSION_STR
-
-=head1 SYNOPSIS
-
-B<uuid-config>
-[B<--help>]
-[B<--version>]
-[B<--all>]
-[B<--prefix>]
-[B<--exec-prefix>]
-[B<--bindir>]
-[B<--libdir>]
-[B<--includedir>]
-[B<--mandir>]
-[B<--datadir>]
-[B<--acdir>]
-[B<--cflags>]
-[B<--ldflags>]
-[B<--libs>]
-
-=head1 DESCRIPTION
-
-The B<uuid-config> program is a little helper utility for easy configuring and
-building applications based on the uuid(3) library.  It can be used to query the
-C compiler and linker flags which are required to correctly compile and link
-the application against the uuid(3) library.
-
-=head1 OPTIONS
-
-B<uuid-config> accepts the following options:
-
-=over 2
-
-=item B<--help>
-
-Prints the short usage information.
-
-=item B<--version>
-
-Prints the version number and date of the installed uuid(3) library.
-
-=item B<--all>
-
-Forces the output of all flags, that is, including extra flags which are not
-B<OSSP uuid> specific.
-
-=item B<--prefix>
-
-Prints the installation prefix of architecture independent files
-
-=item B<--exec-prefix>
-
-Prints the installation prefix of architecture dependent files.
-
-=item B<--bindir>
-
-Prints the installation directory of binaries.
-
-=item B<--libdir>
-
-Prints the installation directory of libraries.
-
-=item B<--includedir>
-
-Prints the installation directory of include headers.
-
-=item B<--mandir>
-
-Prints the installation directory of manual pages.
-
-=item B<--datadir>
-
-Prints the installation directory of shared data.
-
-=item B<--acdir>
-
-Prints the installation directory of B<autoconf> data.
-
-=item B<--cflags>
-
-Prints the C compiler flags which are needed to compile the uuid(3)-based
-application. The output is usually added to the C<CFLAGS> uuidiable of the
-applications C<Makefile>.
-
-=item B<--ldflags>
-
-Prints the linker flags (C<-L>) which are needed to link the application with
-the uuid(3) library. The output is usually added to the C<LDFLAGS> uuidiable of
-the applications C<Makefile>.
-
-=item B<--libs>
-
-Prints the library flags (C<-l>) which are needed to link the application with
-the C uuid(3) library. The output is usually added to the C<LIBS> uuidiable of the
-applications C<Makefile>.
-
-=back
-
-=head1 EXAMPLE
-
- CC      = cc
- CFLAGS  = -O `uuid-config --cflags`
- LDFLAGS = `uuid-config --ldflags`
- LIBS    = -lm `uuid-config --libs`
-
- all: foo
- foo: foo.o
-     $(CC) $(LDFLAGS) -o foo foo.o $(LIBS)
- foo.o: foo.c
-     $(CC) $(CFLAGS) -c foo.c
-
-=head1 SEE ALSO
-
-uuid(3), uuid(1), OSSP::uuid(3).
-
-=cut
-
diff --git a/libs/uuid/uuid.1 b/libs/uuid/uuid.1
deleted file mode 100644 (file)
index 98b0226..0000000
+++ /dev/null
@@ -1,291 +0,0 @@
-.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.07)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` 
-.    ds C' 
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.ie \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.el \{\
-.    de IX
-..
-.\}
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "UUID 1"
-.TH UUID 1 "OSSP uuid 1.6.2" "04-Jul-2008" "Universally Unique Identifier"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-\&\fB\s-1OSSP\s0 uuid\fR \- \fBUniversally Unique Identifier Command-Line Tool\fR
-.SH "VERSION"
-.IX Header "VERSION"
-\&\s-1OSSP\s0 uuid \s-11.6.2 (04-Jul-2008)\s0
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-\&\fBuuid\fR
-[\fB\-v\fR \fIversion\fR]
-[\fB\-m\fR]
-[\fB\-n\fR \fIcount\fR]
-[\fB\-1\fR]
-[\fB\-F\fR \fIformat\fR]
-[\fB\-o\fR \fIfilename\fR]
-[\fInamespace\fR \fIname\fR]
-.PP
-\&\fBuuid\fR
-\&\fB\-d\fR
-[\fB\-r\fR]
-[\fB\-o\fR \fIfilename\fR]
-\&\fIuuid\fR
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fB\s-1OSSP\s0 uuid\fR is a \s-1ISO\-C:1999\s0 application programming interface (\s-1API\s0) and
-corresponding command line interface (\s-1CLI\s0) for the generation of \s-1DCE\s0
-1.1, \s-1ISO/IEC\s0 11578:1996 and \s-1IETF\s0 \s-1RFC\-4122\s0 compliant \fIUniversally Unique
-Identifier\fR (\s-1UUID\s0). It supports \s-1DCE\s0 1.1 variant UUIDs of version 1 (time
-and node based), version 3 (name based, \s-1MD5\s0), version 4 (random number
-based) and version 5 (name based, \s-1SHA\-1\s0). Additional \s-1API\s0 bindings are
-provided for the languages \s-1ISO\-\*(C+:1998\s0, Perl:5 and \s-1PHP:4/5\s0. Optional
-backward compatibility exists for the ISO-C \s-1DCE\-1\s0.1 and Perl Data::UUID
-APIs.
-.PP
-UUIDs are 128 bit numbers which are intended to have a high likelihood
-of uniqueness over space and time and are computationally difficult
-to guess. They are globally unique identifiers which can be locally
-generated without contacting a global registration authority. UUIDs
-are intended as unique identifiers for both mass tagging objects
-with an extremely short lifetime and to reliably identifying very
-persistent objects across a network.
-.PP
-This is the command line interface (\s-1CLI\s0) of \fB\s-1OSSP\s0 uuid\fR. For a
-detailed description of UUIDs see the documentation of the application
-programming interface (\s-1API\s0) in \fIuuid\fR\|(3).
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fB\-v\fR \fIversion\fR" 3
-.IX Item "-v version"
-Sets the version of the generated \s-1DCE\s0 1.1 variant \s-1UUID\s0. Supported
-are \fIversion\fR "\f(CW1\fR\*(L", \*(R"\f(CW3\fR\*(L", \*(R"\f(CW4\fR\*(L" and \*(R"\f(CW5\fR\*(L". The default is \*(R"\f(CW1\fR".
-.Sp
-For version 3 and version 5 UUIDs the additional command line arguments
-\&\fInamespace\fR and \fIname\fR have to be given. The \fInamespace\fR is either
-a \s-1UUID\s0 in string representation or an identifier for internally
-pre-defined namespace UUIDs (currently known are "\f(CW\*(C`ns:DNS\*(C'\fR\*(L",
-\&\*(R"\f(CW\*(C`ns:URL\*(C'\fR\*(L", \*(R"\f(CW\*(C`ns:OID\*(C'\fR\*(L", and \*(R"\f(CW\*(C`ns:X500\*(C'\fR"). The \fIname\fR is a string of
-arbitrary length.
-.IP "\fB\-m\fR" 3
-.IX Item "-m"
-Forces the use of a random multi-cast \s-1MAC\s0 address when generating
-version 1 UUIDs. By default the real physical \s-1MAC\s0 address of the system
-is used.
-.IP "\fB\-n\fR \fIcount\fR" 3
-.IX Item "-n count"
-Generate \fIcount\fR UUIDs instead of just a single one (the default).
-.IP "\fB\-1\fR" 3
-.IX Item "-1"
-If option \fB\-n\fR is used with a \fIcount\fR greater than \f(CW1\fR, then this
-option can enforce the reset the \s-1UUID\s0 context for each generated \s-1UUID\s0.
-This makes no difference for \fIversion\fR \f(CW3\fR, \f(CW4\fR and \f(CW5\fR UUIDs. But
-version \f(CW1\fR UUIDs are based on the previously generated \s-1UUID\s0 which is
-remembered in the \s-1UUID\s0 context of the \s-1API\s0. Option \fB\-1\fR deletes the
-remembered \s-1UUID\s0 on each iteration.
-.IP "\fB\-F\fR \fIformat\fR" 3
-.IX Item "-F format"
-Representation format for importing or exporting an \s-1UUID\s0. The
-following (case insensitive) format identifiers are currently recognized:
-.RS 3
-.ie n .IP "\*(C`BIN\*(C' (binary representation)" 4
-.el .IP "\f(CW\*(C`BIN\*(C'\fR (binary representation)" 4
-.IX Item "BIN (binary representation)"
-This is the raw 128 bit network byte order binary representation of a
-\&\s-1UUID\s0. Example is the octet stream \f(CW\*(C`0xF8 0x1D 0x4F 0xAE 0x7D 0xEC 0x11
-0xD0 0xA7 0x65 0x00 0xA0 0xC9 0x1E 0x6B 0xF6\*(C'\fR.
-.ie n .IP "\*(C`STR\*(C' (string representation)" 4
-.el .IP "\f(CW\*(C`STR\*(C'\fR (string representation)" 4
-.IX Item "STR (string representation)"
-This is the 36 character hexadecimal \s-1ASCII\s0 string representation of a
-\&\s-1UUID\s0. Example is the string "\f(CW\*(C`f81d4fae\-7dec\-11d0\-a765\-00a0c91e6bf6\*(C'\fR".
-.ie n .IP "\*(C`SIV\*(C' (single integer value representation)" 4
-.el .IP "\f(CW\*(C`SIV\*(C'\fR (single integer value representation)" 4
-.IX Item "SIV (single integer value representation)"
-This is the maximum 39 character long single integer
-value representation of a \s-1UUID\s0. Example is the string
-"\f(CW329800735698586629295641978511506172918\fR".
-.RE
-.RS 3
-.RE
-.IP "\fB\-o\fR \fIfilename\fR" 3
-.IX Item "-o filename"
-Write output to \fIfilename\fR instead of to \fIstdout\fR.
-.IP "\fB\-d\fR" 3
-.IX Item "-d"
-Decode a given \s-1UUID\s0 (given as a command line argument or if the command
-line argument is "\f(CW\*(C`\-\*(C'\fR" the \s-1UUID\s0 is read from \fIstdin\fR) and dump textual
-information about the \s-1UUID\s0.
-.SH "EXAMPLES"
-.IX Header "EXAMPLES"
-.Vb 3
-\& # generate DCE 1.1 v1 UUID (time and node based)
-\& $ uuid \-v1
-\& 01c47915\-4777\-11d8\-bc70\-0090272ff725
-\&
-\& # decode and dump DCE 1.1 v1 UUID (time and node based)
-\& $ uuid \-d 01c47915\-4777\-11d8\-bc70\-0090272ff725
-\& encode: STR:     01c47915\-4777\-11d8\-bc70\-0090272ff725
-\&         SIV:     2349374037528578887923094374772111141
-\& decode: variant: DCE 1.1, ISO/IEC 11578:1996
-\&         version: 1 (time and node based)
-\&         content: time:  2004\-01\-15 16:22:26.376322.1 UTC
-\&                  clock: 15472 (usually random)
-\&                  node:  00:90:27:2f:f7:25 (global unicast)
-\&
-\& # generate DCE 1.1 v3 UUID (name based)
-\& $ uuid \-v3 ns:URL http://www.ossp.org/
-\& 02d9e6d5\-9467\-382e\-8f9b\-9300a64ac3cd
-\&
-\& # decode and dump DCE 1.1 v3 UUID (name based)
-\& $ uuid \-d 02d9e6d5\-9467\-382e\-8f9b\-9300a64ac3cd
-\& encode: STR:     02d9e6d5\-9467\-382e\-8f9b\-9300a64ac3cd
-\&         SIV:     3789866285607910888100818383505376205
-\& decode: variant: DCE 1.1, ISO/IEC 11578:1996
-\&         version: 3 (name based, MD5)
-\&         content: 02:D9:E6:D5:94:67:08:2E:0F:9B:93:00:A6:4A:C3:CD
-\&                  (not decipherable: MD5 message digest only)
-\&
-\& # generate DCE 1.1 v4 UUID 4 (random data based)
-\& $ uuid \-v4
-\& eb424026\-6f54\-4ef8\-a4d0\-bb658a1fc6cf
-\&
-\& # decode and dump DCE 1.1 v4 UUID 4 (random data based)
-\& $ uuid \-d eb424026\-6f54\-4ef8\-a4d0\-bb658a1fc6cf
-\& encode: STR:     eb424026\-6f54\-4ef8\-a4d0\-bb658a1fc6cf
-\&         SIV:     312712571721458096795100956955942831823
-\& decode: variant: DCE 1.1, ISO/IEC 11578:1996
-\&         version: 4 (random data based)
-\&         content: EB:42:40:26:6F:54:0E:F8:24:D0:BB:65:8A:1F:C6:CF
-\&                  (no semantics: random data only)
-.Ve
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIuuid\fR\|(3), \fIOSSP::uuid\fR\|(3).
diff --git a/libs/uuid/uuid.3 b/libs/uuid/uuid.3
deleted file mode 100644 (file)
index 3116d73..0000000
+++ /dev/null
@@ -1,578 +0,0 @@
-.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.07)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` 
-.    ds C' 
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.ie \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.el \{\
-.    de IX
-..
-.\}
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title ".::uuid 3"
-.TH .::uuid 3 "OSSP uuid 1.6.2" "04-Jul-2008" "Universally Unique Identifier"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-\&\fB\s-1OSSP\s0 uuid\fR \- \fBUniversally Unique Identifier\fR
-.SH "VERSION"
-.IX Header "VERSION"
-\&\s-1OSSP\s0 uuid \s-11.6.2 (04-Jul-2008)\s0
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fB\s-1OSSP\s0 uuid\fR is a \s-1ISO\-C:1999\s0 application programming interface (\s-1API\s0) and
-corresponding command line interface (\s-1CLI\s0) for the generation of \s-1DCE\s0
-1.1, \s-1ISO/IEC\s0 11578:1996 and \s-1IETF\s0 \s-1RFC\-4122\s0 compliant \fIUniversally Unique
-Identifier\fR (\s-1UUID\s0). It supports \s-1DCE\s0 1.1 variant UUIDs of version 1 (time
-and node based), version 3 (name based, \s-1MD5\s0), version 4 (random number
-based) and version 5 (name based, \s-1SHA\-1\s0). Additional \s-1API\s0 bindings are
-provided for the languages \s-1ISO\-\*(C+:1998\s0, Perl:5 and \s-1PHP:4/5\s0. Optional
-backward compatibility exists for the ISO-C \s-1DCE\-1\s0.1 and Perl Data::UUID
-APIs.
-.PP
-UUIDs are 128 bit numbers which are intended to have a high likelihood
-of uniqueness over space and time and are computationally difficult
-to guess. They are globally unique identifiers which can be locally
-generated without contacting a global registration authority. UUIDs
-are intended as unique identifiers for both mass tagging objects
-with an extremely short lifetime and to reliably identifying very
-persistent objects across a network.
-.PP
-This is the ISO-C application programming interface (\s-1API\s0) of \fB\s-1OSSP\s0 uuid\fR.
-.Sh "\s-1UUID\s0 Binary Representation"
-.IX Subsection "UUID Binary Representation"
-According to the \s-1DCE\s0 1.1, \s-1ISO/IEC\s0 11578:1996 and \s-1IETF\s0 \s-1RFC\-4122\s0
-standards, a \s-1DCE\s0 1.1 variant \s-1UUID\s0 is a 128 bit number defined out of 7
-fields, each field a multiple of an octet in size and stored in network
-byte order:
-.PP
-.Vb 11
-\&                                                    [4]
-\&                                                   version
-\&                                                 \-\->|  |<\-\-
-\&                                                    |  |
-\&                                                    |  |  [16]
-\&                [32]                      [16]      |  |time_hi
-\&              time_low                  time_mid    | _and_version
-\&    |<\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\->||<\-\-\-\-\-\-\-\-\-\-\-\->||<\-\-\-\-\-\-\-\-\-\-\-\->|
-\&    | MSB                          ||              ||  |           |
-\&    | /                            ||              ||  |           |
-\&    |/                             ||              ||  |           |
-\&
-\&    +\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-+~~
-\&    |  15  ||  14  ||  13  ||  12  ||  11  ||  10  |####9  ||   8  |
-\&    | MSO  ||      ||      ||      ||      ||      |####   ||      |
-\&    +\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-+~~
-\&    7654321076543210765432107654321076543210765432107654321076543210
-\&
-\&  ~~+\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-+
-\&    ##* 7  ||   6  ||   5  ||   4  ||   3  ||   2  ||   1  ||   0  |
-\&    ##*    ||      ||      ||      ||      ||      ||      ||  LSO |
-\&  ~~+\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-++\-\-\-\-\-\-+
-\&    7654321076543210765432107654321076543210765432107654321076543210
-\&
-\&    | |    ||      ||                                             /|
-\&    | |    ||      ||                                            / |
-\&    | |    ||      ||                                          LSB |
-\&    |<\-\-\-\->||<\-\-\-\->||<\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\->|
-\&    |clk_seq clk_seq                      node
-\&    |_hi_res _low                         [48]
-\&    |[5\-6]    [8]
-\&    | |
-\& \-\->| |<\-\-
-\&  variant
-\&   [2\-3]
-.Ve
-.PP
-An example of a \s-1UUID\s0 binary representation is the octet stream \f(CW\*(C`0xF8
-0x1D 0x4F 0xAE 0x7D 0xEC 0x11 0xD0 0xA7 0x65 0x00 0xA0 0xC9 0x1E 0x6B
-0xF6\*(C'\fR. The binary representation format is exactly what the \fB\s-1OSSP\s0 uuid\fR
-\&\s-1API\s0 functions \fBuuid_import\fR() and \fBuuid_export\fR() deal with under
-\&\f(CW\*(C`UUID_FMT_BIN\*(C'\fR.
-.Sh "\s-1UUID\s0 \s-1ASCII\s0 String Representation"
-.IX Subsection "UUID ASCII String Representation"
-According to the \s-1DCE\s0 1.1, \s-1ISO/IEC\s0 11578:1996 and \s-1IETF\s0 \s-1RFC\-4122\s0
-standards, a \s-1DCE\s0 1.1 variant \s-1UUID\s0 is represented as an \s-1ASCII\s0 string
-consisting of 8 hexadecimal digits followed by a hyphen, then three
-groups of 4 hexadecimal digits each followed by a hyphen, then 12
-hexadecimal digits. Formally, the string representation is defined by
-the following grammar:
-.PP
-.Vb 10
-\& uuid                        = <time_low> "\-"
-\&                               <time_mid> "\-"
-\&                               <time_high_and_version> "\-"
-\&                               <clock_seq_high_and_reserved>
-\&                               <clock_seq_low> "\-"
-\&                               <node>
-\& time_low                    = 4*<hex_octet>
-\& time_mid                    = 2*<hex_octet>
-\& time_high_and_version       = 2*<hex_octet>
-\& clock_seq_high_and_reserved = <hex_octet>
-\& clock_seq_low               = <hex_octet>
-\& node                        = 6*<hex_octet>
-\& hex_octet                   = <hex_digit> <hex_digit>
-\& hex_digit                   = "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"
-\&                              |"a"|"b"|"c"|"d"|"e"|"f"
-\&                              |"A"|"B"|"C"|"D"|"E"|"F"
-.Ve
-.PP
-An example of a \s-1UUID\s0 string representation is the \s-1ASCII\s0 string
-"\f(CW\*(C`f81d4fae\-7dec\-11d0\-a765\-00a0c91e6bf6\*(C'\fR". The string representation
-format is exactly what the \fB\s-1OSSP\s0 uuid\fR \s-1API\s0 functions \fBuuid_import\fR()
-and \fBuuid_export\fR() deal with under \f(CW\*(C`UUID_FMT_STR\*(C'\fR.
-.PP
-Notice: a corresponding \s-1URL\s0 can be generated out of a \s-1ASCII\s0 string
-representation of an \s-1UUID\s0 by prefixing with "\f(CW\*(C`urn:uuid:\*(C'\fR\*(L" as in
-\&\*(R"\f(CW\*(C`urn:uuid:f81d4fae\-7dec\-11d0\-a765\-00a0c91e6bf6\*(C'\fR".
-.Sh "\s-1UUID\s0 Single Integer Value Representation"
-.IX Subsection "UUID Single Integer Value Representation"
-According to the \s-1ISO/IEC\s0 11578:1996 and ITU-T Rec. X.667 standards, a
-\&\s-1DCE\s0 1.1 variant \s-1UUID\s0 can be also represented as a single integer value
-consisting of a decimal number with up to 39 digits.
-.PP
-An example of a \s-1UUID\s0 single integer value representation is the decimal
-number "\f(CW329800735698586629295641978511506172918\fR". The string
-representation format is exactly what the \fB\s-1OSSP\s0 uuid\fR \s-1API\s0 functions
-\&\fBuuid_import\fR() and \fBuuid_export\fR() deal with under \f(CW\*(C`UUID_FMT_SIV\*(C'\fR.
-.PP
-Notice: a corresponding \s-1ISO\s0 \s-1OID\s0 can be generated under the
-\&\*(L"{\fIjoint\-iso\-itu\-t\fR\|(2) uuid(25)}\*(R" arc out of a single integer value
-representation of a \s-1UUID\s0 by prefixing with "\f(CW2.25.\fR\*(L". An example \s-1OID\s0
-is \*(R"\f(CW2.25.329800735698586629295641978511506172918\fR\*(L". Additionally,
-an \s-1URL\s0 can be generated by further prefixing with \*(R"\f(CW\*(C`urn:oid:\*(C'\fR\*(L" as in
-\&\*(R"\f(CW\*(C`urn:oid:2.25.329800735698586629295641978511506172918\*(C'\fR".
-.Sh "\s-1UUID\s0 Variants and Versions"
-.IX Subsection "UUID Variants and Versions"
-A \s-1UUID\s0 has a variant and version. The variant defines the layout of the
-\&\s-1UUID\s0. The version defines the content of the \s-1UUID\s0. The \s-1UUID\s0 variant
-supported in \fB\s-1OSSP\s0 uuid\fR is the \s-1DCE\s0 1.1 variant only. The \s-1DCE\s0 1.1 \s-1UUID\s0
-variant versions supported in \fB\s-1OSSP\s0 uuid\fR are:
-.IP "\fBVersion 1\fR (time and node based)" 4
-.IX Item "Version 1 (time and node based)"
-These are the classical UUIDs, created out of a 60\-bit system time,
-a 14\-bit local clock sequence and 48\-bit system \s-1MAC\s0 address. The \s-1MAC\s0
-address can be either the real one of a physical network interface card
-(\s-1NIC\s0) or a random multi-cast \s-1MAC\s0 address. Version 1 UUIDs are usually
-used as one-time global unique identifiers.
-.IP "\fBVersion 3\fR (name based, \s-1MD5\s0)" 4
-.IX Item "Version 3 (name based, MD5)"
-These are UUIDs which are based on the 128\-bit \s-1MD5\s0 message digest of the
-concatenation of a 128\-bit namespace \s-1UUID\s0 and a name string of arbitrary
-length. Version 3 UUIDs are usually used for non-unique but repeatable
-message digest identifiers.
-.IP "\fBVersion 4\fR (random data based)" 4
-.IX Item "Version 4 (random data based)"
-These are UUIDs which are based on just 128\-bit of random data. Version
-4 UUIDs are usually used as one-time local unique identifiers.
-.IP "\fBVersion 5\fR (name based, \s-1SHA\-1\s0)" 4
-.IX Item "Version 5 (name based, SHA-1)"
-These are UUIDs which are based on the 160\-bit \s-1SHA\-1\s0 message digest of the
-concatenation of a 128\-bit namespace \s-1UUID\s0 and a name string of arbitrary
-length. Version 5 UUIDs are usually used for non-unique but repeatable
-message digest identifiers.
-.Sh "\s-1UUID\s0 Uniqueness"
-.IX Subsection "UUID Uniqueness"
-Version 1 UUIDs are guaranteed to be unique through combinations of
-hardware addresses, time stamps and random seeds. There is a reference
-in the \s-1UUID\s0 to the hardware (\s-1MAC\s0) address of the first network interface
-card (\s-1NIC\s0) on the host which generated the \s-1UUID\s0 \*(-- this reference
-is intended to ensure the \s-1UUID\s0 will be unique in space as the \s-1MAC\s0
-address of every network card is assigned by a single global authority
-(\s-1IEEE\s0) and is guaranteed to be unique. The next component in a \s-1UUID\s0
-is a timestamp which, as clock always (should) move forward, will
-be unique in time. Just in case some part of the above goes wrong
-(the hardware address cannot be determined or the clock moved steps
-backward), there is a random clock sequence component placed into the
-\&\s-1UUID\s0 as a \*(L"catch-all\*(R" for uniqueness.
-.PP
-Version 3 and version 5 UUIDs are guaranteed to be inherently globally
-unique if the combination of namespace and name used to generate them is
-unique.
-.PP
-Version 4 UUIDs are not guaranteed to be globally unique, because they
-are generated out of locally gathered pseudo-random numbers only.
-Nevertheless there is still a high likelihood of uniqueness over space
-and time and that they are computationally difficult to guess.
-.Sh "Nil \s-1UUID\s0"
-.IX Subsection "Nil UUID"
-There is a special \fINil\fR \s-1UUID\s0 consisting of all octets set to zero in
-the binary representation. It can be used as a special \s-1UUID\s0 value which does
-not conflict with real UUIDs.
-.SH "APPLICATION PROGRAMMING INTERFACE"
-.IX Header "APPLICATION PROGRAMMING INTERFACE"
-The ISO-C Application Programming Interface (\s-1API\s0) of \fB\s-1OSSP\s0 uuid\fR
-consists of the following components.
-.Sh "\s-1CONSTANTS\s0"
-.IX Subsection "CONSTANTS"
-The following constants are provided:
-.IP "\fB\s-1UUID_VERSION\s0\fR" 4
-.IX Item "UUID_VERSION"
-The hexadecimal encoded \fB\s-1OSSP\s0 uuid\fR version. This allows compile-time
-checking of the \fB\s-1OSSP\s0 uuid\fR version. For run-time checking use
-\&\fBuuid_version\fR() instead.
-.Sp
-The hexadecimal encoding for a version "$\fIv\fR.$\fIr\fR$\fIt\fR$\fIl\fR" is
-calculated with the \fB\s-1GNU\s0 shtool\fR \fBversion\fR command and is (in
-Perl-style for concise description) "sprintf('0x%x%02x%d%02x', $\fIv\fR,
-$\fIr\fR, {qw(s 9 . 2 b 1 a 0)}\->{$\fIt\fR}, ($\fIt\fR eq 's' ? 99 : $\fIl\fR))\*(L",
-i.e., the version 0.9.6 is encoded as \*(R"0x009206".
-.IP "\fB\s-1UUID_LEN_BIN\s0\fR, \fB\s-1UUID_LEN_STR\s0\fR, \fB\s-1UUID_LEN_SIV\s0\fR" 4
-.IX Item "UUID_LEN_BIN, UUID_LEN_STR, UUID_LEN_SIV"
-The number of octets of the \s-1UUID\s0 binary and string representations.
-Notice that the lengths of the string representation (\fB\s-1UUID_LEN_STR\s0\fR)
-and the lengths of the single integer value representation
-(\fB\s-1UUID_LEN_SIV\s0\fR) does \fInot\fR include the necessary \f(CW\*(C`NUL\*(C'\fR termination
-character.
-.IP "\fB\s-1UUID_MAKE_V1\s0\fR, \fB\s-1UUID_MAKE_V3\s0\fR, \fB\s-1UUID_MAKE_V4\s0\fR, \fB\s-1UUID_MAKE_V5\s0\fR, \fB\s-1UUID_MAKE_MC\s0\fR" 4
-.IX Item "UUID_MAKE_V1, UUID_MAKE_V3, UUID_MAKE_V4, UUID_MAKE_V5, UUID_MAKE_MC"
-The \fImode\fR bits for use with \fBuuid_make\fR(). The \fB\s-1UUID_MAKE_V\s0\fR\fIN\fR
-specify which \s-1UUID\s0 version to generate. The \fB\s-1UUID_MAKE_MC\s0\fR forces the
-use of a random multi-cast \s-1MAC\s0 address instead of the real physical \s-1MAC\s0
-address in version 1 UUIDs.
-.IP "\fB\s-1UUID_RC_OK\s0\fR, \fB\s-1UUID_RC_ARG\s0\fR, \fB\s-1UUID_RC_MEM\s0\fR, \fB\s-1UUID_RC_SYS\s0\fR, \fB\s-1UUID_RC_INT\s0\fR, \fB\s-1UUID_RC_IMP\s0\fR" 4
-.IX Item "UUID_RC_OK, UUID_RC_ARG, UUID_RC_MEM, UUID_RC_SYS, UUID_RC_INT, UUID_RC_IMP"
-The possible numerical return-codes of \s-1API\s0 functions.
-The \f(CW\*(C`UUID_RC_OK\*(C'\fR indicates success, the others indicate errors.
-Use \fBuuid_error\fR() to translate them into string versions.
-.IP "\fB\s-1UUID_FMT_BIN\s0\fR, \fB\s-1UUID_FMT_STR\s0\fR, \fB\s-1UUID_FMT_SIV\s0\fR, \fB\s-1UUID_FMT_TXT\s0\fR" 4
-.IX Item "UUID_FMT_BIN, UUID_FMT_STR, UUID_FMT_SIV, UUID_FMT_TXT"
-The \fIfmt\fR formats for use with \fBuuid_import\fR() and \fBuuid_export\fR().
-The \fB\s-1UUID_FMT_BIN\s0\fR indicates the \s-1UUID\s0 binary representation (of
-length \fB\s-1UUID_LEN_BIN\s0\fR), the \fB\s-1UUID_FMT_STR\s0\fR indicates the \s-1UUID\s0 string
-representation (of length \fB\s-1UUID_LEN_STR\s0\fR), the \fB\s-1UUID_FMT_SIV\s0\fR
-indicates the \s-1UUID\s0 single integer value representation (of maximum
-length \fB\s-1UUID_LEN_SIV\s0\fR) and the \fB\s-1UUID_FMT_TXT\s0\fR indicates the textual
-description (of arbitrary length) of a \s-1UUID\s0.
-.Sh "\s-1FUNCTIONS\s0"
-.IX Subsection "FUNCTIONS"
-The following functions are provided:
-.IP "uuid_rc_t \fBuuid_create\fR(uuid_t **\fIuuid\fR);" 4
-.IX Item "uuid_rc_t uuid_create(uuid_t **uuid);"
-Create a new \s-1UUID\s0 object and store a pointer to it in \f(CW\*(C`*\*(C'\fR\fIuuid\fR.
-A \s-1UUID\s0 object consists of an internal representation of a \s-1UUID\s0, the
-internal \s-1PRNG\s0 and \s-1MD5\s0 generator contexts, and cached \s-1MAC\s0 address and
-timestamp information. The initial \s-1UUID\s0 is the \fINil\fR \s-1UUID\s0.
-.IP "uuid_rc_t \fBuuid_destroy\fR(uuid_t *\fIuuid\fR);" 4
-.IX Item "uuid_rc_t uuid_destroy(uuid_t *uuid);"
-Destroy \s-1UUID\s0 object \fIuuid\fR.
-.IP "uuid_rc_t \fBuuid_clone\fR(const uuid_t *\fIuuid\fR, uuid_t **\fIuuid_clone\fR);" 4
-.IX Item "uuid_rc_t uuid_clone(const uuid_t *uuid, uuid_t **uuid_clone);"
-Clone \s-1UUID\s0 object \fIuuid\fR and store new \s-1UUID\s0 object in \fIuuid_clone\fR.
-.IP "uuid_rc_t \fBuuid_isnil\fR(const uuid_t *\fIuuid\fR, int *\fIresult\fR);" 4
-.IX Item "uuid_rc_t uuid_isnil(const uuid_t *uuid, int *result);"
-Checks whether the \s-1UUID\s0 in \fIuuid\fR is the \fINil\fR \s-1UUID\s0.
-If this is the case, it returns \fItrue\fR in \f(CW\*(C`*\*(C'\fR\fIresult\fR.
-Else it returns \fIfalse\fR in \f(CW\*(C`*\*(C'\fR\fIresult\fR.
-.IP "uuid_rc_t \fBuuid_compare\fR(const uuid_t *\fIuuid\fR, const uuid_t *\fIuuid2\fR, int *\fIresult\fR);" 4
-.IX Item "uuid_rc_t uuid_compare(const uuid_t *uuid, const uuid_t *uuid2, int *result);"
-Compares the order of the two UUIDs in \fIuuid1\fR and \fIuuid2\fR
-and returns the result in \f(CW\*(C`*\*(C'\fR\fIresult\fR: \f(CW\*(C`\-1\*(C'\fR if \fIuuid1\fR is
-smaller than \fIuuid2\fR, \f(CW0\fR if \fIuuid1\fR is equal to \fIuuid2\fR
-and \f(CW+1\fR if \fIuuid1\fR is greater than \fIuuid2\fR.
-.IP "uuid_rc_t \fBuuid_import\fR(uuid_t *\fIuuid\fR, uuid_fmt_t \fIfmt\fR, const void *\fIdata_ptr\fR, size_t \fIdata_len\fR);" 4
-.IX Item "uuid_rc_t uuid_import(uuid_t *uuid, uuid_fmt_t fmt, const void *data_ptr, size_t data_len);"
-Imports a \s-1UUID\s0 \fIuuid\fR from an external representation of format \fIfmt\fR.
-The data is read from the buffer at \fIdata_ptr\fR which contains at least
-\&\fIdata_len\fR bytes.
-.Sp
-The format of the external representation is specified by \fIfmt\fR and the
-minimum expected length in \fIdata_len\fR depends on it. Valid values for
-\&\fIfmt\fR are \fB\s-1UUID_FMT_BIN\s0\fR, \fB\s-1UUID_FMT_STR\s0\fR and \fB\s-1UUID_FMT_SIV\s0\fR.
-.IP "uuid_rc_t \fBuuid_export\fR(const uuid_t *\fIuuid\fR, uuid_fmt_t \fIfmt\fR, void *\fIdata_ptr\fR, size_t *\fIdata_len\fR);" 4
-.IX Item "uuid_rc_t uuid_export(const uuid_t *uuid, uuid_fmt_t fmt, void *data_ptr, size_t *data_len);"
-Exports a \s-1UUID\s0 \fIuuid\fR into an external representation of format
-\&\fIfmt\fR. Valid values for \fIfmt\fR are \fB\s-1UUID_FMT_BIN\s0\fR, \fB\s-1UUID_FMT_STR\s0\fR,
-\&\fB\s-1UUID_FMT_SIV\s0\fR and \fB\s-1UUID_FMT_TXT\s0\fR.
-.Sp
-The data is written to the buffer whose location is obtained
-by dereferencing \fIdata_ptr\fR after a \*(L"cast\*(R" to the appropriate
-pointer-to-pointer type. Hence the generic pointer argument \fIdata_ptr\fR
-is expected to be a pointer to a \*(L"pointer of a particular type\*(R", i.e.,
-it has to be of type "\f(CW\*(C`unsigned char **\*(C'\fR" for \fB\s-1UUID_FMT_BIN\s0\fR and
-"\f(CW\*(C`char **\*(C'\fR" for \fB\s-1UUID_FMT_STR\s0\fR, \fB\s-1UUID_FMT_SIV\s0\fR and \fB\s-1UUID_FMT_TXT\s0\fR.
-.Sp
-The buffer has to be room for at least \f(CW\*(C`*\*(C'\fR\fIdata_len\fR bytes. If the
-value of the pointer after \*(L"casting\*(R" and dereferencing \fIdata_ptr\fR
-is \f(CW\*(C`NULL\*(C'\fR, \fIdata_len\fR is ignored as input and a new buffer is
-allocated and returned in the pointer after \*(L"casting\*(R" and dereferencing
-\&\fIdata_ptr\fR (the caller has to \fIfree\fR\|(3) it later on).
-.Sp
-If \fIdata_len\fR is not \f(CW\*(C`NULL\*(C'\fR, the number of available bytes in the
-buffer has to be provided in \f(CW\*(C`*\*(C'\fR\fIdata_len\fR and the number of actually
-written bytes are returned in \f(CW\*(C`*\*(C'\fR\fIdata_len\fR again. The minimum
-required buffer length depends on the external representation as
-specified by \fIfmt\fR and is at least \fB\s-1UUID_LEN_BIN\s0\fR for \fB\s-1UUID_FMT_BIN\s0\fR,
-\&\fB\s-1UUID_LEN_STR\s0\fR for \fB\s-1UUID_FMT_STR\s0\fR and \fB\s-1UUID_LEN_SIV\s0\fR for
-\&\fB\s-1UUID_FMT_SIV\s0\fR. For \fB\s-1UUID_FMT_TXT\s0\fR a buffer of unspecified length is
-required and hence it is recommended to allow \fB\s-1OSSP\s0 uuid\fR to allocate
-the buffer as necessary.
-.IP "uuid_rc_t \fBuuid_load\fR(uuid_t *\fIuuid\fR, const char *\fIname\fR);" 4
-.IX Item "uuid_rc_t uuid_load(uuid_t *uuid, const char *name);"
-Loads a pre-defined \s-1UUID\s0 value into the \s-1UUID\s0 object \fIuuid\fR. The
-following \fIname\fR arguments are currently known:
-.RS 4
-.IP "\fIname\fR      \fI\s-1UUID\s0\fR" 4
-.IX Item "name      UUID"
-.PD 0
-.IP "nil       00000000\-0000\-0000\-0000\-000000000000" 4
-.IX Item "nil       00000000-0000-0000-0000-000000000000"
-.IP "ns:DNS    6ba7b810\-9dad\-11d1\-80b4\-00c04fd430c8" 4
-.IX Item "ns:DNS    6ba7b810-9dad-11d1-80b4-00c04fd430c8"
-.IP "ns:URL    6ba7b811\-9dad\-11d1\-80b4\-00c04fd430c8" 4
-.IX Item "ns:URL    6ba7b811-9dad-11d1-80b4-00c04fd430c8"
-.IP "ns:OID    6ba7b812\-9dad\-11d1\-80b4\-00c04fd430c8" 4
-.IX Item "ns:OID    6ba7b812-9dad-11d1-80b4-00c04fd430c8"
-.IP "ns:X500   6ba7b814\-9dad\-11d1\-80b4\-00c04fd430c8" 4
-.IX Item "ns:X500   6ba7b814-9dad-11d1-80b4-00c04fd430c8"
-.RE
-.RS 4
-.PD
-.Sp
-The "\f(CW\*(C`ns:\*(C'\fR\fI\s-1XXX\s0\fR" are names of pre-defined name-space UUIDs for use in
-the generation of \s-1DCE\s0 1.1 version 3 and version 5 UUIDs.
-.RE
-.IP "uuid_rc_t \fBuuid_make\fR(uuid_t *\fIuuid\fR, unsigned int \fImode\fR, ...);" 4
-.IX Item "uuid_rc_t uuid_make(uuid_t *uuid, unsigned int mode, ...);"
-Generates a new \s-1UUID\s0 in \fIuuid\fR according to \fImode\fR and optional
-arguments (dependent on \fImode\fR).
-.Sp
-If \fImode\fR contains the \f(CW\*(C`UUID_MAKE_V1\*(C'\fR bit, a \s-1DCE\s0 1.1 variant \s-1UUID\s0 of
-version 1 is generated. Then optionally the bit \f(CW\*(C`UUID_MAKE_MC\*(C'\fR forces
-the use of random multi-cast \s-1MAC\s0 address instead of the real physical
-\&\s-1MAC\s0 address (the default). The \s-1UUID\s0 is generated out of the 60\-bit current
-system time, a 12\-bit clock sequence and the 48\-bit \s-1MAC\s0 address.
-.Sp
-If \fImode\fR contains the \f(CW\*(C`UUID_MAKE_V3\*(C'\fR or \f(CW\*(C`UUID_MAKE_V5\*(C'\fR bit, a \s-1DCE\s0
-1.1 variant \s-1UUID\s0 of version 3 or 5 is generated and two additional
-arguments are expected: first, a namespace \s-1UUID\s0 object (\f(CW\*(C`uuid_t *\*(C'\fR).
-Second, a name string of arbitrary length (\f(CW\*(C`const char *\*(C'\fR). The \s-1UUID\s0 is
-generated out of the 128\-bit \s-1MD5\s0 or 160\-bit \s-1SHA\-1\s0 from the concatenated
-octet stream of namespace \s-1UUID\s0 and name string.
-.Sp
-If \fImode\fR contains the \f(CW\*(C`UUID_MAKE_V4\*(C'\fR bit, a \s-1DCE\s0 1.1 variant \s-1UUID\s0
-of version 4 is generated. The \s-1UUID\s0 is generated out of 128\-bit random
-data.
-.IP "char *\fBuuid_error\fR(uuid_rc_t \fIrc\fR);" 4
-.IX Item "char *uuid_error(uuid_rc_t rc);"
-Returns a constant string representation corresponding to the
-return-code \fIrc\fR for use in displaying \fB\s-1OSSP\s0 uuid\fR errors.
-.IP "unsigned long \fBuuid_version\fR(void);" 4
-.IX Item "unsigned long uuid_version(void);"
-Returns the hexadecimal encoded \fB\s-1OSSP\s0 uuid\fR version as compiled into
-the library object files. This allows run-time checking of the \fB\s-1OSSP\s0
-uuid\fR version. For compile-time checking use \f(CW\*(C`UUID_VERSION\*(C'\fR instead.
-.SH "EXAMPLE"
-.IX Header "EXAMPLE"
-The following shows an example usage of the \s-1API\s0. Error handling is
-omitted for code simplification and has to be re-added for production
-code.
-.PP
-.Vb 5
-\& /* generate a DCE 1.1 v1 UUID from system environment */
-\& char *uuid_v1(void)
-\& {
-\&     uuid_t *uuid;
-\&     char *str;
-\&
-\&     uuid_create(&uuid);
-\&     uuid_make(uuid, UUID_MAKE_V1);
-\&     str = NULL;
-\&     uuid_export(uuid, UUID_FMT_STR, &str, NULL);
-\&     uuid_destroy(uuid);
-\&     return str;
-\& }
-\&
-\& /* generate a DCE 1.1 v3 UUID from an URL */
-\& char *uuid_v3(const char *url)
-\& {
-\&     uuid_t *uuid;
-\&     uuid_t *uuid_ns;
-\&     char *str;
-\&
-\&     uuid_create(&uuid);
-\&     uuid_create(&uuid_ns);
-\&     uuid_load(uuid_ns, "ns:URL");
-\&     uuid_make(uuid, UUID_MAKE_V3, uuid_ns, url);
-\&     str = NULL;
-\&     uuid_export(uuid, UUID_FMT_STR, &str, NULL);
-\&     uuid_destroy(uuid_ns);
-\&     uuid_destroy(uuid);
-\&     return str;
-\& }
-.Ve
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-The following are references to \fB\s-1UUID\s0\fR documentation and specifications:
-.IP "\(bu" 4
-\&\fBA Universally Unique IDentifier (\s-1UUID\s0) \s-1URN\s0 Namespace\fR,
-P. Leach, M. Mealling, R. Salz,
-\&\s-1IETF\s0 \s-1RFC\-4122\s0,
-July 2005, 32 pages,
-http://www.ietf.org/rfc/rfc4122.txt
-.IP "\(bu" 4
-Information Technology \*(-- Open Systems Interconnection (\s-1OSI\s0),
-\&\fBProcedures for the operation of \s-1OSI\s0 Registration Authorities:
-Generation and Registration of Universally Unique Identifiers (UUIDs)
-and their Use as \s-1ASN\s0.1 Object Identifier Components\fR,
-\&\s-1ISO/IEC\s0 9834\-8:2004 / ITU-T Rec. X.667, 2004,
-December 2004, 25 pages,
-http://www.itu.int/ITU\-T/studygroups/com17/oid/X.667\-E.pdf
-.IP "\(bu" 4
-\&\fB\s-1DCE\s0 1.1: Remote Procedure Call\fR,
-appendix \fBUniversally Unique Identifier\fR,
-Open Group Technical Standard
-Document Number C706, August 1997, 737 pages,
-(supersedes C309 \s-1DCE:\s0 Remote Procedure Call 8/1994,
-which was basis for \s-1ISO/IEC\s0 11578:1996 specification),
-http://www.opengroup.org/publications/catalog/c706.htm
-.IP "\(bu" 4
-Information technology \*(-- Open Systems Interconnection (\s-1OSI\s0),
-\&\fBRemote Procedure Call (\s-1RPC\s0)\fR,
-\&\s-1ISO/IEC\s0 11578:1996,
-August 2001, 570 pages, (\s-1CHF\s0 340,00),
-http://www.iso.ch/cate/d2229.html
-.IP "\(bu" 4
-\&\fB\s-1HTTP\s0 Extensions for Distributed Authoring (WebDAV)\fR,
-section \fB6.4.1 Node Field Generation Without the \s-1IEEE\s0 802 Address\fR,
-\&\s-1IETF\s0 \s-1RFC\-2518\s0,
-February 1999, 94 pages,
-http://www.ietf.org/rfc/rfc2518.txt
-.IP "\(bu" 4
-\&\fB\s-1DCE\s0 1.1 compliant \s-1UUID\s0 functions\fR,
-FreeBSD manual pages \fIuuid\fR\|(3) and \fIuuidgen\fR\|(2),
-http://www.freebsd.org/cgi/man.cgi?query=uuid&manpath=FreeBSD+6.0\-RELEASE
-.SH "HISTORY"
-.IX Header "HISTORY"
-\&\fB\s-1OSSP\s0 uuid\fR was implemented in January 2004 by Ralf S. Engelschall
-<rse@engelschall.com>. It was prompted by the use of UUIDs
-in the \fB\s-1OSSP\s0 as\fR and \fBOpenPKG\fR projects. It is a clean room
-implementation intended to be strictly standards compliant and maximum
-portable.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIuuid\fR\|(1), \fIuuid\-config\fR\|(1), \fIOSSP::uuid\fR\|(3).
diff --git a/libs/uuid/uuid.ac b/libs/uuid/uuid.ac
deleted file mode 100644 (file)
index c698a4e..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-dnl ##
-dnl ##  OSSP uuid - Universally Unique Identifier
-dnl ##  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-dnl ##  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-dnl ##
-dnl ##  This file is part of OSSP uuid, a library for the generation
-dnl ##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-dnl ##
-dnl ##  Permission to use, copy, modify, and distribute this software for
-dnl ##  any purpose with or without fee is hereby granted, provided that
-dnl ##  the above copyright notice and this permission notice appear in all
-dnl ##  copies.
-dnl ##
-dnl ##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-dnl ##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-dnl ##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-dnl ##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-dnl ##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-dnl ##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-dnl ##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-dnl ##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-dnl ##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-dnl ##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-dnl ##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-dnl ##  SUCH DAMAGE.
-dnl ##
-dnl ##  uuid.ac: UUID specific Autoconf checks
-dnl ##
-
-dnl #   Check for anything OSSP uuid wants to know
-dnl #   configure.in:
-dnl #     UUID_CHECK_ALL
-
-AC_DEFUN([UUID_CHECK_ALL],[
-    dnl #   make sure libnsl and libsocket are linked in if they exist
-    AC_CHECK_LIB(nsl, gethostname)
-    if test ".`echo $LIBS | grep nsl`" = .; then
-        AC_CHECK_LIB(nsl, gethostbyname)
-    fi
-    AC_CHECK_LIB(socket, accept)
-
-    dnl #  check for portable va_copy()
-    AC_CHECK_VA_COPY()
-
-    dnl #   check for system headers
-    AC_CHECK_HEADERS(sys/types.h sys/param.h sys/time.h sys/socket.h sys/sockio.h sys/ioctl.h sys/select.h)
-    AC_CHECK_HEADERS(netdb.h ifaddrs.h net/if.h net/if_dl.h net/if_arp.h netinet/in.h arpa/inet.h,,,
-[[
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_SYS_IOCTL_H
-#include <sys/ioctl.h>
-#endif
-]])
-
-    dnl #   check for existence of particular C structures
-    AC_MSG_CHECKING(for struct timeval)
-    AC_TRY_COMPILE([
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#include <time.h>
-    ],[ struct timeval tv; ],
-    [ msg="yes" ], [ msg="no" ])
-    if test ".$msg" = .yes; then
-        AC_DEFINE(HAVE_STRUCT_TIMEVAL, 1, [define if exists "struct timeval"])
-    fi
-    AC_MSG_RESULT([$msg])
-
-    dnl #   check for functions
-    AC_CHECK_FUNCS(getifaddrs nanosleep Sleep gettimeofday clock_gettime)
-
-    dnl #   check size of built-in types
-    AC_CHECK_TYPES([long long, long double])
-    AC_CHECK_SIZEOF(char, 1)
-    AC_CHECK_SIZEOF(unsigned char, 1)
-    AC_CHECK_SIZEOF(short, 2)
-    AC_CHECK_SIZEOF(unsigned short, 2)
-    AC_CHECK_SIZEOF(int, 4)
-    AC_CHECK_SIZEOF(unsigned int, 4)
-    AC_CHECK_SIZEOF(long, 4)
-    AC_CHECK_SIZEOF(unsigned long, 4)
-    AC_CHECK_SIZEOF(long long, 8)
-    AC_CHECK_SIZEOF(unsigned long long, 8)
-
-    dnl #   configure option --with-dce
-    AC_ARG_WITH([dce],
-        AC_HELP_STRING([--with-dce], [build DCE 1.1 backward compatibility API]),
-        [ac_cv_with_dce=$withval], [ac_cv_with_dce=no])
-    AC_CACHE_CHECK([whether to build DCE 1.1 backward compatibility API], [ac_cv_with_dce], [ac_cv_with_dce=no])
-    if test ".$ac_cv_with_dce" = ".yes"; then
-        AC_DEFINE(WITH_DCE, 1, [whether to build DCE 1.1 backward compatibility API])
-        WITH_DCE='yes'
-        DCE_NAME='$(DCE_NAME)'
-    else
-        WITH_DCE='no'
-        DCE_NAME=''
-    fi
-    AC_SUBST(WITH_DCE)
-    AC_SUBST(DCE_NAME)
-
-    dnl #   configure option --with-cxx
-    AC_ARG_WITH([cxx],
-        AS_HELP_STRING([--with-cxx], [build C++ bindings to C API]),
-        [ac_cv_with_cxx=$withval], [ac_cv_with_cxx=no])
-    AC_CACHE_CHECK([whether to build C++ bindings to C API], [ac_cv_with_cxx], [ac_cv_with_cxx=no])
-    if test ".$ac_cv_with_cxx" = ".yes"; then
-        AC_DEFINE(WITH_CXX, 1, [whether to build C++ bindings to C API])
-        WITH_CXX='yes'
-        CXX_NAME='$(CXX_NAME)'
-        AC_PROG_CXX
-    else
-        WITH_CXX='no'
-        CXX_NAME=''
-    fi
-    AC_SUBST(CXX_NAME)
-    AC_SUBST(WITH_CXX)
-
-    dnl #   configure option --with-perl
-    AC_ARG_WITH([perl],
-        AS_HELP_STRING([--with-perl], [build Perl bindings to C API]),
-        [ac_cv_with_perl=$withval], [ac_cv_with_perl=no])
-    AC_CACHE_CHECK([whether to build Perl bindings to C API], [ac_cv_with_perl], [ac_cv_with_perl=no])
-    AC_ARG_WITH([perl-compat],
-        AS_HELP_STRING([--with-perl-compat], [build Perl compatibility API]),
-        [ac_cv_with_perl_compat=$withval], [ac_cv_with_perl_compat=no])
-    AC_CACHE_CHECK([whether to build Perl compatibility API], [ac_cv_with_perl_compat], [ac_cv_with_perl_compat=no])
-    if test ".$ac_cv_with_perl" = ".yes"; then
-        AC_DEFINE(WITH_PERL, 1, [whether to build Perl bindings to C API])
-        WITH_PERL='yes'
-        PERL_NAME='$(PERL_NAME)'
-    else
-        WITH_PERL='no'
-        PERL_NAME=''
-    fi
-    if test ".$ac_cv_with_perl_compat" = ".yes"; then
-        AC_DEFINE(WITH_PERL_COMPAT, 1, [whether to build Perl compatibility API])
-        WITH_PERL_COMPAT=1
-    else
-        WITH_PERL_COMPAT=0
-    fi
-    AC_SUBST(PERL_NAME)
-    AC_SUBST(WITH_PERL)
-    AC_SUBST(WITH_PERL_COMPAT)
-    AC_PATH_PROG(PERL, perl, NA)
-    if test ".$ac_cv_with_perl" = ".yes" -a ".$PERL" = ".NA"; then
-        AC_ERROR([required Perl interpreter not found in \$PATH])
-    fi
-    
-    dnl #   configure option --with-php
-    AC_ARG_WITH([php],
-        AS_HELP_STRING([--with-php], [build PHP bindings to C API]),
-        [ac_cv_with_php=$withval], [ac_cv_with_php=no])
-    AC_CACHE_CHECK([whether to build PHP bindings to C API], [ac_cv_with_php], [ac_cv_with_php=no])
-    if test ".$ac_cv_with_php" = ".yes"; then
-        AC_DEFINE(WITH_PHP, 1, [whether to build PHP bindings to C API])
-        WITH_PHP='yes'
-        PHP_NAME='$(PHP_NAME)'
-    else
-        WITH_PHP='no'
-        PHP_NAME=''
-    fi
-    AC_SUBST(PHP_NAME)
-    AC_SUBST(WITH_PHP)
-    AC_PATH_PROGS(PHP, php5 php, NA)
-    if test ".$ac_cv_with_php" = ".yes" -a ".$PHP" = ".NA"; then
-        AC_ERROR([required PHP interpreter not found in \$PATH])
-    fi
-    if test ".$ac_cv_with_php" = ".yes"; then
-        (cd php && make -f Makefile.local config PHP=$PHP)
-    fi
-
-    dnl #   configure option --with-pgsql
-    AC_ARG_WITH([pgsql],
-        AS_HELP_STRING([--with-pgsql], [build PostgreSQL bindings to C API]),
-        [ac_cv_with_pgsql=$withval], [ac_cv_with_pgsql=no])
-    AC_CACHE_CHECK([whether to build PostgreSQL bindings to C API], [ac_cv_with_pgsql], [ac_cv_with_pgsql=no])
-    if test ".$ac_cv_with_pgsql" = ".yes"; then
-        AC_DEFINE(WITH_PGSQL, 1, [whether to build PostgreSQL bindings to C API])
-        WITH_PGSQL='yes'
-        PGSQL_NAME='$(PGSQL_NAME)'
-    else
-        WITH_PGSQL='no'
-        PGSQL_NAME=''
-    fi
-    AC_SUBST(PGSQL_NAME)
-    AC_SUBST(WITH_PGSQL)
-    AC_PATH_PROGS(PG_CONFIG, pg_config, NA)
-    if test ".$ac_cv_with_pgsql" = ".yes" -a ".$PG_CONFIG" = ".NA"; then
-        AC_ERROR([required PostgreSQL pg_config utility not found in \$PATH])
-    fi
-    if test ".$ac_cv_with_pgsql" = ".yes" -a ".`${MAKE-make} -v 2>/dev/null | grep GNU`" = .; then
-        AC_ERROR([PostgreSQL bindings require GNU make to build])
-    fi
-])
-
diff --git a/libs/uuid/uuid.c b/libs/uuid/uuid.c
deleted file mode 100644 (file)
index 1889a72..0000000
+++ /dev/null
@@ -1,1217 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid.c: library API implementation
-*/
-
-/* own headers (part 1/2) */
-#include "uuid.h"
-#include "uuid_ac.h"
-
-/* system headers */
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <fcntl.h>
-#include <time.h>
-#include <sys/time.h>
-#include <sys/types.h>
-
-/* own headers (part 2/2) */
-#include "uuid_vers.h"
-#include "uuid_md5.h"
-#include "uuid_sha1.h"
-#include "uuid_prng.h"
-#include "uuid_mac.h"
-#include "uuid_time.h"
-#include "uuid_ui64.h"
-#include "uuid_ui128.h"
-#include "uuid_str.h"
-#include "uuid_bm.h"
-#include "uuid_ac.h"
-
-/* maximum number of 100ns ticks of the actual resolution of system clock
-   (which in our case is 1us (= 1000ns) because we use gettimeofday(2) */
-#define UUIDS_PER_TICK 10
-
-/* time offset between UUID and Unix Epoch time according to standards.
-   (UUID UTC base time is October 15, 1582
-    Unix UTC base time is January  1, 1970) */
-#define UUID_TIMEOFFSET "01B21DD213814000"
-
-/* IEEE 802 MAC address encoding/decoding bit fields */
-#define IEEE_MAC_MCBIT BM_OCTET(0,0,0,0,0,0,0,1)
-#define IEEE_MAC_LOBIT BM_OCTET(0,0,0,0,0,0,1,0)
-
-/* IEEE 802 MAC address octet length */
-#define IEEE_MAC_OCTETS 6
-
-/* UUID binary representation according to UUID standards */
-typedef struct {
-    uuid_uint32_t  time_low;                  /* bits  0-31 of time field */
-    uuid_uint16_t  time_mid;                  /* bits 32-47 of time field */
-    uuid_uint16_t  time_hi_and_version;       /* bits 48-59 of time field plus 4 bit version */
-    uuid_uint8_t   clock_seq_hi_and_reserved; /* bits  8-13 of clock sequence field plus 2 bit variant */
-    uuid_uint8_t   clock_seq_low;             /* bits  0-7  of clock sequence field */
-    uuid_uint8_t   node[IEEE_MAC_OCTETS];     /* bits  0-47 of node MAC address */
-} uuid_obj_t;
-
-/* abstract data type (ADT) of API */
-struct uuid_st {
-    uuid_obj_t     obj;                       /* inlined UUID object */
-    prng_t        *prng;                      /* RPNG sub-object */
-    md5_t         *md5;                       /* MD5 sub-object */
-    sha1_t        *sha1;                      /* SHA-1 sub-object */
-    uuid_uint8_t   mac[IEEE_MAC_OCTETS];      /* pre-determined MAC address */
-    struct timeval time_last;                 /* last retrieved timestamp */
-    unsigned long  time_seq;                  /* last timestamp sequence counter */
-};
-
-/* create UUID object */
-uuid_rc_t uuid_create(uuid_t **uuid)
-{
-    uuid_t *obj;
-
-    /* argument sanity check */
-    if (uuid == NULL)
-        return UUID_RC_ARG;
-
-    /* allocate UUID object */
-    if ((obj = (uuid_t *)malloc(sizeof(uuid_t))) == NULL)
-        return UUID_RC_MEM;
-
-    /* create PRNG, MD5 and SHA1 sub-objects */
-    if (prng_create(&obj->prng) != PRNG_RC_OK) {
-        free(obj);
-        return UUID_RC_INT;
-    }
-    if (md5_create(&obj->md5) != MD5_RC_OK) {
-        (void)prng_destroy(obj->prng);
-        free(obj);
-        return UUID_RC_INT;
-    }
-    if (sha1_create(&obj->sha1) != SHA1_RC_OK) {
-        (void)md5_destroy(obj->md5);
-        (void)prng_destroy(obj->prng);
-        free(obj);
-        return UUID_RC_INT;
-    }
-
-    /* set UUID object initially to "Nil UUID" */
-    if (uuid_load(obj, "nil") != UUID_RC_OK) {
-        (void)sha1_destroy(obj->sha1);
-        (void)md5_destroy(obj->md5);
-        (void)prng_destroy(obj->prng);
-        free(obj);
-        return UUID_RC_INT;
-    }
-
-    /* resolve MAC address for insertion into node field of UUIDs */
-    if (!mac_address((unsigned char *)(obj->mac), sizeof(obj->mac))) {
-        memset(obj->mac, 0, sizeof(obj->mac));
-        obj->mac[0] = BM_OCTET(1,0,0,0,0,0,0,0);
-    }
-
-    /* initialize time attributes */
-    obj->time_last.tv_sec  = 0;
-    obj->time_last.tv_usec = 0;
-    obj->time_seq = 0;
-
-    /* store result object */
-    *uuid = obj;
-
-    return UUID_RC_OK;
-}
-
-/* destroy UUID object */
-uuid_rc_t uuid_destroy(uuid_t *uuid)
-{
-    /* argument sanity check */
-    if (uuid == NULL)
-        return UUID_RC_ARG;
-
-    /* destroy PRNG, MD5 and SHA-1 sub-objects */
-    (void)prng_destroy(uuid->prng);
-    (void)md5_destroy(uuid->md5);
-    (void)sha1_destroy(uuid->sha1);
-
-    /* free UUID object */
-    free(uuid);
-
-    return UUID_RC_OK;
-}
-
-/* clone UUID object */
-uuid_rc_t uuid_clone(const uuid_t *uuid, uuid_t **clone)
-{
-    uuid_t *obj;
-
-    /* argument sanity check */
-    if (uuid == NULL || uuid_clone == NULL)
-        return UUID_RC_ARG;
-
-    /* allocate UUID object */
-    if ((obj = (uuid_t *)malloc(sizeof(uuid_t))) == NULL)
-        return UUID_RC_MEM;
-
-    /* clone entire internal state */
-    memcpy(obj, uuid, sizeof(uuid_t));
-
-    /* re-initialize with new PRNG, MD5 and SHA1 sub-objects */
-    if (prng_create(&obj->prng) != PRNG_RC_OK) {
-        free(obj);
-        return UUID_RC_INT;
-    }
-    if (md5_create(&obj->md5) != MD5_RC_OK) {
-        (void)prng_destroy(obj->prng);
-        free(obj);
-        return UUID_RC_INT;
-    }
-    if (sha1_create(&obj->sha1) != SHA1_RC_OK) {
-        (void)md5_destroy(obj->md5);
-        (void)prng_destroy(obj->prng);
-        free(obj);
-        return UUID_RC_INT;
-    }
-
-    /* store result object */
-    *clone = obj;
-
-    return UUID_RC_OK;
-}
-
-/* check whether UUID object represents "Nil UUID" */
-uuid_rc_t uuid_isnil(const uuid_t *uuid, int *result)
-{
-    const unsigned char *ucp;
-    int i;
-
-    /* sanity check argument(s) */
-    if (uuid == NULL || result == NULL)
-        return UUID_RC_ARG;
-
-    /* a "Nil UUID" is defined as all octets zero, so check for this case */
-    *result = UUID_TRUE;
-    for (i = 0, ucp = (unsigned char *)&(uuid->obj); i < UUID_LEN_BIN; i++) {
-        if (*ucp++ != (unsigned char)'\0') {
-            *result = UUID_FALSE;
-            break;
-        }
-    }
-
-    return UUID_RC_OK;
-}
-
-/* compare UUID objects */
-uuid_rc_t uuid_compare(const uuid_t *uuid1, const uuid_t *uuid2, int *result)
-{
-    int r;
-
-    /* argument sanity check */
-    if (result == NULL)
-        return UUID_RC_ARG;
-
-    /* convenience macro for setting result */
-#define RESULT(r) \
-    /*lint -save -e801 -e717*/ \
-    do { \
-        *result = (r); \
-        goto result_exit; \
-    } while (0) \
-    /*lint -restore*/
-
-    /* special cases: NULL or equal UUIDs */
-    if (uuid1 == uuid2)
-        RESULT(0);
-    if (uuid1 == NULL && uuid2 == NULL)
-        RESULT(0);
-    if (uuid1 == NULL)
-        RESULT((uuid_isnil(uuid2, &r) == UUID_RC_OK ? r : 0) ? 0 : -1);
-    if (uuid2 == NULL)
-        RESULT((uuid_isnil(uuid1, &r) == UUID_RC_OK ? r : 0) ? 0 : 1);
-
-    /* standard cases: regular different UUIDs */
-    if (uuid1->obj.time_low != uuid2->obj.time_low)
-        RESULT((uuid1->obj.time_low < uuid2->obj.time_low) ? -1 : 1);
-    if ((r = (int)uuid1->obj.time_mid
-           - (int)uuid2->obj.time_mid) != 0)
-        RESULT((r < 0) ? -1 : 1);
-    if ((r = (int)uuid1->obj.time_hi_and_version
-           - (int)uuid2->obj.time_hi_and_version) != 0)
-        RESULT((r < 0) ? -1 : 1);
-    if ((r = (int)uuid1->obj.clock_seq_hi_and_reserved
-           - (int)uuid2->obj.clock_seq_hi_and_reserved) != 0)
-        RESULT((r < 0) ? -1 : 1);
-    if ((r = (int)uuid1->obj.clock_seq_low
-           - (int)uuid2->obj.clock_seq_low) != 0)
-        RESULT((r < 0) ? -1 : 1);
-    if ((r = memcmp(uuid1->obj.node, uuid2->obj.node, sizeof(uuid1->obj.node))) != 0)
-        RESULT((r < 0) ? -1 : 1);
-
-    /* default case: the keys are equal */
-    *result = 0;
-
-    result_exit:
-    return UUID_RC_OK;
-}
-
-/* INTERNAL: unpack UUID binary presentation into UUID object
-   (allows in-place operation for internal efficiency!) */
-static uuid_rc_t uuid_import_bin(uuid_t *uuid, const void *data_ptr, size_t data_len)
-{
-    const uuid_uint8_t *in;
-    uuid_uint32_t tmp32;
-    uuid_uint16_t tmp16;
-    unsigned int i;
-
-    /* sanity check argument(s) */
-    if (uuid == NULL || data_ptr == NULL || data_len < UUID_LEN_BIN)
-        return UUID_RC_ARG;
-
-    /* treat input data buffer as octet stream */
-    in = (const uuid_uint8_t *)data_ptr;
-
-    /* unpack "time_low" field */
-    tmp32 = (uuid_uint32_t)(*in++);
-    tmp32 = (tmp32 << 8) | (uuid_uint32_t)(*in++);
-    tmp32 = (tmp32 << 8) | (uuid_uint32_t)(*in++);
-    tmp32 = (tmp32 << 8) | (uuid_uint32_t)(*in++);
-    uuid->obj.time_low = tmp32;
-
-    /* unpack "time_mid" field */
-    tmp16 = (uuid_uint16_t)(*in++);
-    tmp16 = (uuid_uint16_t)(tmp16 << 8) | (uuid_uint16_t)(*in++);
-    uuid->obj.time_mid = tmp16;
-
-    /* unpack "time_hi_and_version" field */
-    tmp16 = (uuid_uint16_t)*in++;
-    tmp16 = (uuid_uint16_t)(tmp16 << 8) | (uuid_uint16_t)(*in++);
-    uuid->obj.time_hi_and_version = tmp16;
-
-    /* unpack "clock_seq_hi_and_reserved" field */
-    uuid->obj.clock_seq_hi_and_reserved = *in++;
-
-    /* unpack "clock_seq_low" field */
-    uuid->obj.clock_seq_low = *in++;
-
-    /* unpack "node" field */
-    for (i = 0; i < (unsigned int)sizeof(uuid->obj.node); i++)
-        uuid->obj.node[i] = *in++;
-
-    return UUID_RC_OK;
-}
-
-/* INTERNAL: pack UUID object into binary representation
-   (allows in-place operation for internal efficiency!) */
-static uuid_rc_t uuid_export_bin(const uuid_t *uuid, void *_data_ptr, size_t *data_len)
-{
-    uuid_uint8_t **data_ptr;
-    uuid_uint8_t *out;
-    uuid_uint32_t tmp32;
-    uuid_uint16_t tmp16;
-    unsigned int i;
-
-    /* cast generic data pointer to particular pointer to pointer type */
-    data_ptr = (uuid_uint8_t **)_data_ptr;
-
-    /* sanity check argument(s) */
-    if (uuid == NULL || data_ptr == NULL)
-        return UUID_RC_ARG;
-
-    /* optionally allocate octet data buffer */
-    if (*data_ptr == NULL) {
-        if ((*data_ptr = (uuid_uint8_t *)malloc(sizeof(uuid_t))) == NULL)
-            return UUID_RC_MEM;
-        if (data_len != NULL)
-            *data_len = UUID_LEN_BIN;
-    }
-    else {
-        if (data_len == NULL)
-            return UUID_RC_ARG;
-        if (*data_len < UUID_LEN_BIN)
-            return UUID_RC_MEM;
-        *data_len = UUID_LEN_BIN;
-    }
-
-    /* treat output data buffer as octet stream */
-    out = *data_ptr;
-
-    /* pack "time_low" field */
-    tmp32 = uuid->obj.time_low;
-    out[3] = (uuid_uint8_t)(tmp32 & 0xff); tmp32 >>= 8;
-    out[2] = (uuid_uint8_t)(tmp32 & 0xff); tmp32 >>= 8;
-    out[1] = (uuid_uint8_t)(tmp32 & 0xff); tmp32 >>= 8;
-    out[0] = (uuid_uint8_t)(tmp32 & 0xff);
-
-    /* pack "time_mid" field */
-    tmp16 = uuid->obj.time_mid;
-    out[5] = (uuid_uint8_t)(tmp16 & 0xff); tmp16 >>= 8;
-    out[4] = (uuid_uint8_t)(tmp16 & 0xff);
-
-    /* pack "time_hi_and_version" field */
-    tmp16 = uuid->obj.time_hi_and_version;
-    out[7] = (uuid_uint8_t)(tmp16 & 0xff); tmp16 >>= 8;
-    out[6] = (uuid_uint8_t)(tmp16 & 0xff);
-
-    /* pack "clock_seq_hi_and_reserved" field */
-    out[8] = uuid->obj.clock_seq_hi_and_reserved;
-
-    /* pack "clock_seq_low" field */
-    out[9] = uuid->obj.clock_seq_low;
-
-    /* pack "node" field */
-    for (i = 0; i < (unsigned int)sizeof(uuid->obj.node); i++)
-        out[10+i] = uuid->obj.node[i];
-
-    return UUID_RC_OK;
-}
-
-/* INTERNAL: check for valid UUID string representation syntax */
-static int uuid_isstr(const char *str, size_t str_len)
-{
-    int i;
-    const char *cp;
-
-    /* example reference:
-       f81d4fae-7dec-11d0-a765-00a0c91e6bf6
-       012345678901234567890123456789012345
-       0         1         2         3       */
-    if (str == NULL)
-        return UUID_FALSE;
-    if (str_len == 0)
-        str_len = strlen(str);
-    if (str_len < UUID_LEN_STR)
-        return UUID_FALSE;
-    for (i = 0, cp = str; i < UUID_LEN_STR; i++, cp++) {
-        if ((i == 8) || (i == 13) || (i == 18) || (i == 23)) {
-            if (*cp == '-')
-                continue;
-            else
-                return UUID_FALSE;
-        }
-        if (!isxdigit((int)(*cp)))
-            return UUID_FALSE;
-    }
-    return UUID_TRUE;
-}
-
-/* INTERNAL: import UUID object from string representation */
-static uuid_rc_t uuid_import_str(uuid_t *uuid, const void *data_ptr, size_t data_len)
-{
-    uuid_uint16_t tmp16;
-    const char *cp;
-    char hexbuf[3];
-    const char *str;
-    unsigned int i;
-
-    /* sanity check argument(s) */
-    if (uuid == NULL || data_ptr == NULL || data_len < UUID_LEN_STR)
-        return UUID_RC_ARG;
-
-    /* check for correct UUID string representation syntax */
-    str = (const char *)data_ptr;
-    if (!uuid_isstr(str, 0))
-        return UUID_RC_ARG;
-
-    /* parse hex values of "time" parts */
-    uuid->obj.time_low            = (uuid_uint32_t)strtoul(str,    NULL, 16);
-    uuid->obj.time_mid            = (uuid_uint16_t)strtoul(str+9,  NULL, 16);
-    uuid->obj.time_hi_and_version = (uuid_uint16_t)strtoul(str+14, NULL, 16);
-
-    /* parse hex values of "clock" parts */
-    tmp16 = (uuid_uint16_t)strtoul(str+19, NULL, 16);
-    uuid->obj.clock_seq_low             = (uuid_uint8_t)(tmp16 & 0xff); tmp16 >>= 8;
-    uuid->obj.clock_seq_hi_and_reserved = (uuid_uint8_t)(tmp16 & 0xff);
-
-    /* parse hex values of "node" part */
-    cp = str+24;
-    hexbuf[2] = '\0';
-    for (i = 0; i < (unsigned int)sizeof(uuid->obj.node); i++) {
-        hexbuf[0] = *cp++;
-        hexbuf[1] = *cp++;
-        uuid->obj.node[i] = (uuid_uint8_t)strtoul(hexbuf, NULL, 16);
-    }
-
-    return UUID_RC_OK;
-}
-
-/* INTERNAL: import UUID object from single integer value representation */
-static uuid_rc_t uuid_import_siv(uuid_t *uuid, const void *data_ptr, size_t data_len)
-{
-    const char *str;
-    uuid_uint8_t tmp_bin[UUID_LEN_BIN];
-    ui128_t ui, ui2;
-    uuid_rc_t rc;
-    int i;
-
-    /* sanity check argument(s) */
-    if (uuid == NULL || data_ptr == NULL || data_len < 1)
-        return UUID_RC_ARG;
-
-    /* check for correct UUID single integer value syntax */
-    str = (const char *)data_ptr;
-    for (i = 0; i < (int)data_len; i++)
-        if (!isdigit((int)str[i]))
-            return UUID_RC_ARG;
-
-    /* parse single integer value representation (SIV) */
-    ui = ui128_s2i(str, NULL, 10);
-
-    /* import octets into UUID binary representation */
-    for (i = 0; i < UUID_LEN_BIN; i++) {
-        ui = ui128_rol(ui, 8, &ui2);
-        tmp_bin[i] = (uuid_uint8_t)(ui128_i2n(ui2) & 0xff);
-    }
-
-    /* import into internal UUID representation */
-    if ((rc = uuid_import(uuid, UUID_FMT_BIN, (void *)&tmp_bin, UUID_LEN_BIN)) != UUID_RC_OK)
-        return rc;
-
-    return UUID_RC_OK;
-}
-
-/* INTERNAL: export UUID object to string representation */
-static uuid_rc_t uuid_export_str(const uuid_t *uuid, void *_data_ptr, size_t *data_len)
-{
-    char **data_ptr;
-    char *data_buf;
-
-    /* cast generic data pointer to particular pointer to pointer type */
-    data_ptr = (char **)_data_ptr;
-
-    /* sanity check argument(s) */
-    if (uuid == NULL || data_ptr == NULL)
-        return UUID_RC_ARG;
-
-    /* determine output buffer */
-    if (*data_ptr == NULL) {
-        if ((data_buf = (char *)malloc(UUID_LEN_STR+1)) == NULL)
-            return UUID_RC_MEM;
-        if (data_len != NULL)
-            *data_len = UUID_LEN_STR+1;
-    }
-    else {
-        data_buf = (char *)(*data_ptr);
-        if (data_len == NULL)
-            return UUID_RC_ARG;
-        if (*data_len < UUID_LEN_STR+1)
-            return UUID_RC_MEM;
-        *data_len = UUID_LEN_STR+1;
-    }
-
-    /* format UUID into string representation */
-    if (str_snprintf(data_buf, UUID_LEN_STR+1,
-        "%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
-        (unsigned long)uuid->obj.time_low,
-        (unsigned int)uuid->obj.time_mid,
-        (unsigned int)uuid->obj.time_hi_and_version,
-        (unsigned int)uuid->obj.clock_seq_hi_and_reserved,
-        (unsigned int)uuid->obj.clock_seq_low,
-        (unsigned int)uuid->obj.node[0],
-        (unsigned int)uuid->obj.node[1],
-        (unsigned int)uuid->obj.node[2],
-        (unsigned int)uuid->obj.node[3],
-        (unsigned int)uuid->obj.node[4],
-        (unsigned int)uuid->obj.node[5]) != UUID_LEN_STR) {
-        if (*data_ptr == NULL)
-            free(data_buf);
-        return UUID_RC_INT;
-    }
-
-    /* pass back new buffer if locally allocated */
-    if (*data_ptr == NULL)
-        *data_ptr = data_buf;
-
-    return UUID_RC_OK;
-}
-
-/* INTERNAL: export UUID object to single integer value representation */
-static uuid_rc_t uuid_export_siv(const uuid_t *uuid, void *_data_ptr, size_t *data_len)
-{
-    char **data_ptr;
-    char *data_buf;
-    void *tmp_ptr;
-    size_t tmp_len;
-    uuid_uint8_t tmp_bin[UUID_LEN_BIN];
-    ui128_t ui, ui2;
-    uuid_rc_t rc;
-    int i;
-
-    /* cast generic data pointer to particular pointer to pointer type */
-    data_ptr = (char **)_data_ptr;
-
-    /* sanity check argument(s) */
-    if (uuid == NULL || data_ptr == NULL)
-        return UUID_RC_ARG;
-
-    /* determine output buffer */
-    if (*data_ptr == NULL) {
-        if ((data_buf = (char *)malloc(UUID_LEN_SIV+1)) == NULL)
-            return UUID_RC_MEM;
-        if (data_len != NULL)
-            *data_len = UUID_LEN_SIV+1;
-    }
-    else {
-        data_buf = (char *)(*data_ptr);
-        if (data_len == NULL)
-            return UUID_RC_ARG;
-        if (*data_len < UUID_LEN_SIV+1)
-            return UUID_RC_MEM;
-        *data_len = UUID_LEN_SIV+1;
-    }
-
-    /* export into UUID binary representation */
-    tmp_ptr = (void *)&tmp_bin;
-    tmp_len = sizeof(tmp_bin);
-    if ((rc = uuid_export(uuid, UUID_FMT_BIN, &tmp_ptr, &tmp_len)) != UUID_RC_OK) {
-        if (*data_ptr == NULL)
-            free(data_buf);
-        return rc;
-    }
-
-    /* import from UUID binary representation */
-    ui = ui128_zero();
-    for (i = 0; i < UUID_LEN_BIN; i++) {
-        ui2 = ui128_n2i((unsigned long)tmp_bin[i]);
-        ui = ui128_rol(ui, 8, NULL);
-        ui = ui128_or(ui, ui2);
-    }
-
-    /* format into single integer value representation */
-    (void)ui128_i2s(ui, data_buf, UUID_LEN_SIV+1, 10);
-
-    /* pass back new buffer if locally allocated */
-    if (*data_ptr == NULL)
-        *data_ptr = data_buf;
-
-    return UUID_RC_OK;
-}
-
-/* decoding tables */
-static struct {
-    uuid_uint8_t num;
-    const char *desc;
-} uuid_dectab_variant[] = {
-    { (uuid_uint8_t)BM_OCTET(0,0,0,0,0,0,0,0), "reserved (NCS backward compatible)" },
-    { (uuid_uint8_t)BM_OCTET(1,0,0,0,0,0,0,0), "DCE 1.1, ISO/IEC 11578:1996" },
-    { (uuid_uint8_t)BM_OCTET(1,1,0,0,0,0,0,0), "reserved (Microsoft GUID)" },
-    { (uuid_uint8_t)BM_OCTET(1,1,1,0,0,0,0,0), "reserved (future use)" }
-};
-static struct {
-    int num;
-    const char *desc;
-} uuid_dectab_version[] = {
-    { 1, "time and node based" },
-    { 3, "name based, MD5" },
-    { 4, "random data based" },
-    { 5, "name based, SHA-1" }
-};
-
-/* INTERNAL: dump UUID object as descriptive text */
-static uuid_rc_t uuid_export_txt(const uuid_t *uuid, void *_data_ptr, size_t *data_len)
-{
-    char **data_ptr;
-    uuid_rc_t rc;
-    char **out;
-    char *out_ptr;
-    size_t out_len;
-    const char *version;
-    const char *variant;
-    char *content;
-    int isnil;
-    uuid_uint8_t tmp8;
-    uuid_uint16_t tmp16;
-    uuid_uint32_t tmp32;
-    uuid_uint8_t tmp_bin[UUID_LEN_BIN];
-    char tmp_str[UUID_LEN_STR+1];
-    char tmp_siv[UUID_LEN_SIV+1];
-    void *tmp_ptr;
-    size_t tmp_len;
-    ui64_t t;
-    ui64_t t_offset;
-    int t_nsec;
-    int t_usec;
-    time_t t_sec;
-    char t_buf[19+1]; /* YYYY-MM-DD HH:MM:SS */
-    struct tm *tm;
-    int i;
-
-    /* cast generic data pointer to particular pointer to pointer type */
-    data_ptr = (char **)_data_ptr;
-
-    /* sanity check argument(s) */
-    if (uuid == NULL || data_ptr == NULL)
-        return UUID_RC_ARG;
-
-    /* initialize output buffer */
-    out_ptr = NULL;
-    out = &out_ptr;
-
-    /* check for special case of "Nil UUID" */
-    if ((rc = uuid_isnil(uuid, &isnil)) != UUID_RC_OK)
-        return rc;
-
-    /* decode into various representations */
-    tmp_ptr = (void *)&tmp_str;
-    tmp_len = sizeof(tmp_str);
-    if ((rc = uuid_export(uuid, UUID_FMT_STR, &tmp_ptr, &tmp_len)) != UUID_RC_OK)
-        return rc;
-    tmp_ptr = (void *)&tmp_siv;
-    tmp_len = sizeof(tmp_siv);
-    if ((rc = uuid_export(uuid, UUID_FMT_SIV, &tmp_ptr, &tmp_len)) != UUID_RC_OK)
-        return rc;
-    (void)str_rsprintf(out, "encode: STR:     %s\n", tmp_str);
-    (void)str_rsprintf(out, "        SIV:     %s\n", tmp_siv);
-
-    /* decode UUID variant */
-    tmp8 = uuid->obj.clock_seq_hi_and_reserved;
-    if (isnil)
-        variant = "n.a.";
-    else {
-        variant = "unknown";
-        for (i = 7; i >= 0; i--) {
-            if ((tmp8 & (uuid_uint8_t)BM_BIT(i,1)) == 0) {
-                tmp8 &= ~(uuid_uint8_t)BM_MASK(i,0);
-                break;
-            }
-        }
-        for (i = 0; i < (int)(sizeof(uuid_dectab_variant)/sizeof(uuid_dectab_variant[0])); i++) {
-            if (uuid_dectab_variant[i].num == tmp8) {
-                variant = uuid_dectab_variant[i].desc;
-                break;
-            }
-        }
-    }
-    (void)str_rsprintf(out, "decode: variant: %s\n", variant);
-
-    /* decode UUID version */
-    tmp16 = (BM_SHR(uuid->obj.time_hi_and_version, 12) & (uuid_uint16_t)BM_MASK(3,0));
-    if (isnil)
-        version = "n.a.";
-    else {
-        version = "unknown";
-        for (i = 0; i < (int)(sizeof(uuid_dectab_version)/sizeof(uuid_dectab_version[0])); i++) {
-            if (uuid_dectab_version[i].num == (int)tmp16) {
-                version = uuid_dectab_version[i].desc;
-                break;
-            }
-        }
-    }
-    str_rsprintf(out, "        version: %d (%s)\n", (int)tmp16, version);
-
-    /*
-     * decode UUID content
-     */
-
-    if (tmp8 == BM_OCTET(1,0,0,0,0,0,0,0) && tmp16 == 1) {
-        /* decode DCE 1.1 version 1 UUID */
-
-        /* decode system time */
-        t = ui64_rol(ui64_n2i((unsigned long)(uuid->obj.time_hi_and_version & BM_MASK(11,0))), 48, NULL),
-        t = ui64_or(t, ui64_rol(ui64_n2i((unsigned long)(uuid->obj.time_mid)), 32, NULL));
-        t = ui64_or(t, ui64_n2i((unsigned long)(uuid->obj.time_low)));
-        t_offset = ui64_s2i(UUID_TIMEOFFSET, NULL, 16);
-        t = ui64_sub(t, t_offset, NULL);
-        t = ui64_divn(t, 10, &t_nsec);
-        t = ui64_divn(t, 1000000, &t_usec);
-        t_sec = (time_t)ui64_i2n(t);
-        tm = gmtime(&t_sec);
-        (void)strftime(t_buf, sizeof(t_buf), "%Y-%m-%d %H:%M:%S", tm);
-        (void)str_rsprintf(out, "        content: time:  %s.%06d.%d UTC\n", t_buf, t_usec, t_nsec);
-
-        /* decode clock sequence */
-        tmp32 = ((uuid->obj.clock_seq_hi_and_reserved & BM_MASK(5,0)) << 8)
-                + uuid->obj.clock_seq_low;
-        (void)str_rsprintf(out, "                 clock: %ld (usually random)\n", (long)tmp32);
-
-        /* decode node MAC address */
-        (void)str_rsprintf(out, "                 node:  %02x:%02x:%02x:%02x:%02x:%02x (%s %s)\n",
-            (unsigned int)uuid->obj.node[0],
-            (unsigned int)uuid->obj.node[1],
-            (unsigned int)uuid->obj.node[2],
-            (unsigned int)uuid->obj.node[3],
-            (unsigned int)uuid->obj.node[4],
-            (unsigned int)uuid->obj.node[5],
-            (uuid->obj.node[0] & IEEE_MAC_LOBIT ? "local" : "global"),
-            (uuid->obj.node[0] & IEEE_MAC_MCBIT ? "multicast" : "unicast"));
-    }
-    else {
-        /* decode anything else as hexadecimal byte-string only */
-
-        /* determine annotational hint */
-        content = "not decipherable: unknown UUID version";
-        if (isnil)
-            content = "special case: DCE 1.1 Nil UUID";
-        else if (tmp16 == 3)
-            content = "not decipherable: MD5 message digest only";
-        else if (tmp16 == 4)
-            content = "no semantics: random data only";
-        else if (tmp16 == 5)
-            content = "not decipherable: truncated SHA-1 message digest only";
-
-        /* pack UUID into binary representation */
-        tmp_ptr = (void *)&tmp_bin;
-        tmp_len = sizeof(tmp_bin);
-        if ((rc = uuid_export(uuid, UUID_FMT_BIN, &tmp_ptr, &tmp_len)) != UUID_RC_OK)
-            return rc;
-
-        /* mask out version and variant parts */
-        tmp_bin[6] &= BM_MASK(3,0);
-        tmp_bin[8] &= BM_MASK(5,0);
-
-        /* dump as colon-seperated hexadecimal byte-string */
-        (void)str_rsprintf(out,
-            "        content: %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X\n"
-            "                 (%s)\n",
-            (unsigned int)tmp_bin[0],  (unsigned int)tmp_bin[1],  (unsigned int)tmp_bin[2],
-            (unsigned int)tmp_bin[3],  (unsigned int)tmp_bin[4],  (unsigned int)tmp_bin[5],
-            (unsigned int)tmp_bin[6],  (unsigned int)tmp_bin[7],  (unsigned int)tmp_bin[8],
-            (unsigned int)tmp_bin[9],  (unsigned int)tmp_bin[10], (unsigned int)tmp_bin[11],
-            (unsigned int)tmp_bin[12], (unsigned int)tmp_bin[13], (unsigned int)tmp_bin[14],
-            (unsigned int)tmp_bin[15], content);
-    }
-
-    /* provide result */
-    out_len = strlen(out_ptr)+1;
-    if (*data_ptr == NULL) {
-        *data_ptr = (void *)out_ptr;
-        if (data_len != NULL)
-            *data_len = out_len;
-    }
-    else {
-        if (data_len == NULL)
-            return UUID_RC_ARG;
-        if (*data_len < out_len)
-            return UUID_RC_MEM;
-        memcpy(*data_ptr, out_ptr, out_len);
-    }
-
-    return UUID_RC_OK;
-}
-
-/* UUID importing */
-uuid_rc_t uuid_import(uuid_t *uuid, uuid_fmt_t fmt, const void *data_ptr, size_t data_len)
-{
-    uuid_rc_t rc;
-
-    /* sanity check argument(s) */
-    if (uuid == NULL || data_ptr == NULL)
-        return UUID_RC_ARG;
-
-    /* dispatch into format-specific functions */
-    switch (fmt) {
-        case UUID_FMT_BIN: rc = uuid_import_bin(uuid, data_ptr, data_len); break;
-        case UUID_FMT_STR: rc = uuid_import_str(uuid, data_ptr, data_len); break;
-        case UUID_FMT_SIV: rc = uuid_import_siv(uuid, data_ptr, data_len); break;
-        case UUID_FMT_TXT: rc = UUID_RC_IMP; /* not implemented */ break;
-        default:           rc = UUID_RC_ARG;
-    }
-
-    return rc;
-}
-
-/* UUID exporting */
-uuid_rc_t uuid_export(const uuid_t *uuid, uuid_fmt_t fmt, void *data_ptr, size_t *data_len)
-{
-    uuid_rc_t rc;
-
-    /* sanity check argument(s) */
-    if (uuid == NULL || data_ptr == NULL)
-        return UUID_RC_ARG;
-
-    /* dispatch into format-specific functions */
-    switch (fmt) {
-        case UUID_FMT_BIN: rc = uuid_export_bin(uuid, data_ptr, data_len); break;
-        case UUID_FMT_STR: rc = uuid_export_str(uuid, data_ptr, data_len); break;
-        case UUID_FMT_SIV: rc = uuid_export_siv(uuid, data_ptr, data_len); break;
-        case UUID_FMT_TXT: rc = uuid_export_txt(uuid, data_ptr, data_len); break;
-        default:           rc = UUID_RC_ARG;
-    }
-
-    return rc;
-}
-
-/* INTERNAL: brand UUID with version and variant */
-static void uuid_brand(uuid_t *uuid, unsigned int version)
-{
-    /* set version (as given) */
-    uuid->obj.time_hi_and_version &= BM_MASK(11,0);
-    uuid->obj.time_hi_and_version |= (uuid_uint16_t)BM_SHL(version, 12);
-
-    /* set variant (always DCE 1.1 only) */
-    uuid->obj.clock_seq_hi_and_reserved &= BM_MASK(5,0);
-    uuid->obj.clock_seq_hi_and_reserved |= BM_SHL(0x02, 6);
-    return;
-}
-
-/* INTERNAL: generate UUID version 1: time, clock and node based */
-static uuid_rc_t uuid_make_v1(uuid_t *uuid, unsigned int mode, va_list ap)
-{
-    struct timeval time_now;
-    ui64_t t;
-    ui64_t offset;
-    ui64_t ov;
-    uuid_uint16_t clck;
-
-    /*
-     *  GENERATE TIME
-     */
-
-    /* determine current system time and sequence counter */
-    for (;;) {
-        /* determine current system time */
-        if (time_gettimeofday(&time_now) == -1)
-            return UUID_RC_SYS;
-
-        /* check whether system time changed since last retrieve */
-        if (!(   time_now.tv_sec  == uuid->time_last.tv_sec
-              && time_now.tv_usec == uuid->time_last.tv_usec)) {
-            /* reset time sequence counter and continue */
-            uuid->time_seq = 0;
-            break;
-        }
-
-        /* until we are out of UUIDs per tick, increment
-           the time/tick sequence counter and continue */
-        if (uuid->time_seq < UUIDS_PER_TICK) {
-            uuid->time_seq++;
-            break;
-        }
-
-        /* stall the UUID generation until the system clock (which
-           has a gettimeofday(2) resolution of 1us) catches up */
-        time_usleep(1);
-    }
-
-    /* convert from timeval (sec,usec) to OSSP ui64 (100*nsec) format */
-    t = ui64_n2i((unsigned long)time_now.tv_sec);
-    t = ui64_muln(t, 1000000, NULL);
-    t = ui64_addn(t, (int)time_now.tv_usec, NULL);
-    t = ui64_muln(t, 10, NULL);
-
-    /* adjust for offset between UUID and Unix Epoch time */
-    offset = ui64_s2i(UUID_TIMEOFFSET, NULL, 16);
-    t = ui64_add(t, offset, NULL);
-
-    /* compensate for low resolution system clock by adding
-       the time/tick sequence counter */
-    if (uuid->time_seq > 0)
-        t = ui64_addn(t, (int)uuid->time_seq, NULL);
-
-    /* store the 60 LSB of the time in the UUID */
-    t = ui64_rol(t, 16, &ov);
-    uuid->obj.time_hi_and_version =
-        (uuid_uint16_t)(ui64_i2n(ov) & 0x00000fff); /* 12 of 16 bit only! */
-    t = ui64_rol(t, 16, &ov);
-    uuid->obj.time_mid =
-        (uuid_uint16_t)(ui64_i2n(ov) & 0x0000ffff); /* all 16 bit */
-    t = ui64_rol(t, 32, &ov);
-    uuid->obj.time_low =
-        (uuid_uint32_t)(ui64_i2n(ov) & 0xffffffff); /* all 32 bit */
-
-    /*
-     *  GENERATE CLOCK
-     */
-
-    /* retrieve current clock sequence */
-    clck = ((uuid->obj.clock_seq_hi_and_reserved & BM_MASK(5,0)) << 8)
-           + uuid->obj.clock_seq_low;
-
-    /* generate new random clock sequence (initially or if the
-       time has stepped backwards) or else just increase it */
-    if (   clck == 0
-        || (   time_now.tv_sec < uuid->time_last.tv_sec
-            || (   time_now.tv_sec == uuid->time_last.tv_sec
-                && time_now.tv_usec < uuid->time_last.tv_usec))) {
-        if (prng_data(uuid->prng, (void *)&clck, sizeof(clck)) != PRNG_RC_OK)
-            return UUID_RC_INT;
-    }
-    else
-        clck++;
-    clck %= BM_POW2(14);
-
-    /* store back new clock sequence */
-    uuid->obj.clock_seq_hi_and_reserved =
-        (uuid->obj.clock_seq_hi_and_reserved & BM_MASK(7,6))
-        | (uuid_uint8_t)((clck >> 8) & 0xff);
-    uuid->obj.clock_seq_low =
-        (uuid_uint8_t)(clck & 0xff);
-
-    /*
-     *  GENERATE NODE
-     */
-
-    if ((mode & UUID_MAKE_MC) || (uuid->mac[0] & BM_OCTET(1,0,0,0,0,0,0,0))) {
-        /* generate random IEEE 802 local multicast MAC address */
-        if (prng_data(uuid->prng, (void *)&(uuid->obj.node), sizeof(uuid->obj.node)) != PRNG_RC_OK)
-            return UUID_RC_INT;
-        uuid->obj.node[0] |= IEEE_MAC_MCBIT;
-        uuid->obj.node[0] |= IEEE_MAC_LOBIT;
-    }
-    else {
-        /* use real regular MAC address */
-        memcpy(uuid->obj.node, uuid->mac, sizeof(uuid->mac));
-    }
-
-    /*
-     *  FINISH
-     */
-
-    /* remember current system time for next iteration */
-    uuid->time_last.tv_sec  = time_now.tv_sec;
-    uuid->time_last.tv_usec = time_now.tv_usec;
-
-    /* brand with version and variant */
-    uuid_brand(uuid, 1);
-
-    return UUID_RC_OK;
-}
-
-/* INTERNAL: pre-defined UUID values.
-   (defined as network byte ordered octet stream) */
-#define UUID_MAKE(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) \
-    { (uuid_uint8_t)(a1),  (uuid_uint8_t)(a2),  (uuid_uint8_t)(a3),  (uuid_uint8_t)(a4),  \
-      (uuid_uint8_t)(a5),  (uuid_uint8_t)(a6),  (uuid_uint8_t)(a7),  (uuid_uint8_t)(a8),  \
-      (uuid_uint8_t)(a9),  (uuid_uint8_t)(a10), (uuid_uint8_t)(a11), (uuid_uint8_t)(a12), \
-      (uuid_uint8_t)(a13), (uuid_uint8_t)(a14), (uuid_uint8_t)(a15), (uuid_uint8_t)(a16) }
-static struct {
-    char *name;
-    uuid_uint8_t uuid[UUID_LEN_BIN];
-} uuid_value_table[] = {
-    { "nil",     /* 00000000-0000-0000-0000-000000000000 ("Nil UUID") */
-      UUID_MAKE(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00) },
-    { "ns:DNS",  /* 6ba7b810-9dad-11d1-80b4-00c04fd430c8 (see RFC 4122) */
-      UUID_MAKE(0x6b,0xa7,0xb8,0x10,0x9d,0xad,0x11,0xd1,0x80,0xb4,0x00,0xc0,0x4f,0xd4,0x30,0xc8) },
-    { "ns:URL",  /* 6ba7b811-9dad-11d1-80b4-00c04fd430c8 (see RFC 4122) */
-      UUID_MAKE(0x6b,0xa7,0xb8,0x11,0x9d,0xad,0x11,0xd1,0x80,0xb4,0x00,0xc0,0x4f,0xd4,0x30,0xc8) },
-    { "ns:OID",  /* 6ba7b812-9dad-11d1-80b4-00c04fd430c8 (see RFC 4122) */
-      UUID_MAKE(0x6b,0xa7,0xb8,0x12,0x9d,0xad,0x11,0xd1,0x80,0xb4,0x00,0xc0,0x4f,0xd4,0x30,0xc8) },
-    { "ns:X500", /* 6ba7b814-9dad-11d1-80b4-00c04fd430c8 (see RFC 4122) */
-      UUID_MAKE(0x6b,0xa7,0xb8,0x14,0x9d,0xad,0x11,0xd1,0x80,0xb4,0x00,0xc0,0x4f,0xd4,0x30,0xc8) }
-};
-
-/* load UUID object with pre-defined value */
-uuid_rc_t uuid_load(uuid_t *uuid, const char *name)
-{
-    uuid_uint8_t *uuid_octets;
-    uuid_rc_t rc;
-    unsigned int i;
-
-    /* sanity check argument(s) */
-    if (uuid == NULL || name == NULL)
-        return UUID_RC_ARG;
-
-    /* search for UUID in table */
-    uuid_octets = NULL;
-    for (i = 0; i < (unsigned int)sizeof(uuid_value_table)/sizeof(uuid_value_table[0]); i++) {
-         if (strcmp(uuid_value_table[i].name, name) == 0) {
-             uuid_octets = uuid_value_table[i].uuid;
-             break;
-         }
-    }
-    if (uuid_octets == NULL)
-        return UUID_RC_ARG;
-
-    /* import value into UUID object */
-    if ((rc = uuid_import(uuid, UUID_FMT_BIN, uuid_octets, UUID_LEN_BIN)) != UUID_RC_OK)
-        return rc;
-
-    return UUID_RC_OK;
-}
-
-/* INTERNAL: generate UUID version 3: name based with MD5 */
-static uuid_rc_t uuid_make_v3(uuid_t *uuid, unsigned int mode, va_list ap)
-{
-    char *str;
-    uuid_t *uuid_ns;
-    uuid_uint8_t uuid_buf[UUID_LEN_BIN];
-    void *uuid_ptr;
-    size_t uuid_len;
-    uuid_rc_t rc;
-
-    /* determine namespace UUID and name string arguments */
-    if ((uuid_ns = (uuid_t *)va_arg(ap, void *)) == NULL)
-        return UUID_RC_ARG;
-    if ((str = (char *)va_arg(ap, char *)) == NULL)
-        return UUID_RC_ARG;
-
-    /* initialize MD5 context */
-    if (md5_init(uuid->md5) != MD5_RC_OK)
-        return UUID_RC_MEM;
-
-    /* load the namespace UUID into MD5 context */
-    uuid_ptr = (void *)&uuid_buf;
-    uuid_len = sizeof(uuid_buf);
-    if ((rc = uuid_export(uuid_ns, UUID_FMT_BIN, &uuid_ptr, &uuid_len)) != UUID_RC_OK)
-        return rc;
-    if (md5_update(uuid->md5, uuid_buf, uuid_len) != MD5_RC_OK)
-        return UUID_RC_INT;
-
-    /* load the argument name string into MD5 context */
-    if (md5_update(uuid->md5, str, strlen(str)) != MD5_RC_OK)
-        return UUID_RC_INT;
-
-    /* store MD5 result into UUID
-       (requires MD5_LEN_BIN space, UUID_LEN_BIN space is available,
-       and both are equal in size, so we are safe!) */
-    uuid_ptr = (void *)&(uuid->obj);
-    if (md5_store(uuid->md5, &uuid_ptr, NULL) != MD5_RC_OK)
-        return UUID_RC_INT;
-
-    /* fulfill requirement of standard and convert UUID data into
-       local/host byte order (this uses fact that uuid_import_bin() is
-       able to operate in-place!) */
-    if ((rc = uuid_import(uuid, UUID_FMT_BIN, (void *)&(uuid->obj), UUID_LEN_BIN)) != UUID_RC_OK)
-        return rc;
-
-    /* brand UUID with version and variant */
-    uuid_brand(uuid, 3);
-
-    return UUID_RC_OK;
-}
-
-/* INTERNAL: generate UUID version 4: random number based */
-static uuid_rc_t uuid_make_v4(uuid_t *uuid, unsigned int mode, va_list ap)
-{
-    /* fill UUID with random data */
-    if (prng_data(uuid->prng, (void *)&(uuid->obj), sizeof(uuid->obj)) != PRNG_RC_OK)
-        return UUID_RC_INT;
-
-    /* brand UUID with version and variant */
-    uuid_brand(uuid, 4);
-
-    return UUID_RC_OK;
-}
-
-/* INTERNAL: generate UUID version 5: name based with SHA-1 */
-static uuid_rc_t uuid_make_v5(uuid_t *uuid, unsigned int mode, va_list ap)
-{
-    char *str;
-    uuid_t *uuid_ns;
-    uuid_uint8_t uuid_buf[UUID_LEN_BIN];
-    void *uuid_ptr;
-    size_t uuid_len;
-    uuid_uint8_t sha1_buf[SHA1_LEN_BIN];
-    void *sha1_ptr;
-    uuid_rc_t rc;
-
-    /* determine namespace UUID and name string arguments */
-    if ((uuid_ns = (uuid_t *)va_arg(ap, void *)) == NULL)
-        return UUID_RC_ARG;
-    if ((str = (char *)va_arg(ap, char *)) == NULL)
-        return UUID_RC_ARG;
-
-    /* initialize SHA-1 context */
-    if (sha1_init(uuid->sha1) != SHA1_RC_OK)
-        return UUID_RC_INT;
-
-    /* load the namespace UUID into SHA-1 context */
-    uuid_ptr = (void *)&uuid_buf;
-    uuid_len = sizeof(uuid_buf);
-    if ((rc = uuid_export(uuid_ns, UUID_FMT_BIN, &uuid_ptr, &uuid_len)) != UUID_RC_OK)
-        return rc;
-    if (sha1_update(uuid->sha1, uuid_buf, uuid_len) != SHA1_RC_OK)
-        return UUID_RC_INT;
-
-    /* load the argument name string into SHA-1 context */
-    if (sha1_update(uuid->sha1, str, strlen(str)) != SHA1_RC_OK)
-        return UUID_RC_INT;
-
-    /* store SHA-1 result into UUID
-       (requires SHA1_LEN_BIN space, but UUID_LEN_BIN space is available
-       only, so use a temporary buffer to store SHA-1 results and then
-       use lower part only according to standard */
-    sha1_ptr = (void *)sha1_buf;
-    if (sha1_store(uuid->sha1, &sha1_ptr, NULL) != SHA1_RC_OK)
-        return UUID_RC_INT;
-    uuid_ptr = (void *)&(uuid->obj);
-    memcpy(uuid_ptr, sha1_ptr, UUID_LEN_BIN);
-
-    /* fulfill requirement of standard and convert UUID data into
-       local/host byte order (this uses fact that uuid_import_bin() is
-       able to operate in-place!) */
-    if ((rc = uuid_import(uuid, UUID_FMT_BIN, (void *)&(uuid->obj), UUID_LEN_BIN)) != UUID_RC_OK)
-        return rc;
-
-    /* brand UUID with version and variant */
-    uuid_brand(uuid, 5);
-
-    return UUID_RC_OK;
-}
-
-/* generate UUID */
-uuid_rc_t uuid_make(uuid_t *uuid, unsigned int mode, ...)
-{
-    va_list ap;
-    uuid_rc_t rc;
-
-    /* sanity check argument(s) */
-    if (uuid == NULL)
-        return UUID_RC_ARG;
-
-    /* dispatch into version dependent generation functions */
-    va_start(ap, mode);
-    if (mode & UUID_MAKE_V1)
-        rc = uuid_make_v1(uuid, mode, ap);
-    else if (mode & UUID_MAKE_V3)
-        rc = uuid_make_v3(uuid, mode, ap);
-    else if (mode & UUID_MAKE_V4)
-        rc = uuid_make_v4(uuid, mode, ap);
-    else if (mode & UUID_MAKE_V5)
-        rc = uuid_make_v5(uuid, mode, ap);
-    else
-        rc = UUID_RC_ARG;
-    va_end(ap);
-
-    return rc;
-}
-
-/* translate UUID API error code into corresponding error string */
-char *uuid_error(uuid_rc_t rc)
-{
-    char *str;
-
-    switch (rc) {
-        case UUID_RC_OK:  str = "everything ok";    break;
-        case UUID_RC_ARG: str = "invalid argument"; break;
-        case UUID_RC_MEM: str = "out of memory";    break;
-        case UUID_RC_SYS: str = "system error";     break;
-        case UUID_RC_INT: str = "internal error";   break;
-        case UUID_RC_IMP: str = "not implemented";  break;
-        default:          str = NULL;               break;
-    }
-    return str;
-}
-
-/* OSSP uuid version (link-time information) */
-unsigned long uuid_version(void)
-{
-    return (unsigned long)(_UUID_VERSION);
-}
-
diff --git a/libs/uuid/uuid.h.in b/libs/uuid/uuid.h.in
deleted file mode 100644 (file)
index 6dafe4f..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid.h: library API definition
-*/
-
-#ifndef __UUID_H__
-#define __UUID_H__
-
-/* workaround conflicts with system headers */
-#define uuid_t       __vendor_uuid_t
-#define uuid_create  __vendor_uuid_create
-#define uuid_compare __vendor_uuid_compare
-#include <sys/types.h>
-#include <unistd.h>
-#undef  uuid_t
-#undef  uuid_create
-#undef  uuid_compare
-
-/* required system headers */
-#include <string.h>
-
-/* minimum C++ support */
-#ifdef __cplusplus
-#define DECLARATION_BEGIN extern "C" {
-#define DECLARATION_END   }
-#else
-#define DECLARATION_BEGIN
-#define DECLARATION_END
-#endif
-
-DECLARATION_BEGIN
-
-/* OSSP uuid version (compile-time information) */
-#define UUID_VERSION  @UUID_VERSION_HEX@
-
-/* encoding octet stream lengths */
-#define UUID_LEN_BIN  (128 /*bit*/ / 8 /*bytes*/)
-#define UUID_LEN_STR  (128 /*bit*/ / 4 /*nibbles*/ + 4 /*hyphens*/)
-#define UUID_LEN_SIV  (39  /*int(log(10,exp(2,128)-1)+1) digits*/)
-
-/* API return codes */
-typedef enum {
-    UUID_RC_OK   = 0,        /* everything ok    */
-    UUID_RC_ARG  = 1,        /* invalid argument */
-    UUID_RC_MEM  = 2,        /* out of memory    */
-    UUID_RC_SYS  = 3,        /* system error     */
-    UUID_RC_INT  = 4,        /* internal error   */
-    UUID_RC_IMP  = 5         /* not implemented  */
-} uuid_rc_t;
-
-/* UUID make modes */
-enum {
-    UUID_MAKE_V1 = (1 << 0), /* DCE 1.1 v1 UUID */
-    UUID_MAKE_V3 = (1 << 1), /* DCE 1.1 v3 UUID */
-    UUID_MAKE_V4 = (1 << 2), /* DCE 1.1 v4 UUID */
-    UUID_MAKE_V5 = (1 << 3), /* DCE 1.1 v5 UUID */
-    UUID_MAKE_MC = (1 << 4)  /* enforce multi-cast MAC address */
-};
-
-/* UUID import/export formats */
-typedef enum {
-    UUID_FMT_BIN = 0,        /* binary representation (import/export) */
-    UUID_FMT_STR = 1,        /* string representation (import/export) */
-    UUID_FMT_SIV = 2,        /* single integer value  (import/export) */
-    UUID_FMT_TXT = 3         /* textual description   (export only)   */
-} uuid_fmt_t;
-
-/* UUID abstract data type */
-struct uuid_st;
-typedef struct uuid_st uuid_t;
-
-/* UUID object handling */
-extern uuid_rc_t     uuid_create   (      uuid_t **_uuid);
-extern uuid_rc_t     uuid_destroy  (      uuid_t  *_uuid);
-extern uuid_rc_t     uuid_clone    (const uuid_t  *_uuid, uuid_t **_clone);
-
-/* UUID generation */
-extern uuid_rc_t     uuid_load     (      uuid_t  *_uuid, const char *_name);
-extern uuid_rc_t     uuid_make     (      uuid_t  *_uuid, unsigned int _mode, ...);
-
-/* UUID comparison */
-extern uuid_rc_t     uuid_isnil    (const uuid_t  *_uuid,                       int *_result);
-extern uuid_rc_t     uuid_compare  (const uuid_t  *_uuid, const uuid_t *_uuid2, int *_result);
-
-/* UUID import/export */
-extern uuid_rc_t     uuid_import   (      uuid_t  *_uuid, uuid_fmt_t _fmt, const void  *_data_ptr, size_t  _data_len);
-extern uuid_rc_t     uuid_export   (const uuid_t  *_uuid, uuid_fmt_t _fmt,       void  *_data_ptr, size_t *_data_len);
-
-/* library utilities */
-extern char         *uuid_error    (uuid_rc_t _rc);
-extern unsigned long uuid_version  (void);
-
-DECLARATION_END
-
-#endif /* __UUID_H__ */
-
diff --git a/libs/uuid/uuid.pc.in b/libs/uuid/uuid.pc.in
deleted file mode 100644 (file)
index c76ad1e..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid.pc.in: pkg-config(1) specification
-##
-
-prefix=@prefix@
-exec_prefix=${prefix}
-includedir=${prefix}/include
-libdir=${exec_prefix}/lib
-
-Name: OSSP uuid
-Description: Universally Unique Identifier (UUID) Library
-Version: @UUID_VERSION_RAW@
-URL: http://www.ossp.org/pkg/lib/uuid/
-Cflags: -I${includedir}
-Libs: -L${libdir} -luuid
-Libs.private: @LIBS@
-
diff --git a/libs/uuid/uuid.pod b/libs/uuid/uuid.pod
deleted file mode 100644 (file)
index 4ad3742..0000000
+++ /dev/null
@@ -1,529 +0,0 @@
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid.pod: manual page
-##
-
-=pod
-
-=head1 NAME
-
-B<OSSP uuid> - B<Universally Unique Identifier>
-
-=head1 VERSION
-
-OSSP uuid UUID_VERSION_STR
-
-=head1 DESCRIPTION
-
-B<OSSP uuid> is a ISO-C:1999 application programming interface (API) and
-corresponding command line interface (CLI) for the generation of DCE
-1.1, ISO/IEC 11578:1996 and IETF RFC-4122 compliant I<Universally Unique
-Identifier> (UUID). It supports DCE 1.1 variant UUIDs of version 1 (time
-and node based), version 3 (name based, MD5), version 4 (random number
-based) and version 5 (name based, SHA-1). Additional API bindings are
-provided for the languages ISO-C++:1998, Perl:5 and PHP:4/5. Optional
-backward compatibility exists for the ISO-C DCE-1.1 and Perl Data::UUID
-APIs.
-
-UUIDs are 128 bit numbers which are intended to have a high likelihood
-of uniqueness over space and time and are computationally difficult
-to guess. They are globally unique identifiers which can be locally
-generated without contacting a global registration authority. UUIDs
-are intended as unique identifiers for both mass tagging objects
-with an extremely short lifetime and to reliably identifying very
-persistent objects across a network.
-
-This is the ISO-C application programming interface (API) of B<OSSP uuid>.
-
-=head2 UUID Binary Representation
-
-According to the DCE 1.1, ISO/IEC 11578:1996 and IETF RFC-4122
-standards, a DCE 1.1 variant UUID is a 128 bit number defined out of 7
-fields, each field a multiple of an octet in size and stored in network
-byte order:
-
-                                                    [4]
-                                                   version
-                                                 -->|  |<--
-                                                    |  |
-                                                    |  |  [16]
-                [32]                      [16]      |  |time_hi
-              time_low                  time_mid    | _and_version
-    |<---------------------------->||<------------>||<------------>|
-    | MSB                          ||              ||  |           |
-    | /                            ||              ||  |           |
-    |/                             ||              ||  |           |
-
-    +------++------++------++------++------++------++------++------+~~
-    |  15  ||  14  ||  13  ||  12  ||  11  ||  10  |####9  ||   8  |
-    | MSO  ||      ||      ||      ||      ||      |####   ||      |
-    +------++------++------++------++------++------++------++------+~~
-    7654321076543210765432107654321076543210765432107654321076543210
-
-  ~~+------++------++------++------++------++------++------++------+
-    ##* 7  ||   6  ||   5  ||   4  ||   3  ||   2  ||   1  ||   0  |
-    ##*    ||      ||      ||      ||      ||      ||      ||  LSO |
-  ~~+------++------++------++------++------++------++------++------+
-    7654321076543210765432107654321076543210765432107654321076543210
-
-    | |    ||      ||                                             /|
-    | |    ||      ||                                            / |
-    | |    ||      ||                                          LSB |
-    |<---->||<---->||<-------------------------------------------->|
-    |clk_seq clk_seq                      node
-    |_hi_res _low                         [48]
-    |[5-6]    [8]
-    | |
- -->| |<--
-  variant
-   [2-3]
-
-An example of a UUID binary representation is the octet stream C<0xF8
-0x1D 0x4F 0xAE 0x7D 0xEC 0x11 0xD0 0xA7 0x65 0x00 0xA0 0xC9 0x1E 0x6B
-0xF6>. The binary representation format is exactly what the B<OSSP uuid>
-API functions B<uuid_import>() and B<uuid_export>() deal with under
-C<UUID_FMT_BIN>.
-
-=head2 UUID ASCII String Representation
-
-According to the DCE 1.1, ISO/IEC 11578:1996 and IETF RFC-4122
-standards, a DCE 1.1 variant UUID is represented as an ASCII string
-consisting of 8 hexadecimal digits followed by a hyphen, then three
-groups of 4 hexadecimal digits each followed by a hyphen, then 12
-hexadecimal digits. Formally, the string representation is defined by
-the following grammar:
-
- uuid                        = <time_low> "-"
-                               <time_mid> "-"
-                               <time_high_and_version> "-"
-                               <clock_seq_high_and_reserved>
-                               <clock_seq_low> "-"
-                               <node>
- time_low                    = 4*<hex_octet>
- time_mid                    = 2*<hex_octet>
- time_high_and_version       = 2*<hex_octet>
- clock_seq_high_and_reserved = <hex_octet>
- clock_seq_low               = <hex_octet>
- node                        = 6*<hex_octet>
- hex_octet                   = <hex_digit> <hex_digit>
- hex_digit                   = "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"
-                              |"a"|"b"|"c"|"d"|"e"|"f"
-                              |"A"|"B"|"C"|"D"|"E"|"F"
-
-An example of a UUID string representation is the ASCII string
-"C<f81d4fae-7dec-11d0-a765-00a0c91e6bf6>". The string representation
-format is exactly what the B<OSSP uuid> API functions B<uuid_import>()
-and B<uuid_export>() deal with under C<UUID_FMT_STR>.
-
-Notice: a corresponding URL can be generated out of a ASCII string
-representation of an UUID by prefixing with "C<urn:uuid:>" as in
-"C<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>".
-
-=head2 UUID Single Integer Value Representation
-
-According to the ISO/IEC 11578:1996 and ITU-T Rec. X.667 standards, a
-DCE 1.1 variant UUID can be also represented as a single integer value
-consisting of a decimal number with up to 39 digits.
-
-An example of a UUID single integer value representation is the decimal
-number "C<329800735698586629295641978511506172918>". The string
-representation format is exactly what the B<OSSP uuid> API functions
-B<uuid_import>() and B<uuid_export>() deal with under C<UUID_FMT_SIV>.
-
-Notice: a corresponding ISO OID can be generated under the
-"{joint-iso-itu-t(2) uuid(25)}" arc out of a single integer value
-representation of a UUID by prefixing with "C<2.25.>". An example OID
-is "C<2.25.329800735698586629295641978511506172918>". Additionally,
-an URL can be generated by further prefixing with "C<urn:oid:>" as in
-"C<urn:oid:2.25.329800735698586629295641978511506172918>".
-
-=head2 UUID Variants and Versions
-
-A UUID has a variant and version. The variant defines the layout of the
-UUID. The version defines the content of the UUID. The UUID variant
-supported in B<OSSP uuid> is the DCE 1.1 variant only. The DCE 1.1 UUID
-variant versions supported in B<OSSP uuid> are:
-
-=over 4
-
-=item B<Version 1> (time and node based)
-
-These are the classical UUIDs, created out of a 60-bit system time,
-a 14-bit local clock sequence and 48-bit system MAC address. The MAC
-address can be either the real one of a physical network interface card
-(NIC) or a random multi-cast MAC address. Version 1 UUIDs are usually
-used as one-time global unique identifiers.
-
-=item B<Version 3> (name based, MD5)
-
-These are UUIDs which are based on the 128-bit MD5 message digest of the
-concatenation of a 128-bit namespace UUID and a name string of arbitrary
-length. Version 3 UUIDs are usually used for non-unique but repeatable
-message digest identifiers.
-
-=item B<Version 4> (random data based)
-
-These are UUIDs which are based on just 128-bit of random data. Version
-4 UUIDs are usually used as one-time local unique identifiers.
-
-=item B<Version 5> (name based, SHA-1)
-
-These are UUIDs which are based on the 160-bit SHA-1 message digest of the
-concatenation of a 128-bit namespace UUID and a name string of arbitrary
-length. Version 5 UUIDs are usually used for non-unique but repeatable
-message digest identifiers.
-
-=back
-
-=head2 UUID Uniqueness
-
-Version 1 UUIDs are guaranteed to be unique through combinations of
-hardware addresses, time stamps and random seeds. There is a reference
-in the UUID to the hardware (MAC) address of the first network interface
-card (NIC) on the host which generated the UUID -- this reference
-is intended to ensure the UUID will be unique in space as the MAC
-address of every network card is assigned by a single global authority
-(IEEE) and is guaranteed to be unique. The next component in a UUID
-is a timestamp which, as clock always (should) move forward, will
-be unique in time. Just in case some part of the above goes wrong
-(the hardware address cannot be determined or the clock moved steps
-backward), there is a random clock sequence component placed into the
-UUID as a "catch-all" for uniqueness.
-
-Version 3 and version 5 UUIDs are guaranteed to be inherently globally
-unique if the combination of namespace and name used to generate them is
-unique.
-
-Version 4 UUIDs are not guaranteed to be globally unique, because they
-are generated out of locally gathered pseudo-random numbers only.
-Nevertheless there is still a high likelihood of uniqueness over space
-and time and that they are computationally difficult to guess.
-
-=head2 Nil UUID
-
-There is a special I<Nil> UUID consisting of all octets set to zero in
-the binary representation. It can be used as a special UUID value which does
-not conflict with real UUIDs.
-
-=head1 APPLICATION PROGRAMMING INTERFACE
-
-The ISO-C Application Programming Interface (API) of B<OSSP uuid>
-consists of the following components.
-
-=head2 CONSTANTS
-
-The following constants are provided:
-
-=over 4
-
-=item B<UUID_VERSION>
-
-The hexadecimal encoded B<OSSP uuid> version. This allows compile-time
-checking of the B<OSSP uuid> version. For run-time checking use
-B<uuid_version>() instead.
-
-The hexadecimal encoding for a version "$I<v>.$I<r>$I<t>$I<l>" is
-calculated with the B<GNU shtool> B<version> command and is (in
-Perl-style for concise description) "sprintf('0x%x%02x%d%02x', $I<v>,
-$I<r>, {qw(s 9 . 2 b 1 a 0)}->{$I<t>}, ($I<t> eq 's' ? 99 : $I<l>))",
-i.e., the version 0.9.6 is encoded as "0x009206".
-
-=item B<UUID_LEN_BIN>, B<UUID_LEN_STR>, B<UUID_LEN_SIV>
-
-The number of octets of the UUID binary and string representations.
-Notice that the lengths of the string representation (B<UUID_LEN_STR>)
-and the lengths of the single integer value representation
-(B<UUID_LEN_SIV>) does I<not> include the necessary C<NUL> termination
-character.
-
-=item B<UUID_MAKE_V1>, B<UUID_MAKE_V3>, B<UUID_MAKE_V4>, B<UUID_MAKE_V5>, B<UUID_MAKE_MC>
-
-The I<mode> bits for use with B<uuid_make>(). The B<UUID_MAKE_V>I<N>
-specify which UUID version to generate. The B<UUID_MAKE_MC> forces the
-use of a random multi-cast MAC address instead of the real physical MAC
-address in version 1 UUIDs.
-
-=item B<UUID_RC_OK>, B<UUID_RC_ARG>, B<UUID_RC_MEM>, B<UUID_RC_SYS>, B<UUID_RC_INT>, B<UUID_RC_IMP>
-
-The possible numerical return-codes of API functions.
-The C<UUID_RC_OK> indicates success, the others indicate errors.
-Use B<uuid_error>() to translate them into string versions.
-
-=item B<UUID_FMT_BIN>, B<UUID_FMT_STR>, B<UUID_FMT_SIV>, B<UUID_FMT_TXT>
-
-The I<fmt> formats for use with B<uuid_import>() and B<uuid_export>().
-The B<UUID_FMT_BIN> indicates the UUID binary representation (of
-length B<UUID_LEN_BIN>), the B<UUID_FMT_STR> indicates the UUID string
-representation (of length B<UUID_LEN_STR>), the B<UUID_FMT_SIV>
-indicates the UUID single integer value representation (of maximum
-length B<UUID_LEN_SIV>) and the B<UUID_FMT_TXT> indicates the textual
-description (of arbitrary length) of a UUID.
-
-=back
-
-=head2 FUNCTIONS
-
-The following functions are provided:
-
-=over 4
-
-=item uuid_rc_t B<uuid_create>(uuid_t **I<uuid>);
-
-Create a new UUID object and store a pointer to it in C<*>I<uuid>.
-A UUID object consists of an internal representation of a UUID, the
-internal PRNG and MD5 generator contexts, and cached MAC address and
-timestamp information. The initial UUID is the I<Nil> UUID.
-
-=item uuid_rc_t B<uuid_destroy>(uuid_t *I<uuid>);
-
-Destroy UUID object I<uuid>.
-
-=item uuid_rc_t B<uuid_clone>(const uuid_t *I<uuid>, uuid_t **I<uuid_clone>);
-
-Clone UUID object I<uuid> and store new UUID object in I<uuid_clone>.
-
-=item uuid_rc_t B<uuid_isnil>(const uuid_t *I<uuid>, int *I<result>);
-
-Checks whether the UUID in I<uuid> is the I<Nil> UUID.
-If this is the case, it returns I<true> in C<*>I<result>.
-Else it returns I<false> in C<*>I<result>.
-
-=item uuid_rc_t B<uuid_compare>(const uuid_t *I<uuid>, const uuid_t *I<uuid2>, int *I<result>);
-
-Compares the order of the two UUIDs in I<uuid1> and I<uuid2>
-and returns the result in C<*>I<result>: C<-1> if I<uuid1> is
-smaller than I<uuid2>, C<0> if I<uuid1> is equal to I<uuid2>
-and C<+1> if I<uuid1> is greater than I<uuid2>.
-
-=item uuid_rc_t B<uuid_import>(uuid_t *I<uuid>, uuid_fmt_t I<fmt>, const void *I<data_ptr>, size_t I<data_len>);
-
-Imports a UUID I<uuid> from an external representation of format I<fmt>.
-The data is read from the buffer at I<data_ptr> which contains at least
-I<data_len> bytes.
-
-The format of the external representation is specified by I<fmt> and the
-minimum expected length in I<data_len> depends on it. Valid values for
-I<fmt> are B<UUID_FMT_BIN>, B<UUID_FMT_STR> and B<UUID_FMT_SIV>.
-
-=item uuid_rc_t B<uuid_export>(const uuid_t *I<uuid>, uuid_fmt_t I<fmt>, void *I<data_ptr>, size_t *I<data_len>);
-
-Exports a UUID I<uuid> into an external representation of format
-I<fmt>. Valid values for I<fmt> are B<UUID_FMT_BIN>, B<UUID_FMT_STR>,
-B<UUID_FMT_SIV> and B<UUID_FMT_TXT>.
-
-The data is written to the buffer whose location is obtained
-by dereferencing I<data_ptr> after a "cast" to the appropriate
-pointer-to-pointer type. Hence the generic pointer argument I<data_ptr>
-is expected to be a pointer to a "pointer of a particular type", i.e.,
-it has to be of type "C<unsigned char **>" for B<UUID_FMT_BIN> and
-"C<char **>" for B<UUID_FMT_STR>, B<UUID_FMT_SIV> and B<UUID_FMT_TXT>.
-
-The buffer has to be room for at least C<*>I<data_len> bytes. If the
-value of the pointer after "casting" and dereferencing I<data_ptr>
-is C<NULL>, I<data_len> is ignored as input and a new buffer is
-allocated and returned in the pointer after "casting" and dereferencing
-I<data_ptr> (the caller has to free(3) it later on).
-
-If I<data_len> is not C<NULL>, the number of available bytes in the
-buffer has to be provided in C<*>I<data_len> and the number of actually
-written bytes are returned in C<*>I<data_len> again. The minimum
-required buffer length depends on the external representation as
-specified by I<fmt> and is at least B<UUID_LEN_BIN> for B<UUID_FMT_BIN>,
-B<UUID_LEN_STR> for B<UUID_FMT_STR> and B<UUID_LEN_SIV> for
-B<UUID_FMT_SIV>. For B<UUID_FMT_TXT> a buffer of unspecified length is
-required and hence it is recommended to allow B<OSSP uuid> to allocate
-the buffer as necessary.
-
-=item uuid_rc_t B<uuid_load>(uuid_t *I<uuid>, const char *I<name>);
-
-Loads a pre-defined UUID value into the UUID object I<uuid>. The
-following I<name> arguments are currently known:
-
-=over 4
-
-=item I<name>      I<UUID>
-
-=item nil       00000000-0000-0000-0000-000000000000
-
-=item ns:DNS    6ba7b810-9dad-11d1-80b4-00c04fd430c8
-
-=item ns:URL    6ba7b811-9dad-11d1-80b4-00c04fd430c8
-
-=item ns:OID    6ba7b812-9dad-11d1-80b4-00c04fd430c8
-
-=item ns:X500   6ba7b814-9dad-11d1-80b4-00c04fd430c8
-
-=back
-
-The "C<ns:>I<XXX>" are names of pre-defined name-space UUIDs for use in
-the generation of DCE 1.1 version 3 and version 5 UUIDs.
-
-=item uuid_rc_t B<uuid_make>(uuid_t *I<uuid>, unsigned int I<mode>, ...);
-
-Generates a new UUID in I<uuid> according to I<mode> and optional
-arguments (dependent on I<mode>).
-
-If I<mode> contains the C<UUID_MAKE_V1> bit, a DCE 1.1 variant UUID of
-version 1 is generated. Then optionally the bit C<UUID_MAKE_MC> forces
-the use of random multi-cast MAC address instead of the real physical
-MAC address (the default). The UUID is generated out of the 60-bit current
-system time, a 12-bit clock sequence and the 48-bit MAC address.
-
-If I<mode> contains the C<UUID_MAKE_V3> or C<UUID_MAKE_V5> bit, a DCE
-1.1 variant UUID of version 3 or 5 is generated and two additional
-arguments are expected: first, a namespace UUID object (C<uuid_t *>).
-Second, a name string of arbitrary length (C<const char *>). The UUID is
-generated out of the 128-bit MD5 or 160-bit SHA-1 from the concatenated
-octet stream of namespace UUID and name string.
-
-If I<mode> contains the C<UUID_MAKE_V4> bit, a DCE 1.1 variant UUID
-of version 4 is generated. The UUID is generated out of 128-bit random
-data.
-
-=item char *B<uuid_error>(uuid_rc_t I<rc>);
-
-Returns a constant string representation corresponding to the
-return-code I<rc> for use in displaying B<OSSP uuid> errors.
-
-=item unsigned long B<uuid_version>(void);
-
-Returns the hexadecimal encoded B<OSSP uuid> version as compiled into
-the library object files. This allows run-time checking of the B<OSSP
-uuid> version. For compile-time checking use C<UUID_VERSION> instead.
-
-=back
-
-=head1 EXAMPLE
-
-The following shows an example usage of the API. Error handling is
-omitted for code simplification and has to be re-added for production
-code.
-
- /* generate a DCE 1.1 v1 UUID from system environment */
- char *uuid_v1(void)
- {
-     uuid_t *uuid;
-     char *str;
-
-     uuid_create(&uuid);
-     uuid_make(uuid, UUID_MAKE_V1);
-     str = NULL;
-     uuid_export(uuid, UUID_FMT_STR, &str, NULL);
-     uuid_destroy(uuid);
-     return str;
- }
-
- /* generate a DCE 1.1 v3 UUID from an URL */
- char *uuid_v3(const char *url)
- {
-     uuid_t *uuid;
-     uuid_t *uuid_ns;
-     char *str;
-
-     uuid_create(&uuid);
-     uuid_create(&uuid_ns);
-     uuid_load(uuid_ns, "ns:URL");
-     uuid_make(uuid, UUID_MAKE_V3, uuid_ns, url);
-     str = NULL;
-     uuid_export(uuid, UUID_FMT_STR, &str, NULL);
-     uuid_destroy(uuid_ns);
-     uuid_destroy(uuid);
-     return str;
- }
-
-=head1 SEE ALSO
-
-The following are references to B<UUID> documentation and specifications:
-
-=over 4
-
-=item
-
-B<A Universally Unique IDentifier (UUID) URN Namespace>,
-P. Leach, M. Mealling, R. Salz,
-IETF RFC-4122,
-July 2005, 32 pages,
-http://www.ietf.org/rfc/rfc4122.txt
-
-=item
-
-Information Technology -- Open Systems Interconnection (OSI),
-B<Procedures for the operation of OSI Registration Authorities:
-Generation and Registration of Universally Unique Identifiers (UUIDs)
-and their Use as ASN.1 Object Identifier Components>,
-ISO/IEC 9834-8:2004 / ITU-T Rec. X.667, 2004,
-December 2004, 25 pages,
-http://www.itu.int/ITU-T/studygroups/com17/oid/X.667-E.pdf
-
-=item
-
-B<DCE 1.1: Remote Procedure Call>,
-appendix B<Universally Unique Identifier>,
-Open Group Technical Standard
-Document Number C706, August 1997, 737 pages,
-(supersedes C309 DCE: Remote Procedure Call 8/1994,
-which was basis for ISO/IEC 11578:1996 specification),
-http://www.opengroup.org/publications/catalog/c706.htm
-
-=item
-
-Information technology -- Open Systems Interconnection (OSI),
-B<Remote Procedure Call (RPC)>,
-ISO/IEC 11578:1996,
-August 2001, 570 pages, (CHF 340,00),
-http://www.iso.ch/cate/d2229.html
-
-=item
-
-B<HTTP Extensions for Distributed Authoring (WebDAV)>,
-section B<6.4.1 Node Field Generation Without the IEEE 802 Address>,
-IETF RFC-2518,
-February 1999, 94 pages,
-http://www.ietf.org/rfc/rfc2518.txt
-
-=item
-
-B<DCE 1.1 compliant UUID functions>,
-FreeBSD manual pages uuid(3) and uuidgen(2),
-http://www.freebsd.org/cgi/man.cgi?query=uuid&manpath=FreeBSD+6.0-RELEASE
-
-=back
-
-=head1 HISTORY
-
-B<OSSP uuid> was implemented in January 2004 by Ralf S. Engelschall
-E<lt>rse@engelschall.comE<gt>. It was prompted by the use of UUIDs
-in the B<OSSP as> and B<OpenPKG> projects. It is a clean room
-implementation intended to be strictly standards compliant and maximum
-portable.
-
-=head1 SEE ALSO
-
-uuid(1), uuid-config(1), OSSP::uuid(3).
-
-=cut
-
diff --git a/libs/uuid/uuid_ac.h b/libs/uuid/uuid_ac.h
deleted file mode 100644 (file)
index b50f18a..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_ac.c: auto-configuration
-*/
-
-#ifndef __UUID_AC_H__
-#define __UUID_AC_H__
-
-/* include GNU autoconf results */
-#include "config.h"           /* HAVE_xxx */
-
-/* include standard system headers */
-#include <stdio.h>            /* NULL, etc. */
-#include <stdlib.h>           /* malloc, NULL, etc. */
-#include <stdarg.h>           /* va_list, etc. */
-#include <string.h>           /* size_t, strlen, etc. */
-#include <unistd.h>           /* dmalloc pre-loading */
-
-/* enable optional "dmalloc" support */
-#ifdef WITH_DMALLOC
-#include <dmalloc.h>          /* malloc override, etc */
-#endif
-
-/* define boolean values */
-#define UUID_FALSE 0
-#define UUID_TRUE  (/*lint -save -e506*/ !UUID_FALSE /*lint -restore*/)
-
-/* determine types of 8-bit size */
-#if SIZEOF_CHAR == 1
-typedef char uuid_int8_t;
-#else
-#error unexpected: sizeof(char) != 1 !?
-#endif
-#if SIZEOF_UNSIGNED_CHAR == 1
-typedef unsigned char uuid_uint8_t;
-#else
-#error unexpected: sizeof(unsigned char) != 1 !?
-#endif
-
-/* determine types of 16-bit size */
-#if SIZEOF_SHORT == 2
-typedef short uuid_int16_t;
-#elif SIZEOF_INT == 2
-typedef int uuid_int16_t;
-#elif SIZEOF_LONG == 2
-typedef long uuid_int16_t;
-#else
-#error unexpected: no type found for uuid_int16_t
-#endif
-#if SIZEOF_UNSIGNED_SHORT == 2
-typedef unsigned short uuid_uint16_t;
-#elif SIZEOF_UNSIGNED_INT == 2
-typedef unsigned int uuid_uint16_t;
-#elif SIZEOF_UNSIGNED_LONG == 2
-typedef unsigned long uuid_uint16_t;
-#else
-#error unexpected: no type found for uuid_uint16_t
-#endif
-
-/* determine types of 32-bit size */
-#if SIZEOF_SHORT == 4
-typedef short uuid_int32_t;
-#elif SIZEOF_INT == 4
-typedef int uuid_int32_t;
-#elif SIZEOF_LONG == 4
-typedef long uuid_int32_t;
-#elif SIZEOF_LONG_LONG == 4
-typedef long long uuid_int32_t;
-#else
-#error unexpected: no type found for uuid_int32_t
-#endif
-#if SIZEOF_UNSIGNED_SHORT == 4
-typedef unsigned short uuid_uint32_t;
-#elif SIZEOF_UNSIGNED_INT == 4
-typedef unsigned int uuid_uint32_t;
-#elif SIZEOF_UNSIGNED_LONG == 4
-typedef unsigned long uuid_uint32_t;
-#elif SIZEOF_UNSIGNED_LONG_LONG == 4
-typedef unsigned long long uuid_uint32_t;
-#else
-#error unexpected: no type found for uuid_uint32_t
-#endif
-
-#endif /* __UUID_AC_H__ */
-
diff --git a/libs/uuid/uuid_bm.h b/libs/uuid/uuid_bm.h
deleted file mode 100644 (file)
index 4cdcec0..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_bm.c: bitmask API implementation
-*/
-
-#ifndef __UUID_BM_H__
-#define __UUID_BM_H__
-
-/*
- *  Bitmask Calculation Macros (up to 32 bit only)
- *  (Notice: bit positions are counted n...0, i.e. lowest bit is position 0)
- */
-
-/* generate a bitmask consisting of 1 bits from (and including)
-   bit position `l' (left) to (and including) bit position `r' */
-#define BM_MASK(l,r) \
-    ((((unsigned int)1<<(((l)-(r))+1))-1)<<(r))
-
-/* extract a value v from a word w at position `l' to `r' and return value */
-#define BM_GET(w,l,r) \
-    (((w)>>(r))&BM_MASK((l)-(r),0))
-
-/* insert a value v into a word w at position `l' to `r' and return word */
-#define BM_SET(w,l,r,v) \
-    ((w)|(((v)&BM_MASK((l)-(r),0))<<(r)))
-
-/* generate a single bit `b' (0 or 1) at bit position `n' */
-#define BM_BIT(n,b) \
-    ((b)<<(n))
-
-/* generate a quad word octet of bits (a half byte, i.e. bit positions 3 to 0) */
-#define BM_QUAD(b3,b2,b1,b0) \
-    (BM_BIT(3,(b3))|BM_BIT(2,(b2))|BM_BIT(1,(b1))|BM_BIT(0,(b0)))
-
-/* generate an octet word of bits (a byte, i.e. bit positions 7 to 0) */
-#define BM_OCTET(b7,b6,b5,b4,b3,b2,b1,b0) \
-    ((BM_QUAD(b7,b6,b5,b4)<<4)|BM_QUAD(b3,b2,b1,b0))
-
-/* generate the value 2^n */
-#define BM_POW2(n) \
-    BM_BIT(n,1)
-
-/* shift word w k bits to the left or to the right */
-#define BM_SHL(w,k) \
-    ((w)<<(k))
-#define BM_SHR(w,k) \
-    ((w)>>(k))
-
-/* rotate word w (of bits n..0) k bits to the left or to the right */
-#define BM_ROL(w,n,k) \
-    ((BM_SHL((w),(k))&BM_MASK(n,0))|BM_SHR(((w)&BM_MASK(n,0)),(n)-(k)))
-#define BM_ROR(w,n,k) \
-    ((BM_SHR(((w)&BM_MASK(n,0)),(k)))|BM_SHL(((w),(n)-(k))&BM_MASK(n,0)))
-
-#endif /* __UUID_BM_H__ */
-
diff --git a/libs/uuid/uuid_cli.c b/libs/uuid/uuid_cli.c
deleted file mode 100644 (file)
index d1b0b11..0000000
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_cli.c: command line tool
-*/
-
-/* own headers */
-#include "uuid.h"
-#include "uuid_ac.h"
-
-/* system headers */
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-/* error handler */
-static void
-error(int ec, const char *str, ...)
-{
-    va_list ap;
-
-    va_start(ap, str);
-    fprintf(stderr, "uuid:ERROR: ");
-    vfprintf(stderr, str, ap);
-    fprintf(stderr, "\n");
-    va_end(ap);
-    exit(ec);
-}
-
-/* usage handler */
-static void
-usage(const char *str, ...)
-{
-    va_list ap;
-
-    va_start(ap, str);
-    if (str != NULL) {
-        fprintf(stderr, "uuid:ERROR: ");
-        vfprintf(stderr, str, ap);
-        fprintf(stderr, "\n");
-    }
-    fprintf(stderr, "usage: uuid [-v version] [-m] [-n count] [-1] [-F format] [-o filename] [namespace name]\n");
-    fprintf(stderr, "usage: uuid -d [-F format] [-o filename] [uuid]\n");
-    va_end(ap);
-    exit(1);
-}
-
-/* main procedure */
-int main(int argc, char *argv[])
-{
-    char uuid_buf_bin[UUID_LEN_BIN];
-    char uuid_buf_str[UUID_LEN_STR+1];
-    char uuid_buf_siv[UUID_LEN_SIV+1];
-    uuid_t *uuid;
-    uuid_t *uuid_ns;
-    uuid_rc_t rc;
-    FILE *fp;
-    char *p;
-    int ch;
-    int count;
-    int i;
-    int iterate;
-    uuid_fmt_t fmt;
-    int decode;
-    void *vp;
-    size_t n;
-    unsigned int version;
-
-    /* command line parsing */
-    count = -1;         /* no count yet */
-    fp = stdout;        /* default output file */
-    iterate = 0;        /* not one at a time */
-    fmt = UUID_FMT_STR; /* default is ASCII output */
-    decode = 0;         /* default is to encode */
-    version = UUID_MAKE_V1;
-    while ((ch = getopt(argc, argv, "1n:rF:dmo:v:h")) != -1) {
-        switch (ch) {
-            case '1':
-                iterate = 1;
-                break;
-            case 'n':
-                if (count > 0)
-                    usage("option 'n' specified multiple times");
-                count = strtol(optarg, &p, 10);
-                if (*p != '\0' || count < 1)
-                    usage("invalid argument to option 'n'");
-                break;
-            case 'r':
-                fmt = UUID_FMT_BIN;
-                break;
-            case 'F':
-                if (strcasecmp(optarg, "bin") == 0)
-                    fmt = UUID_FMT_BIN;
-                else if (strcasecmp(optarg, "str") == 0)
-                    fmt = UUID_FMT_STR;
-                else if (strcasecmp(optarg, "siv") == 0)
-                    fmt = UUID_FMT_SIV;
-                else
-                    error(1, "invalid format \"%s\" (has to be \"bin\", \"str\" or \"siv\")", optarg);
-                break;
-            case 'd':
-                decode = 1;
-                break;
-            case 'o':
-                if (fp != stdout)
-                    error(1, "multiple output files are not allowed");
-                if ((fp = fopen(optarg, "w")) == NULL)
-                    error(1, "fopen: %s", strerror(errno));
-                break;
-            case 'm':
-                version |= UUID_MAKE_MC;
-                break;
-            case 'v':
-                i = strtol(optarg, &p, 10);
-                if (*p != '\0')
-                    usage("invalid argument to option 'v'");
-                switch (i) {
-                    case 1: version = UUID_MAKE_V1; break;
-                    case 3: version = UUID_MAKE_V3; break;
-                    case 4: version = UUID_MAKE_V4; break;
-                    case 5: version = UUID_MAKE_V5; break;
-                    default:
-                        usage("invalid version on option 'v'");
-                        break;
-                }
-                break;
-            case 'h':
-                usage(NULL);
-                break;
-            default:
-                usage("invalid option '%c'", optopt);
-        }
-    }
-    argv += optind;
-    argc -= optind;
-    if (count == -1)
-        count = 1;
-
-    if (decode) {
-        /* decoding */
-        if ((rc = uuid_create(&uuid)) != UUID_RC_OK)
-            error(1, "uuid_create: %s", uuid_error(rc));
-        if (argc != 1)
-            usage("invalid number of arguments");
-        if (strcmp(argv[0], "-") == 0) {
-            if (fmt == UUID_FMT_BIN) {
-                if (fread(uuid_buf_bin, UUID_LEN_BIN, 1, stdin) != 1)
-                    error(1, "fread: failed to read %d (UUID_LEN_BIN) bytes from stdin", UUID_LEN_BIN);
-                if ((rc = uuid_import(uuid, UUID_FMT_BIN, uuid_buf_bin, UUID_LEN_BIN)) != UUID_RC_OK)
-                    error(1, "uuid_import: %s", uuid_error(rc));
-            }
-            else if (fmt == UUID_FMT_STR) {
-                if (fread(uuid_buf_str, UUID_LEN_STR, 1, stdin) != 1)
-                    error(1, "fread: failed to read %d (UUID_LEN_STR) bytes from stdin", UUID_LEN_STR);
-                uuid_buf_str[UUID_LEN_STR] = '\0';
-                if ((rc = uuid_import(uuid, UUID_FMT_STR, uuid_buf_str, UUID_LEN_STR)) != UUID_RC_OK)
-                    error(1, "uuid_import: %s", uuid_error(rc));
-            }
-            else if (fmt == UUID_FMT_SIV) {
-                if (fread(uuid_buf_siv, UUID_LEN_SIV, 1, stdin) != 1)
-                    error(1, "fread: failed to read %d (UUID_LEN_SIV) bytes from stdin", UUID_LEN_SIV);
-                uuid_buf_siv[UUID_LEN_SIV] = '\0';
-                if ((rc = uuid_import(uuid, UUID_FMT_SIV, uuid_buf_siv, UUID_LEN_SIV)) != UUID_RC_OK)
-                    error(1, "uuid_import: %s", uuid_error(rc));
-            }
-        }
-        else {
-            if (fmt == UUID_FMT_BIN) {
-                error(1, "binary input mode only possible if reading from stdin");
-            }
-            else if (fmt == UUID_FMT_STR) {
-                if ((rc = uuid_import(uuid, UUID_FMT_STR, argv[0], strlen(argv[0]))) != UUID_RC_OK)
-                    error(1, "uuid_import: %s", uuid_error(rc));
-            }
-            else if (fmt == UUID_FMT_SIV) {
-                if ((rc = uuid_import(uuid, UUID_FMT_SIV, argv[0], strlen(argv[0]))) != UUID_RC_OK)
-                    error(1, "uuid_import: %s", uuid_error(rc));
-            }
-        }
-        vp = NULL;
-        if ((rc = uuid_export(uuid, UUID_FMT_TXT, &vp, NULL)) != UUID_RC_OK)
-            error(1, "uuid_export: %s", uuid_error(rc));
-        fprintf(stdout, "%s", (char *)vp);
-        free(vp);
-        if ((rc = uuid_destroy(uuid)) != UUID_RC_OK)
-            error(1, "uuid_destroy: %s", uuid_error(rc));
-    }
-    else {
-        /* encoding */
-        if (   (version == UUID_MAKE_V1 && argc != 0)
-            || (version == UUID_MAKE_V3 && argc != 2)
-            || (version == UUID_MAKE_V4 && argc != 0)
-            || (version == UUID_MAKE_V5 && argc != 2))
-            usage("invalid number of arguments");
-        if ((rc = uuid_create(&uuid)) != UUID_RC_OK)
-            error(1, "uuid_create: %s", uuid_error(rc));
-        if (argc == 1) {
-            /* load initial UUID for setting old generator state */
-            if (strlen(argv[0]) != UUID_LEN_STR)
-                error(1, "invalid length of UUID string representation");
-            if ((rc = uuid_import(uuid, UUID_FMT_STR, argv[0], strlen(argv[0]))) != UUID_RC_OK)
-                error(1, "uuid_import: %s", uuid_error(rc));
-        }
-        for (i = 0; i < count; i++) {
-            if (iterate) {
-                if ((rc = uuid_load(uuid, "nil")) != UUID_RC_OK)
-                    error(1, "uuid_load: %s", uuid_error(rc));
-            }
-            if (version == UUID_MAKE_V3 || version == UUID_MAKE_V5) {
-                if ((rc = uuid_create(&uuid_ns)) != UUID_RC_OK)
-                    error(1, "uuid_create: %s", uuid_error(rc));
-                if ((rc = uuid_load(uuid_ns, argv[0])) != UUID_RC_OK) {
-                    if ((rc = uuid_import(uuid_ns, UUID_FMT_STR, argv[0], strlen(argv[0]))) != UUID_RC_OK)
-                        error(1, "uuid_import: %s", uuid_error(rc));
-                }
-                if ((rc = uuid_make(uuid, version, uuid_ns, argv[1])) != UUID_RC_OK)
-                    error(1, "uuid_make: %s", uuid_error(rc));
-                if ((rc = uuid_destroy(uuid_ns)) != UUID_RC_OK)
-                    error(1, "uuid_destroy: %s", uuid_error(rc));
-            }
-            else {
-                if ((rc = uuid_make(uuid, version)) != UUID_RC_OK)
-                    error(1, "uuid_make: %s", uuid_error(rc));
-            }
-            if (fmt == UUID_FMT_BIN) {
-                vp = NULL;
-                if ((rc = uuid_export(uuid, UUID_FMT_BIN, &vp, &n)) != UUID_RC_OK)
-                    error(1, "uuid_export: %s", uuid_error(rc));
-                fwrite(vp, n, 1, fp);
-                free(vp);
-            }
-            else if (fmt == UUID_FMT_STR) {
-                vp = NULL;
-                if ((rc = uuid_export(uuid, UUID_FMT_STR, &vp, &n)) != UUID_RC_OK)
-                    error(1, "uuid_export: %s", uuid_error(rc));
-                fprintf(fp, "%s\n", (char *)vp);
-                free(vp);
-            }
-            else if (fmt == UUID_FMT_SIV) {
-                vp = NULL;
-                if ((rc = uuid_export(uuid, UUID_FMT_SIV, &vp, &n)) != UUID_RC_OK)
-                    error(1, "uuid_export: %s", uuid_error(rc));
-                fprintf(fp, "%s\n", (char *)vp);
-                free(vp);
-            }
-        }
-        if ((rc = uuid_destroy(uuid)) != UUID_RC_OK)
-            error(1, "uuid_destroy: %s", uuid_error(rc));
-    }
-
-    /* close output channel */
-    if (fp != stdout)
-        fclose(fp);
-
-    return 0;
-}
-
diff --git a/libs/uuid/uuid_cli.pod b/libs/uuid/uuid_cli.pod
deleted file mode 100644 (file)
index ddec6bb..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-##
-##  OSSP uuid - Universally Unique Identifier
-##  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-##  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-##
-##  This file is part of OSSP uuid, a library for the generation
-##  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-##
-##  Permission to use, copy, modify, and distribute this software for
-##  any purpose with or without fee is hereby granted, provided that
-##  the above copyright notice and this permission notice appear in all
-##  copies.
-##
-##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-##  SUCH DAMAGE.
-##
-##  uuid_cli.pod: manual page
-##
-
-=pod
-
-=head1 NAME
-
-B<OSSP uuid> - B<Universally Unique Identifier Command-Line Tool>
-
-=head1 VERSION
-
-OSSP uuid UUID_VERSION_STR
-
-=head1 SYNOPSIS
-
-B<uuid>
-[B<-v> I<version>]
-[B<-m>]
-[B<-n> I<count>]
-[B<-1>]
-[B<-F> I<format>]
-[B<-o> I<filename>]
-[I<namespace> I<name>]
-
-B<uuid>
-B<-d>
-[B<-r>]
-[B<-o> I<filename>]
-I<uuid>
-
-=head1 DESCRIPTION
-
-B<OSSP uuid> is a ISO-C:1999 application programming interface (API) and
-corresponding command line interface (CLI) for the generation of DCE
-1.1, ISO/IEC 11578:1996 and IETF RFC-4122 compliant I<Universally Unique
-Identifier> (UUID). It supports DCE 1.1 variant UUIDs of version 1 (time
-and node based), version 3 (name based, MD5), version 4 (random number
-based) and version 5 (name based, SHA-1). Additional API bindings are
-provided for the languages ISO-C++:1998, Perl:5 and PHP:4/5. Optional
-backward compatibility exists for the ISO-C DCE-1.1 and Perl Data::UUID
-APIs.
-
-UUIDs are 128 bit numbers which are intended to have a high likelihood
-of uniqueness over space and time and are computationally difficult
-to guess. They are globally unique identifiers which can be locally
-generated without contacting a global registration authority. UUIDs
-are intended as unique identifiers for both mass tagging objects
-with an extremely short lifetime and to reliably identifying very
-persistent objects across a network.
-
-This is the command line interface (CLI) of B<OSSP uuid>. For a
-detailed description of UUIDs see the documentation of the application
-programming interface (API) in uuid(3).
-
-=head1 OPTIONS
-
-=over 3
-
-=item B<-v> I<version>
-
-Sets the version of the generated DCE 1.1 variant UUID. Supported
-are I<version> "C<1>", "C<3>", "C<4>" and "C<5>". The default is "C<1>".
-
-For version 3 and version 5 UUIDs the additional command line arguments
-I<namespace> and I<name> have to be given. The I<namespace> is either
-a UUID in string representation or an identifier for internally
-pre-defined namespace UUIDs (currently known are "C<ns:DNS>",
-"C<ns:URL>", "C<ns:OID>", and "C<ns:X500>"). The I<name> is a string of
-arbitrary length.
-
-=item B<-m>
-
-Forces the use of a random multi-cast MAC address when generating
-version 1 UUIDs. By default the real physical MAC address of the system
-is used.
-
-=item B<-n> I<count>
-
-Generate I<count> UUIDs instead of just a single one (the default).
-
-=item B<-1>
-
-If option B<-n> is used with a I<count> greater than C<1>, then this
-option can enforce the reset the UUID context for each generated UUID.
-This makes no difference for I<version> C<3>, C<4> and C<5> UUIDs. But
-version C<1> UUIDs are based on the previously generated UUID which is
-remembered in the UUID context of the API. Option B<-1> deletes the
-remembered UUID on each iteration.
-
-=item B<-F> I<format>
-
-Representation format for importing or exporting an UUID. The
-following (case insensitive) format identifiers are currently recognized:
-
-=over 4
-
-=item C<BIN> (binary representation)
-
-This is the raw 128 bit network byte order binary representation of a
-UUID. Example is the octet stream C<0xF8 0x1D 0x4F 0xAE 0x7D 0xEC 0x11
-0xD0 0xA7 0x65 0x00 0xA0 0xC9 0x1E 0x6B 0xF6>.
-
-=item C<STR> (string representation)
-
-This is the 36 character hexadecimal ASCII string representation of a
-UUID. Example is the string "C<f81d4fae-7dec-11d0-a765-00a0c91e6bf6>".
-
-=item C<SIV> (single integer value representation)
-
-This is the maximum 39 character long single integer
-value representation of a UUID. Example is the string
-"C<329800735698586629295641978511506172918>".
-
-=back
-
-=item B<-o> I<filename>
-
-Write output to I<filename> instead of to F<stdout>.
-
-=item B<-d>
-
-Decode a given UUID (given as a command line argument or if the command
-line argument is "C<->" the UUID is read from F<stdin>) and dump textual
-information about the UUID.
-
-=back
-
-=head1 EXAMPLES
-
- # generate DCE 1.1 v1 UUID (time and node based)
- $ uuid -v1
- 01c47915-4777-11d8-bc70-0090272ff725
-
- # decode and dump DCE 1.1 v1 UUID (time and node based)
- $ uuid -d 01c47915-4777-11d8-bc70-0090272ff725
- encode: STR:     01c47915-4777-11d8-bc70-0090272ff725
-         SIV:     2349374037528578887923094374772111141
- decode: variant: DCE 1.1, ISO/IEC 11578:1996
-         version: 1 (time and node based)
-         content: time:  2004-01-15 16:22:26.376322.1 UTC
-                  clock: 15472 (usually random)
-                  node:  00:90:27:2f:f7:25 (global unicast)
-
- # generate DCE 1.1 v3 UUID (name based)
- $ uuid -v3 ns:URL http://www.ossp.org/
- 02d9e6d5-9467-382e-8f9b-9300a64ac3cd
-
- # decode and dump DCE 1.1 v3 UUID (name based)
- $ uuid -d 02d9e6d5-9467-382e-8f9b-9300a64ac3cd
- encode: STR:     02d9e6d5-9467-382e-8f9b-9300a64ac3cd
-         SIV:     3789866285607910888100818383505376205
- decode: variant: DCE 1.1, ISO/IEC 11578:1996
-         version: 3 (name based, MD5)
-         content: 02:D9:E6:D5:94:67:08:2E:0F:9B:93:00:A6:4A:C3:CD
-                  (not decipherable: MD5 message digest only)
-
- # generate DCE 1.1 v4 UUID 4 (random data based)
- $ uuid -v4
- eb424026-6f54-4ef8-a4d0-bb658a1fc6cf
-
- # decode and dump DCE 1.1 v4 UUID 4 (random data based)
- $ uuid -d eb424026-6f54-4ef8-a4d0-bb658a1fc6cf
- encode: STR:     eb424026-6f54-4ef8-a4d0-bb658a1fc6cf
-         SIV:     312712571721458096795100956955942831823
- decode: variant: DCE 1.1, ISO/IEC 11578:1996
-         version: 4 (random data based)
-         content: EB:42:40:26:6F:54:0E:F8:24:D0:BB:65:8A:1F:C6:CF
-                  (no semantics: random data only)
-
-=head1 SEE ALSO
-
-uuid(3), OSSP::uuid(3).
-
-=cut
-
diff --git a/libs/uuid/uuid_dce.c b/libs/uuid/uuid_dce.c
deleted file mode 100644 (file)
index d4a73f4..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_dce.c: DCE 1.1 compatibility API implementation
-*/
-
-/* include DCE 1.1 API */
-#define uuid_t uuid_dce_t
-#include "uuid_dce.h"
-#undef uuid_t
-#undef uuid_create
-#undef uuid_create_nil
-#undef uuid_is_nil
-#undef uuid_compare
-#undef uuid_equal
-#undef uuid_from_string
-#undef uuid_to_string
-#undef uuid_hash
-
-/* include regular API */
-#include "uuid.h"
-
-/* helper macro */
-#define LEAVE /*lint -save -e801*/ goto leave /*lint -restore*/
-
-/* create a UUID (v1 only) */
-void uuid_dce_create(uuid_dce_t *uuid_dce, int *status)
-{
-    uuid_t *uuid;
-    size_t len;
-    void *vp;
-
-    /* initialize status */
-    if (status != NULL)
-        *status = uuid_s_error;
-
-    /* sanity check argument(s) */
-    if (uuid_dce == NULL)
-        return;
-
-    /* create UUID and export as binary representation */
-    if (uuid_create(&uuid) != UUID_RC_OK)
-        return;
-    if (uuid_make(uuid, UUID_MAKE_V1) != UUID_RC_OK) {
-        uuid_destroy(uuid);
-        return;
-    }
-    vp  = uuid_dce;
-    len = UUID_LEN_BIN;
-    if (uuid_export(uuid, UUID_FMT_BIN, &vp, &len) != UUID_RC_OK) {
-        uuid_destroy(uuid);
-        return;
-    }
-    uuid_destroy(uuid);
-
-    /* return successfully */
-    if (status != NULL)
-        *status = uuid_s_ok;
-    return;
-}
-
-/* create a Nil UUID */
-void uuid_dce_create_nil(uuid_dce_t *uuid_dce, int *status)
-{
-    /* initialize status */
-    if (status != NULL)
-        *status = uuid_s_error;
-
-    /* sanity check argument(s) */
-    if (uuid_dce == NULL)
-        return;
-
-    /* short-circuit implementation, because Nil UUID is trivial to
-       create, so no need to use regular OSSP uuid API */
-    memset(uuid_dce, 0, UUID_LEN_BIN);
-
-    /* return successfully */
-    if (status != NULL)
-        *status = uuid_s_ok;
-    return;
-}
-
-/* check whether it is Nil UUID */
-int uuid_dce_is_nil(uuid_dce_t *uuid_dce, int *status)
-{
-    int i;
-    int result;
-    unsigned char *ucp;
-
-    /* initialize status */
-    if (status != NULL)
-        *status = uuid_s_error;
-
-    /* sanity check argument(s) */
-    if (uuid_dce == NULL)
-        return 0;
-
-    /* short-circuit implementation, because Nil UUID is trivial to
-       check, so no need to use regular OSSP uuid API */
-    result = 1;
-    ucp = (unsigned char *)uuid_dce;
-    for (i = 0; i < UUID_LEN_BIN; i++) {
-        if (ucp[i] != '\0') {
-            result = 0;
-            break;
-        }
-    }
-
-    /* return successfully with result */
-    if (status != NULL)
-        *status = uuid_s_ok;
-    return result;
-}
-
-/* compare two UUIDs */
-int uuid_dce_compare(uuid_dce_t *uuid_dce1, uuid_dce_t *uuid_dce2, int *status)
-{
-    uuid_t *uuid1 = NULL;
-    uuid_t *uuid2 = NULL;
-    int result = 0;
-
-    /* initialize status */
-    if (status != NULL)
-        *status = uuid_s_error;
-
-    /* sanity check argument(s) */
-    if (uuid_dce1 == NULL || uuid_dce2 == NULL)
-        return 0;
-
-    /* import both UUID binary representations and compare them */
-    if (uuid_create(&uuid1) != UUID_RC_OK)
-        LEAVE;
-    if (uuid_create(&uuid2) != UUID_RC_OK)
-        LEAVE;
-    if (uuid_import(uuid1, UUID_FMT_BIN, uuid_dce1, UUID_LEN_BIN) != UUID_RC_OK)
-        LEAVE;
-    if (uuid_import(uuid2, UUID_FMT_BIN, uuid_dce2, UUID_LEN_BIN) != UUID_RC_OK)
-        LEAVE;
-    if (uuid_compare(uuid1, uuid2, &result) != UUID_RC_OK)
-        LEAVE;
-
-    /* indicate successful operation */
-    if (status != NULL)
-        *status = uuid_s_ok;
-
-    /* cleanup and return */
-    leave:
-    if (uuid1 != NULL)
-        uuid_destroy(uuid1);
-    if (uuid2 != NULL)
-        uuid_destroy(uuid2);
-    return result;
-}
-
-/* compare two UUIDs (equality only) */
-int uuid_dce_equal(uuid_dce_t *uuid_dce1, uuid_dce_t *uuid_dce2, int *status)
-{
-    /* initialize status */
-    if (status != NULL)
-        *status = uuid_s_error;
-
-    /* sanity check argument(s) */
-    if (uuid_dce1 == NULL || uuid_dce2 == NULL)
-        return 0;
-
-    /* pass through to generic compare function */
-    return (uuid_dce_compare(uuid_dce1, uuid_dce2, status) == 0 ? 1 : 0);
-}
-
-/* import UUID from string representation */
-void uuid_dce_from_string(const char *str, uuid_dce_t *uuid_dce, int *status)
-{
-    uuid_t *uuid = NULL;
-    size_t len;
-    void *vp;
-
-    /* initialize status */
-    if (status != NULL)
-        *status = uuid_s_error;
-
-    /* sanity check argument(s) */
-    if (str == NULL || uuid_dce == NULL)
-        return;
-
-    /* import string representation and export binary representation */
-    if (uuid_create(&uuid) != UUID_RC_OK)
-        LEAVE;
-    if (uuid_import(uuid, UUID_FMT_STR, str, UUID_LEN_STR) != UUID_RC_OK)
-        LEAVE;
-    vp  = uuid_dce;
-    len = UUID_LEN_BIN;
-    if (uuid_export(uuid, UUID_FMT_BIN, &vp, &len) != UUID_RC_OK)
-        LEAVE;
-
-    /* indicate successful operation */
-    if (status != NULL)
-        *status = uuid_s_ok;
-
-    /* cleanup and return */
-    leave:
-    if (uuid != NULL)
-        uuid_destroy(uuid);
-    return;
-}
-
-/* export UUID to string representation */
-void uuid_dce_to_string(uuid_dce_t *uuid_dce, char **str, int *status)
-{
-    uuid_t *uuid = NULL;
-    size_t len;
-    void *vp;
-
-    /* initialize status */
-    if (status != NULL)
-        *status = uuid_s_error;
-
-    /* sanity check argument(s) */
-    if (str == NULL || uuid_dce == NULL)
-        return;
-
-    /* import binary representation and export string representation */
-    if (uuid_create(&uuid) != UUID_RC_OK)
-        LEAVE;
-    if (uuid_import(uuid, UUID_FMT_BIN, uuid_dce, UUID_LEN_BIN) != UUID_RC_OK)
-        LEAVE;
-    vp  = str;
-    len = UUID_LEN_STR;
-    if (uuid_export(uuid, UUID_FMT_STR, &vp, &len) != UUID_RC_OK)
-        LEAVE;
-
-    /* indicate successful operation */
-    if (status != NULL)
-        *status = uuid_s_ok;
-
-    /* cleanup and return */
-    leave:
-    if (uuid != NULL)
-        uuid_destroy(uuid);
-    return;
-}
-
-/* export UUID into hash value */
-unsigned int uuid_dce_hash(uuid_dce_t *uuid_dce, int *status)
-{
-    int i;
-    unsigned char *ucp;
-    unsigned int hash;
-
-    /* initialize status */
-    if (status != NULL)
-        *status = uuid_s_error;
-
-    /* sanity check argument(s) */
-    if (uuid_dce == NULL)
-        return 0;
-
-    /* generate a hash value
-       (DCE 1.1 actually requires 16-bit only) */
-    hash = 0;
-    ucp = (unsigned char *)uuid_dce;
-    for (i = UUID_LEN_BIN-1; i >= 0; i--) {
-        hash <<= 8;
-        hash |= ucp[i];
-    }
-
-    /* return successfully */
-    if (status != NULL)
-        *status = uuid_s_ok;
-    return hash;
-}
-
diff --git a/libs/uuid/uuid_dce.h b/libs/uuid/uuid_dce.h
deleted file mode 100644 (file)
index a806509..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_dce.h: DCE 1.1 compatibility API definition
-*/
-
-#ifndef __UUID_DCE_H___
-#define __UUID_DCE_H___
-
-/* sanity check usage */
-#ifdef __UUID_H__
-#error the regular OSSP uuid API and the DCE 1.1 backward compatibility API are mutually exclusive -- you cannot use them at the same time.
-#endif
-
-/* resolve namespace conflicts (at linking level) with regular OSSP uuid API */
-#define uuid_create      uuid_dce_create
-#define uuid_create_nil  uuid_dce_create_nil
-#define uuid_is_nil      uuid_dce_is_nil
-#define uuid_compare     uuid_dce_compare
-#define uuid_equal       uuid_dce_equal
-#define uuid_from_string uuid_dce_from_string
-#define uuid_to_string   uuid_dce_to_string
-#define uuid_hash        uuid_dce_hash
-
-/* DCE 1.1 uuid_t type */
-typedef struct {
-#if 0
-    /* stricter but unportable version */
-    uuid_uint32_t   time_low;
-    uuid_uint16_t   time_mid;
-    uuid_uint16_t   time_hi_and_version;
-    uuid_uint8_t    clock_seq_hi_and_reserved;
-    uuid_uint8_t    clock_seq_low;
-    uuid_uint8_t    node[6];
-#else
-    /* sufficient and portable version */
-    unsigned char   data[16];
-#endif
-} uuid_t;
-typedef uuid_t *uuid_p_t;
-
-/* DCE 1.1 uuid_vector_t type */
-typedef struct {
-    unsigned int    count;
-    uuid_t         *uuid[1];
-} uuid_vector_t;
-
-/* DCE 1.1 UUID API status codes */
-enum {
-    uuid_s_ok = 0,     /* standardized */
-    uuid_s_error = 1   /* implementation specific */
-};
-
-/* DCE 1.1 UUID API functions */
-extern void          uuid_create      (uuid_t *,               int *);
-extern void          uuid_create_nil  (uuid_t *,               int *);
-extern int           uuid_is_nil      (uuid_t *,               int *);
-extern int           uuid_compare     (uuid_t *, uuid_t *,     int *);
-extern int           uuid_equal       (uuid_t *, uuid_t *,     int *);
-extern void          uuid_from_string (const char *, uuid_t *, int *);
-extern void          uuid_to_string   (uuid_t *,     char **,  int *);
-extern unsigned int  uuid_hash        (uuid_t *,               int *);
-
-#endif /* __UUID_DCE_H___ */
-
diff --git a/libs/uuid/uuid_mac.c b/libs/uuid/uuid_mac.c
deleted file mode 100644 (file)
index 46d7a89..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_mac.c: Media Access Control (MAC) resolver implementation
-*/
-
-/* own headers (part (1/2) */
-#include "uuid_ac.h"
-
-/* system headers */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <time.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_IOCTL_H
-#include <sys/ioctl.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_SOCKIO_H
-#include <sys/sockio.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_DL_H
-#include <net/if_dl.h>
-#endif
-#ifdef HAVE_NET_IF_ARP_H
-#include <net/if_arp.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#ifdef HAVE_IFADDRS_H
-#include <ifaddrs.h>
-#endif
-
-/* own headers (part (1/2) */
-#include "uuid_mac.h"
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-#ifndef TRUE
-#define TRUE (/*lint -save -e506*/ !FALSE /*lint -restore*/)
-#endif
-
-/* return the Media Access Control (MAC) address of
-   the FIRST network interface card (NIC) */
-int mac_address(unsigned char *data_ptr, size_t data_len)
-{
-    /* sanity check arguments */
-    if (data_ptr == NULL || data_len < MAC_LEN)
-        return FALSE;
-
-#if defined(HAVE_IFADDRS_H) && defined(HAVE_NET_IF_DL_H) && defined(HAVE_GETIFADDRS)
-    /* use getifaddrs(3) on BSD class platforms (xxxBSD, MacOS X, etc) */
-    {
-        struct ifaddrs *ifap;
-        struct ifaddrs *ifap_head;
-        const struct sockaddr_dl *sdl;
-        unsigned char *ucp;
-        int i;
-
-        if (getifaddrs(&ifap_head) < 0)
-            return FALSE;
-        for (ifap = ifap_head; ifap != NULL; ifap = ifap->ifa_next) {
-            if (ifap->ifa_addr != NULL && ifap->ifa_addr->sa_family == AF_LINK) {
-                sdl = (const struct sockaddr_dl *)(void *)ifap->ifa_addr;
-                ucp = (unsigned char *)(sdl->sdl_data + sdl->sdl_nlen);
-                if (sdl->sdl_alen > 0) {
-                    for (i = 0; i < MAC_LEN && i < sdl->sdl_alen; i++, ucp++)
-                        data_ptr[i] = (unsigned char)(*ucp & 0xff);
-                    freeifaddrs(ifap_head);
-                    return TRUE;
-                }
-            }
-        }
-        freeifaddrs(ifap_head);
-    }
-#endif
-
-#if defined(HAVE_NET_IF_H) && defined(SIOCGIFHWADDR)
-    /* use SIOCGIFHWADDR ioctl(2) on Linux class platforms */
-    {
-        struct ifreq ifr;
-        struct sockaddr *sa;
-        int s;
-        int i;
-
-        if ((s = socket(PF_INET, SOCK_DGRAM, 0)) < 0)
-            return FALSE;
-        sprintf(ifr.ifr_name, "eth0");
-        if (ioctl(s, SIOCGIFHWADDR, &ifr) < 0) {
-            close(s);
-            return FALSE;
-        }
-        sa = (struct sockaddr *)&ifr.ifr_addr;
-        for (i = 0; i < MAC_LEN; i++)
-            data_ptr[i] = (unsigned char)(sa->sa_data[i] & 0xff);
-        close(s);
-        return TRUE;
-    }
-#endif
-
-#if defined(SIOCGARP)
-    /* use SIOCGARP ioctl(2) on SVR4 class platforms (Solaris, etc) */
-    {
-        char hostname[MAXHOSTNAMELEN];
-        struct hostent *he;
-        struct arpreq ar;
-        struct sockaddr_in *sa;
-        int s;
-        int i;
-
-        if (gethostname(hostname, sizeof(hostname)) < 0)
-            return FALSE;
-        if ((he = gethostbyname(hostname)) == NULL)
-            return FALSE;
-        if ((s = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)
-            return FALSE;
-        memset(&ar, 0, sizeof(ar));
-        sa = (struct sockaddr_in *)((void *)&(ar.arp_pa));
-        sa->sin_family = AF_INET;
-        memcpy(&(sa->sin_addr), *(he->h_addr_list), sizeof(struct in_addr));
-        if (ioctl(s, SIOCGARP, &ar) < 0) {
-            close(s);
-            return FALSE;
-        }
-        close(s);
-        if (!(ar.arp_flags & ATF_COM))
-            return FALSE;
-        for (i = 0; i < MAC_LEN; i++)
-            data_ptr[i] = (unsigned char)(ar.arp_ha.sa_data[i] & 0xff);
-        return TRUE;
-    }
-#endif
-
-    return FALSE;
-}
-
diff --git a/libs/uuid/uuid_mac.h b/libs/uuid/uuid_mac.h
deleted file mode 100644 (file)
index 251fbdd..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_mac.h: Media Access Control (MAC) resolver API definition
-*/
-
-#ifndef __UUID_MAC_H__
-#define __UUID_MAC_H__
-
-#include <string.h> /* size_t */
-
-#define MAC_PREFIX uuid_
-
-/* embedding support */
-#ifdef MAC_PREFIX
-#if defined(__STDC__) || defined(__cplusplus)
-#define __MAC_CONCAT(x,y) x ## y
-#define MAC_CONCAT(x,y) __MAC_CONCAT(x,y)
-#else
-#define __MAC_CONCAT(x) x
-#define MAC_CONCAT(x,y) __MAC_CONCAT(x)y
-#endif
-#define mac_address MAC_CONCAT(MAC_PREFIX,mac_address)
-#endif
-
-#define MAC_LEN 6
-
-extern int mac_address(unsigned char *_data_ptr, size_t _data_len);
-
-#endif /* __UUID_MAC_H__ */
-
diff --git a/libs/uuid/uuid_md5.c b/libs/uuid/uuid_md5.c
deleted file mode 100644 (file)
index 04c6c6a..0000000
+++ /dev/null
@@ -1,471 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_md5.c: MD5 API implementation
-*/
-
-/* own headers (part 1/2) */
-#include "uuid_ac.h"
-
-/* system headers */
-#include <stdlib.h>
-#include <string.h>
-
-/* own headers (part 2/2) */
-#include "uuid_md5.h"
-
-/*
- * This is a RFC 1321 compliant Message Digest 5 (MD5) algorithm
- * implementation. It is directly derived from the RSA code published in
- * RFC 1321 with just the following functionality preserving changes:
- * - converted function definitions from K&R to ANSI C
- * - included contents of the "global.h" and "md5.h" headers
- * - moved the SXX defines into the MD5Transform function
- * - replaced MD5_memcpy() with memcpy(3) and MD5_memset() with memset(3)
- * - renamed "index" variables to "idx" to avoid namespace conflicts
- * - reformatted C style to conform with OSSP C style
- * - added own OSSP style frontend API
- */
-
-/*
-** ==== BEGIN RFC 1321 CODE ====
-*/
-
-/*
- * RSA Data Security, Inc., MD5 message-digest algorithm
- * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991.
- * All rights reserved.
- *
- * License to copy and use this software is granted provided that it
- * is identified as the "RSA Data Security, Inc. MD5 Message-Digest
- * Algorithm" in all material mentioning or referencing this software
- * or this function.
- *
- * License is also granted to make and use derivative works provided
- * that such works are identified as "derived from the RSA Data
- * Security, Inc. MD5 Message-Digest Algorithm" in all material
- * mentioning or referencing the derived work.
- *
- * RSA Data Security, Inc. makes no representations concerning either
- * the merchantability of this software or the suitability of this
- * software for any particular purpose. It is provided "as is"
- * without express or implied warranty of any kind.
- *
- * These notices must be retained in any copies of any part of this
- * documentation and/or software.
- */
-
-/* POINTER defines a generic pointer type */
-typedef unsigned char *POINTER;
-
-/* UINT4 defines a four byte word */
-#if SIZEOF_UNSIGNED_SHORT       == 4
-typedef unsigned short int     UINT4;
-#elif SIZEOF_UNSIGNED_INT       == 4
-typedef unsigned int           UINT4;
-#elif SIZEOF_UNSIGNED_LONG      == 4
-typedef unsigned long int      UINT4;
-#elif SIZEOF_UNSIGNED_LONG_LONG == 4
-typedef unsigned long long int UINT4;
-#else
-#error ERROR: unable to determine UINT4 type (four byte word)
-#endif
-
-/* MD5 context. */
-typedef struct {
-  UINT4 state[4];                                   /* state (ABCD) */
-  UINT4 count[2];        /* number of bits, modulo 2^64 (lsb first) */
-  unsigned char buffer[64];                         /* input buffer */
-} MD5_CTX;
-
-/* prototypes for internal functions */
-static void MD5Init      (MD5_CTX *_ctx);
-static void MD5Update    (MD5_CTX *_ctx, unsigned char *, unsigned int);
-static void MD5Final     (unsigned char [], MD5_CTX *);
-static void MD5Transform (UINT4 [], unsigned char []);
-static void Encode       (unsigned char *, UINT4 *, unsigned int);
-static void Decode       (UINT4 *, unsigned char *, unsigned int);
-
-/* finalization padding */
-static unsigned char PADDING[64] = {
-  0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-/* F, G, H and I are basic MD5 functions. */
-#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
-#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
-#define H(x, y, z) ((x) ^ (y) ^ (z))
-#define I(x, y, z) ((y) ^ ((x) | (~z)))
-
-/* ROTATE_LEFT rotates x left n bits. */
-#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
-
-/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
-   Rotation is separate from addition to prevent recomputation. */
-#define FF(a, b, c, d, x, s, ac) { \
- (a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
-}
-#define GG(a, b, c, d, x, s, ac) { \
- (a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
-}
-#define HH(a, b, c, d, x, s, ac) { \
- (a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
-}
-#define II(a, b, c, d, x, s, ac) { \
- (a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
-}
-
-/* MD5 initialization. Begins an MD5 operation, writing a new context. */
-static void MD5Init(
-    MD5_CTX *context)
-{
-    context->count[0] = context->count[1] = 0;
-
-    /* Load magic initialization constants. */
-    context->state[0] = 0x67452301;
-    context->state[1] = 0xefcdab89;
-    context->state[2] = 0x98badcfe;
-    context->state[3] = 0x10325476;
-    return;
-}
-
-/* MD5 block update operation. Continues an MD5 message-digest
-   operation, processing another message block, and updating the
-   context. */
-static void MD5Update(
-    MD5_CTX *context,                                        /* context */
-    unsigned char *input,                                /* input block */
-    unsigned int inputLen)                     /* length of input block */
-{
-    unsigned int i, idx, partLen;
-
-    /* Compute number of bytes mod 64 */
-    idx = (unsigned int)((context->count[0] >> 3) & 0x3F);
-
-    /* Update number of bits */
-    if ((context->count[0] += ((UINT4)inputLen << 3)) < ((UINT4)inputLen << 3))
-        context->count[1]++;
-    context->count[1] += ((UINT4)inputLen >> 29);
-
-    partLen = (unsigned int)64 - idx;
-
-    /* Transform as many times as possible.  */
-    if (inputLen >= partLen) {
-        memcpy((POINTER)&context->buffer[idx], (POINTER)input, (size_t)partLen);
-        MD5Transform(context->state, context->buffer);
-        for (i = partLen; i + 63 < inputLen; i += 64)
-            MD5Transform(context->state, &input[i]);
-        idx = 0;
-    }
-    else
-        i = 0;
-
-    /* Buffer remaining input */
-    memcpy((POINTER)&context->buffer[idx], (POINTER)&input[i], (size_t)(inputLen - i));
-}
-
-/* MD5 finalization. Ends an MD5 message-digest operation, writing the
-   the message digest and zeroizing the context. */
-static void MD5Final(
-    unsigned char digest[],                                 /* message digest */
-    MD5_CTX *context)                                       /* context */
-{
-    unsigned char bits[8];
-    unsigned int idx, padLen;
-
-    /* Save number of bits */
-    Encode(bits, context->count, 8);
-
-    /* Pad out to 56 mod 64. */
-    idx = (unsigned int)((context->count[0] >> 3) & 0x3f);
-    padLen = (idx < 56) ? ((unsigned int)56 - idx) : ((unsigned int)120 - idx);
-    MD5Update(context, PADDING, padLen);
-
-    /* Append length (before padding) */
-    MD5Update(context, bits, 8);
-
-    /* Store state in digest */
-    Encode(digest, context->state, 16);
-
-    /* Zeroize sensitive information. */
-    memset((POINTER)context, 0, sizeof(*context));
-}
-
-/* MD5 basic transformation. Transforms state based on block. */
-static void MD5Transform(
-    UINT4 state[],
-    unsigned char block[])
-{
-    UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];
-
-    Decode(x, block, 64);
-
-    /* Round 1 */
-#define S11 7
-#define S12 12
-#define S13 17
-#define S14 22
-    FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
-    FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
-    FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
-    FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
-    FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
-    FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
-    FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
-    FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
-    FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
-    FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
-    FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
-    FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
-    FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
-    FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
-    FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
-    FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
-
-   /* Round 2 */
-#define S21 5
-#define S22 9
-#define S23 14
-#define S24 20
-    GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
-    GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
-    GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
-    GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
-    GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
-    GG (d, a, b, c, x[10], S22,  0x2441453); /* 22 */
-    GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
-    GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
-    GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
-    GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
-    GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
-    GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
-    GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
-    GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
-    GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
-    GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
-
-    /* Round 3 */
-#define S31 4
-#define S32 11
-#define S33 16
-#define S34 23
-    HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
-    HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
-    HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
-    HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
-    HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
-    HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
-    HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
-    HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
-    HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
-    HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
-    HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
-    HH (b, c, d, a, x[ 6], S34,  0x4881d05); /* 44 */
-    HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
-    HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
-    HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
-    HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
-
-    /* Round 4 */
-#define S41 6
-#define S42 10
-#define S43 15
-#define S44 21
-    II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
-    II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
-    II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
-    II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
-    II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
-    II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
-    II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
-    II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
-    II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
-    II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
-    II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
-    II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
-    II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
-    II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
-    II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
-    II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
-
-    state[0] += a;
-    state[1] += b;
-    state[2] += c;
-    state[3] += d;
-
-    /* Zeroize sensitive information. */
-    memset((POINTER)x, 0, sizeof(x));
-}
-
-/* Encodes input (UINT4) into output (unsigned char).
-   Assumes len is a multiple of 4. */
-static void Encode(
-    unsigned char *output,
-    UINT4 *input,
-    unsigned int len)
-{
-    unsigned int i, j;
-
-    for (i = 0, j = 0; j < len; i++, j += 4) {
-        output[j]   = (unsigned char)( input[i]        & 0xff);
-        output[j+1] = (unsigned char)((input[i] >> 8)  & 0xff);
-        output[j+2] = (unsigned char)((input[i] >> 16) & 0xff);
-        output[j+3] = (unsigned char)((input[i] >> 24) & 0xff);
-    }
-    return;
-}
-
-/* Decodes input (unsigned char) into output (UINT4).
-   Assumes len is a multiple of 4. */
-static void Decode(
-    UINT4 *output,
-    unsigned char *input,
-    unsigned int len)
-{
-    unsigned int i, j;
-
-    for (i = 0, j = 0; j < len; i++, j += 4)
-        output[i] =   ( (UINT4)input[j])
-                    | (((UINT4)input[j+1]) << 8 )
-                    | (((UINT4)input[j+2]) << 16)
-                    | (((UINT4)input[j+3]) << 24);
-    return;
-}
-
-/*
-** ==== END RFC 1321 CODE ====
-*/
-
-struct md5_st {
-    MD5_CTX ctx;
-};
-
-md5_rc_t md5_create(md5_t **md5)
-{
-    if (md5 == NULL)
-        return MD5_RC_ARG;
-    if ((*md5 = (md5_t *)malloc(sizeof(md5_t))) == NULL)
-        return MD5_RC_MEM;
-    MD5Init(&((*md5)->ctx));
-    return MD5_RC_OK;
-}
-
-md5_rc_t md5_init(md5_t *md5)
-{
-    if (md5 == NULL)
-        return MD5_RC_ARG;
-    MD5Init(&(md5->ctx));
-    return MD5_RC_OK;
-}
-
-md5_rc_t md5_update(md5_t *md5, const void *data_ptr, size_t data_len)
-{
-    if (md5 == NULL)
-        return MD5_RC_ARG;
-    MD5Update(&(md5->ctx), (unsigned char *)data_ptr, (unsigned int)data_len);
-    return MD5_RC_OK;
-}
-
-md5_rc_t md5_store(md5_t *md5, void **data_ptr, size_t *data_len)
-{
-    MD5_CTX ctx;
-
-    if (md5 == NULL || data_ptr == NULL)
-        return MD5_RC_ARG;
-    if (*data_ptr == NULL) {
-        if ((*data_ptr = malloc(MD5_LEN_BIN)) == NULL)
-            return MD5_RC_MEM;
-        if (data_len != NULL)
-            *data_len = MD5_LEN_BIN;
-    }
-    else {
-        if (data_len != NULL) {
-            if (*data_len < MD5_LEN_BIN)
-                return MD5_RC_MEM;
-            *data_len = MD5_LEN_BIN;
-        }
-    }
-    memcpy((void *)(&ctx), (void *)(&(md5->ctx)), sizeof(MD5_CTX));
-    MD5Final((unsigned char *)(*data_ptr), &(ctx));
-    return MD5_RC_OK;
-}
-
-md5_rc_t md5_format(md5_t *md5, char **data_ptr, size_t *data_len)
-{
-    static const char hex[] = "0123456789abcdef";
-    unsigned char buf[MD5_LEN_BIN];
-    unsigned char *bufptr;
-    size_t buflen;
-    md5_rc_t rc;
-    int i;
-
-    if (md5 == NULL || data_ptr == NULL)
-        return MD5_RC_ARG;
-    if (*data_ptr == NULL) {
-        if ((*data_ptr = (char *)malloc(MD5_LEN_STR+1)) == NULL)
-            return MD5_RC_MEM;
-        if (data_len != NULL)
-            *data_len = MD5_LEN_STR+1;
-    }
-    else {
-        if (data_len != NULL) {
-            if (*data_len < MD5_LEN_STR+1)
-                return MD5_RC_MEM;
-            *data_len = MD5_LEN_STR+1;
-        }
-    }
-
-    bufptr = buf;
-    buflen = sizeof(buf);
-    if ((rc = md5_store(md5, (void **)((void *)&bufptr), &buflen)) != MD5_RC_OK)
-        return rc;
-
-    for (i = 0; i < (int)buflen; i++) {
-           (*data_ptr)[(i*2)+0] = hex[(int)(bufptr[i] >> 4)];
-           (*data_ptr)[(i*2)+1] = hex[(int)(bufptr[i] & 0x0f)];
-    }
-    (*data_ptr)[(i*2)] = '\0';
-    return MD5_RC_OK;
-}
-
-md5_rc_t md5_destroy(md5_t *md5)
-{
-    if (md5 == NULL)
-        return MD5_RC_ARG;
-    free(md5);
-    return MD5_RC_OK;
-}
-
diff --git a/libs/uuid/uuid_md5.h b/libs/uuid/uuid_md5.h
deleted file mode 100644 (file)
index e17971a..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_md5.h: MD5 API definition
-*/
-
-#ifndef __MD5_H___
-#define __MD5_H___
-
-#include <string.h> /* size_t */
-
-#define MD5_PREFIX uuid_
-
-/* embedding support */
-#ifdef MD5_PREFIX
-#if defined(__STDC__) || defined(__cplusplus)
-#define __MD5_CONCAT(x,y) x ## y
-#define MD5_CONCAT(x,y) __MD5_CONCAT(x,y)
-#else
-#define __MD5_CONCAT(x) x
-#define MD5_CONCAT(x,y) __MD5_CONCAT(x)y
-#endif
-#define md5_st      MD5_CONCAT(MD5_PREFIX,md5_st)
-#define md5_t       MD5_CONCAT(MD5_PREFIX,md5_t)
-#define md5_create  MD5_CONCAT(MD5_PREFIX,md5_create)
-#define md5_init    MD5_CONCAT(MD5_PREFIX,md5_init)
-#define md5_update  MD5_CONCAT(MD5_PREFIX,md5_update)
-#define md5_store   MD5_CONCAT(MD5_PREFIX,md5_store)
-#define md5_format  MD5_CONCAT(MD5_PREFIX,md5_format)
-#define md5_destroy MD5_CONCAT(MD5_PREFIX,md5_destroy)
-#endif
-
-struct md5_st;
-typedef struct md5_st md5_t;
-
-#define MD5_LEN_BIN 16
-#define MD5_LEN_STR 32
-
-typedef enum {
-    MD5_RC_OK  = 0,
-    MD5_RC_ARG = 1,
-    MD5_RC_MEM = 2
-} md5_rc_t;
-
-extern md5_rc_t md5_create  (md5_t **md5);
-extern md5_rc_t md5_init    (md5_t  *md5);
-extern md5_rc_t md5_update  (md5_t  *md5, const void  *data_ptr, size_t  data_len);
-extern md5_rc_t md5_store   (md5_t  *md5,       void **data_ptr, size_t *data_len);
-extern md5_rc_t md5_format  (md5_t  *md5,       char **data_ptr, size_t *data_len);
-extern md5_rc_t md5_destroy (md5_t  *md5);
-
-#endif /* __MD5_H___ */
-
diff --git a/libs/uuid/uuid_prng.c b/libs/uuid/uuid_prng.c
deleted file mode 100644 (file)
index 9ebca40..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_prng.c: PRNG API implementation
-*/
-
-/* own headers (part 1/2) */
-#include "uuid_ac.h"
-
-/* system headers */
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <time.h>
-#include <sys/time.h>
-#include <fcntl.h>
-#if defined(WIN32)
-#define WINVER 0x0500
-#include <windows.h>
-#include <wincrypt.h>
-#endif
-
-/* own headers (part 2/2) */
-#include "uuid_time.h"
-#include "uuid_prng.h"
-#include "uuid_md5.h"
-
-struct prng_st {
-    int    dev; /* system PRNG device */
-    md5_t *md5; /* local MD5 PRNG engine */
-    long   cnt; /* time resolution compensation counter */
-};
-
-prng_rc_t prng_create(prng_t **prng)
-{
-#if !defined(WIN32)
-    int fd = -1;
-#endif
-    struct timeval tv;
-    pid_t pid;
-    unsigned int i;
-
-    /* sanity check argument(s) */
-    if (prng == NULL)
-        return PRNG_RC_ARG;
-
-    /* allocate object */
-    if ((*prng = (prng_t *)malloc(sizeof(prng_t))) == NULL)
-        return PRNG_RC_MEM;
-
-    /* try to open the system PRNG device */
-    (*prng)->dev = -1;
-#if !defined(WIN32)
-    if ((fd = open("/dev/urandom", O_RDONLY)) == -1)
-        fd = open("/dev/random", O_RDONLY|O_NONBLOCK);
-    if (fd != -1) {
-        (void)fcntl(fd, F_SETFD, FD_CLOEXEC);
-        (*prng)->dev = fd;
-    }
-#endif
-
-    /* initialize MD5 engine */
-    if (md5_create(&((*prng)->md5)) != MD5_RC_OK) {
-        free(*prng);
-        return PRNG_RC_INT;
-    }
-
-    /* initialize time resolution compensation counter */
-    (*prng)->cnt = 0;
-
-    /* seed the C library PRNG once */
-    (void)time_gettimeofday(&tv);
-    pid = getpid();
-    srand((unsigned int)(
-        ((unsigned int)pid << 16)
-        ^ (unsigned int)pid
-        ^ (unsigned int)tv.tv_sec
-        ^ (unsigned int)tv.tv_usec));
-    for (i = (unsigned int)((tv.tv_sec ^ tv.tv_usec) & 0x1F); i > 0; i--)
-        (void)rand();
-
-    return PRNG_RC_OK;
-}
-
-prng_rc_t prng_data(prng_t *prng, void *data_ptr, size_t data_len)
-{
-    size_t n;
-    unsigned char *p;
-    struct {
-        struct timeval tv;
-        long cnt;
-        int rnd;
-    } entropy;
-    unsigned char md5_buf[MD5_LEN_BIN];
-    unsigned char *md5_ptr;
-    size_t md5_len;
-    int retries;
-    int i;
-#if defined(WIN32)
-    HCRYPTPROV hProv;
-#endif
-
-    /* sanity check argument(s) */
-    if (prng == NULL || data_len == 0)
-        return PRNG_RC_ARG;
-
-    /* prepare for generation */
-    p = (unsigned char *)data_ptr;
-    n = data_len;
-
-    /* approach 1: try to gather data via stronger system PRNG device */
-    if (prng->dev != -1) {
-        retries = 0;
-        while (n > 0) {
-            i = (int)read(prng->dev, (void *)p, n);
-            if (i <= 0) {
-                if (retries++ > 16)
-                    break;
-                continue;
-            }
-            retries = 0;
-            n -= (unsigned int)i;
-            p += (unsigned int)i;
-        }
-    }
-#if defined(WIN32)
-    else {
-        if (CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, 0))
-            CryptGenRandom(hProv, n, p);
-    }
-#endif
-
-    /* approach 2: try to gather data via weaker libc PRNG API. */
-    while (n > 0) {
-        /* gather new entropy */
-        (void)time_gettimeofday(&(entropy.tv));  /* source: libc time */
-        entropy.rnd = rand();                    /* source: libc PRNG */
-        entropy.cnt = prng->cnt++;               /* source: local counter */
-
-        /* pass entropy into MD5 engine */
-        if (md5_update(prng->md5, (void *)&entropy, sizeof(entropy)) != MD5_RC_OK)
-            return PRNG_RC_INT;
-
-        /* store MD5 engine state as PRN output */
-        md5_ptr = md5_buf;
-        md5_len = sizeof(md5_buf);
-        if (md5_store(prng->md5, (void **)(void *)&md5_ptr, &md5_len) != MD5_RC_OK)
-            return PRNG_RC_INT;
-        for (i = 0; i < MD5_LEN_BIN && n > 0; i++, n--)
-            *p++ ^= md5_buf[i]; /* intentionally no assignment because arbitrary
-                                   caller buffer content is leveraged, too */
-    }
-
-    return PRNG_RC_OK;
-}
-
-prng_rc_t prng_destroy(prng_t *prng)
-{
-    /* sanity check argument(s) */
-    if (prng == NULL)
-        return PRNG_RC_ARG;
-
-    /* close PRNG device */
-    if (prng->dev != -1)
-        (void)close(prng->dev);
-
-    /* destroy MD5 engine */
-    (void)md5_destroy(prng->md5);
-
-    /* free object */
-    free(prng);
-
-    return PRNG_RC_OK;
-}
-
diff --git a/libs/uuid/uuid_prng.h b/libs/uuid/uuid_prng.h
deleted file mode 100644 (file)
index 57f5468..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_prng.h: PRNG API definition
-*/
-
-#ifndef __PRNG_H___
-#define __PRNG_H___
-
-#include <string.h> /* size_t */
-
-#define PRNG_PREFIX uuid_
-
-/* embedding support */
-#ifdef PRNG_PREFIX
-#if defined(__STDC__) || defined(__cplusplus)
-#define __PRNG_CONCAT(x,y) x ## y
-#define PRNG_CONCAT(x,y) __PRNG_CONCAT(x,y)
-#else
-#define __PRNG_CONCAT(x) x
-#define PRNG_CONCAT(x,y) __PRNG_CONCAT(x)y
-#endif
-#define prng_st      PRNG_CONCAT(PRNG_PREFIX,prng_st)
-#define prng_t       PRNG_CONCAT(PRNG_PREFIX,prng_t)
-#define prng_create  PRNG_CONCAT(PRNG_PREFIX,prng_create)
-#define prng_data    PRNG_CONCAT(PRNG_PREFIX,prng_data)
-#define prng_destroy PRNG_CONCAT(PRNG_PREFIX,prng_destroy)
-#endif
-
-struct prng_st;
-typedef struct prng_st prng_t;
-
-typedef enum {
-    PRNG_RC_OK  = 0,
-    PRNG_RC_ARG = 1,
-    PRNG_RC_MEM = 2,
-    PRNG_RC_INT = 3
-} prng_rc_t;
-
-extern prng_rc_t prng_create  (prng_t **prng);
-extern prng_rc_t prng_data    (prng_t  *prng, void *data_ptr, size_t data_len);
-extern prng_rc_t prng_destroy (prng_t  *prng);
-
-#endif /* __PRNG_H___ */
-
diff --git a/libs/uuid/uuid_sha1.c b/libs/uuid/uuid_sha1.c
deleted file mode 100644 (file)
index 9fb6265..0000000
+++ /dev/null
@@ -1,450 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_sha1.c: SHA-1 API implementation
-*/
-
-/* own headers (part 1/2) */
-#include "uuid_ac.h"
-
-/* system headers */
-#include <stdlib.h>
-#include <string.h>
-
-/* own headers (part 2/2) */
-#include "uuid_sha1.h"
-
-/*
- *  This is a RFC 3174 compliant Secure Hash Function (SHA-1) algorithm
- *  implementation. It is directly derived from the SHA-1 reference
- *  code published in RFC 3174 with just the following functionality
- *  preserving changes:
- *  - reformatted C style to conform with OSSP C style
- *  - added own OSSP style frontend API
- *  - added Autoconf based determination of sha1_uintX_t types
- */
-
-/*
-** ==== BEGIN RFC 3174 CODE ====
-*/
-
-/*
- *  This implements the Secure Hashing Algorithm 1 as defined in
- *  FIPS PUB 180-1 published April 17, 1995.
- *
- *  The SHA-1, produces a 160-bit message digest for a given data
- *  stream. It should take about 2**n steps to find a message with the
- *  same digest as a given message and 2**(n/2) to find any two messages
- *  with the same digest, when n is the digest size in bits. Therefore,
- *  this algorithm can serve as a means of providing a "fingerprint" for
- *  a message.
- *
- *  Caveats: SHA-1 is designed to work with messages less than 2^64 bits
- *  long. Although SHA-1 allows a message digest to be generated for
- *  messages of any number of bits less than 2^64, this implementation
- *  only works with messages with a length that is a multiple of the
- *  size of an 8-bit character.
- */
-
-typedef unsigned char sha1_uint8_t;
-
-#if SIZEOF_SHORT  > 2
-typedef short int sha1_int16plus_t;
-#elif SIZEOF_INT  > 2
-typedef int       sha1_int16plus_t;
-#elif SIZEOF_LONG > 2
-typedef long int  sha1_int16plus_t;
-#else
-#error ERROR: unable to determine sha1_int16plus_t type (at least two byte word)
-#endif
-
-#if SIZEOF_UNSIGNED_SHORT       == 4
-typedef unsigned short int     sha1_uint32_t;
-#elif SIZEOF_UNSIGNED_INT       == 4
-typedef unsigned int           sha1_uint32_t;
-#elif SIZEOF_UNSIGNED_LONG      == 4
-typedef unsigned long int      sha1_uint32_t;
-#elif SIZEOF_UNSIGNED_LONG_LONG == 4
-typedef unsigned long long int sha1_uint32_t;
-#else
-#error ERROR: unable to determine sha1_uint32_t type (four byte word)
-#endif
-
-enum {
-    shaSuccess = 0,
-    shaNull,            /* null pointer parameter */
-    shaStateError       /* called Input after Result */
-};
-
-#define SHA1HashSize 20
-
-/* This structure will hold context information for the SHA-1 hashing operation */
-typedef struct SHA1Context {
-    sha1_uint32_t Intermediate_Hash[SHA1HashSize/4]; /* Message Digest */
-    sha1_uint32_t Length_Low;                        /* Message length in bits */
-    sha1_uint32_t Length_High;                       /* Message length in bits */
-    sha1_int16plus_t Message_Block_Index;            /* Index into message block array */
-    sha1_uint8_t Message_Block[64];                  /* 512-bit message blocks */
-    int Computed;                                    /* Is the digest computed? */
-    int Corrupted;                                   /* Is the message digest corrupted? */
-} SHA1Context;
-
-/* Function Prototypes */
-static int SHA1Reset  (SHA1Context *);
-static int SHA1Input  (SHA1Context *, const sha1_uint8_t *, unsigned int);
-static int SHA1Result (SHA1Context *, sha1_uint8_t Message_Digest[]);
-
-/* Local Function Prototyptes */
-static void SHA1PadMessage         (SHA1Context *);
-static void SHA1ProcessMessageBlock(SHA1Context *);
-
-/* Define the SHA1 circular left shift macro */
-#define SHA1CircularShift(bits,word) \
-    (((word) << (bits)) | ((word) >> (32-(bits))))
-
-/*
- *  This function will initialize the SHA1Context in preparation for
- *  computing a new SHA1 message digest.
- */
-static int SHA1Reset(SHA1Context *context)
-{
-    if (context == NULL)
-        return shaNull;
-
-    context->Length_Low             = 0;
-    context->Length_High            = 0;
-    context->Message_Block_Index    = 0;
-
-    context->Intermediate_Hash[0]   = 0x67452301;
-    context->Intermediate_Hash[1]   = 0xEFCDAB89;
-    context->Intermediate_Hash[2]   = 0x98BADCFE;
-    context->Intermediate_Hash[3]   = 0x10325476;
-    context->Intermediate_Hash[4]   = 0xC3D2E1F0;
-
-    context->Computed   = 0;
-    context->Corrupted  = 0;
-
-    return shaSuccess;
-}
-
-/*
- *  This function will return the 160-bit message digest into the
- *  Message_Digest array provided by the caller. NOTE: The first octet
- *  of hash is stored in the 0th element, the last octet of hash in the
- *  19th element.
- */
-static int SHA1Result(SHA1Context *context, sha1_uint8_t Message_Digest[])
-{
-    int i;
-
-    if (context == NULL || Message_Digest == NULL)
-        return shaNull;
-    if (context->Corrupted)
-        return context->Corrupted;
-
-    if (!context->Computed) {
-        SHA1PadMessage(context);
-        for (i = 0; i < 64; i++) {
-            /* message may be sensitive, clear it out */
-            context->Message_Block[i] = (sha1_uint8_t)0;
-        }
-        context->Length_Low  = 0; /* and clear length */
-        context->Length_High = 0;
-        context->Computed    = 1;
-    }
-    for (i = 0; i < SHA1HashSize; i++)
-        Message_Digest[i] = (sha1_uint8_t)(context->Intermediate_Hash[i>>2] >> (8 * (3 - (i & 0x03))));
-
-    return shaSuccess;
-}
-
-/*
- *  This function accepts an array of octets as the next portion of the
- *  message.
- */
-static int SHA1Input(SHA1Context *context, const sha1_uint8_t *message_array, unsigned int length)
-{
-    if (length == 0)
-        return shaSuccess;
-    if (context == NULL || message_array == NULL)
-        return shaNull;
-
-    if (context->Computed) {
-        context->Corrupted = shaStateError;
-        return shaStateError;
-    }
-    if (context->Corrupted)
-        return context->Corrupted;
-    while (length-- && !context->Corrupted) {
-        context->Message_Block[context->Message_Block_Index++] = (*message_array & 0xFF);
-        context->Length_Low += 8;
-        if (context->Length_Low == 0) {
-            context->Length_High++;
-            if (context->Length_High == 0)
-                context->Corrupted = 1; /* Message is too long */
-        }
-        if (context->Message_Block_Index == 64)
-            SHA1ProcessMessageBlock(context);
-        message_array++;
-    }
-
-    return shaSuccess;
-}
-
-/*
- *  This function will process the next 512 bits of the message stored
- *  in the Message_Block array. NOTICE: Many of the variable names in
- *  this code, especially the single character names, were used because
- *  those were the names used in the publication.
- */
-static void SHA1ProcessMessageBlock(SHA1Context *context)
-{
-    const sha1_uint32_t K[] = {   /* Constants defined in SHA-1   */
-        0x5A827999,
-        0x6ED9EBA1,
-        0x8F1BBCDC,
-        0xCA62C1D6
-    };
-    int            t;             /* Loop counter                */
-    sha1_uint32_t  temp;          /* Temporary word value        */
-    sha1_uint32_t  W[80];         /* Word sequence               */
-    sha1_uint32_t  A, B, C, D, E; /* Word buffers                */
-
-    /* Initialize the first 16 words in the array W */
-    for (t = 0; t < 16; t++) {
-        W[t]  = (sha1_uint32_t)(context->Message_Block[t * 4    ] << 24);
-        W[t] |= (sha1_uint32_t)(context->Message_Block[t * 4 + 1] << 16);
-        W[t] |= (sha1_uint32_t)(context->Message_Block[t * 4 + 2] <<  8);
-        W[t] |= (sha1_uint32_t)(context->Message_Block[t * 4 + 3]      );
-    }
-
-    for (t = 16; t < 80; t++)
-       W[t] = SHA1CircularShift(1, W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16]);
-
-    A = context->Intermediate_Hash[0];
-    B = context->Intermediate_Hash[1];
-    C = context->Intermediate_Hash[2];
-    D = context->Intermediate_Hash[3];
-    E = context->Intermediate_Hash[4];
-
-    for (t = 0; t < 20; t++) {
-        temp =  SHA1CircularShift(5, A) + ((B & C) | ((~B) & D)) + E + W[t] + K[0];
-        E = D;
-        D = C;
-        C = SHA1CircularShift(30, B);
-        B = A;
-        A = temp;
-    }
-
-    for (t = 20; t < 40; t++) {
-        temp = SHA1CircularShift(5, A) + (B ^ C ^ D) + E + W[t] + K[1];
-        E = D;
-        D = C;
-        C = SHA1CircularShift(30, B);
-        B = A;
-        A = temp;
-    }
-
-    for (t = 40; t < 60; t++) {
-        temp = SHA1CircularShift(5, A) + ((B & C) | (B & D) | (C & D)) + E + W[t] + K[2];
-        E = D;
-        D = C;
-        C = SHA1CircularShift(30, B);
-        B = A;
-        A = temp;
-    }
-
-    for (t = 60; t < 80; t++) {
-        temp = SHA1CircularShift(5, A) + (B ^ C ^ D) + E + W[t] + K[3];
-        E = D;
-        D = C;
-        C = SHA1CircularShift(30, B);
-        B = A;
-        A = temp;
-    }
-
-    context->Intermediate_Hash[0] += A;
-    context->Intermediate_Hash[1] += B;
-    context->Intermediate_Hash[2] += C;
-    context->Intermediate_Hash[3] += D;
-    context->Intermediate_Hash[4] += E;
-
-    context->Message_Block_Index = 0;
-
-    return;
-}
-
-/*
- *  According to the standard, the message must be padded to an even
- *  512 bits. The first padding bit must be a '1'. The last 64 bits
- *  represent the length of the original message. All bits in between
- *  should be 0. This function will pad the message according to those
- *  rules by filling the Message_Block array accordingly. It will also
- *  call the ProcessMessageBlock function provided appropriately. When
- *  it returns, it can be assumed that the message digest has been
- *  computed.
- */
-static void SHA1PadMessage(SHA1Context *context)
-{
-    /* Check to see if the current message block is too small to hold
-       the initial padding bits and length. If so, we will pad the block,
-       process it, and then continue padding into a second block. */
-    if (context->Message_Block_Index > 55) {
-        context->Message_Block[context->Message_Block_Index++] = (sha1_uint8_t)0x80;
-        while (context->Message_Block_Index < 64)
-            context->Message_Block[context->Message_Block_Index++] = (sha1_uint8_t)0;
-        SHA1ProcessMessageBlock(context);
-        while(context->Message_Block_Index < 56)
-            context->Message_Block[context->Message_Block_Index++] = (sha1_uint8_t)0;
-    }
-    else {
-        context->Message_Block[context->Message_Block_Index++] = (sha1_uint8_t)0x80;
-        while(context->Message_Block_Index < 56)
-            context->Message_Block[context->Message_Block_Index++] = (sha1_uint8_t)0;
-    }
-
-    /* Store the message length as the last 8 octets */
-    context->Message_Block[56] = (sha1_uint8_t)(context->Length_High >> 24);
-    context->Message_Block[57] = (sha1_uint8_t)(context->Length_High >> 16);
-    context->Message_Block[58] = (sha1_uint8_t)(context->Length_High >>  8);
-    context->Message_Block[59] = (sha1_uint8_t)(context->Length_High      );
-    context->Message_Block[60] = (sha1_uint8_t)(context->Length_Low  >> 24);
-    context->Message_Block[61] = (sha1_uint8_t)(context->Length_Low  >> 16);
-    context->Message_Block[62] = (sha1_uint8_t)(context->Length_Low  >>  8);
-    context->Message_Block[63] = (sha1_uint8_t)(context->Length_Low       );
-
-    SHA1ProcessMessageBlock(context);
-    return;
-}
-
-/*
-** ==== END RFC 3174 CODE ====
-*/
-
-struct sha1_st {
-    SHA1Context ctx;
-};
-
-sha1_rc_t sha1_create(sha1_t **sha1)
-{
-    if (sha1 == NULL)
-        return SHA1_RC_ARG;
-    if ((*sha1 = (sha1_t *)malloc(sizeof(sha1_t))) == NULL)
-        return SHA1_RC_MEM;
-    if (SHA1Reset(&((*sha1)->ctx)) != shaSuccess)
-        return SHA1_RC_INT;
-    return SHA1_RC_OK;
-}
-
-sha1_rc_t sha1_init(sha1_t *sha1)
-{
-    if (sha1 == NULL)
-        return SHA1_RC_ARG;
-    if (SHA1Reset(&(sha1->ctx)) != shaSuccess)
-        return SHA1_RC_INT;
-    return SHA1_RC_OK;
-}
-
-sha1_rc_t sha1_update(sha1_t *sha1, const void *data_ptr, size_t data_len)
-{
-    if (sha1 == NULL)
-        return SHA1_RC_ARG;
-    if (SHA1Input(&(sha1->ctx), (unsigned char *)data_ptr, (unsigned int)data_len) != shaSuccess)
-        return SHA1_RC_INT;
-    return SHA1_RC_OK;
-}
-
-sha1_rc_t sha1_store(sha1_t *sha1, void **data_ptr, size_t *data_len)
-{
-    SHA1Context ctx;
-
-    if (sha1 == NULL || data_ptr == NULL)
-        return SHA1_RC_ARG;
-    if (*data_ptr == NULL) {
-        if ((*data_ptr = malloc(SHA1_LEN_BIN)) == NULL)
-            return SHA1_RC_MEM;
-        if (data_len != NULL)
-            *data_len = SHA1_LEN_BIN;
-    }
-    else {
-        if (data_len != NULL) {
-            if (*data_len < SHA1_LEN_BIN)
-                return SHA1_RC_MEM;
-            *data_len = SHA1_LEN_BIN;
-        }
-    }
-    memcpy((void *)(&ctx), (void *)(&(sha1->ctx)), sizeof(SHA1Context));
-    if (SHA1Result(&(ctx), (unsigned char *)(*data_ptr)) != shaSuccess)
-        return SHA1_RC_INT;
-    return SHA1_RC_OK;
-}
-
-sha1_rc_t sha1_format(sha1_t *sha1, char **data_ptr, size_t *data_len)
-{
-    static const char hex[] = "0123456789abcdef";
-    unsigned char buf[SHA1_LEN_BIN];
-    unsigned char *bufptr;
-    size_t buflen;
-    sha1_rc_t rc;
-    int i;
-
-    if (sha1 == NULL || data_ptr == NULL)
-        return SHA1_RC_ARG;
-    if (*data_ptr == NULL) {
-        if ((*data_ptr = (char *)malloc(SHA1_LEN_STR+1)) == NULL)
-            return SHA1_RC_MEM;
-        if (data_len != NULL)
-            *data_len = SHA1_LEN_STR+1;
-    }
-    else {
-        if (data_len != NULL) {
-            if (*data_len < SHA1_LEN_STR+1)
-                return SHA1_RC_MEM;
-            *data_len = SHA1_LEN_STR+1;
-        }
-    }
-
-    bufptr = buf;
-    buflen = sizeof(buf);
-    if ((rc = sha1_store(sha1, (void **)((void *)&bufptr), &buflen)) != SHA1_RC_OK)
-        return rc;
-
-    for (i = 0; i < (int)buflen; i++) {
-           (*data_ptr)[(i*2)+0] = hex[(int)(bufptr[i] >> 4)];
-           (*data_ptr)[(i*2)+1] = hex[(int)(bufptr[i] & 0x0f)];
-    }
-    (*data_ptr)[(i*2)] = '\0';
-    return SHA1_RC_OK;
-}
-
-sha1_rc_t sha1_destroy(sha1_t *sha1)
-{
-    if (sha1 == NULL)
-        return SHA1_RC_ARG;
-    free(sha1);
-    return SHA1_RC_OK;
-}
-
diff --git a/libs/uuid/uuid_sha1.h b/libs/uuid/uuid_sha1.h
deleted file mode 100644 (file)
index 336bfc2..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_sha1.h: SHA-1 API definition
-*/
-
-#ifndef __SHA1_H___
-#define __SHA1_H___
-
-#include <string.h> /* size_t */
-
-#define SHA1_PREFIX uuid_
-
-/* embedding support */
-#ifdef SHA1_PREFIX
-#if defined(__STDC__) || defined(__cplusplus)
-#define __SHA1_CONCAT(x,y) x ## y
-#define SHA1_CONCAT(x,y) __SHA1_CONCAT(x,y)
-#else
-#define __SHA1_CONCAT(x) x
-#define SHA1_CONCAT(x,y) __SHA1_CONCAT(x)y
-#endif
-#define sha1_st      SHA1_CONCAT(SHA1_PREFIX,sha1_st)
-#define sha1_t       SHA1_CONCAT(SHA1_PREFIX,sha1_t)
-#define sha1_create  SHA1_CONCAT(SHA1_PREFIX,sha1_create)
-#define sha1_init    SHA1_CONCAT(SHA1_PREFIX,sha1_init)
-#define sha1_update  SHA1_CONCAT(SHA1_PREFIX,sha1_update)
-#define sha1_store   SHA1_CONCAT(SHA1_PREFIX,sha1_store)
-#define sha1_format  SHA1_CONCAT(SHA1_PREFIX,sha1_format)
-#define sha1_destroy SHA1_CONCAT(SHA1_PREFIX,sha1_destroy)
-#endif
-
-struct sha1_st;
-typedef struct sha1_st sha1_t;
-
-#define SHA1_LEN_BIN 20
-#define SHA1_LEN_STR 40
-
-typedef enum {
-    SHA1_RC_OK  = 0,
-    SHA1_RC_ARG = 1,
-    SHA1_RC_MEM = 2,
-    SHA1_RC_INT = 3
-} sha1_rc_t;
-
-extern sha1_rc_t sha1_create  (sha1_t **sha1);
-extern sha1_rc_t sha1_init    (sha1_t  *sha1);
-extern sha1_rc_t sha1_update  (sha1_t  *sha1, const void  *data_ptr, size_t  data_len);
-extern sha1_rc_t sha1_store   (sha1_t  *sha1,       void **data_ptr, size_t *data_len);
-extern sha1_rc_t sha1_format  (sha1_t  *sha1,       char **data_ptr, size_t *data_len);
-extern sha1_rc_t sha1_destroy (sha1_t  *sha1);
-
-#endif /* __SHA1_H___ */
-
diff --git a/libs/uuid/uuid_str.c b/libs/uuid/uuid_str.c
deleted file mode 100644 (file)
index c1c245f..0000000
+++ /dev/null
@@ -1,762 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_str.c: string formatting functions
-*/
-
-/*
- * Copyright Patrick Powell 1995
- * This code is based on code written by Patrick Powell <papowell@astart.com>
- * It may be used for any purpose as long as this notice remains intact
- * on all source code distributions.
- */
-
-/*
- * This code contains numerious changes and enhancements which were
- * made by lots of contributors over the last years to Patrick Powell's
- * original code:
- *
- * o Patrick Powell <papowell@astart.com>      (1995)
- * o Brandon Long <blong@fiction.net>          (1996, for Mutt)
- * o Thomas Roessler <roessler@guug.de>        (1998, for Mutt)
- * o Michael Elkins <me@cs.hmc.edu>            (1998, for Mutt)
- * o Andrew Tridgell <tridge@samba.org>        (1998, for Samba)
- * o Luke Mewburn <lukem@netbsd.org>           (1999, for LukemFTP)
- * o Ralf S. Engelschall <rse@engelschall.com> (1999, for OSSP)
- */
-
-/* own headers (part 1/2) */
-#include "uuid_ac.h"
-
-/* system headers */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <ctype.h>
-
-/* own headers (part 2/2) */
-#include "uuid_str.h"
-
-#if HAVE_LONG_LONG
-#define LLONG long long
-#else
-#define LLONG long
-#endif
-
-#if HAVE_LONG_DOUBLE
-#define LDOUBLE long double
-#else
-#define LDOUBLE double
-#endif
-
-static void fmtstr     (char *, size_t *, size_t, char *, int, int, int);
-static void fmtint     (char *, size_t *, size_t, LLONG, int, int, int, int);
-static void fmtfp      (char *, size_t *, size_t, LDOUBLE, int, int, int);
-static void dopr_outch (char *, size_t *, size_t, int);
-
-/* format read states */
-#define DP_S_DEFAULT    0
-#define DP_S_FLAGS      1
-#define DP_S_MIN        2
-#define DP_S_DOT        3
-#define DP_S_MAX        4
-#define DP_S_MOD        5
-#define DP_S_CONV       6
-#define DP_S_DONE       7
-
-/* format flags - Bits */
-#define DP_F_MINUS      (1 << 0)
-#define DP_F_PLUS       (1 << 1)
-#define DP_F_SPACE      (1 << 2)
-#define DP_F_NUM        (1 << 3)
-#define DP_F_ZERO       (1 << 4)
-#define DP_F_UP         (1 << 5)
-#define DP_F_UNSIGNED   (1 << 6)
-
-/* conversion flags */
-#define DP_C_SHORT      1
-#define DP_C_LONG       2
-#define DP_C_LDOUBLE    3
-#define DP_C_LLONG      4
-
-/* some handy macros */
-#define char_to_int(p) (p - '0')
-#define STR_MAX(p,q) ((p >= q) ? p : q)
-#define NUL '\0'
-
-static void
-dopr(
-    char *buffer,
-    size_t maxlen,
-    size_t *retlen,
-    const char *format,
-    va_list args)
-{
-    char ch;
-    LLONG value;
-    LDOUBLE fvalue;
-    char *strvalue;
-    int min;
-    int max;
-    int state;
-    int flags;
-    int cflags;
-    size_t currlen;
-
-    state = DP_S_DEFAULT;
-    flags = currlen = cflags = min = 0;
-    max = -1;
-    ch = *format++;
-
-    if (buffer == NULL)
-        maxlen = 999999;
-
-    while (state != DP_S_DONE) {
-        if ((ch == NUL) || (currlen >= maxlen))
-            state = DP_S_DONE;
-
-        switch (state) {
-        case DP_S_DEFAULT:
-            if (ch == '%')
-                state = DP_S_FLAGS;
-            else
-                dopr_outch(buffer, &currlen, maxlen, ch);
-            ch = *format++;
-            break;
-        case DP_S_FLAGS:
-            switch (ch) {
-                case '-':
-                    flags |= DP_F_MINUS;
-                    ch = *format++;
-                    break;
-                case '+':
-                    flags |= DP_F_PLUS;
-                    ch = *format++;
-                    break;
-                case ' ':
-                    flags |= DP_F_SPACE;
-                    ch = *format++;
-                    break;
-                case '#':
-                    flags |= DP_F_NUM;
-                    ch = *format++;
-                    break;
-                case '0':
-                    flags |= DP_F_ZERO;
-                    ch = *format++;
-                    break;
-                default:
-                    state = DP_S_MIN;
-                    break;
-            }
-            break;
-        case DP_S_MIN:
-            if (isdigit((unsigned char)ch)) {
-                min = 10 * min + char_to_int(ch);
-                ch = *format++;
-            } else if (ch == '*') {
-                min = va_arg(args, int);
-                ch = *format++;
-                state = DP_S_DOT;
-            } else
-                state = DP_S_DOT;
-            break;
-        case DP_S_DOT:
-            if (ch == '.') {
-                state = DP_S_MAX;
-                ch = *format++;
-            } else
-                state = DP_S_MOD;
-            break;
-        case DP_S_MAX:
-            if (isdigit((unsigned char)ch)) {
-                if (max < 0)
-                    max = 0;
-                max = 10 * max + char_to_int(ch);
-                ch = *format++;
-            } else if (ch == '*') {
-                max = va_arg(args, int);
-                ch = *format++;
-                state = DP_S_MOD;
-            } else
-                state = DP_S_MOD;
-            break;
-        case DP_S_MOD:
-            switch (ch) {
-                case 'h':
-                    cflags = DP_C_SHORT;
-                    ch = *format++;
-                    break;
-                case 'l':
-                    if (*format == 'l') {
-                        cflags = DP_C_LLONG;
-                        format++;
-                    } else
-                        cflags = DP_C_LONG;
-                    ch = *format++;
-                    break;
-                case 'q':
-                    cflags = DP_C_LLONG;
-                    ch = *format++;
-                    break;
-                case 'L':
-                    cflags = DP_C_LDOUBLE;
-                    ch = *format++;
-                    break;
-                default:
-                    break;
-            }
-            state = DP_S_CONV;
-            break;
-        case DP_S_CONV:
-            switch (ch) {
-            case 'd':
-            case 'i':
-                switch (cflags) {
-                case DP_C_SHORT:
-                    value = (short int)va_arg(args, int);
-                    break;
-                case DP_C_LONG:
-                    value = va_arg(args, long int);
-                    break;
-                case DP_C_LLONG:
-                    value = va_arg(args, LLONG);
-                    break;
-                default:
-                    value = va_arg(args, int);
-                    break;
-                }
-                fmtint(buffer, &currlen, maxlen, value, 10, min, max, flags);
-                break;
-            case 'X':
-                flags |= DP_F_UP;
-                /* FALLTHROUGH */
-            case 'x':
-            case 'o':
-            case 'u':
-                flags |= DP_F_UNSIGNED;
-                switch (cflags) {
-                    case DP_C_SHORT:
-                        value = (unsigned short int)va_arg(args, unsigned int);
-                        break;
-                    case DP_C_LONG:
-                        value = (LLONG)va_arg(args, unsigned long int);
-                        break;
-                    case DP_C_LLONG:
-                        value = va_arg(args, unsigned LLONG);
-                        break;
-                    default:
-                        value = (LLONG)va_arg(args, unsigned int);
-                        break;
-                }
-                fmtint(buffer, &currlen, maxlen, value,
-                       ch == 'o' ? 8 : (ch == 'u' ? 10 : 16),
-                       min, max, flags);
-                break;
-            case 'f':
-                if (cflags == DP_C_LDOUBLE)
-                    fvalue = va_arg(args, LDOUBLE);
-                else
-                    fvalue = va_arg(args, double);
-                fmtfp(buffer, &currlen, maxlen, fvalue, min, max, flags);
-                break;
-            case 'E':
-                flags |= DP_F_UP;
-                /* FALLTHROUGH */
-            case 'e':
-                if (cflags == DP_C_LDOUBLE)
-                    fvalue = va_arg(args, LDOUBLE);
-                else
-                    fvalue = va_arg(args, double);
-                break;
-            case 'G':
-                flags |= DP_F_UP;
-                /* FALLTHROUGH */
-            case 'g':
-                if (cflags == DP_C_LDOUBLE)
-                    fvalue = va_arg(args, LDOUBLE);
-                else
-                    fvalue = va_arg(args, double);
-                break;
-            case 'c':
-                dopr_outch(buffer, &currlen, maxlen, va_arg(args, int));
-                break;
-            case 's':
-                strvalue = va_arg(args, char *);
-                if (max < 0)
-                    max = maxlen;
-                fmtstr(buffer, &currlen, maxlen, strvalue, flags, min, max);
-                break;
-            case 'p':
-                value = (long)va_arg(args, void *);
-                fmtint(buffer, &currlen, maxlen, value, 16, min, max, flags);
-                break;
-            case 'n': /* XXX */
-                if (cflags == DP_C_SHORT) {
-                    short int *num;
-                    num = va_arg(args, short int *);
-                    *num = currlen;
-                } else if (cflags == DP_C_LONG) { /* XXX */
-                    long int *num;
-                    num = va_arg(args, long int *);
-                    *num = (long int) currlen;
-                } else if (cflags == DP_C_LLONG) { /* XXX */
-                    LLONG *num;
-                    num = va_arg(args, LLONG *);
-                    *num = (LLONG) currlen;
-                } else {
-                    int *num;
-                    num = va_arg(args, int *);
-                    *num = currlen;
-                }
-                break;
-            case '%':
-                dopr_outch(buffer, &currlen, maxlen, ch);
-                break;
-            case 'w':
-                /* not supported yet, treat as next char */
-                ch = *format++;
-                break;
-            default:
-                /* unknown, skip */
-                break;
-            }
-            ch = *format++;
-            state = DP_S_DEFAULT;
-            flags = cflags = min = 0;
-            max = -1;
-            break;
-        case DP_S_DONE:
-            break;
-        default:
-            break;
-        }
-    }
-    if (currlen >= maxlen - 1)
-        currlen = maxlen - 1;
-    if (buffer != NULL)
-        buffer[currlen] = NUL;
-    *retlen = currlen;
-    return;
-}
-
-static void
-fmtstr(
-    char *buffer,
-    size_t *currlen,
-    size_t maxlen,
-    char *value,
-    int flags,
-    int min,
-    int max)
-{
-    int padlen, strln;
-    int cnt = 0;
-
-    if (value == NULL)
-        value = "<NULL>";
-    for (strln = 0; value[strln] != '\0'; strln++)
-        ;
-    padlen = min - strln;
-    if (padlen < 0)
-        padlen = 0;
-    if (flags & DP_F_MINUS)
-        padlen = -padlen;
-
-    while ((padlen > 0) && (cnt < max)) {
-        dopr_outch(buffer, currlen, maxlen, ' ');
-        --padlen;
-        ++cnt;
-    }
-    while (*value && (cnt < max)) {
-        dopr_outch(buffer, currlen, maxlen, *value++);
-        ++cnt;
-    }
-    while ((padlen < 0) && (cnt < max)) {
-        dopr_outch(buffer, currlen, maxlen, ' ');
-        ++padlen;
-        ++cnt;
-    }
-}
-
-static void
-fmtint(
-    char *buffer,
-    size_t *currlen,
-    size_t maxlen,
-    LLONG value,
-    int base,
-    int min,
-    int max,
-    int flags)
-{
-    int signvalue = 0;
-    unsigned LLONG uvalue;
-    char convert[20];
-    int place = 0;
-    int spadlen = 0;
-    int zpadlen = 0;
-    int caps = 0;
-
-    if (max < 0)
-        max = 0;
-    uvalue = value;
-    if (!(flags & DP_F_UNSIGNED)) {
-        if (value < 0) {
-            signvalue = '-';
-            uvalue = -value;
-        } else if (flags & DP_F_PLUS)
-            signvalue = '+';
-        else if (flags & DP_F_SPACE)
-            signvalue = ' ';
-    }
-    if (flags & DP_F_UP)
-        caps = 1;
-    do {
-        convert[place++] =
-            (caps ? "0123456789ABCDEF" : "0123456789abcdef")
-            [uvalue % (unsigned) base];
-        uvalue = (uvalue / (unsigned) base);
-    } while (uvalue && (place < 20));
-    if (place == 20)
-        place--;
-    convert[place] = 0;
-
-    zpadlen = max - place;
-    spadlen = min - STR_MAX(max, place) - (signvalue ? 1 : 0);
-    if (zpadlen < 0)
-        zpadlen = 0;
-    if (spadlen < 0)
-        spadlen = 0;
-    if (flags & DP_F_ZERO) {
-        zpadlen = STR_MAX(zpadlen, spadlen);
-        spadlen = 0;
-    }
-    if (flags & DP_F_MINUS)
-        spadlen = -spadlen;
-
-    /* spaces */
-    while (spadlen > 0) {
-        dopr_outch(buffer, currlen, maxlen, ' ');
-        --spadlen;
-    }
-
-    /* sign */
-    if (signvalue)
-        dopr_outch(buffer, currlen, maxlen, signvalue);
-
-    /* zeros */
-    if (zpadlen > 0) {
-        while (zpadlen > 0) {
-            dopr_outch(buffer, currlen, maxlen, '0');
-            --zpadlen;
-        }
-    }
-    /* digits */
-    while (place > 0)
-        dopr_outch(buffer, currlen, maxlen, convert[--place]);
-
-    /* left justified spaces */
-    while (spadlen < 0) {
-        dopr_outch(buffer, currlen, maxlen, ' ');
-        ++spadlen;
-    }
-    return;
-}
-
-static LDOUBLE
-math_abs(LDOUBLE value)
-{
-    LDOUBLE result = value;
-    if (value < 0)
-        result = -value;
-    return result;
-}
-
-static LDOUBLE
-math_pow10(int exponent)
-{
-    LDOUBLE result = 1;
-    while (exponent > 0) {
-        result *= 10;
-        exponent--;
-    }
-    return result;
-}
-
-static long
-math_round(LDOUBLE value)
-{
-    long intpart;
-    intpart = (long) value;
-    value = value - intpart;
-    if (value >= 0.5)
-        intpart++;
-    return intpart;
-}
-
-static void
-fmtfp(
-    char *buffer,
-    size_t *currlen,
-    size_t maxlen,
-    LDOUBLE fvalue,
-    int min,
-    int max,
-    int flags)
-{
-    int signvalue = 0;
-    LDOUBLE ufvalue;
-    char iconvert[20];
-    char fconvert[20];
-    int iplace = 0;
-    int fplace = 0;
-    int padlen = 0;
-    int zpadlen = 0;
-    int caps = 0;
-    long intpart;
-    long fracpart;
-
-    if (max < 0)
-        max = 6;
-    ufvalue = math_abs(fvalue);
-    if (fvalue < 0)
-        signvalue = '-';
-    else if (flags & DP_F_PLUS)
-        signvalue = '+';
-    else if (flags & DP_F_SPACE)
-        signvalue = ' ';
-
-    intpart = (long)ufvalue;
-
-    /* sorry, we only support 9 digits past the decimal because of our
-       conversion method */
-    if (max > 9)
-        max = 9;
-
-    /* we "cheat" by converting the fractional part to integer by
-       multiplying by a factor of 10 */
-    fracpart = math_round((math_pow10(max)) * (ufvalue - intpart));
-
-    if (fracpart >= math_pow10(max)) {
-        intpart++;
-        fracpart -= (long)math_pow10(max);
-    }
-
-    /* convert integer part */
-    do {
-        iconvert[iplace++] =
-            (caps ? "0123456789ABCDEF"
-              : "0123456789abcdef")[intpart % 10];
-        intpart = (intpart / 10);
-    } while (intpart && (iplace < 20));
-    if (iplace == 20)
-        iplace--;
-    iconvert[iplace] = 0;
-
-    /* convert fractional part */
-    do {
-        fconvert[fplace++] =
-            (caps ? "0123456789ABCDEF"
-              : "0123456789abcdef")[fracpart % 10];
-        fracpart = (fracpart / 10);
-    } while (fracpart && (fplace < 20));
-    if (fplace == 20)
-        fplace--;
-    fconvert[fplace] = 0;
-
-    /* -1 for decimal point, another -1 if we are printing a sign */
-    padlen = min - iplace - max - 1 - ((signvalue) ? 1 : 0);
-    zpadlen = max - fplace;
-    if (zpadlen < 0)
-        zpadlen = 0;
-    if (padlen < 0)
-        padlen = 0;
-    if (flags & DP_F_MINUS)
-        padlen = -padlen;
-
-    if ((flags & DP_F_ZERO) && (padlen > 0)) {
-        if (signvalue) {
-            dopr_outch(buffer, currlen, maxlen, signvalue);
-            --padlen;
-            signvalue = 0;
-        }
-        while (padlen > 0) {
-            dopr_outch(buffer, currlen, maxlen, '0');
-            --padlen;
-        }
-    }
-    while (padlen > 0) {
-        dopr_outch(buffer, currlen, maxlen, ' ');
-        --padlen;
-    }
-    if (signvalue)
-        dopr_outch(buffer, currlen, maxlen, signvalue);
-
-    while (iplace > 0)
-        dopr_outch(buffer, currlen, maxlen, iconvert[--iplace]);
-
-    /*
-     * Decimal point. This should probably use locale to find the correct
-     * char to print out.
-     */
-    if (max > 0) {
-        dopr_outch(buffer, currlen, maxlen, '.');
-
-        while (fplace > 0)
-            dopr_outch(buffer, currlen, maxlen, fconvert[--fplace]);
-    }
-    while (zpadlen > 0) {
-        dopr_outch(buffer, currlen, maxlen, '0');
-        --zpadlen;
-    }
-
-    while (padlen < 0) {
-        dopr_outch(buffer, currlen, maxlen, ' ');
-        ++padlen;
-    }
-    return;
-}
-
-static void
-dopr_outch(
-    char *buffer,
-    size_t *currlen,
-    size_t maxlen,
-    int c)
-{
-    if (*currlen < maxlen) {
-        if (buffer != NULL)
-            buffer[(*currlen)] = (char)c;
-        (*currlen)++;
-    }
-    return;
-}
-
-int
-str_vsnprintf(
-    char *str,
-    size_t count,
-    const char *fmt,
-    va_list args)
-{
-    size_t retlen;
-
-    if (str != NULL)
-        str[0] = NUL;
-    dopr(str, count, &retlen, fmt, args);
-    return retlen;
-}
-
-int
-str_snprintf(
-    char *str,
-    size_t count,
-    const char *fmt,
-    ...)
-{
-    va_list ap;
-    int rv;
-
-    va_start(ap, fmt);
-    rv = str_vsnprintf(str, count, fmt, ap);
-    va_end(ap);
-    return rv;
-}
-
-char *
-str_vasprintf(
-    const char *fmt,
-    va_list ap)
-{
-    char *rv;
-    int n;
-    va_list ap_tmp;
-
-    va_copy(ap_tmp, ap);
-    n = str_vsnprintf(NULL, 0, fmt, ap_tmp);
-    if ((rv = (char *)malloc(n+1)) == NULL)
-        return NULL;
-    str_vsnprintf(rv, n+1, fmt, ap);
-    return rv;
-}
-
-char *
-str_asprintf(
-    const char *fmt,
-    ...)
-{
-    va_list ap;
-    char *rv;
-
-    va_start(ap, fmt);
-    rv = str_vasprintf(fmt, ap);
-    va_end(ap);
-    return rv;
-}
-
-int
-str_vrsprintf(
-    char **str,
-    const char *fmt,
-    va_list ap)
-{
-    int rv;
-    size_t n;
-    va_list ap_tmp;
-
-    if (str == NULL)
-        return -1;
-    if (*str == NULL) {
-        *str = str_vasprintf(fmt, ap);
-        rv = strlen(*str);
-    }
-    else {
-        va_copy(ap_tmp, ap);
-        n = strlen(*str);
-        rv = str_vsnprintf(NULL, 0, fmt, ap_tmp);
-        if ((*str = (char *)realloc(*str, n+rv+1)) == NULL)
-            return -1;
-        str_vsnprintf((*str)+n, rv+1, fmt, ap);
-    }
-    return rv;
-}
-
-int
-str_rsprintf(
-    char **str,
-    const char *fmt,
-    ...)
-{
-    va_list ap;
-    int rv;
-
-    va_start(ap, fmt);
-    rv = str_vrsprintf(str, fmt, ap);
-    va_end(ap);
-    return rv;
-}
-
diff --git a/libs/uuid/uuid_str.h b/libs/uuid/uuid_str.h
deleted file mode 100644 (file)
index 7bca8c7..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_str.h: string formatting functions
-*/
-
-#ifndef __UUID_STR_H__
-#define __UUID_STR_H__
-
-#include <stdarg.h>
-#include <string.h>
-
-#define STR_PREFIX uuid_
-
-/* embedding support */
-#ifdef STR_PREFIX
-#if defined(__STDC__) || defined(__cplusplus)
-#define __STR_CONCAT(x,y) x ## y
-#define STR_CONCAT(x,y) __STR_CONCAT(x,y)
-#else
-#define __STR_CONCAT(x) x
-#define STR_CONCAT(x,y) __STR_CONCAT(x)y
-#endif
-#define str_vsnprintf  STR_CONCAT(STR_PREFIX,str_vsnprintf)
-#define str_snprintf   STR_CONCAT(STR_PREFIX,str_snprintf)
-#define str_vrsprintf  STR_CONCAT(STR_PREFIX,str_vrsprintf)
-#define str_rsprintf   STR_CONCAT(STR_PREFIX,str_rsprintf)
-#define str_vasprintf  STR_CONCAT(STR_PREFIX,str_vasprintf)
-#define str_asprintf   STR_CONCAT(STR_PREFIX,str_asprintf)
-#endif
-
-extern int   str_vsnprintf (char  *, size_t, const char *, va_list);
-extern int   str_snprintf  (char  *, size_t, const char *, ...);
-extern int   str_vrsprintf (char **,         const char *, va_list);
-extern int   str_rsprintf  (char **,         const char *, ...);
-extern char *str_vasprintf (                 const char *, va_list);
-extern char *str_asprintf  (                 const char *, ...);
-
-#endif /* __UUID_STR_H__ */
-
diff --git a/libs/uuid/uuid_time.c b/libs/uuid/uuid_time.c
deleted file mode 100644 (file)
index 7df8966..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_time.c: Time Management
-*/
-
-/* own headers (part (1/2) */
-#include "uuid_ac.h"
-
-/* system headers */
-#include <stdlib.h>
-#include <unistd.h>
-#include <time.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-
-/* own headers (part (1/2) */
-#include "uuid_time.h"
-
-/* POSIX gettimeofday(2) abstraction (without timezone) */
-int time_gettimeofday(struct timeval *tv)
-{
-#if defined(HAVE_GETTIMEOFDAY)
-    /* Unix/POSIX pass-through */
-    return gettimeofday(tv, NULL);
-#elif defined(HAVE_CLOCK_GETTIME)
-    /* POSIX emulation */
-    struct timespec ts;
-    if (clock_gettime(CLOCK_MONOTONIC, &ts) == -1)
-        return -1;
-    if (tv != NULL) {
-        tv->tv_sec = (long)ts.tv_sec;
-        tv->tv_usec = (long)ts.tv_nsec / 1000;
-    }
-    return 0;
-#elif defined(WIN32)
-    /* Windows emulation */
-    FILETIME ft;
-    LARGE_INTEGER li;
-    __int64 t;
-    static int tzflag;
-#if !defined(__GNUC__)
-#define EPOCHFILETIME 116444736000000000i64
-#else
-#define EPOCHFILETIME 116444736000000000LL
-#endif
-    if (tv != NULL) {
-        GetSystemTimeAsFileTime(&ft);
-        li.LowPart  = ft.dwLowDateTime;
-        li.HighPart = ft.dwHighDateTime;
-        t  = li.QuadPart;
-        t -= EPOCHFILETIME;
-        t /= 10;
-        tv->tv_sec  = (long)(t / 1000000);
-        tv->tv_usec = (long)(t % 1000000);
-    }
-    return 0;
-#else
-#error neither Win32 GetSystemTimeAsFileTime() nor Unix gettimeofday() nor POSIX clock_gettime() available!
-#endif
-}
-
-/* BSD usleep(3) abstraction */
-int time_usleep(long usec)
-{
-#if defined(WIN32) && defined(HAVE_SLEEP)
-    /* Win32 newer Sleep(3) variant */
-    Sleep(usec / 1000);
-#elif defined(WIN32)
-    /* Win32 older _sleep(3) variant */
-    _sleep(usec / 1000);
-#elif defined(HAVE_NANOSLEEP)
-    /* POSIX newer nanosleep(3) variant */
-    struct timespec ts;
-    ts.tv_sec  = 0;
-    ts.tv_nsec = 1000 * usec;
-    nanosleep(&ts, NULL);
-#else
-    /* POSIX older select(2) variant */
-    struct timeval tv;
-    tv.tv_sec  = 0;
-    tv.tv_usec = usec;
-    select(0, NULL, NULL, NULL, &tv);
-#endif
-    return 0;
-}
-
diff --git a/libs/uuid/uuid_time.h b/libs/uuid/uuid_time.h
deleted file mode 100644 (file)
index dfd790f..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
-**  OSSP uuid - Universally Unique Identifier
-**  Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP uuid, a library for the generation
-**  of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  uuid_time.h: Time Management API
-*/
-
-#ifndef __UUID_TIME_H__
-#define __UUID_TIME_H__
-
-#include "uuid_ac.h"
-
-#if defined(WIN32)
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#endif
-#include <time.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#define TIME_PREFIX uuid_
-
-/* embedding support */
-#ifdef TIME_PREFIX
-#if defined(__STDC__) || defined(__cplusplus)
-#define __TIME_CONCAT(x,y) x ## y
-#define TIME_CONCAT(x,y) __TIME_CONCAT(x,y)
-#else
-#define __TIME_CONCAT(x) x
-#define TIME_CONCAT(x,y) __TIME_CONCAT(x)y
-#endif
-#define time_gettimeofday TIME_CONCAT(TIME_PREFIX,time_gettimeofday)
-#define time_usleep       TIME_CONCAT(TIME_PREFIX,time_usleep)
-#endif
-
-/* minimum C++ support */
-#ifdef __cplusplus
-#define DECLARATION_BEGIN extern "C" {
-#define DECLARATION_END   }
-#else
-#define DECLARATION_BEGIN
-#define DECLARATION_END
-#endif
-
-DECLARATION_BEGIN
-
-#ifndef HAVE_STRUCT_TIMEVAL
-struct timeval { long tv_sec; long tv_usec; };
-#endif
-
-extern int time_gettimeofday(struct timeval *);
-extern int time_usleep(long usec);
-
-DECLARATION_END
-
-#endif /* __UUID_TIME_H__ */
-
diff --git a/libs/uuid/uuid_ui128.c b/libs/uuid/uuid_ui128.c
deleted file mode 100644 (file)
index 5eb1b80..0000000
+++ /dev/null
@@ -1,591 +0,0 @@
-/*
-**  OSSP ui128 - 128-Bit Arithmetic
-**  Copyright (c) 2002-2005 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2002-2005 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP ui128, a 128-bit arithmetic library
-**  which can be found at http://www.ossp.org/pkg/lib/ui128/.
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  ui128.c: implementation of 128-bit unsigned integer arithmetic
-*/
-
-/* own headers (part 1/2) */
-#include "uuid_ac.h"
-
-/* system headers */
-#include <string.h>
-#include <ctype.h>
-
-/* own headers (part 2/2) */
-#include "uuid_ui128.h"
-
-#define UI128_BASE   256 /* 2^8 */
-#define UI128_DIGITS 16  /* 8*16 = 128 bit */
-#define UIXX_T(n) struct { unsigned char x[n]; }
-
-/* fill an ui128_t with a sequence of a particular digit */
-#define ui128_fill(__x, __n) \
-    /*lint -save -e717*/ \
-    do { int __i; \
-      for (__i = 0; __i < UI128_DIGITS; __i++) \
-          (__x).x[__i] = (__n); \
-    } while (0) \
-    /*lint -restore*/
-
-/* the value zero */
-ui128_t ui128_zero(void)
-{
-    ui128_t z;
-
-    ui128_fill(z, 0);
-    return z;
-}
-
-/* the maximum value */
-ui128_t ui128_max(void)
-{
-    ui128_t z;
-
-    ui128_fill(z, UI128_BASE-1);
-    return z;
-}
-
-/* convert ISO-C "unsigned long" into internal format */
-ui128_t ui128_n2i(unsigned long n)
-{
-    ui128_t z;
-    int i;
-
-    i = 0;
-    do {
-        z.x[i++] = (n % UI128_BASE);
-    } while ((n /= UI128_BASE) > 0 && i < UI128_DIGITS);
-    for ( ; i < UI128_DIGITS; i++)
-        z.x[i] = 0;
-    return z;
-}
-
-/* convert internal format into ISO-C "unsigned long";
-   truncates if sizeof(unsigned long) is less than UI128_DIGITS! */
-unsigned long ui128_i2n(ui128_t x)
-{
-    unsigned long n;
-    int i;
-
-    n = 0;
-    i = (int)sizeof(n);
-    /*lint -save -e774*/
-    if (i > UI128_DIGITS)
-        i = UI128_DIGITS;
-    /*lint -restore*/
-    while (--i >= 0) {
-        n = (n * UI128_BASE) + x.x[i];
-    }
-    return n;
-}
-
-/* convert string representation of arbitrary base into internal format */
-ui128_t ui128_s2i(const char *str, char **end, int base)
-{
-    ui128_t z;
-    const char *cp;
-    int carry;
-    static char map[] = {
-         0,  1,  2,  3,  4,  5,  6,  7,  8,  9,             /* 0...9 */
-        36, 36, 36, 36, 36, 36, 36,                         /* illegal chars */
-        10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, /* A...M */
-        23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, /* N...Z */
-        36, 36, 36, 36, 36, 36,                             /* illegal chars */
-        10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, /* a...m */
-        23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35  /* m...z */
-    };
-
-    ui128_fill(z, 0);
-    if (str == NULL || (base < 2 || base > 36))
-        return z;
-    cp = str;
-    while (*cp != '\0' && isspace((int)(*cp)))
-        cp++;
-    while (   *cp != '\0'
-           && isalnum((int)(*cp))
-           && map[(int)(*cp)-'0'] < base) {
-        z = ui128_muln(z, base, &carry);
-        if (carry)
-            break;
-        z = ui128_addn(z, map[(int)(*cp)-'0'], &carry);
-        if (carry)
-            break;
-        cp++;
-    }
-    if (end != NULL)
-        *end = (char *)cp;
-    return z;
-}
-
-/* convert internal format into string representation of arbitrary base */
-char *ui128_i2s(ui128_t x, char *str, size_t len, int base)
-{
-    static char map[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-    char c;
-    int r;
-    int n;
-    int i, j;
-
-    if (str == NULL || len < 2 || (base < 2 || base > 36))
-        return NULL;
-    n = ui128_len(x);
-    i = 0;
-    do {
-        x = ui128_divn(x, base, &r);
-        str[i++] = map[r];
-        while (n > 1 && x.x[n-1] == 0)
-            n--;
-    } while (i < ((int)len-1) && (n > 1 || x.x[0] != 0));
-    str[i] = '\0';
-    for (j = 0; j < --i; j++) {
-        c = str[j];
-        str[j] = str[i];
-        str[i] = c;
-    }
-    return str;
-}
-
-/* addition of two ui128_t */
-ui128_t ui128_add(ui128_t x, ui128_t y, ui128_t *ov)
-{
-    ui128_t z;
-    int carry;
-    int i;
-
-    carry = 0;
-    for (i = 0; i < UI128_DIGITS; i++) {
-        carry += (x.x[i] + y.x[i]);
-        z.x[i] = (carry % UI128_BASE);
-        carry /= UI128_BASE;
-    }
-    if (ov != NULL)
-        *ov = ui128_n2i((unsigned long)carry);
-    return z;
-}
-
-/* addition of an ui128_t and a single digit */
-ui128_t ui128_addn(ui128_t x, int y, int *ov)
-{
-    ui128_t z;
-    int i;
-
-    for (i = 0; i < UI128_DIGITS; i++) {
-        y += x.x[i];
-        z.x[i] = (y % UI128_BASE);
-        y /= UI128_BASE;
-    }
-    if (ov != NULL)
-        *ov = y;
-    return z;
-}
-
-/* subtraction of two ui128_t */
-ui128_t ui128_sub(ui128_t x, ui128_t y, ui128_t *ov)
-{
-    ui128_t z;
-    int borrow;
-    int i;
-    int d;
-
-    borrow = 0;
-    for (i = 0; i < UI128_DIGITS; i++) {
-        d = ((x.x[i] + UI128_BASE) - borrow - y.x[i]);
-        z.x[i] = (d % UI128_BASE);
-        borrow = (1 - (d/UI128_BASE));
-    }
-    if (ov != NULL)
-        *ov = ui128_n2i((unsigned long)borrow);
-    return z;
-}
-
-/* subtraction of an ui128_t and a single digit */
-ui128_t ui128_subn(ui128_t x, int y, int *ov)
-{
-    ui128_t z;
-    int i;
-    int d;
-
-    for (i = 0; i < UI128_DIGITS; i++) {
-        d = (x.x[i] + UI128_BASE) - y;
-        z.x[i] = (d % UI128_BASE);
-        y = (1 - (d/UI128_BASE));
-    }
-    if (ov != NULL)
-        *ov = y;
-    return z;
-}
-
-/*
-             7 3 2
-         * 9 4 2 8
-         ---------
-           5 8 5 6
-   +     1 4 6 4
-   +   2 9 2 8
-   + 6 5 8 8
-   ---------------
-   = 6 9 0 1 2 9 6
-*/
-
-ui128_t ui128_mul(ui128_t x, ui128_t y, ui128_t *ov)
-{
-    UIXX_T(UI128_DIGITS+UI128_DIGITS) zx;
-    ui128_t z;
-    int carry;
-    int i, j;
-
-    /* clear temporary result buffer */
-    for (i = 0; i < (UI128_DIGITS+UI128_DIGITS); i++)
-        zx.x[i] = 0;
-
-    /* perform multiplication operation */
-    for (i = 0; i < UI128_DIGITS; i++) {
-        /* calculate partial product and immediately add to z */
-        carry = 0;
-        for (j = 0; j < UI128_DIGITS; j++) {
-            carry += (x.x[i] * y.x[j]) + zx.x[i+j];
-            zx.x[i+j] = (carry % UI128_BASE);
-            carry /= UI128_BASE;
-        }
-        /* add carry to remaining digits in z */
-        for ( ; j < UI128_DIGITS + UI128_DIGITS - i; j++) {
-            carry += zx.x[i+j];
-            zx.x[i+j] = (carry % UI128_BASE);
-            carry /= UI128_BASE;
-        }
-    }
-
-    /* provide result by splitting zx into z and ov */
-    memcpy(z.x, zx.x, UI128_DIGITS);
-    if (ov != NULL)
-        memcpy((*ov).x, &zx.x[UI128_DIGITS], UI128_DIGITS);
-
-    return z;
-}
-
-ui128_t ui128_muln(ui128_t x, int y, int *ov)
-{
-    ui128_t z;
-    int carry;
-    int i;
-
-    carry = 0;
-    for (i = 0; i < UI128_DIGITS; i++) {
-        carry += (x.x[i] * y);
-        z.x[i] = (carry % UI128_BASE);
-        carry /= UI128_BASE;
-    }
-    if (ov != NULL)
-        *ov = carry;
-    return z;
-}
-
-/*
-  =   2078 [q]
-   0615367 [x] : 296 [y]
-  -0592    [dq]
-  -----
-  = 0233
-   -0000   [dq]
-   -----
-   = 2336
-    -2072  [dq]
-    -----
-    = 2647
-     -2308 [dq]
-     -----
-     = 279 [r]
- */
-ui128_t ui128_div(ui128_t x, ui128_t y, ui128_t *ov)
-{
-    ui128_t q;
-    ui128_t r;
-    int i;
-    int n, m;
-    int ovn;
-
-    /* determine actual number of involved digits */
-    n = ui128_len(x);
-    m = ui128_len(y);
-
-    if (m == 1) {
-        /* simple case #1: reduceable to ui128_divn() */
-        if (y.x[0] == 0) {
-            /* error case: division by zero! */
-            ui128_fill(q, 0);
-            ui128_fill(r, 0);
-        }
-        else {
-            q = ui128_divn(x, y.x[0], &ovn);
-            ui128_fill(r, 0);
-            r.x[0] = (unsigned char)ovn;
-        }
-
-    } else if (n < m) {
-        /* simple case #2: everything is in the remainder */
-        ui128_fill(q, 0);
-        r = x;
-
-    } else { /* n >= m, m > 1 */
-        /* standard case: x[0..n] / y[0..m] */
-        UIXX_T(UI128_DIGITS+1) rx;
-        UIXX_T(UI128_DIGITS+1) dq;
-        ui128_t t;
-        int km;
-        int k;
-        int qk;
-        unsigned long y2;
-        unsigned long r3;
-        int borrow;
-        int d;
-
-        /* rx is x with a leading zero in order to make
-           sure that n > m and not just n >= m */
-        memcpy(rx.x, x.x, UI128_DIGITS);
-        rx.x[UI128_DIGITS] = 0;
-
-        for (k = n - m; k >= 0; k--) {
-            /* efficiently compute qk by guessing
-               qk := rx[k+m-2...k+m]/y[m-2...m-1] */
-            km = k + m;
-            y2 = (y.x[m-1]*UI128_BASE) + y.x[m-2];
-            r3 = (rx.x[km]*(UI128_BASE*UI128_BASE)) +
-                 (rx.x[km-1]*UI128_BASE) + rx.x[km-2];
-            qk = r3 / y2;
-            if (qk >= UI128_BASE)
-                qk = UI128_BASE - 1;
-
-            /* dq := y*qk (post-adjust qk if guessed incorrectly) */
-            t = ui128_muln(y, qk, &ovn);
-            memcpy(dq.x, t.x, UI128_DIGITS);
-            dq.x[m] = (unsigned char)ovn;
-            for (i = m; i > 0; i--)
-                if (rx.x[i+k] != dq.x[i])
-                    break;
-            if (rx.x[i+k] < dq.x[i]) {
-                t = ui128_muln(y, --qk, &ovn);
-                memcpy(dq.x, t.x, UI128_DIGITS);
-                dq.x[m] = (unsigned char)ovn;
-            }
-
-            /* store qk */
-            q.x[k] = (unsigned char)qk;
-
-            /* rx := rx - dq*(b^k) */
-            borrow = 0;
-            for (i = 0; i < m+1; i++) {
-                d = ((rx.x[k+i] + UI128_BASE) - borrow - dq.x[i]);
-                rx.x[k+i] = (d % UI128_BASE);
-                borrow = (1 - (d/UI128_BASE));
-            }
-        }
-        memcpy(r.x, rx.x, m);
-
-        /* fill out results with leading zeros */
-        for (i = n-m+1; i < UI128_DIGITS; i++)
-            q.x[i] = 0;
-        for (i = m; i < UI128_DIGITS; i++)
-            r.x[i] = 0;
-    }
-
-    /* provide results */
-    if (ov != NULL)
-        *ov = r;
-    return q;
-}
-
-ui128_t ui128_divn(ui128_t x, int y, int *ov)
-{
-    ui128_t z;
-    unsigned int carry;
-    int i;
-
-    carry = 0;
-    for (i = (UI128_DIGITS - 1); i >= 0; i--) {
-        carry = (carry * UI128_BASE) + x.x[i];
-        z.x[i] = (carry / y);
-        carry %= y;
-    }
-    if (ov != NULL)
-        *ov = carry;
-    return z;
-}
-
-ui128_t ui128_and(ui128_t x, ui128_t y)
-{
-    ui128_t z;
-    int i;
-
-    for (i = 0; i < UI128_DIGITS; i++)
-        z.x[i] = (x.x[i] & y.x[i]);
-    return z;
-}
-
-ui128_t ui128_or(ui128_t x, ui128_t y)
-{
-    ui128_t z;
-    int i;
-
-    for (i = 0; i < UI128_DIGITS; i++)
-        z.x[i] = (x.x[i] | y.x[i]);
-    return z;
-}
-
-ui128_t ui128_xor(ui128_t x, ui128_t y)
-{
-    ui128_t z;
-    int i;
-
-    for (i = 0; i < UI128_DIGITS; i++)
-        z.x[i] = ((x.x[i] & ~(y.x[i])) | (~(x.x[i]) & (y.x[i])));
-    return z;
-}
-
-ui128_t ui128_not(ui128_t x)
-{
-    ui128_t z;
-    int i;
-
-    for (i = 0; i < UI128_DIGITS; i++)
-        z.x[i] = ~(x.x[i]);
-    return z;
-}
-
-ui128_t ui128_rol(ui128_t x, int s, ui128_t *ov)
-{
-    UIXX_T(UI128_DIGITS+UI128_DIGITS) zx;
-    ui128_t z;
-    int i;
-    int carry;
-
-    if (s <= 0) {
-        /* no shift at all */
-        if (ov != NULL)
-            *ov = ui128_zero();
-        return x;
-    }
-    else if (s > 128) {
-        /* too large shift */
-        if (ov != NULL)
-            *ov = ui128_zero();
-        return ui128_zero();
-    }
-    else if (s == 128) {
-        /* maximum shift */
-        if (ov != NULL)
-            *ov = x;
-        return ui128_zero();
-    }
-    else { /* regular shift */
-        /* shift (logically) left by s/8 bytes */
-        for (i = 0; i < UI128_DIGITS+UI128_DIGITS; i++)
-            zx.x[i] = 0;
-        for (i = 0; i < UI128_DIGITS; i++)
-            zx.x[i+(s/8)] = x.x[i];
-        /* shift (logically) left by remaining s%8 bits */
-        s %= 8;
-        if (s > 0) {
-            carry = 0;
-            for (i = 0; i < UI128_DIGITS+UI128_DIGITS; i++) {
-                carry += (zx.x[i] * (1 << s));
-                zx.x[i] = (carry % UI128_BASE);
-                carry /= UI128_BASE;
-            }
-        }
-        memcpy(z.x, zx.x, UI128_DIGITS);
-        if (ov != NULL)
-            memcpy((*ov).x, &zx.x[UI128_DIGITS], UI128_DIGITS);
-    }
-    return z;
-}
-
-ui128_t ui128_ror(ui128_t x, int s, ui128_t *ov)
-{
-    UIXX_T(UI128_DIGITS+UI128_DIGITS) zx;
-    ui128_t z;
-    int i;
-    int carry;
-
-    if (s <= 0) {
-        /* no shift at all */
-        if (ov != NULL)
-            *ov = ui128_zero();
-        return x;
-    }
-    else if (s > 128) {
-        /* too large shift */
-        if (ov != NULL)
-            *ov = ui128_zero();
-        return ui128_zero();
-    }
-    else if (s == 128) {
-        /* maximum shift */
-        if (ov != NULL)
-            *ov = x;
-        return ui128_zero();
-    }
-    else { /* regular shift */
-        /* shift (logically) right by s/8 bytes */
-        for (i = 0; i < UI128_DIGITS+UI128_DIGITS; i++)
-            zx.x[i] = 0;
-        for (i = 0; i < UI128_DIGITS; i++)
-            zx.x[UI128_DIGITS+i-(s/8)] = x.x[i];
-        /* shift (logically) right by remaining s%8 bits */
-        s %= 8;
-        if (s > 0) {
-            carry = 0;
-            for (i = (UI128_DIGITS+UI128_DIGITS - 1); i >= 0; i--) {
-                carry = (carry * UI128_BASE) + zx.x[i];
-                zx.x[i] = (carry / (1 << s));
-                carry %= (1 << s);
-            }
-        }
-        memcpy(z.x, &zx.x[UI128_DIGITS], UI128_DIGITS);
-        if (ov != NULL)
-            memcpy((*ov).x, zx.x, UI128_DIGITS);
-    }
-    return z;
-}
-
-int ui128_cmp(ui128_t x, ui128_t y)
-{
-    int i;
-
-    i = UI128_DIGITS - 1;
-    while (i > 0 && x.x[i] == y.x[i])
-        i--;
-    return (x.x[i] - y.x[i]);
-}
-
-int ui128_len(ui128_t x)
-{
-    int i;
-
-    for (i = UI128_DIGITS; i > 1 && x.x[i-1] == 0; i--)
-        ;
-    return i;
-}
-
diff --git a/libs/uuid/uuid_ui128.h b/libs/uuid/uuid_ui128.h
deleted file mode 100644 (file)
index 4e19c9b..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
-**  OSSP ui128 - 128-Bit Arithmetic
-**  Copyright (c) 2002-2005 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2002-2005 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP ui128, a 128-bit arithmetic library
-**  which can be found at http://www.ossp.org/pkg/lib/ui128/.
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  ui128.h: API declaration
-*/
-
-#ifndef __UI128_H__
-#define __UI128_H__
-
-#include <string.h>
-
-#define UI128_PREFIX uuid_
-
-/* embedding support */
-#ifdef UI128_PREFIX
-#if defined(__STDC__) || defined(__cplusplus)
-#define __UI128_CONCAT(x,y) x ## y
-#define UI128_CONCAT(x,y) __UI128_CONCAT(x,y)
-#else
-#define __UI128_CONCAT(x) x
-#define UI128_CONCAT(x,y) __UI128_CONCAT(x)y
-#endif
-#define ui128_t     UI128_CONCAT(UI128_PREFIX,ui128_t)
-#define ui128_zero  UI128_CONCAT(UI128_PREFIX,ui128_zero)
-#define ui128_max   UI128_CONCAT(UI128_PREFIX,ui128_max)
-#define ui128_n2i   UI128_CONCAT(UI128_PREFIX,ui128_n2i)
-#define ui128_i2n   UI128_CONCAT(UI128_PREFIX,ui128_i2n)
-#define ui128_s2i   UI128_CONCAT(UI128_PREFIX,ui128_s2i)
-#define ui128_i2s   UI128_CONCAT(UI128_PREFIX,ui128_i2s)
-#define ui128_add   UI128_CONCAT(UI128_PREFIX,ui128_add)
-#define ui128_addn  UI128_CONCAT(UI128_PREFIX,ui128_addn)
-#define ui128_sub   UI128_CONCAT(UI128_PREFIX,ui128_sub)
-#define ui128_subn  UI128_CONCAT(UI128_PREFIX,ui128_subn)
-#define ui128_mul   UI128_CONCAT(UI128_PREFIX,ui128_mul)
-#define ui128_muln  UI128_CONCAT(UI128_PREFIX,ui128_muln)
-#define ui128_div   UI128_CONCAT(UI128_PREFIX,ui128_div)
-#define ui128_divn  UI128_CONCAT(UI128_PREFIX,ui128_divn)
-#define ui128_and   UI128_CONCAT(UI128_PREFIX,ui128_and)
-#define ui128_or    UI128_CONCAT(UI128_PREFIX,ui128_or)
-#define ui128_xor   UI128_CONCAT(UI128_PREFIX,ui128_xor)
-#define ui128_not   UI128_CONCAT(UI128_PREFIX,ui128_not)
-#define ui128_rol   UI128_CONCAT(UI128_PREFIX,ui128_rol)
-#define ui128_ror   UI128_CONCAT(UI128_PREFIX,ui128_ror)
-#define ui128_len   UI128_CONCAT(UI128_PREFIX,ui128_len)
-#define ui128_cmp   UI128_CONCAT(UI128_PREFIX,ui128_cmp)
-#endif
-
-typedef struct {
-    unsigned char x[16]; /* x_0, ..., x_15 */
-} ui128_t;
-
-#define ui128_cons(x15,x14,x13,x12,x11,x10,x9,x8,x7,x6,x5,x4,x3,x2,x1,x0) \
-    { { 0x##x0, 0x##x1, 0x##x2,  0x##x3,  0x##x4,  0x##x5,  0x##x6,  0x##x7, \
-    { { 0x##x8, 0x##x9, 0x##x10, 0x##x11, 0x##x12, 0x##x13, 0x##x14, 0x##x15 } }
-
-/* particular values */
-extern ui128_t        ui128_zero (void);
-extern ui128_t        ui128_max  (void);
-
-/* import and export via ISO-C "unsigned long" */
-extern ui128_t        ui128_n2i  (unsigned long n);
-extern unsigned long  ui128_i2n  (ui128_t x);
-
-/* import and export via ISO-C string of arbitrary base */
-extern ui128_t        ui128_s2i  (const char *str, char **end, int base);
-extern char *         ui128_i2s  (ui128_t x, char *str, size_t len, int base);
-
-/* arithmetical operations */
-extern ui128_t        ui128_add  (ui128_t x, ui128_t y, ui128_t *ov);
-extern ui128_t        ui128_addn (ui128_t x, int     y, int     *ov);
-extern ui128_t        ui128_sub  (ui128_t x, ui128_t y, ui128_t *ov);
-extern ui128_t        ui128_subn (ui128_t x, int     y, int     *ov);
-extern ui128_t        ui128_mul  (ui128_t x, ui128_t y, ui128_t *ov);
-extern ui128_t        ui128_muln (ui128_t x, int     y, int     *ov);
-extern ui128_t        ui128_div  (ui128_t x, ui128_t y, ui128_t *ov);
-extern ui128_t        ui128_divn (ui128_t x, int     y, int     *ov);
-
-/* bit operations */
-extern ui128_t        ui128_and  (ui128_t x, ui128_t y);
-extern ui128_t        ui128_or   (ui128_t x, ui128_t y);
-extern ui128_t        ui128_xor  (ui128_t x, ui128_t y);
-extern ui128_t        ui128_not  (ui128_t x);
-extern ui128_t        ui128_rol  (ui128_t x, int s, ui128_t *ov);
-extern ui128_t        ui128_ror  (ui128_t x, int s, ui128_t *ov);
-
-/* other operations */
-extern int            ui128_len  (ui128_t x);
-extern int            ui128_cmp  (ui128_t x, ui128_t y);
-
-#endif /* __UI128_H__ */
-
diff --git a/libs/uuid/uuid_ui64.c b/libs/uuid/uuid_ui64.c
deleted file mode 100644 (file)
index 6204dde..0000000
+++ /dev/null
@@ -1,591 +0,0 @@
-/*
-**  OSSP ui64 - 64-Bit Arithmetic
-**  Copyright (c) 2002-2005 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2002-2005 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP ui64, a 64-bit arithmetic library
-**  which can be found at http://www.ossp.org/pkg/lib/ui64/.
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  ui64.c: implementation of 64-bit unsigned integer arithmetic
-*/
-
-/* own headers (part 1/2) */
-#include "uuid_ac.h"
-
-/* system headers */
-#include <string.h>
-#include <ctype.h>
-
-/* own headers (part 2/2) */
-#include "uuid_ui64.h"
-
-#define UI64_BASE   256 /* 2^8 */
-#define UI64_DIGITS 8   /* 8*8 = 64 bit */
-#define UIXX_T(n) struct { unsigned char x[n]; }
-
-/* fill an ui64_t with a sequence of a particular digit */
-#define ui64_fill(__x, __n) \
-    /*lint -save -e717*/ \
-    do { int __i; \
-      for (__i = 0; __i < UI64_DIGITS; __i++) \
-          (__x).x[__i] = (__n); \
-    } while (0) \
-    /*lint -restore*/
-
-/* the value zero */
-ui64_t ui64_zero(void)
-{
-    ui64_t z;
-
-    ui64_fill(z, 0);
-    return z;
-}
-
-/* the maximum value */
-ui64_t ui64_max(void)
-{
-    ui64_t z;
-
-    ui64_fill(z, UI64_BASE-1);
-    return z;
-}
-
-/* convert ISO-C "unsigned long" into internal format */
-ui64_t ui64_n2i(unsigned long n)
-{
-    ui64_t z;
-    int i;
-
-    i = 0;
-    do {
-        z.x[i++] = (n % UI64_BASE);
-    } while ((n /= UI64_BASE) > 0 && i < UI64_DIGITS);
-    for ( ; i < UI64_DIGITS; i++)
-        z.x[i] = 0;
-    return z;
-}
-
-/* convert internal format into ISO-C "unsigned long";
-   truncates if sizeof(unsigned long) is less than UI64_DIGITS! */
-unsigned long ui64_i2n(ui64_t x)
-{
-    unsigned long n;
-    int i;
-
-    n = 0;
-    i = (int)sizeof(n);
-    /*lint -save -e774*/
-    if (i > UI64_DIGITS)
-        i = UI64_DIGITS;
-    /*lint -restore*/
-    while (--i >= 0) {
-        n = (n * UI64_BASE) + x.x[i];
-    }
-    return n;
-}
-
-/* convert string representation of arbitrary base into internal format */
-ui64_t ui64_s2i(const char *str, char **end, int base)
-{
-    ui64_t z;
-    const char *cp;
-    int carry;
-    static char map[] = {
-         0,  1,  2,  3,  4,  5,  6,  7,  8,  9,             /* 0...9 */
-        36, 36, 36, 36, 36, 36, 36,                         /* illegal chars */
-        10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, /* A...M */
-        23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, /* N...Z */
-        36, 36, 36, 36, 36, 36,                             /* illegal chars */
-        10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, /* a...m */
-        23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35  /* m...z */
-    };
-
-    ui64_fill(z, 0);
-    if (str == NULL || (base < 2 || base > 36))
-        return z;
-    cp = str;
-    while (*cp != '\0' && isspace((int)(*cp)))
-        cp++;
-    while (   *cp != '\0'
-           && isalnum((int)(*cp))
-           && map[(int)(*cp)-'0'] < base) {
-        z = ui64_muln(z, base, &carry);
-        if (carry)
-            break;
-        z = ui64_addn(z, map[(int)(*cp)-'0'], &carry);
-        if (carry)
-            break;
-        cp++;
-    }
-    if (end != NULL)
-        *end = (char *)cp;
-    return z;
-}
-
-/* convert internal format into string representation of arbitrary base */
-char *ui64_i2s(ui64_t x, char *str, size_t len, int base)
-{
-    static char map[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-    char c;
-    int r;
-    int n;
-    int i, j;
-
-    if (str == NULL || len < 2 || (base < 2 || base > 36))
-        return NULL;
-    n = ui64_len(x);
-    i = 0;
-    do {
-        x = ui64_divn(x, base, &r);
-        str[i++] = map[r];
-        while (n > 1 && x.x[n-1] == 0)
-            n--;
-    } while (i < ((int)len-1) && (n > 1 || x.x[0] != 0));
-    str[i] = '\0';
-    for (j = 0; j < --i; j++) {
-        c = str[j];
-        str[j] = str[i];
-        str[i] = c;
-    }
-    return str;
-}
-
-/* addition of two ui64_t */
-ui64_t ui64_add(ui64_t x, ui64_t y, ui64_t *ov)
-{
-    ui64_t z;
-    int carry;
-    int i;
-
-    carry = 0;
-    for (i = 0; i < UI64_DIGITS; i++) {
-        carry += (x.x[i] + y.x[i]);
-        z.x[i] = (carry % UI64_BASE);
-        carry /= UI64_BASE;
-    }
-    if (ov != NULL)
-        *ov = ui64_n2i((unsigned long)carry);
-    return z;
-}
-
-/* addition of an ui64_t and a single digit */
-ui64_t ui64_addn(ui64_t x, int y, int *ov)
-{
-    ui64_t z;
-    int i;
-
-    for (i = 0; i < UI64_DIGITS; i++) {
-        y += x.x[i];
-        z.x[i] = (y % UI64_BASE);
-        y /= UI64_BASE;
-    }
-    if (ov != NULL)
-        *ov = y;
-    return z;
-}
-
-/* subtraction of two ui64_t */
-ui64_t ui64_sub(ui64_t x, ui64_t y, ui64_t *ov)
-{
-    ui64_t z;
-    int borrow;
-    int i;
-    int d;
-
-    borrow = 0;
-    for (i = 0; i < UI64_DIGITS; i++) {
-        d = ((x.x[i] + UI64_BASE) - borrow - y.x[i]);
-        z.x[i] = (d % UI64_BASE);
-        borrow = (1 - (d/UI64_BASE));
-    }
-    if (ov != NULL)
-        *ov = ui64_n2i((unsigned long)borrow);
-    return z;
-}
-
-/* subtraction of an ui64_t and a single digit */
-ui64_t ui64_subn(ui64_t x, int y, int *ov)
-{
-    ui64_t z;
-    int i;
-    int d;
-
-    for (i = 0; i < UI64_DIGITS; i++) {
-        d = (x.x[i] + UI64_BASE) - y;
-        z.x[i] = (d % UI64_BASE);
-        y = (1 - (d/UI64_BASE));
-    }
-    if (ov != NULL)
-        *ov = y;
-    return z;
-}
-
-/*
-             7 3 2
-         * 9 4 2 8
-         ---------
-           5 8 5 6
-   +     1 4 6 4
-   +   2 9 2 8
-   + 6 5 8 8
-   ---------------
-   = 6 9 0 1 2 9 6
-*/
-
-ui64_t ui64_mul(ui64_t x, ui64_t y, ui64_t *ov)
-{
-    UIXX_T(UI64_DIGITS+UI64_DIGITS) zx;
-    ui64_t z;
-    int carry;
-    int i, j;
-
-    /* clear temporary result buffer */
-    for (i = 0; i < (UI64_DIGITS+UI64_DIGITS); i++)
-        zx.x[i] = 0;
-
-    /* perform multiplication operation */
-    for (i = 0; i < UI64_DIGITS; i++) {
-        /* calculate partial product and immediately add to z */
-        carry = 0;
-        for (j = 0; j < UI64_DIGITS; j++) {
-            carry += (x.x[i] * y.x[j]) + zx.x[i+j];
-            zx.x[i+j] = (carry % UI64_BASE);
-            carry /= UI64_BASE;
-        }
-        /* add carry to remaining digits in z */
-        for ( ; j < UI64_DIGITS + UI64_DIGITS - i; j++) {
-            carry += zx.x[i+j];
-            zx.x[i+j] = (carry % UI64_BASE);
-            carry /= UI64_BASE;
-        }
-    }
-
-    /* provide result by splitting zx into z and ov */
-    memcpy(z.x, zx.x, UI64_DIGITS);
-    if (ov != NULL)
-        memcpy((*ov).x, &zx.x[UI64_DIGITS], UI64_DIGITS);
-
-    return z;
-}
-
-ui64_t ui64_muln(ui64_t x, int y, int *ov)
-{
-    ui64_t z;
-    int carry;
-    int i;
-
-    carry = 0;
-    for (i = 0; i < UI64_DIGITS; i++) {
-        carry += (x.x[i] * y);
-        z.x[i] = (carry % UI64_BASE);
-        carry /= UI64_BASE;
-    }
-    if (ov != NULL)
-        *ov = carry;
-    return z;
-}
-
-/*
-  =   2078 [q]
-   0615367 [x] : 296 [y]
-  -0592    [dq]
-  -----
-  = 0233
-   -0000   [dq]
-   -----
-   = 2336
-    -2072  [dq]
-    -----
-    = 2647
-     -2308 [dq]
-     -----
-     = 279 [r]
- */
-ui64_t ui64_div(ui64_t x, ui64_t y, ui64_t *ov)
-{
-    ui64_t q;
-    ui64_t r;
-    int i;
-    int n, m;
-    int ovn;
-
-    /* determine actual number of involved digits */
-    n = ui64_len(x);
-    m = ui64_len(y);
-
-    if (m == 1) {
-        /* simple case #1: reduceable to ui64_divn() */
-        if (y.x[0] == 0) {
-            /* error case: division by zero! */
-            ui64_fill(q, 0);
-            ui64_fill(r, 0);
-        }
-        else {
-            q = ui64_divn(x, y.x[0], &ovn);
-            ui64_fill(r, 0);
-            r.x[0] = (unsigned char)ovn;
-        }
-
-    } else if (n < m) {
-        /* simple case #2: everything is in the remainder */
-        ui64_fill(q, 0);
-        r = x;
-
-    } else { /* n >= m, m > 1 */
-        /* standard case: x[0..n] / y[0..m] */
-        UIXX_T(UI64_DIGITS+1) rx;
-        UIXX_T(UI64_DIGITS+1) dq;
-        ui64_t t;
-        int km;
-        int k;
-        int qk;
-        unsigned long y2;
-        unsigned long r3;
-        int borrow;
-        int d;
-
-        /* rx is x with a leading zero in order to make
-           sure that n > m and not just n >= m */
-        memcpy(rx.x, x.x, UI64_DIGITS);
-        rx.x[UI64_DIGITS] = 0;
-
-        for (k = n - m; k >= 0; k--) {
-            /* efficiently compute qk by guessing
-               qk := rx[k+m-2...k+m]/y[m-2...m-1] */
-            km = k + m;
-            y2 = (y.x[m-1]*UI64_BASE) + y.x[m-2];
-            r3 = (rx.x[km]*(UI64_BASE*UI64_BASE)) +
-                 (rx.x[km-1]*UI64_BASE) + rx.x[km-2];
-            qk = r3 / y2;
-            if (qk >= UI64_BASE)
-                qk = UI64_BASE - 1;
-
-            /* dq := y*qk (post-adjust qk if guessed incorrectly) */
-            t = ui64_muln(y, qk, &ovn);
-            memcpy(dq.x, t.x, UI64_DIGITS);
-            dq.x[m] = (unsigned char)ovn;
-            for (i = m; i > 0; i--)
-                if (rx.x[i+k] != dq.x[i])
-                    break;
-            if (rx.x[i+k] < dq.x[i]) {
-                t = ui64_muln(y, --qk, &ovn);
-                memcpy(dq.x, t.x, UI64_DIGITS);
-                dq.x[m] = (unsigned char)ovn;
-            }
-
-            /* store qk */
-            q.x[k] = (unsigned char)qk;
-
-            /* rx := rx - dq*(b^k) */
-            borrow = 0;
-            for (i = 0; i < m+1; i++) {
-                d = ((rx.x[k+i] + UI64_BASE) - borrow - dq.x[i]);
-                rx.x[k+i] = (d % UI64_BASE);
-                borrow = (1 - (d/UI64_BASE));
-            }
-        }
-        memcpy(r.x, rx.x, m);
-
-        /* fill out results with leading zeros */
-        for (i = n-m+1; i < UI64_DIGITS; i++)
-            q.x[i] = 0;
-        for (i = m; i < UI64_DIGITS; i++)
-            r.x[i] = 0;
-    }
-
-    /* provide results */
-    if (ov != NULL)
-        *ov = r;
-    return q;
-}
-
-ui64_t ui64_divn(ui64_t x, int y, int *ov)
-{
-    ui64_t z;
-    unsigned int carry;
-    int i;
-
-    carry = 0;
-    for (i = (UI64_DIGITS - 1); i >= 0; i--) {
-        carry = (carry * UI64_BASE) + x.x[i];
-        z.x[i] = (carry / y);
-        carry %= y;
-    }
-    if (ov != NULL)
-        *ov = carry;
-    return z;
-}
-
-ui64_t ui64_and(ui64_t x, ui64_t y)
-{
-    ui64_t z;
-    int i;
-
-    for (i = 0; i < UI64_DIGITS; i++)
-        z.x[i] = (x.x[i] & y.x[i]);
-    return z;
-}
-
-ui64_t ui64_or(ui64_t x, ui64_t y)
-{
-    ui64_t z;
-    int i;
-
-    for (i = 0; i < UI64_DIGITS; i++)
-        z.x[i] = (x.x[i] | y.x[i]);
-    return z;
-}
-
-ui64_t ui64_xor(ui64_t x, ui64_t y)
-{
-    ui64_t z;
-    int i;
-
-    for (i = 0; i < UI64_DIGITS; i++)
-        z.x[i] = ((x.x[i] & ~(y.x[i])) | (~(x.x[i]) & (y.x[i])));
-    return z;
-}
-
-ui64_t ui64_not(ui64_t x)
-{
-    ui64_t z;
-    int i;
-
-    for (i = 0; i < UI64_DIGITS; i++)
-        z.x[i] = ~(x.x[i]);
-    return z;
-}
-
-ui64_t ui64_rol(ui64_t x, int s, ui64_t *ov)
-{
-    UIXX_T(UI64_DIGITS+UI64_DIGITS) zx;
-    ui64_t z;
-    int i;
-    int carry;
-
-    if (s <= 0) {
-        /* no shift at all */
-        if (ov != NULL)
-            *ov = ui64_zero();
-        return x;
-    }
-    else if (s > 64) {
-        /* too large shift */
-        if (ov != NULL)
-            *ov = ui64_zero();
-        return ui64_zero();
-    }
-    else if (s == 64) {
-        /* maximum shift */
-        if (ov != NULL)
-            *ov = x;
-        return ui64_zero();
-    }
-    else { /* regular shift */
-        /* shift (logically) left by s/8 bytes */
-        for (i = 0; i < UI64_DIGITS+UI64_DIGITS; i++)
-            zx.x[i] = 0;
-        for (i = 0; i < UI64_DIGITS; i++)
-            zx.x[i+(s/8)] = x.x[i];
-        /* shift (logically) left by remaining s%8 bits */
-        s %= 8;
-        if (s > 0) {
-            carry = 0;
-            for (i = 0; i < UI64_DIGITS+UI64_DIGITS; i++) {
-                carry += (zx.x[i] * (1 << s));
-                zx.x[i] = (carry % UI64_BASE);
-                carry /= UI64_BASE;
-            }
-        }
-        memcpy(z.x, zx.x, UI64_DIGITS);
-        if (ov != NULL)
-            memcpy((*ov).x, &zx.x[UI64_DIGITS], UI64_DIGITS);
-    }
-    return z;
-}
-
-ui64_t ui64_ror(ui64_t x, int s, ui64_t *ov)
-{
-    UIXX_T(UI64_DIGITS+UI64_DIGITS) zx;
-    ui64_t z;
-    int i;
-    int carry;
-
-    if (s <= 0) {
-        /* no shift at all */
-        if (ov != NULL)
-            *ov = ui64_zero();
-        return x;
-    }
-    else if (s > 64) {
-        /* too large shift */
-        if (ov != NULL)
-            *ov = ui64_zero();
-        return ui64_zero();
-    }
-    else if (s == 64) {
-        /* maximum shift */
-        if (ov != NULL)
-            *ov = x;
-        return ui64_zero();
-    }
-    else { /* regular shift */
-        /* shift (logically) right by s/8 bytes */
-        for (i = 0; i < UI64_DIGITS+UI64_DIGITS; i++)
-            zx.x[i] = 0;
-        for (i = 0; i < UI64_DIGITS; i++)
-            zx.x[UI64_DIGITS+i-(s/8)] = x.x[i];
-        /* shift (logically) right by remaining s%8 bits */
-        s %= 8;
-        if (s > 0) {
-            carry = 0;
-            for (i = (UI64_DIGITS+UI64_DIGITS - 1); i >= 0; i--) {
-                carry = (carry * UI64_BASE) + zx.x[i];
-                zx.x[i] = (carry / (1 << s));
-                carry %= (1 << s);
-            }
-        }
-        memcpy(z.x, &zx.x[UI64_DIGITS], UI64_DIGITS);
-        if (ov != NULL)
-            memcpy((*ov).x, zx.x, UI64_DIGITS);
-    }
-    return z;
-}
-
-int ui64_cmp(ui64_t x, ui64_t y)
-{
-    int i;
-
-    i = UI64_DIGITS - 1;
-    while (i > 0 && x.x[i] == y.x[i])
-        i--;
-    return (x.x[i] - y.x[i]);
-}
-
-int ui64_len(ui64_t x)
-{
-    int i;
-
-    for (i = UI64_DIGITS; i > 1 && x.x[i-1] == 0; i--)
-        ;
-    return i;
-}
-
diff --git a/libs/uuid/uuid_ui64.h b/libs/uuid/uuid_ui64.h
deleted file mode 100644 (file)
index 0311988..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
-**  OSSP ui64 - 64-Bit Arithmetic
-**  Copyright (c) 2002-2005 Ralf S. Engelschall <rse@engelschall.com>
-**  Copyright (c) 2002-2005 The OSSP Project <http://www.ossp.org/>
-**
-**  This file is part of OSSP ui64, a 64-bit arithmetic library
-**  which can be found at http://www.ossp.org/pkg/lib/ui64/.
-**
-**  Permission to use, copy, modify, and distribute this software for
-**  any purpose with or without fee is hereby granted, provided that
-**  the above copyright notice and this permission notice appear in all
-**  copies.
-**
-**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-**  SUCH DAMAGE.
-**
-**  ui64.h: API declaration
-*/
-
-#ifndef __UI64_H__
-#define __UI64_H__
-
-#include <string.h>
-
-#define UI64_PREFIX uuid_
-
-/* embedding support */
-#ifdef UI64_PREFIX
-#if defined(__STDC__) || defined(__cplusplus)
-#define __UI64_CONCAT(x,y) x ## y
-#define UI64_CONCAT(x,y) __UI64_CONCAT(x,y)
-#else
-#define __UI64_CONCAT(x) x
-#define UI64_CONCAT(x,y) __UI64_CONCAT(x)y
-#endif
-#define ui64_t     UI64_CONCAT(UI64_PREFIX,ui64_t)
-#define ui64_zero  UI64_CONCAT(UI64_PREFIX,ui64_zero)
-#define ui64_max   UI64_CONCAT(UI64_PREFIX,ui64_max)
-#define ui64_n2i   UI64_CONCAT(UI64_PREFIX,ui64_n2i)
-#define ui64_i2n   UI64_CONCAT(UI64_PREFIX,ui64_i2n)
-#define ui64_s2i   UI64_CONCAT(UI64_PREFIX,ui64_s2i)
-#define ui64_i2s   UI64_CONCAT(UI64_PREFIX,ui64_i2s)
-#define ui64_add   UI64_CONCAT(UI64_PREFIX,ui64_add)
-#define ui64_addn  UI64_CONCAT(UI64_PREFIX,ui64_addn)
-#define ui64_sub   UI64_CONCAT(UI64_PREFIX,ui64_sub)
-#define ui64_subn  UI64_CONCAT(UI64_PREFIX,ui64_subn)
-#define ui64_mul   UI64_CONCAT(UI64_PREFIX,ui64_mul)
-#define ui64_muln  UI64_CONCAT(UI64_PREFIX,ui64_muln)
-#define ui64_div   UI64_CONCAT(UI64_PREFIX,ui64_div)
-#define ui64_divn  UI64_CONCAT(UI64_PREFIX,ui64_divn)
-#define ui64_and   UI64_CONCAT(UI64_PREFIX,ui64_and)
-#define ui64_or    UI64_CONCAT(UI64_PREFIX,ui64_or)
-#define ui64_xor   UI64_CONCAT(UI64_PREFIX,ui64_xor)
-#define ui64_not   UI64_CONCAT(UI64_PREFIX,ui64_not)
-#define ui64_rol   UI64_CONCAT(UI64_PREFIX,ui64_rol)
-#define ui64_ror   UI64_CONCAT(UI64_PREFIX,ui64_ror)
-#define ui64_len   UI64_CONCAT(UI64_PREFIX,ui64_len)
-#define ui64_cmp   UI64_CONCAT(UI64_PREFIX,ui64_cmp)
-#endif
-
-typedef struct {
-    unsigned char x[8]; /* x_0, ..., x_7 */
-} ui64_t;
-
-#define ui64_cons(x7,x6,x5,x4,x3,x2,x1,x0) \
-    { { 0x##x0, 0x##x1, 0x##x2, 0x##x3, 0x##x4, 0x##x5, 0x##x6, 0x##x7 } }
-
-/* particular values */
-extern ui64_t        ui64_zero (void);
-extern ui64_t        ui64_max  (void);
-
-/* import and export via ISO-C "unsigned long" */
-extern ui64_t        ui64_n2i  (unsigned long n);
-extern unsigned long ui64_i2n  (ui64_t x);
-
-/* import and export via ISO-C string of arbitrary base */
-extern ui64_t        ui64_s2i  (const char *str, char **end, int base);
-extern char *        ui64_i2s  (ui64_t x, char *str, size_t len, int base);
-
-/* arithmetical operations */
-extern ui64_t        ui64_add  (ui64_t x, ui64_t y, ui64_t *ov);
-extern ui64_t        ui64_addn (ui64_t x, int    y, int    *ov);
-extern ui64_t        ui64_sub  (ui64_t x, ui64_t y, ui64_t *ov);
-extern ui64_t        ui64_subn (ui64_t x, int    y, int    *ov);
-extern ui64_t        ui64_mul  (ui64_t x, ui64_t y, ui64_t *ov);
-extern ui64_t        ui64_muln (ui64_t x, int    y, int    *ov);
-extern ui64_t        ui64_div  (ui64_t x, ui64_t y, ui64_t *ov);
-extern ui64_t        ui64_divn (ui64_t x, int    y, int    *ov);
-
-/* bit operations */
-extern ui64_t        ui64_and  (ui64_t x, ui64_t y);
-extern ui64_t        ui64_or   (ui64_t x, ui64_t y);
-extern ui64_t        ui64_xor  (ui64_t x, ui64_t y);
-extern ui64_t        ui64_not  (ui64_t x);
-extern ui64_t        ui64_rol  (ui64_t x, int s, ui64_t *ov);
-extern ui64_t        ui64_ror  (ui64_t x, int s, ui64_t *ov);
-
-/* other operations */
-extern int           ui64_len  (ui64_t x);
-extern int           ui64_cmp  (ui64_t x, ui64_t y);
-
-#endif /* __UI64_H__ */
-
diff --git a/libs/uuid/uuid_vers.h b/libs/uuid/uuid_vers.h
deleted file mode 100644 (file)
index afe3d8f..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-**  uuid_vers.h -- Version Information for OSSP uuid (syntax: C/C++)
-**  [automatically generated and maintained by GNU shtool]
-*/
-
-#ifdef _UUID_VERS_H_AS_HEADER_
-
-#ifndef _UUID_VERS_H_
-#define _UUID_VERS_H_
-
-#define _UUID_VERSION 0x106202
-
-typedef struct {
-    const int   v_hex;
-    const char *v_short;
-    const char *v_long;
-    const char *v_tex;
-    const char *v_gnu;
-    const char *v_web;
-    const char *v_sccs;
-    const char *v_rcs;
-} _uuid_version_t;
-
-extern _uuid_version_t _uuid_version;
-
-#endif /* _UUID_VERS_H_ */
-
-#else /* _UUID_VERS_H_AS_HEADER_ */
-
-#define _UUID_VERS_H_AS_HEADER_
-#include "uuid_vers.h"
-#undef  _UUID_VERS_H_AS_HEADER_
-
-_uuid_version_t _uuid_version = {
-    0x106202,
-    "1.6.2",
-    "1.6.2 (04-Jul-2008)",
-    "This is OSSP uuid, Version 1.6.2 (04-Jul-2008)",
-    "OSSP uuid 1.6.2 (04-Jul-2008)",
-    "OSSP uuid/1.6.2",
-    "@(#)OSSP uuid 1.6.2 (04-Jul-2008)",
-    "$Id: OSSP uuid 1.6.2 (04-Jul-2008) $"
-};
-
-#endif /* _UUID_VERS_H_AS_HEADER_ */
-