openpkg/uuid.8

Tue, 29 Mar 2011 20:04:34 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 29 Mar 2011 20:04:34 +0200
changeset 334
4a34d7a82eab
child 428
f880f219c566
permissions
-rw-r--r--

Rework package yet again, correcting and introducing new buildconf logic:
Conditionally disable bootstrap stage comparison correctly, correct
english grammar, better find system as(1) and ld(1), indotruce detailed
optimization option messages, more completely guess cpu types, allow
profiled bootstrapping without a preinstalled GCC because many other
compilers have long since implemented 64-bit arithmetic, instruct make
to build sequentially (not in sparallel) when building a profiled
bootstrap as GCC online documents recommend, and generally improve
comment blocks.

The single most important correction in this changeset relates to the
GCC changed optimization policy since at least GCC 4.5, in which -march
is always passed and not always correctly guessed. In the case of this
package, allowing GCC to guess the architecture leads to wild build
errors at various subcomponents (zlib, libgcc, libiberty...) and
bootstrap stages. It seems quite platform specific, and the safest
approach to correcting this seems to be explicitly always specifying the
-march argument when bootstrapping GCC. Because the best choice 'native'
is not available when bootstrapping using a foreign (non GCC) compiler,
a guess is made according to rpmmacros l_platform in that case.

