openpkg/uuid.pod

Wed, 14 Jan 2009 15:59:12 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 14 Jan 2009 15:59:12 +0100
changeset 86
78e7deb1d6ab
child 428
f880f219c566
permissions
-rw-r--r--

Correct and improve many buildconf and code logic blocks. In particular:
1. Document potential problems building with current binutils releases.
2. Document the flawed webkit and explain its temporary exclusion.
3. Document the edition of Qt which is built and installed.
4. Remove the Solaris x11_supdir logic as it is no longer found.
5. Correct several .pr[io] files including QMAKE_CXXFLAGS and INCPATH,
which previously caused preexisting Qt installations to deliver
erroneous old include and library logic instead of relying on
that of the currently building package. -I/opkg/include is now
placed at the end of the compile statements.
6. Don't trust the QMAKE_[INC|LIB]DIR_X11 identifiers in qmake.conf.
7. Allow more 64-bit builds and more properly identify the platform.
8. Place plugins (which are shared objects) in lib instead of share.
9. Build components as plugins when possible if with_shared is enabled.
10. Translate German text to English to be more consistent.
11. Instead of removing the pkgconfig directory of with_shared builds,
place it in a child directory useful for shared building.
12. Document the nonstandard shared build directory structure,
including using the hidden pkgconfig directory (PKG_CONFIG_PATH.)
13. Change %doc to specify files rather than directories in the RPM DB.

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