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 "STACK 8" |
michael@428 | 127 | .TH STACK 8 "OpenPKG" "STACK(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 stack \- OpenPKG Software Stack Generation |
michael@428 | 134 | .SH "SYNOPSIS" |
michael@428 | 135 | .IX Header "SYNOPSIS" |
michael@428 | 136 | \&\fBopenpkg stack\fR |
michael@428 | 137 | [\fB\-h\fR|\fB\-\-help\fR] |
michael@428 | 138 | [\fB\-v\fR|\fB\-\-verbose\fR \fIlevel\fR] |
michael@428 | 139 | [\fB\-o\fR|\fB\-\-output\fR \fIdir\fR] |
michael@428 | 140 | [\fB\-D\fR|\fB\-\-define\fR \fIname\fR=\fIvalue\fR ...] |
michael@428 | 141 | [\fB\-u\fR|\fB\-\-unversioned\fR] |
michael@428 | 142 | [\fB\-q\fR|\fB\-\-query\fR] |
michael@428 | 143 | \&\fI\fIname\fI.stk\fR |
michael@428 | 144 | .SH "DESCRIPTION" |
michael@428 | 145 | .IX Header "DESCRIPTION" |
michael@428 | 146 | The \fBopenpkg stack\fR command reads a OpenPKG software stack definition |
michael@428 | 147 | \&\fI\fIname\fI.stk\fR, generates a OpenPKG software stack deployment script |
michael@428 | 148 | \&\fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].sh\fR, determines, downloads and |
michael@428 | 149 | stores all required corresponding OpenPKG source packages under |
michael@428 | 150 | \&\fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].src.d/*.src.{sh,rpm}\fR. |
michael@428 | 151 | .PP |
michael@428 | 152 | On executing the generated OpenPKG software stack deployment |
michael@428 | 153 | script \fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].sh\fR, an OpenPKG |
michael@428 | 154 | instance is created (or reused if existing), all packages |
michael@428 | 155 | built and installed in topologically correct dependency order |
michael@428 | 156 | and the resulting OpenPKG binary packages stored as |
michael@428 | 157 | \&\fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].\fIplatform\fI\-\fItag\fI.d/*.{sh,rpm}\fR. |
michael@428 | 158 | .PP |
michael@428 | 159 | The main design decisions and intentions of OpenPKG software stacks are: |
michael@428 | 160 | .IP "1." 4 |
michael@428 | 161 | OpenPKG software stacks can be centrally defined in a single file |
michael@428 | 162 | \&\fI\fIname\fI.stk\fR, similar to the definition of OpenPKG software packages in |
michael@428 | 163 | \&\fI\fIname\fI.spec\fR files. This definition includes both OpenPKG framework |
michael@428 | 164 | bootstrap parameters, OpenPKG package build parameters and OpenPKG |
michael@428 | 165 | software stack specific deployment-time prolog and epilog scripts. |
michael@428 | 166 | .IP "2." 4 |
michael@428 | 167 | OpenPKG software stacks depend on particular OpenPKG software packages |
michael@428 | 168 | (and perhaps even their particular versions) and by downloading and |
michael@428 | 169 | locally storing all relevant OpenPKG software packages an OpenPKG |
michael@428 | 170 | software stack remains stable and self-contained \*(-- even if new versions |
michael@428 | 171 | of OpenPKG software packages are released. |
michael@428 | 172 | .IP "3." 4 |
michael@428 | 173 | For generating the OpenPKG software stack files, an OpenPKG instance |
michael@428 | 174 | and its \fBopenpkg stack\fR command is required, but executing the OpenPKG |
michael@428 | 175 | software stack deployment script does \s-1NOT\s0 require any pre-existing |
michael@428 | 176 | OpenPKG instances. |
michael@428 | 177 | .IP "4." 4 |
michael@428 | 178 | By wrapping \fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].sh\fR and |
michael@428 | 179 | \&\fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].src.d/\fR into a \fIShell Execution |
michael@428 | 180 | Archive\fR \fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].src.sh\fR with the \fBopenpkg |
michael@428 | 181 | sea\fR command, you can provide a single self-contained file for building |
michael@428 | 182 | and installing an OpenPKG software stack from OpenPKG source packages. |
michael@428 | 183 | .IP "5." 4 |
michael@428 | 184 | By wrapping \fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].sh\fR and |
michael@428 | 185 | \&\fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].\fIplatform\fI\-\fItag\fI.d/\fR |
michael@428 | 186 | into a \fIShell Execution Archive\fR |
michael@428 | 187 | \&\fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].\fIplatform\fI\-\fItag\fI.sh\fR with the |
michael@428 | 188 | \&\fBopenpkg sea\fR command, you can provide a single self-contained file for |
michael@428 | 189 | installing an OpenPKG software stack from OpenPKG binary packages. |
michael@428 | 190 | .SH "COMMAND-LINE OPTIONS AND ARGUMENTS" |
michael@428 | 191 | .IX Header "COMMAND-LINE OPTIONS AND ARGUMENTS" |
michael@428 | 192 | .IP "\fB\-h\fR|\fB\-\-help\fR" 4 |
michael@428 | 193 | .IX Item "-h|--help" |
michael@428 | 194 | Just shows a short usage information for the \fBopenpkg stack\fR command. |
michael@428 | 195 | .IP "\fB\-v\fR|\fB\-\-verbose\fR \fIlevel\fR" 4 |
michael@428 | 196 | .IX Item "-v|--verbose level" |
michael@428 | 197 | Sets the verbosity level for outputs, from \f(CW0\fR (no output at all) to 4 |
michael@428 | 198 | (all possible outputs). The default is \f(CW4\fR. |
michael@428 | 199 | .IP "\fB\-o\fR|\fB\-\-output\fR \fIdir\fR" 4 |
michael@428 | 200 | .IX Item "-o|--output dir" |
michael@428 | 201 | The output directory for the OpenPKG software stack files. |
michael@428 | 202 | The default is the current directory (\fI.\fR). |
michael@428 | 203 | .IP "[\fB\-D\fR|\fB\-\-define\fR \fIname\fR=\fIvalue\fR ...]" 4 |
michael@428 | 204 | .IX Item "[-D|--define name=value ...]" |
michael@428 | 205 | On-the-fly overrides the value of option macro \f(CW\*(C`%{\f(CIname\f(CW}\*(C'\fR with |
michael@428 | 206 | \&\fIvalue\fR. Use this to generate a variant of an OpenPKG software stack |
michael@428 | 207 | without modifying the software stack definition file. |
michael@428 | 208 | .IP "[\fB\-u\fR|\fB\-\-unversioned\fR]" 4 |
michael@428 | 209 | .IX Item "[-u|--unversioned]" |
michael@428 | 210 | By default \fBopenpkg stack\fR creates the file |
michael@428 | 211 | \&\f(CW\*(C`\f(CIname\f(CW\-\f(CIversion\f(CW\-\f(CIrelease\f(CW.sh\*(C'\fR (deployment script) and the |
michael@428 | 212 | directory \f(CW\*(C`\f(CIname\f(CW\-\f(CIversion\f(CW\-\f(CIrelease\f(CW.src.d/\*(C'\fR (source packages). |
michael@428 | 213 | With this option the names are \f(CW\*(C`\f(CIname\f(CW.sh\*(C'\fR and \f(CW\*(C`\f(CIname\f(CW.src.d/\*(C'\fR only. |
michael@428 | 214 | .IP "[\fB\-q\fR|\fB\-\-query\fR]" 4 |
michael@428 | 215 | .IX Item "[-q|--query]" |
michael@428 | 216 | Forces a different operation mode where a shell script is output |
michael@428 | 217 | on \fIstdout\fR containing variable definitions in the format |
michael@428 | 218 | \&\f(CW\*(C`\f(CIname\f(CW="\f(CIvalue\f(CW";\*(C'\fR with information about the software stack |
michael@428 | 219 | definition. The provided variable names are \f(CW\*(C`name\*(C'\fR, \f(CW\*(C`summary\*(C'\fR, |
michael@428 | 220 | \&\f(CW\*(C`packager\*(C'\fR, \f(CW\*(C`version\*(C'\fR and \f(CW\*(C`release\*(C'\fR for the corresponding headers, |
michael@428 | 221 | plus variables for all defined software stack options (see \f(CW%option\fR |
michael@428 | 222 | section below). |
michael@428 | 223 | .IP "\fIname\fR\fI.stk\fR" 4 |
michael@428 | 224 | .IX Item "name.stk" |
michael@428 | 225 | The mandatory OpenPKG software stack definition file. |
michael@428 | 226 | See below under \fB\s-1SOFTWARE\s0 \s-1STACK\s0 \s-1DEFINITION\s0\fR for details. |
michael@428 | 227 | .SH "SOFTWARE STACK DEFINITION" |
michael@428 | 228 | .IX Header "SOFTWARE STACK DEFINITION" |
michael@428 | 229 | An OpenPKG software stack is defined by a configuration file |
michael@428 | 230 | containing headers (\f(CW\*(C`Foo:\*(C'\fR) and sections (<%foo>). |
michael@428 | 231 | .SS "Configuration Headers" |
michael@428 | 232 | .IX Subsection "Configuration Headers" |
michael@428 | 233 | .IP "\fBName\fR" 4 |
michael@428 | 234 | .IX Item "Name" |
michael@428 | 235 | The name of the OpenPKG software stack. Also used as a prefix for many |
michael@428 | 236 | files. Should match the regular expression \f(CW\*(C`^[a\-z][a\-zA\-Z0\-9]+\*(C'\fR, |
michael@428 | 237 | although this is not enforced. Example: \f(CW\*(C`Name: example\*(C'\fR. |
michael@428 | 238 | .IP "\fBSummary\fR" 4 |
michael@428 | 239 | .IX Item "Summary" |
michael@428 | 240 | A single line, shortly summarizing the purpose of the OpenPKG software |
michael@428 | 241 | stack. Example: \f(CW\*(C`Summary: Example Stack\*(C'\fR. |
michael@428 | 242 | .IP "\fBPackager\fR" 4 |
michael@428 | 243 | .IX Item "Packager" |
michael@428 | 244 | Name of the packager of the OpenPKG software software stack. |
michael@428 | 245 | Example: \f(CW\*(C`Packager: OpenPKG GmbH\*(C'\fR. |
michael@428 | 246 | .IP "\fBVersion\fR" 4 |
michael@428 | 247 | .IX Item "Version" |
michael@428 | 248 | Version identifier of the OpenPKG software stack. Describes the |
michael@428 | 249 | \&\fIlogical\fR revision of the software stack definition. Should match the |
michael@428 | 250 | regular expression \f(CW\*(C`^[0\-9]+\e.[0\-9]\e.[0\-9]+$\*(C'\fR, although this is not |
michael@428 | 251 | enforced. Example: \f(CW\*(C`Version: 1.0.0\*(C'\fR. |
michael@428 | 252 | .IP "\fBRelease\fR" 4 |
michael@428 | 253 | .IX Item "Release" |
michael@428 | 254 | Release identifier of the OpenPKG software stack. Describes the |
michael@428 | 255 | \&\fIphysical\fR revision of the stack definition. Should be in the format |
michael@428 | 256 | \&\f(CW\*(C`YYYYMMDD\*(C'\fR and hence match the regular expression \f(CW\*(C`^[0\-9]{8}$\*(C'\fR, |
michael@428 | 257 | although this is not enforced. Example: \f(CW\*(C`Release: 20120101\*(C'\fR. |
michael@428 | 258 | .SS "Configuration Sections" |
michael@428 | 259 | .IX Subsection "Configuration Sections" |
michael@428 | 260 | .ie n .IP "\fB\fB%options\fB\fR" 4 |
michael@428 | 261 | .el .IP "\fB\f(CB%options\fB\fR" 4 |
michael@428 | 262 | .IX Item "%options" |
michael@428 | 263 | Zero or more options for the OpenPKG software stack, one per line, in |
michael@428 | 264 | the format "\fIname\fR \fIdefault-value\fR". Options can be overridden on |
michael@428 | 265 | the command-line with \fB\-D\fR\fIname\fR=\fIvalue\fR. Example: \f(CW\*(C`with_ssl yes\*(C'\fR. |
michael@428 | 266 | Option values can be expanded in all headers and sections through the |
michael@428 | 267 | following constructs: |
michael@428 | 268 | .RS 4 |
michael@428 | 269 | .ie n .IP "\*(C`%{\f(CIname\f(CW}\*(C'" 4 |
michael@428 | 270 | .el .IP "\f(CW\*(C`%{\f(CIname\f(CW}\*(C'\fR" 4 |
michael@428 | 271 | .IX Item "%{name}" |
michael@428 | 272 | Expand to the value of option \fIname\fR. |
michael@428 | 273 | .ie n .IP "\*(C`%{?\f(CIname\f(CW:\f(CIvalue\f(CW}\*(C'" 4 |
michael@428 | 274 | .el .IP "\f(CW\*(C`%{?\f(CIname\f(CW:\f(CIvalue\f(CW}\*(C'\fR" 4 |
michael@428 | 275 | .IX Item "%{?name:value}" |
michael@428 | 276 | Expand to \fIvalue\fR if option \fIname\fR is defined. |
michael@428 | 277 | .ie n .IP "\*(C`%{!?\f(CIname\f(CW:\f(CIvalue\f(CW}\*(C'" 4 |
michael@428 | 278 | .el .IP "\f(CW\*(C`%{!?\f(CIname\f(CW:\f(CIvalue\f(CW}\*(C'\fR" 4 |
michael@428 | 279 | .IX Item "%{!?name:value}" |
michael@428 | 280 | Expand to \fIvalue\fR if option \fIname\fR is \s-1NOT\s0 defined. |
michael@428 | 281 | .RE |
michael@428 | 282 | .RS 4 |
michael@428 | 283 | .RE |
michael@428 | 284 | .ie n .IP "\fB\fB%description\fB\fR" 4 |
michael@428 | 285 | .el .IP "\fB\f(CB%description\fB\fR" 4 |
michael@428 | 286 | .IX Item "%description" |
michael@428 | 287 | A single textual paragraph describing the purpose of the OpenPKG |
michael@428 | 288 | software stack in more detail than header \f(CW\*(C`Summary\*(C'\fR. |
michael@428 | 289 | .ie n .IP "\fB\fB%framework\fB\fR" 4 |
michael@428 | 290 | .el .IP "\fB\f(CB%framework\fB\fR" 4 |
michael@428 | 291 | .IX Item "%framework" |
michael@428 | 292 | The command-line parameters passed to the OpenPKG framework |
michael@428 | 293 | bootstrap source shell package \fIopenpkg\-*.src.sh\fR. Usually at |
michael@428 | 294 | least the parameters \fB\-\-prefix=\fR\fIpath\fR, \fB\-\-user=\fR\fIusername\fR, |
michael@428 | 295 | \&\fB\-\-group=\fR\fIgroupname\fR and \fB\-\-tag=\fR\fItagname\fR are given here. In order |
michael@428 | 296 | to allow an OpenPKG software stack to be easily reused one creates |
michael@428 | 297 | the options (see \f(CW%option\fR above) named \f(CW\*(C`prefix\*(C'\fR, \f(CW\*(C`user\*(C'\fR, \f(CW\*(C`group\*(C'\fR |
michael@428 | 298 | and \f(CW\*(C`tag\*(C'\fR and then use \f(CW\*(C`\-\-prefix=%{prefix}\*(C'\fR, \f(CW\*(C`\-\-user=%{user}\*(C'\fR, |
michael@428 | 299 | \&\f(CW\*(C`\-\-group=%{group}\*(C'\fR and \f(CW\*(C`\-\-tag=%{tag}\*(C'\fR in this \f(CW%framework\fR section. |
michael@428 | 300 | .ie n .IP "\fB\fB%packages\fB\fR" 4 |
michael@428 | 301 | .el .IP "\fB\f(CB%packages\fB\fR" 4 |
michael@428 | 302 | .IX Item "%packages" |
michael@428 | 303 | The packages to build and install for the OpenPKG software stack, in |
michael@428 | 304 | the format of "\fB\-D\f(BIpackage\fB::\f(BIoption\fB=\f(BIvalue\fB\fR\*(L" and \*(R"\fIpackage\fR" |
michael@428 | 305 | specifications as understood by the \f(CW\*(C`openpkg build\*(C'\fR tool. Example: |
michael@428 | 306 | \&\f(CW\*(C`\-Dapache::with_mod_ssl=yes \-Dapache\-php::with_json=yes apache |
michael@428 | 307 | apache\-php\*(C'\fR. |
michael@428 | 308 | .ie n .IP "\fB\fB%prolog\fB\fR" 4 |
michael@428 | 309 | .el .IP "\fB\f(CB%prolog\fB\fR" 4 |
michael@428 | 310 | .IX Item "%prolog" |
michael@428 | 311 | A shell script executed before installation of all packages. |
michael@428 | 312 | The variable \f(CW$prefix\fR is available to access the |
michael@428 | 313 | OpenPKG software stack without having to hard-code a path. |
michael@428 | 314 | .ie n .IP "\fB\fB%epilog\fB\fR" 4 |
michael@428 | 315 | .el .IP "\fB\f(CB%epilog\fB\fR" 4 |
michael@428 | 316 | .IX Item "%epilog" |
michael@428 | 317 | A shell script executed after installation of all packages. This |
michael@428 | 318 | is usually used for applying OpenPKG software stack specific |
michael@428 | 319 | configurations. The variable \f(CW$prefix\fR is available to access the |
michael@428 | 320 | OpenPKG software stack without having to hard-code a path. Example: |
michael@428 | 321 | \&\f(CW\*(C`echo "openldap_enable=no" >>$prefix/etc/rc.conf\*(C'\fR. |
michael@428 | 322 | .SH "EXAMPLES" |
michael@428 | 323 | .IX Header "EXAMPLES" |
michael@428 | 324 | .Vb 1 |
michael@428 | 325 | \& $ cat xamp.stk |
michael@428 | 326 | \& |
michael@428 | 327 | \& Name: xamp |
michael@428 | 328 | \& Summary: Apache\-MySQL\-PHP Server |
michael@428 | 329 | \& Packager: OpenPKG GmbH |
michael@428 | 330 | \& Version: 1.0.0 |
michael@428 | 331 | \& Release: 20120407 |
michael@428 | 332 | \& |
michael@428 | 333 | \& %description |
michael@428 | 334 | \& This software stack contains a so\-called xAMP web stack, consisting |
michael@428 | 335 | \& of the major components Apache, MySQL and PHP. |
michael@428 | 336 | \& |
michael@428 | 337 | \& %options |
michael@428 | 338 | \& repo http://download.openpkg.org/stacks/current/source/ |
michael@428 | 339 | \& prefix /xamp |
michael@428 | 340 | \& user xamp |
michael@428 | 341 | \& group xamp |
michael@428 | 342 | \& tag xamp |
michael@428 | 343 | \& with_ldap no |
michael@428 | 344 | \& with_ssl no |
michael@428 | 345 | \& addr 127.0.0.1 |
michael@428 | 346 | \& |
michael@428 | 347 | \& %repository |
michael@428 | 348 | \& %{repo} |
michael@428 | 349 | \& |
michael@428 | 350 | \& %framework |
michael@428 | 351 | \& \-\-prefix=%{prefix} |
michael@428 | 352 | \& \-\-user=%{user} |
michael@428 | 353 | \& \-\-group=%{group} |
michael@428 | 354 | \& \-\-tag=%{tag} |
michael@428 | 355 | \& |
michael@428 | 356 | \& %packages |
michael@428 | 357 | \& \-D apache::with_mod_dav=yes |
michael@428 | 358 | \& \-D apache::with_mod_deflate=yes |
michael@428 | 359 | \& \-D apache::with_mod_ldap=%{with_ldap} |
michael@428 | 360 | \& \-D apache::with_mod_proxy=yes |
michael@428 | 361 | \& \-D apache::with_mod_ssl=%{with_ssl} |
michael@428 | 362 | \& \-D apache\-php::with_curl=yes |
michael@428 | 363 | \& \-D apache\-php::with_freetype=yes |
michael@428 | 364 | \& \-D apache\-php::with_gd=yes |
michael@428 | 365 | \& \-D apache\-php::with_iconv=yes |
michael@428 | 366 | \& \-D apache\-php::with_json=yes |
michael@428 | 367 | \& \-D apache\-php::with_mbregex=yes |
michael@428 | 368 | \& \-D apache\-php::with_mbstring=yes |
michael@428 | 369 | \& \-D apache\-php::with_mysql=yes |
michael@428 | 370 | \& \-D apache\-php::with_openldap=%{with_ldap} |
michael@428 | 371 | \& \-D apache\-php::with_session=yes |
michael@428 | 372 | \& \-D apache\-php::with_simplexml=yes |
michael@428 | 373 | \& \-D apache\-php::with_sqlite=yes |
michael@428 | 374 | \& \-D apache\-php::with_ssl=%{with_ssl} |
michael@428 | 375 | \& \-D apache\-php::with_xml=yes |
michael@428 | 376 | \& \-D apache\-php::with_zlib=yes |
michael@428 | 377 | \& apache |
michael@428 | 378 | \& apache\-php |
michael@428 | 379 | \& mysql |
michael@428 | 380 | \& |
michael@428 | 381 | \& %epilog |
michael@428 | 382 | \& shtool subst \e |
michael@428 | 383 | \& \-e \*(Aqs;127\e.0\e.0\e.1:%{addr};g\*(Aq \e |
michael@428 | 384 | \& %{prefix}/etc/apache/apache.conf |
michael@428 | 385 | \& if [ ".%{with_ldap}" = .yes ]; then |
michael@428 | 386 | \& echo "openldap_enable=\e"no\e"" >>%{prefix}/etc/rc.conf |
michael@428 | 387 | \& fi |
michael@428 | 388 | \& |
michael@428 | 389 | \& $ openpkg stack \-v4 \e |
michael@428 | 390 | \& \-Dprefix=/v/xamp \-Duser=xamp\-sw \-Dgroup=xamp\-sw \e |
michael@428 | 391 | \& \-\-unversioned xamp.stk |
michael@428 | 392 | \& |
michael@428 | 393 | \& $ openpkg sea \-o xamp.src.sh xamp.sh xamp.src.d/ |
michael@428 | 394 | \& |
michael@428 | 395 | \& $ sh xamp.src.sh \-v4 \-S sudo |
michael@428 | 396 | \& |
michael@428 | 397 | \& $ openpkg sea \-o xamp.bin.sh xamp.sh xamp.*\-*.d/ |
michael@428 | 398 | .Ve |
michael@428 | 399 | .SH "HISTORY" |
michael@428 | 400 | .IX Header "HISTORY" |
michael@428 | 401 | The \fBopenpkg stack\fR command was implemented in April 2012 by \fIRalf S. Engelschall\fR |
michael@428 | 402 | <rse@engelschall.com> for the OpenPKG Framework of the OpenPKG GmbH. |