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