openpkg/stack.8

Mon, 28 Jan 2013 17:37:18 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 28 Jan 2013 17:37:18 +0100
changeset 758
a2c6460cfb16
permissions
-rw-r--r--

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.

mercurial