openpkg/uuid.pod

Fri, 09 Jan 2009 00:45:56 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 09 Jan 2009 00:45:56 +0100
changeset 52
d42d557c7a5a
child 428
f880f219c566
permissions
-rw-r--r--

Import package vendor original specs for necessary manipulations.

michael@13 1 ##
michael@13 2 ## uuid -- OpenPKG UUID Update Utility
michael@13 3 ## Copyright (c) 2000-2007 OpenPKG Foundation e.V. <http://openpkg.net/>
michael@13 4 ## Copyright (c) 2000-2007 Ralf S. Engelschall <http://engelschall.com/>
michael@13 5 ##
michael@13 6 ## Permission to use, copy, modify, and distribute this software for
michael@13 7 ## any purpose with or without fee is hereby granted, provided that
michael@13 8 ## the above copyright notice and this permission notice appear in all
michael@13 9 ## copies.
michael@13 10 ##
michael@13 11 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
michael@13 12 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
michael@13 13 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
michael@13 14 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
michael@13 15 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@13 16 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
michael@13 17 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
michael@13 18 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
michael@13 19 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
michael@13 20 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
michael@13 21 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
michael@13 22 ## SUCH DAMAGE.
michael@13 23 ##
michael@13 24
michael@13 25 =pod
michael@13 26
michael@13 27 =head1 NAME
michael@13 28
michael@13 29 B<openpkg uuid> - OpenPKG UUID Update Utility
michael@13 30
michael@13 31 =head1 SYNOPSIS
michael@13 32
michael@13 33 B<openpkg uuid> [B<--verbose>] [B<--multicast>] B<reset>|B<update>|B<info>
michael@13 34
michael@13 35 =head1 DESCRIPTION
michael@13 36
michael@13 37 The B<openpkg uuid> command is the maintenance utility for the DCE 1.1
michael@13 38 and ISO/IEC 11578:1996 compliant I<Universally Unique Identifiers>
michael@13 39 (UUID) of an B<OpenPKG> instance. It is internally based on B<OSSP
michael@13 40 uuid>.
michael@13 41
michael@13 42 UUIDs are 128 bit numbers which are intended to have a high likelihood
michael@13 43 of uniqueness over space and time and are computationally difficult
michael@13 44 to guess. They are globally unique identifiers which can be locally
michael@13 45 generated without contacting a global registration authority. UUIDs are
michael@13 46 intended as unique identifiers for both mass tagging objects with an
michael@13 47 extremely short lifetime and to reliably identifying very persistent
michael@13 48 objects across a network. The three classical UUID variants are DCE 1.1
michael@13 49 UUIDs of version 1 (time and node based), version 3 (name based) and
michael@13 50 version 4 (random number based).
michael@13 51
michael@13 52 For an B<OpenPKG> instance, three different UUIDs are used:
michael@13 53
michael@13 54 =over 3
michael@13 55
michael@13 56 =item 1. B<OpenPKG Registry> (C<UUID_REGISTRY>)
michael@13 57
michael@13 58 This is a version 1 UUID which uniquely identifiers the B<OpenPKG>
michael@13 59 instance for global registration purposes. It is generated just once in
michael@13 60 the lifetime of the B<OpenPKG> instance. The value of this UUID cannot
michael@13 61 be recalculated deterministically.
michael@13 62
michael@13 63 =item 2. B<OpenPKG Instance> (C<UUID_INSTANCE>)
michael@13 64
michael@13 65 This is a version 3 UUID which summarizes the B<OpenPKG>
michael@13 66 instance parameters. Currently the values of the following
michael@13 67 particular OpenPKG RPM macros are uses as input:
michael@13 68
michael@13 69 %{l_openpkg_release} %{l_prefix}
michael@13 70 %{l_susr} %{l_suid} %{l_sgrp} %{l_sgid}
michael@13 71 %{l_musr} %{l_muid} %{l_mgrp} %{l_mgid}
michael@13 72 %{l_rusr} %{l_ruid} %{l_rgrp} %{l_rgid}
michael@13 73 %{l_nusr} %{l_nuid} %{l_ngrp} %{l_ngid}
michael@13 74
michael@13 75 The value of this UUID can be recalculated deterministically and will
michael@13 76 not chance as long as none of the values of the above macro do not
michael@13 77 change. This UUID can be used for detecting OpenPKG release upgrades,
michael@13 78 accidentally changed UIDs or GIDs, etc. Notice that version 3 UUIDs are
michael@13 79 message digests (actually MD5 based) and so are one-way functions which do
michael@13 80 not allow one to recalculate the input values from the UUID.
michael@13 81
michael@13 82 =item 3. B<OpenPKG Platform> (C<UUID_PLATFORM>)
michael@13 83
michael@13 84 This is a version 3 UUID which summarizes the B<OpenPKG> platform
michael@13 85 parameters. Currently the OpenPKG RPM platform id plus the FQDN and IP
michael@13 86 address of the underlying host are used as input. This UUID can be used
michael@13 87 for detecting operating system and host changes. Notice that version
michael@13 88 3 UUIDs are message digests (actually MD5 based) and so are one-way
michael@13 89 functions which do not allow one to recalculate the input values from
michael@13 90 the UUID.
michael@13 91
michael@13 92 =back
michael@13 93
michael@13 94 =head1 OPTIONS
michael@13 95
michael@13 96 =over 4
michael@13 97
michael@13 98 =item B<--verbose>
michael@13 99
michael@13 100 Print verbose messages during operation.
michael@13 101
michael@13 102 =item B<--multicast>
michael@13 103
michael@13 104 Generate a random multicast MAC address instead of using the real IEEE
michael@13 105 802 MAC address of the underlying host when generating the version 1
michael@13 106 UUID C<UUID_REGISTRY>.
michael@13 107
michael@13 108 =back
michael@13 109
michael@13 110 =head1 COMMANDS
michael@13 111
michael@13 112 =over 4
michael@13 113
michael@13 114 =item B<reset>
michael@13 115
michael@13 116 This resets the three UUIDs C<UUID_REGISTRY>, C<UUID_INSTANCE> and
michael@13 117 C<UUID_PLATFORM> to the "Nil UUID". They are then automatically
michael@13 118 regenerated within one day if already done explicitly afterward with
michael@13 119 "C<openpkg uuid update>".
michael@13 120
michael@13 121 =item B<update>
michael@13 122
michael@13 123 This updates the three UUIDs C<UUID_REGISTRY>, C<UUID_INSTANCE> and
michael@13 124 C<UUID_PLATFORM> to the "Nil UUID". C<UUID_REGISTRY> is kept unless it
michael@13 125 is the "Nil UUID" (see "C<openpkg uuid reset>" command above). The UUIDs
michael@13 126 C<UUID_INSTANCE> and C<UUID_PLATFORM> are updated only if their input
michael@13 127 values (and this way the resulting UUIDs) have changed. This operation
michael@13 128 is performed daily automatically.
michael@13 129
michael@13 130 =item B<info>
michael@13 131
michael@13 132 This print summary page of identification information, including all
michael@13 133 UUIDs and all of their calculation inputs.
michael@13 134
michael@13 135 =back
michael@13 136
michael@13 137 =head1 FILES
michael@13 138
michael@13 139 The three UUIDs of the B<OpenPKG> instance are stored in the file
michael@13 140 C<@l_prefix@/etc/openpkg/uuid> in Bourne-Shell syntax. An example
michael@13 141 content is:
michael@13 142
michael@13 143 UUID_REGISTRY="81eca44e-4d18-11d8-a837-0090272ff725"
michael@13 144 UUID_INSTANCE="c55a8d2d-31bb-3ae0-9edb-68337af61acc"
michael@13 145 UUID_PLATFORM="05ec2532-9e3f-37dc-a7ed-b291c2c463ed"
michael@13 146
michael@13 147 =head1 CAVEATS
michael@13 148
michael@13 149 By default and in full compliance with DCE 1.1 and ISO/IEC 11578:1996,
michael@13 150 the OpenPKG Registry UUID (C<UUID_REGISTRY>) contains the IEEE 802 MAC
michael@13 151 address of the underlying host. If this is not acceptable by local
michael@13 152 security policies you can easily at any time generate a new OpenPKG
michael@13 153 Registry UUID with a random multicast MAC address instead by running:
michael@13 154
michael@13 155 $ openpkg uuid reset
michael@13 156 $ openpkg uuid --multicast update
michael@13 157
michael@13 158 =head1 SEE ALSO
michael@13 159
michael@13 160 B<OSSP uuid> E<lt>http://www.ossp.org/pkg/lib/uuid/E<gt>.
michael@13 161
michael@13 162 =head1 HISTORY
michael@13 163
michael@13 164 The B<openpkg uuid> command first appeared in B<OpenPKG 2.0>.
michael@13 165
michael@13 166 =cut
michael@13 167

mercurial