diff -r 333964c621f1 -r cb59d6afeb61 openpkg/uuid.pod
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/openpkg/uuid.pod Tue Jan 06 23:40:39 2009 +0100
@@ -0,0 +1,167 @@
+##
+## uuid -- OpenPKG UUID Update Utility
+## Copyright (c) 2000-2007 OpenPKG Foundation e.V.
+## Copyright (c) 2000-2007 Ralf S. Engelschall
+##
+## 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.
+##
+
+=pod
+
+=head1 NAME
+
+B - OpenPKG UUID Update Utility
+
+=head1 SYNOPSIS
+
+B [B<--verbose>] [B<--multicast>] B|B|B
+
+=head1 DESCRIPTION
+
+The B command is the maintenance utility for the DCE 1.1
+and ISO/IEC 11578:1996 compliant I
+(UUID) of an B instance. It is internally based on B.
+
+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. The three classical UUID variants are DCE 1.1
+UUIDs of version 1 (time and node based), version 3 (name based) and
+version 4 (random number based).
+
+For an B instance, three different UUIDs are used:
+
+=over 3
+
+=item 1. B (C)
+
+This is a version 1 UUID which uniquely identifiers the B
+instance for global registration purposes. It is generated just once in
+the lifetime of the B instance. The value of this UUID cannot
+be recalculated deterministically.
+
+=item 2. B (C)
+
+This is a version 3 UUID which summarizes the B
+instance parameters. Currently the values of the following
+particular OpenPKG RPM macros are uses as input:
+
+ %{l_openpkg_release} %{l_prefix}
+ %{l_susr} %{l_suid} %{l_sgrp} %{l_sgid}
+ %{l_musr} %{l_muid} %{l_mgrp} %{l_mgid}
+ %{l_rusr} %{l_ruid} %{l_rgrp} %{l_rgid}
+ %{l_nusr} %{l_nuid} %{l_ngrp} %{l_ngid}
+
+The value of this UUID can be recalculated deterministically and will
+not chance as long as none of the values of the above macro do not
+change. This UUID can be used for detecting OpenPKG release upgrades,
+accidentally changed UIDs or GIDs, etc. Notice that version 3 UUIDs are
+message digests (actually MD5 based) and so are one-way functions which do
+not allow one to recalculate the input values from the UUID.
+
+=item 3. B (C)
+
+This is a version 3 UUID which summarizes the B platform
+parameters. Currently the OpenPKG RPM platform id plus the FQDN and IP
+address of the underlying host are used as input. This UUID can be used
+for detecting operating system and host changes. Notice that version
+3 UUIDs are message digests (actually MD5 based) and so are one-way
+functions which do not allow one to recalculate the input values from
+the UUID.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--verbose>
+
+Print verbose messages during operation.
+
+=item B<--multicast>
+
+Generate a random multicast MAC address instead of using the real IEEE
+802 MAC address of the underlying host when generating the version 1
+UUID C.
+
+=back
+
+=head1 COMMANDS
+
+=over 4
+
+=item B
+
+This resets the three UUIDs C, C and
+C to the "Nil UUID". They are then automatically
+regenerated within one day if already done explicitly afterward with
+"C".
+
+=item B
+
+This updates the three UUIDs C, C and
+C to the "Nil UUID". C is kept unless it
+is the "Nil UUID" (see "C" command above). The UUIDs
+C and C are updated only if their input
+values (and this way the resulting UUIDs) have changed. This operation
+is performed daily automatically.
+
+=item B
+
+This print summary page of identification information, including all
+UUIDs and all of their calculation inputs.
+
+=back
+
+=head1 FILES
+
+The three UUIDs of the B instance are stored in the file
+C<@l_prefix@/etc/openpkg/uuid> in Bourne-Shell syntax. An example
+content is:
+
+ UUID_REGISTRY="81eca44e-4d18-11d8-a837-0090272ff725"
+ UUID_INSTANCE="c55a8d2d-31bb-3ae0-9edb-68337af61acc"
+ UUID_PLATFORM="05ec2532-9e3f-37dc-a7ed-b291c2c463ed"
+
+=head1 CAVEATS
+
+By default and in full compliance with DCE 1.1 and ISO/IEC 11578:1996,
+the OpenPKG Registry UUID (C) contains the IEEE 802 MAC
+address of the underlying host. If this is not acceptable by local
+security policies you can easily at any time generate a new OpenPKG
+Registry UUID with a random multicast MAC address instead by running:
+
+ $ openpkg uuid reset
+ $ openpkg uuid --multicast update
+
+=head1 SEE ALSO
+
+B Ehttp://www.ossp.org/pkg/lib/uuid/E.
+
+=head1 HISTORY
+
+The B command first appeared in B.
+
+=cut
+