Mon, 28 Jan 2013 17:37:18 +0100
Correct socket error reporting improvement with IPv6 portable code,
after helpful recommendation by Saúl Ibarra Corretgé on OSips devlist.
michael@428 | 1 | .\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22) |
michael@428 | 2 | .\" |
michael@428 | 3 | .\" Standard preamble: |
michael@428 | 4 | .\" ======================================================================== |
michael@428 | 5 | .de Sp \" Vertical space (when we can't use .PP) |
michael@428 | 6 | .if t .sp .5v |
michael@428 | 7 | .if n .sp |
michael@428 | 8 | .. |
michael@428 | 9 | .de Vb \" Begin verbatim text |
michael@428 | 10 | .ft CW |
michael@428 | 11 | .nf |
michael@428 | 12 | .ne \\$1 |
michael@428 | 13 | .. |
michael@428 | 14 | .de Ve \" End verbatim text |
michael@428 | 15 | .ft R |
michael@428 | 16 | .fi |
michael@428 | 17 | .. |
michael@428 | 18 | .\" Set up some character translations and predefined strings. \*(-- will |
michael@428 | 19 | .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left |
michael@428 | 20 | .\" double quote, and \*(R" will give a right double quote. \*(C+ will |
michael@428 | 21 | .\" give a nicer C++. Capital omega is used to do unbreakable dashes and |
michael@428 | 22 | .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, |
michael@428 | 23 | .\" nothing in troff, for use with C<>. |
michael@428 | 24 | .tr \(*W- |
michael@428 | 25 | .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' |
michael@428 | 26 | .ie n \{\ |
michael@428 | 27 | . ds -- \(*W- |
michael@428 | 28 | . ds PI pi |
michael@428 | 29 | . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch |
michael@428 | 30 | . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch |
michael@428 | 31 | . ds L" "" |
michael@428 | 32 | . ds R" "" |
michael@428 | 33 | . ds C` |
michael@428 | 34 | . ds C' |
michael@428 | 35 | 'br\} |
michael@428 | 36 | .el\{\ |
michael@428 | 37 | . ds -- \|\(em\| |
michael@428 | 38 | . ds PI \(*p |
michael@428 | 39 | . ds L" `` |
michael@428 | 40 | . ds R" '' |
michael@428 | 41 | 'br\} |
michael@428 | 42 | .\" |
michael@428 | 43 | .\" Escape single quotes in literal strings from groff's Unicode transform. |
michael@428 | 44 | .ie \n(.g .ds Aq \(aq |
michael@428 | 45 | .el .ds Aq ' |
michael@428 | 46 | .\" |
michael@428 | 47 | .\" If the F register is turned on, we'll generate index entries on stderr for |
michael@428 | 48 | .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index |
michael@428 | 49 | .\" entries marked with X<> in POD. Of course, you'll have to process the |
michael@428 | 50 | .\" output yourself in some meaningful fashion. |
michael@428 | 51 | .ie \nF \{\ |
michael@428 | 52 | . de IX |
michael@428 | 53 | . tm Index:\\$1\t\\n%\t"\\$2" |
michael@428 | 54 | .. |
michael@428 | 55 | . nr % 0 |
michael@428 | 56 | . rr F |
michael@428 | 57 | .\} |
michael@428 | 58 | .el \{\ |
michael@428 | 59 | . de IX |
michael@428 | 60 | .. |
michael@428 | 61 | .\} |
michael@428 | 62 | .\" |
michael@428 | 63 | .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). |
michael@428 | 64 | .\" Fear. Run. Save yourself. No user-serviceable parts. |
michael@428 | 65 | . \" fudge factors for nroff and troff |
michael@428 | 66 | .if n \{\ |
michael@428 | 67 | . ds #H 0 |
michael@428 | 68 | . ds #V .8m |
michael@428 | 69 | . ds #F .3m |
michael@428 | 70 | . ds #[ \f1 |
michael@428 | 71 | . ds #] \fP |
michael@428 | 72 | .\} |
michael@428 | 73 | .if t \{\ |
michael@428 | 74 | . ds #H ((1u-(\\\\n(.fu%2u))*.13m) |
michael@428 | 75 | . ds #V .6m |
michael@428 | 76 | . ds #F 0 |
michael@428 | 77 | . ds #[ \& |
michael@428 | 78 | . ds #] \& |
michael@428 | 79 | .\} |
michael@428 | 80 | . \" simple accents for nroff and troff |
michael@428 | 81 | .if n \{\ |
michael@428 | 82 | . ds ' \& |
michael@428 | 83 | . ds ` \& |
michael@428 | 84 | . ds ^ \& |
michael@428 | 85 | . ds , \& |
michael@428 | 86 | . ds ~ ~ |
michael@428 | 87 | . ds / |
michael@428 | 88 | .\} |
michael@428 | 89 | .if t \{\ |
michael@428 | 90 | . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" |
michael@428 | 91 | . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' |
michael@428 | 92 | . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' |
michael@428 | 93 | . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' |
michael@428 | 94 | . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' |
michael@428 | 95 | . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' |
michael@428 | 96 | .\} |
michael@428 | 97 | . \" troff and (daisy-wheel) nroff accents |
michael@428 | 98 | .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' |
michael@428 | 99 | .ds 8 \h'\*(#H'\(*b\h'-\*(#H' |
michael@428 | 100 | .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] |
michael@428 | 101 | .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' |
michael@428 | 102 | .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' |
michael@428 | 103 | .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] |
michael@428 | 104 | .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] |
michael@428 | 105 | .ds ae a\h'-(\w'a'u*4/10)'e |
michael@428 | 106 | .ds Ae A\h'-(\w'A'u*4/10)'E |
michael@428 | 107 | . \" corrections for vroff |
michael@428 | 108 | .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' |
michael@428 | 109 | .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' |
michael@428 | 110 | . \" for low resolution devices (crt and lpr) |
michael@428 | 111 | .if \n(.H>23 .if \n(.V>19 \ |
michael@428 | 112 | \{\ |
michael@428 | 113 | . ds : e |
michael@428 | 114 | . ds 8 ss |
michael@428 | 115 | . ds o a |
michael@428 | 116 | . ds d- d\h'-1'\(ga |
michael@428 | 117 | . ds D- D\h'-1'\(hy |
michael@428 | 118 | . ds th \o'bp' |
michael@428 | 119 | . ds Th \o'LP' |
michael@428 | 120 | . ds ae ae |
michael@428 | 121 | . ds Ae AE |
michael@428 | 122 | .\} |
michael@428 | 123 | .rm #[ #] #H #V #F C |
michael@428 | 124 | .\" ======================================================================== |
michael@428 | 125 | .\" |
michael@428 | 126 | .IX Title "BUILD 8" |
michael@428 | 127 | .TH BUILD 8 "OpenPKG" "BUILD(8)" "OpenPKG" |
michael@428 | 128 | .\" For nroff, turn off justification. Always turn off hyphenation; it makes |
michael@428 | 129 | .\" way too many mistakes in technical documents. |
michael@428 | 130 | .if n .ad l |
michael@428 | 131 | .nh |
michael@428 | 132 | .SH "NAME" |
michael@428 | 133 | openpkg build \- OpenPKG Package Building and Installing |
michael@428 | 134 | .SH "SYNOPSIS" |
michael@428 | 135 | .IX Header "SYNOPSIS" |
michael@428 | 136 | \&\fBopenpkg\fR |
michael@428 | 137 | \&\fBbuild\fR |
michael@428 | 138 | [\fB\-R\fR \fIrpm\fR] |
michael@428 | 139 | [\fB\-r\fR \fIrepository\fR] |
michael@428 | 140 | [\fB\-f\fR \fIindex.rdf\fR] |
michael@428 | 141 | [\fB\-u\fR] |
michael@428 | 142 | [\fB\-U\fR] |
michael@428 | 143 | [\fB\-z\fR] |
michael@428 | 144 | [\fB\-Z\fR] |
michael@428 | 145 | [\fB\-i\fR] |
michael@428 | 146 | [\fB\-q\fR] |
michael@428 | 147 | [\fB\-s\fR] |
michael@428 | 148 | [\fB\-S\fR] |
michael@428 | 149 | [\fB\-M\fR] |
michael@428 | 150 | [\fB\-L\fR] |
michael@428 | 151 | [\fB\-W\fR] |
michael@428 | 152 | [\fB\-X\fR] |
michael@428 | 153 | [\fB\-K\fR] |
michael@428 | 154 | [\fB\-k\fR] |
michael@428 | 155 | [\fB\-e\fR] |
michael@428 | 156 | [\fB\-b\fR] |
michael@428 | 157 | [\fB\-B\fR] |
michael@428 | 158 | [\fB\-G\fR] |
michael@428 | 159 | [\fB\-P\fR \fIpriv-cmd\fR] |
michael@428 | 160 | [\fB\-N\fR \fInon-priv-cmd\fR] |
michael@428 | 161 | [\fB\-p\fR \fIplatform\fR] |
michael@428 | 162 | [\fB\-D\fR \fIvar\fR=\fIval\fR ...] |
michael@428 | 163 | [\fB\-E\fR \fIname\fR ...] |
michael@428 | 164 | [\fB\-H\fR \fIname\fR ...] |
michael@428 | 165 | ([\fB\-a\fR] [\fB\-A\fR] | \fIpattern\fR ...) |
michael@428 | 166 | .SH "DESCRIPTION" |
michael@428 | 167 | .IX Header "DESCRIPTION" |
michael@428 | 168 | The \fBopenpkg build\fR tool provides automated recursive from-scratch |
michael@428 | 169 | installation of packages and the updating and upgrading of installed |
michael@428 | 170 | packages. |
michael@428 | 171 | .PP |
michael@428 | 172 | It generates a Bourne-Shell script on standard output (\fIstdout\fR) |
michael@428 | 173 | that can be executed to perform the package installation or |
michael@428 | 174 | updating/upgrading procedure for all requested packages and their |
michael@428 | 175 | dependencies. |
michael@428 | 176 | .PP |
michael@428 | 177 | Packages that are upgraded automatically trigger rebuilds of all |
michael@428 | 178 | packages that depend on the upgraded package (\*(L"reverse dependencies\*(R"). |
michael@428 | 179 | The dependency information is read from an \s-1XML/RDF\s0 index generated by |
michael@428 | 180 | the companion tool \fBopenpkg index\fR. |
michael@428 | 181 | .SH "ARGUMENTS" |
michael@428 | 182 | .IX Header "ARGUMENTS" |
michael@428 | 183 | Packages are selected by providing a list of name patterns. Each |
michael@428 | 184 | pattern is either a package name or a name prefix followed by a '\fI*\fR' |
michael@428 | 185 | character. Additionally, in order to resolve ambiguous dependencies, you |
michael@428 | 186 | can append a discrimination prefix separated by a comma that matches |
michael@428 | 187 | against the full "\fIname\fR\-\fIversion\fR\-\fIrevision\fR" string of a package. |
michael@428 | 188 | .SH "OPTIONS" |
michael@428 | 189 | .IX Header "OPTIONS" |
michael@428 | 190 | The following command line options exist: |
michael@428 | 191 | .IP "\fB\-R\fR \fIcommand\fR" 4 |
michael@428 | 192 | .IX Item "-R command" |
michael@428 | 193 | Specify the "\fBopenpkg rpm\fR" command with fully qualified path. |
michael@428 | 194 | Several other internal paths are deduced from the \fIcommand\fR path, |
michael@428 | 195 | so this has to be something like "\fIprefix\fR\f(CW\*(C`/bin/openpkg rpm\*(C'\fR". |
michael@428 | 196 | .IP "\fB\-r\fR \fIrepository\fR" 4 |
michael@428 | 197 | .IX Item "-r repository" |
michael@428 | 198 | Specify the path to an OpenPKG \s-1RPM\s0 package repository. |
michael@428 | 199 | This can be a \s-1URL\s0 (including \*(L"file://\*(R") to download packages from or |
michael@428 | 200 | an absolute directory path (identified by leading \*(L"/\*(R") or |
michael@428 | 201 | a relative directory path (identified by leading \*(L"./\*(R") to access packages directly. |
michael@428 | 202 | The name of the package file is appended to this path. |
michael@428 | 203 | The default is to use a \s-1URL\s0 pointing to the \fBOpenPKG\fR download service |
michael@428 | 204 | as determined by the "\fBopenpkg release\fR" command. |
michael@428 | 205 | .IP "\fB\-f\fR \fIindex.rdf\fR" 4 |
michael@428 | 206 | .IX Item "-f index.rdf" |
michael@428 | 207 | Specify the path to the primary \s-1XML/RDF\s0 index. This can be a \s-1URL\s0 or a |
michael@428 | 208 | file path. If the index contains references to other indices, these |
michael@428 | 209 | are recursively included automatically. The default is to use a \s-1URL\s0 |
michael@428 | 210 | pointing to the \fBOpenPKG\fR \s-1FTP\s0 server as as determined by the "\fBopenpkg |
michael@428 | 211 | release\fR" command. |
michael@428 | 212 | .IP "\fB\-u\fR" 4 |
michael@428 | 213 | .IX Item "-u" |
michael@428 | 214 | The generated script will ignore binary RPMs that are stored on |
michael@428 | 215 | your system. Instead it will either fetch binary RPMs or rebuild |
michael@428 | 216 | from source RPMs fetched from the repository. |
michael@428 | 217 | .IP "\fB\-U\fR" 4 |
michael@428 | 218 | .IX Item "-U" |
michael@428 | 219 | The generated script will try to upgrade all selected packages |
michael@428 | 220 | including their dependencies to the most recent version. Use |
michael@428 | 221 | this for usual upgrade tasks in combination with option "\fB\-a\fR". |
michael@428 | 222 | .IP "\fB\-z\fR" 4 |
michael@428 | 223 | .IX Item "-z" |
michael@428 | 224 | The generated script will rebuild all selected packages |
michael@428 | 225 | including their dependencies even when the most recent version |
michael@428 | 226 | is already installed. |
michael@428 | 227 | .IP "\fB\-Z\fR" 4 |
michael@428 | 228 | .IX Item "-Z" |
michael@428 | 229 | \&\fBopenpkg build\fR ignores all installed packages, the |
michael@428 | 230 | generated script will rebuild all selected packages from scratch. |
michael@428 | 231 | .IP "\fB\-i\fR" 4 |
michael@428 | 232 | .IX Item "-i" |
michael@428 | 233 | The generated script will ignore run-time errors. |
michael@428 | 234 | .IP "\fB\-q\fR" 4 |
michael@428 | 235 | .IX Item "-q" |
michael@428 | 236 | Ignore all reverse dependencies. This means that all packages which are |
michael@428 | 237 | rebuild do \fInot\fR trigger a rebuild of packages which depend on them. |
michael@428 | 238 | \&\fI\s-1ATTENTION:\s0 this might break already installed packages and has to be |
michael@428 | 239 | used with care! You should really know what you are doing.\fR |
michael@428 | 240 | .IP "\fB\-s\fR" 4 |
michael@428 | 241 | .IX Item "-s" |
michael@428 | 242 | Generate a status map instead of the shell script. The map consists |
michael@428 | 243 | of 3 columns: \fIold\fR, \fItag\fR and \fInew\fR. The \fIold\fR column shows |
michael@428 | 244 | the installed version of a package (\fIname\fR\-\fIversion\fR\-\fIrelease\fR) |
michael@428 | 245 | or just the package name (\fIname\fR) if no package of that name |
michael@428 | 246 | is installed and the \fInew\fR column shows the repository version |
michael@428 | 247 | (\fIname\fR\-\fIversion\fR\-\fIrelease\fR) of a package if it is considered for |
michael@428 | 248 | installation. The \fItag\fR column shows the following possible values: |
michael@428 | 249 | .RS 4 |
michael@428 | 250 | .IP "\s-1OK\s0" 10 |
michael@428 | 251 | .IX Item "OK" |
michael@428 | 252 | The installed package is suitable and will not be touched. |
michael@428 | 253 | .IP "\s-1ADD\s0" 10 |
michael@428 | 254 | .IX Item "ADD" |
michael@428 | 255 | There is no installed package yet. |
michael@428 | 256 | .IP "\s-1UPGRADE\s0" 10 |
michael@428 | 257 | .IX Item "UPGRADE" |
michael@428 | 258 | The installed package is outdated and requires an update. |
michael@428 | 259 | .IP "\s-1DEPEND\s0" 10 |
michael@428 | 260 | .IX Item "DEPEND" |
michael@428 | 261 | The installed package needs rebuilding because one of its |
michael@428 | 262 | dependencies is rebuild. |
michael@428 | 263 | .IP "\s-1MISMATCH\s0" 10 |
michael@428 | 264 | .IX Item "MISMATCH" |
michael@428 | 265 | The installed package needs rebuilding because it was build |
michael@428 | 266 | with different parameters. |
michael@428 | 267 | .IP "\s-1CONFLICT\s0" 10 |
michael@428 | 268 | .IX Item "CONFLICT" |
michael@428 | 269 | The required new package cannot be installed because it |
michael@428 | 270 | conflicts with some already installed package. |
michael@428 | 271 | .IP "\s-1UNDEF\s0" 10 |
michael@428 | 272 | .IX Item "UNDEF" |
michael@428 | 273 | The package has an invalid or ambiguous dependency. |
michael@428 | 274 | .RE |
michael@428 | 275 | .RS 4 |
michael@428 | 276 | .RE |
michael@428 | 277 | .IP "\fB\-S\fR" 4 |
michael@428 | 278 | .IX Item "-S" |
michael@428 | 279 | Similar to option "\fB\-s\fR" but also lists the newest versions in the |
michael@428 | 280 | repository. The following \fItag\fR might appear in the map: |
michael@428 | 281 | .RS 4 |
michael@428 | 282 | .IP "\s-1NEW\s0" 10 |
michael@428 | 283 | .IX Item "NEW" |
michael@428 | 284 | The package exists in the repository but is not required yet. |
michael@428 | 285 | .RE |
michael@428 | 286 | .RS 4 |
michael@428 | 287 | .RE |
michael@428 | 288 | .IP "\fB\-M\fR" 4 |
michael@428 | 289 | .IX Item "-M" |
michael@428 | 290 | Similar to option "\fB\-s\fR" but print a short dependency map. |
michael@428 | 291 | .IP "\fB\-L\fR" 4 |
michael@428 | 292 | .IX Item "-L" |
michael@428 | 293 | Print a list of packages in the repository that depend on the target. |
michael@428 | 294 | .IP "\fB\-W\fR" 4 |
michael@428 | 295 | .IX Item "-W" |
michael@428 | 296 | Include all conditional dependencies as if all possible configuration |
michael@428 | 297 | options had been switched on. This has little use in practice except for |
michael@428 | 298 | generating an all-inclusive list with option "\fB\-L\fR". \fI\s-1ATTENTION:\s0 Even |
michael@428 | 299 | mutually exclusive options are evaluated to be 'on', building packages |
michael@428 | 300 | with option \*(L"\-W\*(R" therefore might fail or cause unusable results!\fR |
michael@428 | 301 | .IP "\fB\-X\fR" 4 |
michael@428 | 302 | .IX Item "-X" |
michael@428 | 303 | Use the slower but more robust external Perl \s-1XML\s0 parser module |
michael@428 | 304 | XML::Simple instead of the simple internal \s-1XML/RDF\s0 parser. |
michael@428 | 305 | .IP "\fB\-K\fR" 4 |
michael@428 | 306 | .IX Item "-K" |
michael@428 | 307 | Keep packages that were installed temporarily during the build process. |
michael@428 | 308 | Without this option those packages are removed. |
michael@428 | 309 | .IP "\fB\-k\fR" 4 |
michael@428 | 310 | .IX Item "-k" |
michael@428 | 311 | Keep packages that were downloaded temporarily for installation or building. |
michael@428 | 312 | Without this option those packages are removed. |
michael@428 | 313 | .IP "\fB\-e\fR" 4 |
michael@428 | 314 | .IX Item "-e" |
michael@428 | 315 | Rebuild exact version of a package from repository even when you have |
michael@428 | 316 | installed a newer version from another repository. |
michael@428 | 317 | .IP "\fB\-b\fR" 4 |
michael@428 | 318 | .IX Item "-b" |
michael@428 | 319 | Wrap package rebuilding commands with script execution-time checks for |
michael@428 | 320 | existing binary packages if the package is rebuild as a dependency. Wrap |
michael@428 | 321 | package install commands with script execution-time checks for different |
michael@428 | 322 | \&\s-1MD5\s0 signature checksums of binary packages and installed packages. This |
michael@428 | 323 | is best to use with option "\fB\-u\fR" to defer all such checks until script |
michael@428 | 324 | execution-time. |
michael@428 | 325 | .IP "\fB\-B\fR" 4 |
michael@428 | 326 | .IX Item "-B" |
michael@428 | 327 | Same as option "\fB\-b\fR" but also check all explicit target packages for |
michael@428 | 328 | existing binary packages at script execution-time. |
michael@428 | 329 | .IP "\fB\-g\fR" 4 |
michael@428 | 330 | .IX Item "-g" |
michael@428 | 331 | The generated script will rebuild all packages selected even when the |
michael@428 | 332 | most recent version is already installed. Dependencies are not affected. |
michael@428 | 333 | Use this especially for updating a package with different build options |
michael@428 | 334 | (see option "\fB\-D\fR"). |
michael@428 | 335 | .IP "\fB\-P\fR \fIpriv-cmd\fR" 4 |
michael@428 | 336 | .IX Item "-P priv-cmd" |
michael@428 | 337 | Command prefix to use for generated script commands that require |
michael@428 | 338 | elevated privileges (like "\fBopenpkg rpm \-Uvh\fR"). The most common tool |
michael@428 | 339 | for this is \fIsudo\fR\|(8). If \fIpriv-cmd\fR starts with a dash it will be run |
michael@428 | 340 | without the dash and the command line it should execute is passed as |
michael@428 | 341 | a single quoted string. Use this option for upgrading privileges. For |
michael@428 | 342 | instance, if you are running the \f(CW\*(C`openpkg build\*(C'\fR\*(L" command as the |
michael@428 | 343 | management user, use \*(R"\f(CW\*(C`\-P sudo\*(C'\fR\*(L" to make sure that the \*(R"\fBopenpkg rpm |
michael@428 | 344 | \&\-Uvh\fR" commands in the generated script execute with necessary elevated |
michael@428 | 345 | privileges. |
michael@428 | 346 | .IP "\fB\-N\fR \fInon-priv-cmd\fR" 4 |
michael@428 | 347 | .IX Item "-N non-priv-cmd" |
michael@428 | 348 | Command prefix to use for generated script commands that do \fInot\fR |
michael@428 | 349 | require elevated privileges (like "\fBopenpkg rpm \-\-rebuild\fR"). The most |
michael@428 | 350 | common tool for this is \fIsu\fR\|(8). If \fInon-priv-cmd\fR starts with a dash |
michael@428 | 351 | it will be run without the dash and the command line it should execute |
michael@428 | 352 | is passed as a single quoted string. Use this option for downgrading |
michael@428 | 353 | privileges. For instance, if you are running the \f(CW\*(C`openpkg build\*(C'\fR" |
michael@428 | 354 | command as the \fBroot\fR user, use "\f(CW\*(C`\-N \*(Aq\-su \- \*(C'\fR\fImusr\fR\f(CW\*(C` \-c\*(Aq\*(C'\fR" to make |
michael@428 | 355 | sure that the non-privileged commands in the generated script execute |
michael@428 | 356 | with privileges of the management user \fImusr\fR. |
michael@428 | 357 | .IP "\fB\-p\fR \fIplatform\fR" 4 |
michael@428 | 358 | .IX Item "-p platform" |
michael@428 | 359 | The platform string that is matched against the \s-1XML/RDF\s0 index for binary |
michael@428 | 360 | packages. The default is an empty \fIplatform\fR string so that no binary |
michael@428 | 361 | packages are matched at all. |
michael@428 | 362 | .IP "\fB\-D\fR \fIvar\fR=\fIval\fR" 4 |
michael@428 | 363 | .IX Item "-D var=val" |
michael@428 | 364 | Specify build options for selected packages. This can be either |
michael@428 | 365 | "\fB\-D\fR \fIwith_xxx\fR=\fIyyy\fR\*(L" or just \*(R"\fB\-D\fR \fIwith_xxx\fR\*(L". The latter is |
michael@428 | 366 | equivalent to a \*(R"\fB\-D\fR \fIwith_xxx\fR=\fIyes\fR\*(L". The parameters are matched |
michael@428 | 367 | against selected packages that are already installed. If they do |
michael@428 | 368 | indicate a change, the package is rebuild. There can be multiple \*(R"\fB\-D\fR" |
michael@428 | 369 | options. |
michael@428 | 370 | .Sp |
michael@428 | 371 | If the option name is prefixed with a package name followed by |
michael@428 | 372 | two colons then it applies only to the specified package, e.g., |
michael@428 | 373 | "\fB\-D\fR\fIfoo::with_bar\fR". |
michael@428 | 374 | .IP "\fB\-E\fR \fIname\fR" 4 |
michael@428 | 375 | .IX Item "-E name" |
michael@428 | 376 | Ignore a package with the specified \fIname\fR. This can be used to avoid |
michael@428 | 377 | upgrading to a broken package in the repository or to skip a package |
michael@428 | 378 | upgrade temporarily. If you use a wildcard pattern or the options |
michael@428 | 379 | "\fB\-a\fR\*(L" or \*(R"\fB\-A\fR" then \fIname\fR will be excluded. There can be multiple |
michael@428 | 380 | "\fB\-E\fR" options. |
michael@428 | 381 | .IP "\fB\-H\fR \fIname\fR" 4 |
michael@428 | 382 | .IX Item "-H name" |
michael@428 | 383 | Hint about packages that should be preferred when more than one fits |
michael@428 | 384 | a requirement. There can be multiple "\fB\-H\fR" options. |
michael@428 | 385 | .IP "\fB\-a\fR" 4 |
michael@428 | 386 | .IX Item "-a" |
michael@428 | 387 | Select all installed packages. You cannot specify a pattern list together |
michael@428 | 388 | with the "\fB\-a\fR" option. |
michael@428 | 389 | .IP "\fB\-A\fR" 4 |
michael@428 | 390 | .IX Item "-A" |
michael@428 | 391 | Select all packages in the repository. You cannot specify a pattern list |
michael@428 | 392 | together with the "\fB\-A\fR" option. |
michael@428 | 393 | .SH "ARGUMENTS" |
michael@428 | 394 | .IX Header "ARGUMENTS" |
michael@428 | 395 | In case neither option \fB\-a\fR nor option \fB\-A\fR are specified, |
michael@428 | 396 | the command line has to contain one or more package \fIpattern\fR |
michael@428 | 397 | arguments. Each \fIpattern\fR can have the following forms: |
michael@428 | 398 | .IP "\fIname\fR" 4 |
michael@428 | 399 | .IX Item "name" |
michael@428 | 400 | A regular package name. |
michael@428 | 401 | .IP "\fIname\fR\fB*\fR" 4 |
michael@428 | 402 | .IX Item "name*" |
michael@428 | 403 | A package name wildcard pattern. |
michael@428 | 404 | .IP "\fIname\fR\fB,\fR\fIname\fR[\fB\-\fR\fIversion\fR[\fB\-\fR\fIrelease\fR]]" 4 |
michael@428 | 405 | .IX Item "name,name[-version[-release]]" |
michael@428 | 406 | A regular package name followed by a constraint |
michael@428 | 407 | which particular package should be chosen. |
michael@428 | 408 | .SH "CONFIGURATION" |
michael@428 | 409 | .IX Header "CONFIGURATION" |
michael@428 | 410 | \&\fBopenpkg build\fR reads the configuration file \fI\f(CI$HOME\fI/.openpkg/build\fR. |
michael@428 | 411 | The file lists default options, one option per line and section tags |
michael@428 | 412 | of the form \f(CW\*(C`[\*(C'\fR\fIprefix\fR\f(CW\*(C`]\*(C'\fR. Options following such a tag are only |
michael@428 | 413 | evaluated for the particular \fBOpenPKG\fR instance so that you can |
michael@428 | 414 | define default options for multiple \fBOpenPKG\fR instances. |
michael@428 | 415 | .PP |
michael@428 | 416 | Example: |
michael@428 | 417 | .PP |
michael@428 | 418 | .Vb 2 |
michael@428 | 419 | \& # global options |
michael@428 | 420 | \& \-X |
michael@428 | 421 | \& |
michael@428 | 422 | \& [/openpkg/current] |
michael@428 | 423 | \& # options for CURRENT stack only |
michael@428 | 424 | \& \-r http://download.openpkg.org/stacks/current/source/ |
michael@428 | 425 | \& |
michael@428 | 426 | \& [/openpkg/foo] |
michael@428 | 427 | \& # options for a FOO stack only |
michael@428 | 428 | \& \-r http://download.openpkg.org/stacks/foo/source/ |
michael@428 | 429 | .Ve |
michael@428 | 430 | .SH "EXAMPLES" |
michael@428 | 431 | .IX Header "EXAMPLES" |
michael@428 | 432 | The following shows a few typical OpenPKG instance |
michael@428 | 433 | maintenance tasks which involve the \fBopenpkg build\fR command: |
michael@428 | 434 | .SS "Installation" |
michael@428 | 435 | .IX Subsection "Installation" |
michael@428 | 436 | The following examples shows how to initially install an OpenPKG |
michael@428 | 437 | instance under \fI/openpkg\fR with Apache/PHP & MySQL: |
michael@428 | 438 | .PP |
michael@428 | 439 | .Vb 5 |
michael@428 | 440 | \& # bootstrap the OpenPKG instance |
michael@428 | 441 | \& $ curl \-L \-O http://openpkg.org/go/download/openpkg.src.sh |
michael@428 | 442 | \& $ sh openpkg\-*\-*.src.sh \-\-prefix=/openpkg \e |
michael@428 | 443 | \& \-\-user=openpkg \-\-group=openpkg \-\-tag=openpkg |
michael@428 | 444 | \& $ sh openpkg\-*\-*.*\-*\-openpkg.sh |
michael@428 | 445 | \& |
michael@428 | 446 | \& # install Apache/PHP & MySQL |
michael@428 | 447 | \& $ /openpkg/bin/openpkg build \e |
michael@428 | 448 | \& \-D apache\-php::with_mysql=yes \e |
michael@428 | 449 | \& apache apache\-php mysql | sh |
michael@428 | 450 | .Ve |
michael@428 | 451 | .SS "Reinstallation" |
michael@428 | 452 | .IX Subsection "Reinstallation" |
michael@428 | 453 | The following example shows how to rebuild and reinstall the already |
michael@428 | 454 | installed package \*(L"foo\*(R": |
michael@428 | 455 | .PP |
michael@428 | 456 | .Vb 2 |
michael@428 | 457 | \& # rebuild and reinstall package |
michael@428 | 458 | \& $ /openpkg/bin/openpkg build \-g \-u foo | sh |
michael@428 | 459 | .Ve |
michael@428 | 460 | .SS "Change" |
michael@428 | 461 | .IX Subsection "Change" |
michael@428 | 462 | The following fictive example shows how to change the already |
michael@428 | 463 | installed package \*(L"foo\*(R" by rebuilding and reinstalling it with the |
michael@428 | 464 | "\f(CW\*(C`foo::with_bar\*(C'\fR" build-time option enabled. |
michael@428 | 465 | .PP |
michael@428 | 466 | .Vb 2 |
michael@428 | 467 | \& # change a package |
michael@428 | 468 | \& $ /openpkg/bin/openpkg build \-g \-D with_bar=yes foo | sh |
michael@428 | 469 | .Ve |
michael@428 | 470 | .SS "Update" |
michael@428 | 471 | .IX Subsection "Update" |
michael@428 | 472 | The following example shows how to update (no major |
michael@428 | 473 | OpenPKG version change) an OpenPKG instance under \fI/openpkg\fR: |
michael@428 | 474 | .PP |
michael@428 | 475 | .Vb 2 |
michael@428 | 476 | \& # update all packages to their latest version |
michael@428 | 477 | \& $ /openpkg/bin/openpkg build \-Ua | sh |
michael@428 | 478 | .Ve |
michael@428 | 479 | .SS "Upgrade" |
michael@428 | 480 | .IX Subsection "Upgrade" |
michael@428 | 481 | The following examples shows a complete procedure for upgrading (major |
michael@428 | 482 | OpenPKG version change) the instance under \fI/openpkg\fR to OpenPKG |
michael@428 | 483 | 4.X: |
michael@428 | 484 | .PP |
michael@428 | 485 | .Vb 3 |
michael@428 | 486 | \& # upgrade the bootstrap package |
michael@428 | 487 | \& $ /openpkg/bin/openpkg build \e |
michael@428 | 488 | \& \-r http://download.openpkg.org/stacks/current/source/ openpkg | sh |
michael@428 | 489 | \& |
michael@428 | 490 | \& # upgrade the whole OpenPKG instance, in correct dependency |
michael@428 | 491 | \& # order and by keeping all chosen build\-time options. |
michael@428 | 492 | \& $ /openpkg/bin/openpkg build \-ZaKB | sh |
michael@428 | 493 | .Ve |
michael@428 | 494 | .SS "Deinstallation" |
michael@428 | 495 | .IX Subsection "Deinstallation" |
michael@428 | 496 | The following example shows how to deinstall |
michael@428 | 497 | an entire OpenPKG intance under \fI/openpkg\fR: |
michael@428 | 498 | .PP |
michael@428 | 499 | .Vb 3 |
michael@428 | 500 | \& # remove all packages and the instance itself |
michael@428 | 501 | \& $ /openpkg/bin/openpkg rpm \-e \e |
michael@428 | 502 | \& \`/openpkg/bin/openpkg rpm \-qa\` |
michael@428 | 503 | .Ve |
michael@428 | 504 | .SH "CAVEATS" |
michael@428 | 505 | .IX Header "CAVEATS" |
michael@428 | 506 | Parallel execution of \fBopenpkg build\fR causes undefined effects. |
michael@428 | 507 | .SH "HISTORY" |
michael@428 | 508 | .IX Header "HISTORY" |
michael@428 | 509 | The \fBopenpkg build\fR command was invented in November 2002 by \fIMichael |
michael@428 | 510 | van Elst\fR <mlelstv@serpens.de> under contract with \fICable |
michael@428 | 511 | & Wireless\fR <http://www.cw.com/> for use inside the \fBOpenPKG\fR |
michael@428 | 512 | project <http://www.openpkg.org/>. It was then further |
michael@428 | 513 | refined by the \fBOpenPKG Foundation e.V.\fR as part of the OpenPKG Tool Chain. |