It is questionable as to whether these recent optimization changes
on the part of GCC or this package are compatible with each other,
or if either are complete or correct at all. At least applying these
corrections allows this package to build again in most cases test.

     1 .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
     2 .\"
     3 .\" Standard preamble:
     4 .\" ========================================================================
     5 .de Sh \" Subsection heading
     6 .br
     7 .if t .Sp
     8 .ne 5
     9 .PP
    10 \fB\\$1\fR
    11 .PP
    12 ..
    13 .de Sp \" Vertical space (when we can't use .PP)
    14 .if t .sp .5v
    15 .if n .sp
    16 ..
    17 .de Vb \" Begin verbatim text
    18 .ft CW
    19 .nf
    20 .ne \\$1
    21 ..
    22 .de Ve \" End verbatim text
    23 .ft R
    24 .fi
    25 ..
    26 .\" Set up some character translations and predefined strings.  \*(-- will
    27 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
    28 .\" double quote, and \*(R" will give a right double quote.  | will give a
    29 .\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
    30 .\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
    31 .\" expand to `' in nroff, nothing in troff, for use with C<>.
    32 .tr \(*W-|\(bv\*(Tr
    33 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
    34 .ie n \{\
    35 .    ds -- \(*W-
    36 .    ds PI pi
    37 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
    38 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
    39 .    ds L" ""
    40 .    ds R" ""
    41 .    ds C` 
    42 .    ds C' 
    43 'br\}
    44 .el\{\
    45 .    ds -- \|\(em\|
    46 .    ds PI \(*p
    47 .    ds L" ``
    48 .    ds R" ''
    49 'br\}
    50 .\"
    51 .\" If the F register is turned on, we'll generate index entries on stderr for
    52 .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
    53 .\" entries marked with X<> in POD.  Of course, you'll have to process the
    54 .\" output yourself in some meaningful fashion.
    55 .if \nF \{\
    56 .    de IX
    57 .    tm Index:\\$1\t\\n%\t"\\$2"
    58 ..
    59 .    nr % 0
    60 .    rr F
    61 .\}
    62 .\"
    63 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
    64 .\" way too many mistakes in technical documents.
    65 .hy 0
    66 .if n .na
    67 .\"
    68 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
    69 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
    70 .    \" fudge factors for nroff and troff
    71 .if n \{\
    72 .    ds #H 0
    73 .    ds #V .8m
    74 .    ds #F .3m
    75 .    ds #[ \f1
    76 .    ds #] \fP
    77 .\}
    78 .if t \{\
    79 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
    80 .    ds #V .6m
    81 .    ds #F 0
    82 .    ds #[ \&
    83 .    ds #] \&
    84 .\}
    85 .    \" simple accents for nroff and troff
    86 .if n \{\
    87 .    ds ' \&
    88 .    ds ` \&
    89 .    ds ^ \&
    90 .    ds , \&
    91 .    ds ~ ~
    92 .    ds /
    93 .\}
    94 .if t \{\
    95 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
    96 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
    97 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
    98 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
    99 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
   100 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
   101 .\}
   102 .    \" troff and (daisy-wheel) nroff accents
   103 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
   104 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
   105 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
   106 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
   107 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
   108 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
   109 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
   110 .ds ae a\h'-(\w'a'u*4/10)'e
   111 .ds Ae A\h'-(\w'A'u*4/10)'E
   112 .    \" corrections for vroff
   113 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
   114 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
   115 .    \" for low resolution devices (crt and lpr)
   116 .if \n(.H>23 .if \n(.V>19 \
   117 \{\
   118 .    ds : e
   119 .    ds 8 ss
   120 .    ds o a
   121 .    ds d- d\h'-1'\(ga
   122 .    ds D- D\h'-1'\(hy
   123 .    ds th \o'bp'
   124 .    ds Th \o'LP'
   125 .    ds ae ae
   126 .    ds Ae AE
   127 .\}
   128 .rm #[ #] #H #V #F C
   129 .\" ========================================================================
   130 .\"
   131 .IX Title "UUID 8"
   132 .TH UUID 8 "OpenPKG" "UUID(8)" "OpenPKG"
   133 .SH "NAME"
   134 \&\fBopenpkg uuid\fR \- OpenPKG UUID Update Utility
   135 .SH "SYNOPSIS"
   136 .IX Header "SYNOPSIS"
   137 \&\fBopenpkg uuid\fR [\fB\-\-verbose\fR] [\fB\-\-multicast\fR] \fBreset\fR|\fBupdate\fR|\fBinfo\fR
   138 .SH "DESCRIPTION"
   139 .IX Header "DESCRIPTION"
   140 The \fBopenpkg uuid\fR command is the maintenance utility for the \s-1DCE\s0 1.1
   141 and \s-1ISO/IEC\s0 11578:1996 compliant \fIUniversally Unique Identifiers\fR
   142 (\s-1UUID\s0) of an \fBOpenPKG\fR instance. It is internally based on \fB\s-1OSSP\s0
   143 uuid\fR.
   144 .PP
   145 UUIDs are 128 bit numbers which are intended to have a high likelihood
   146 of uniqueness over space and time and are computationally difficult
   147 to guess. They are globally unique identifiers which can be locally
   148 generated without contacting a global registration authority. UUIDs are
   149 intended as unique identifiers for both mass tagging objects with an
   150 extremely short lifetime and to reliably identifying very persistent
   151 objects across a network. The three classical \s-1UUID\s0 variants are \s-1DCE\s0 1.1
   152 UUIDs of version 1 (time and node based), version 3 (name based) and
   153 version 4 (random number based).
   154 .PP
   155 For an \fBOpenPKG\fR instance, three different UUIDs are used:
   156 .ie n .IP "1. \fBOpenPKG Registry\fR (\*(C`UUID_REGISTRY\*(C')" 3
   157 .el .IP "1. \fBOpenPKG Registry\fR (\f(CW\*(C`UUID_REGISTRY\*(C'\fR)" 3
   158 .IX Item "1. OpenPKG Registry (UUID_REGISTRY)"
   159 This is a version 1 \s-1UUID\s0 which uniquely identifiers the \fBOpenPKG\fR
   160 instance for global registration purposes. It is generated just once in
   161 the lifetime of the \fBOpenPKG\fR instance. The value of this \s-1UUID\s0 cannot
   162 be recalculated deterministically.
   163 .ie n .IP "2. \fBOpenPKG Instance\fR (\*(C`UUID_INSTANCE\*(C')" 3
   164 .el .IP "2. \fBOpenPKG Instance\fR (\f(CW\*(C`UUID_INSTANCE\*(C'\fR)" 3
   165 .IX Item "2. OpenPKG Instance (UUID_INSTANCE)"
   166 This is a version 3 \s-1UUID\s0 which summarizes the \fBOpenPKG\fR
   167 instance parameters. Currently the values of the following
   168 particular OpenPKG \s-1RPM\s0 macros are uses as input:
   169 .Sp
   170 .Vb 5
   171 \& %{l_openpkg_release} %{l_prefix}
   172 \& %{l_susr} %{l_suid} %{l_sgrp} %{l_sgid}
   173 \& %{l_musr} %{l_muid} %{l_mgrp} %{l_mgid}
   174 \& %{l_rusr} %{l_ruid} %{l_rgrp} %{l_rgid}
   175 \& %{l_nusr} %{l_nuid} %{l_ngrp} %{l_ngid}
   176 .Ve
   177 .Sp
   178 The value of this \s-1UUID\s0 can be recalculated deterministically and will
   179 not chance as long as none of the values of the above macro do not
   180 change. This \s-1UUID\s0 can be used for detecting OpenPKG release upgrades,
   181 accidentally changed UIDs or GIDs, etc. Notice that version 3 UUIDs are
   182 message digests (actually \s-1MD5\s0 based) and so are one-way functions which do
   183 not allow one to recalculate the input values from the \s-1UUID\s0.
   184 .ie n .IP "3. \fBOpenPKG Platform\fR (\*(C`UUID_PLATFORM\*(C')" 3
   185 .el .IP "3. \fBOpenPKG Platform\fR (\f(CW\*(C`UUID_PLATFORM\*(C'\fR)" 3
   186 .IX Item "3. OpenPKG Platform (UUID_PLATFORM)"
   187 This is a version 3 \s-1UUID\s0 which summarizes the \fBOpenPKG\fR platform
   188 parameters. Currently the OpenPKG \s-1RPM\s0 platform id plus the \s-1FQDN\s0 and \s-1IP\s0
   189 address of the underlying host are used as input. This \s-1UUID\s0 can be used
   190 for detecting operating system and host changes. Notice that version
   191 3 UUIDs are message digests (actually \s-1MD5\s0 based) and so are one-way
   192 functions which do not allow one to recalculate the input values from
   193 the \s-1UUID\s0.
   194 .SH "OPTIONS"
   195 .IX Header "OPTIONS"
   196 .IP "\fB\-\-verbose\fR" 4
   197 .IX Item "--verbose"
   198 Print verbose messages during operation.
   199 .IP "\fB\-\-multicast\fR" 4
   200 .IX Item "--multicast"
   201 Generate a random multicast \s-1MAC\s0 address instead of using the real \s-1IEEE\s0
   202 802 \s-1MAC\s0 address of the underlying host when generating the version 1
   203 \&\s-1UUID\s0 \f(CW\*(C`UUID_REGISTRY\*(C'\fR.
   204 .SH "COMMANDS"
   205 .IX Header "COMMANDS"
   206 .IP "\fBreset\fR" 4
   207 .IX Item "reset"
   208 This resets the three UUIDs \f(CW\*(C`UUID_REGISTRY\*(C'\fR, \f(CW\*(C`UUID_INSTANCE\*(C'\fR and
   209 \&\f(CW\*(C`UUID_PLATFORM\*(C'\fR to the \*(L"Nil \s-1UUID\s0\*(R". They are then automatically
   210 regenerated within one day if already done explicitly afterward with
   211 "\f(CW\*(C`openpkg uuid update\*(C'\fR".
   212 .IP "\fBupdate\fR" 4
   213 .IX Item "update"
   214 This updates the three UUIDs \f(CW\*(C`UUID_REGISTRY\*(C'\fR, \f(CW\*(C`UUID_INSTANCE\*(C'\fR and
   215 \&\f(CW\*(C`UUID_PLATFORM\*(C'\fR to the \*(L"Nil \s-1UUID\s0\*(R". \f(CW\*(C`UUID_REGISTRY\*(C'\fR is kept unless it
   216 is the \*(L"Nil \s-1UUID\s0\*(R" (see "\f(CW\*(C`openpkg uuid reset\*(C'\fR" command above). The UUIDs
   217 \&\f(CW\*(C`UUID_INSTANCE\*(C'\fR and \f(CW\*(C`UUID_PLATFORM\*(C'\fR are updated only if their input
   218 values (and this way the resulting UUIDs) have changed. This operation
   219 is performed daily automatically.
   220 .IP "\fBinfo\fR" 4
   221 .IX Item "info"
   222 This print summary page of identification information, including all
   223 UUIDs and all of their calculation inputs.
   224 .SH "FILES"
   225 .IX Header "FILES"
   226 The three UUIDs of the \fBOpenPKG\fR instance are stored in the file
   227 \&\f(CW\*(C`@l_prefix@/etc/openpkg/uuid\*(C'\fR in Bourne-Shell syntax. An example
   228 content is:
   229 .PP
   230 .Vb 3
   231 \& UUID_REGISTRY="81eca44e-4d18-11d8-a837-0090272ff725"
   232 \& UUID_INSTANCE="c55a8d2d-31bb-3ae0-9edb-68337af61acc"
   233 \& UUID_PLATFORM="05ec2532-9e3f-37dc-a7ed-b291c2c463ed"
   234 .Ve
   235 .SH "CAVEATS"
   236 .IX Header "CAVEATS"
   237 By default and in full compliance with \s-1DCE\s0 1.1 and \s-1ISO/IEC\s0 11578:1996,
   238 the OpenPKG Registry \s-1UUID\s0 (\f(CW\*(C`UUID_REGISTRY\*(C'\fR) contains the \s-1IEEE\s0 802 \s-1MAC\s0
   239 address of the underlying host. If this is not acceptable by local
   240 security policies you can easily at any time generate a new OpenPKG
   241 Registry \s-1UUID\s0 with a random multicast \s-1MAC\s0 address instead by running:
   242 .PP
   243 .Vb 2
   244 \& $ openpkg uuid reset
   245 \& $ openpkg uuid --multicast update
   246 .Ve
   247 .SH "SEE ALSO"
   248 .IX Header "SEE ALSO"
   249 \&\fB\s-1OSSP\s0 uuid\fR <http://www.ossp.org/pkg/lib/uuid/>.
   250 .SH "HISTORY"
   251 .IX Header "HISTORY"
   252 The \fBopenpkg uuid\fR command first appeared in \fBOpenPKG 2.0\fR.

mercurial