| |
1 .\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22) |
| |
2 .\" |
| |
3 .\" Standard preamble: |
| |
4 .\" ======================================================================== |
| |
5 .de Sp \" Vertical space (when we can't use .PP) |
| |
6 .if t .sp .5v |
| |
7 .if n .sp |
| |
8 .. |
| |
9 .de Vb \" Begin verbatim text |
| |
10 .ft CW |
| |
11 .nf |
| |
12 .ne \\$1 |
| |
13 .. |
| |
14 .de Ve \" End verbatim text |
| |
15 .ft R |
| |
16 .fi |
| |
17 .. |
| |
18 .\" Set up some character translations and predefined strings. \*(-- will |
| |
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left |
| |
20 .\" double quote, and \*(R" will give a right double quote. \*(C+ will |
| |
21 .\" give a nicer C++. Capital omega is used to do unbreakable dashes and |
| |
22 .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, |
| |
23 .\" nothing in troff, for use with C<>. |
| |
24 .tr \(*W- |
| |
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' |
| |
26 .ie n \{\ |
| |
27 . ds -- \(*W- |
| |
28 . ds PI pi |
| |
29 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch |
| |
30 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch |
| |
31 . ds L" "" |
| |
32 . ds R" "" |
| |
33 . ds C` |
| |
34 . ds C' |
| |
35 'br\} |
| |
36 .el\{\ |
| |
37 . ds -- \|\(em\| |
| |
38 . ds PI \(*p |
| |
39 . ds L" `` |
| |
40 . ds R" '' |
| |
41 'br\} |
| |
42 .\" |
| |
43 .\" Escape single quotes in literal strings from groff's Unicode transform. |
| |
44 .ie \n(.g .ds Aq \(aq |
| |
45 .el .ds Aq ' |
| |
46 .\" |
| |
47 .\" If the F register is turned on, we'll generate index entries on stderr for |
| |
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index |
| |
49 .\" entries marked with X<> in POD. Of course, you'll have to process the |
| |
50 .\" output yourself in some meaningful fashion. |
| |
51 .ie \nF \{\ |
| |
52 . de IX |
| |
53 . tm Index:\\$1\t\\n%\t"\\$2" |
| |
54 .. |
| |
55 . nr % 0 |
| |
56 . rr F |
| |
57 .\} |
| |
58 .el \{\ |
| |
59 . de IX |
| |
60 .. |
| |
61 .\} |
| |
62 .\" |
| |
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). |
| |
64 .\" Fear. Run. Save yourself. No user-serviceable parts. |
| |
65 . \" fudge factors for nroff and troff |
| |
66 .if n \{\ |
| |
67 . ds #H 0 |
| |
68 . ds #V .8m |
| |
69 . ds #F .3m |
| |
70 . ds #[ \f1 |
| |
71 . ds #] \fP |
| |
72 .\} |
| |
73 .if t \{\ |
| |
74 . ds #H ((1u-(\\\\n(.fu%2u))*.13m) |
| |
75 . ds #V .6m |
| |
76 . ds #F 0 |
| |
77 . ds #[ \& |
| |
78 . ds #] \& |
| |
79 .\} |
| |
80 . \" simple accents for nroff and troff |
| |
81 .if n \{\ |
| |
82 . ds ' \& |
| |
83 . ds ` \& |
| |
84 . ds ^ \& |
| |
85 . ds , \& |
| |
86 . ds ~ ~ |
| |
87 . ds / |
| |
88 .\} |
| |
89 .if t \{\ |
| |
90 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" |
| |
91 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' |
| |
92 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' |
| |
93 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' |
| |
94 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' |
| |
95 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' |
| |
96 .\} |
| |
97 . \" troff and (daisy-wheel) nroff accents |
| |
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' |
| |
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H' |
| |
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] |
| |
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' |
| |
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' |
| |
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] |
| |
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] |
| |
105 .ds ae a\h'-(\w'a'u*4/10)'e |
| |
106 .ds Ae A\h'-(\w'A'u*4/10)'E |
| |
107 . \" corrections for vroff |
| |
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' |
| |
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' |
| |
110 . \" for low resolution devices (crt and lpr) |
| |
111 .if \n(.H>23 .if \n(.V>19 \ |
| |
112 \{\ |
| |
113 . ds : e |
| |
114 . ds 8 ss |
| |
115 . ds o a |
| |
116 . ds d- d\h'-1'\(ga |
| |
117 . ds D- D\h'-1'\(hy |
| |
118 . ds th \o'bp' |
| |
119 . ds Th \o'LP' |
| |
120 . ds ae ae |
| |
121 . ds Ae AE |
| |
122 .\} |
| |
123 .rm #[ #] #H #V #F C |
| |
124 .\" ======================================================================== |
| |
125 .\" |
| |
126 .IX Title "STACK 8" |
| |
127 .TH STACK 8 "OpenPKG" "STACK(8)" "OpenPKG" |
| |
128 .\" For nroff, turn off justification. Always turn off hyphenation; it makes |
| |
129 .\" way too many mistakes in technical documents. |
| |
130 .if n .ad l |
| |
131 .nh |
| |
132 .SH "NAME" |
| |
133 openpkg stack \- OpenPKG Software Stack Generation |
| |
134 .SH "SYNOPSIS" |
| |
135 .IX Header "SYNOPSIS" |
| |
136 \&\fBopenpkg stack\fR |
| |
137 [\fB\-h\fR|\fB\-\-help\fR] |
| |
138 [\fB\-v\fR|\fB\-\-verbose\fR \fIlevel\fR] |
| |
139 [\fB\-o\fR|\fB\-\-output\fR \fIdir\fR] |
| |
140 [\fB\-D\fR|\fB\-\-define\fR \fIname\fR=\fIvalue\fR ...] |
| |
141 [\fB\-u\fR|\fB\-\-unversioned\fR] |
| |
142 [\fB\-q\fR|\fB\-\-query\fR] |
| |
143 \&\fI\fIname\fI.stk\fR |
| |
144 .SH "DESCRIPTION" |
| |
145 .IX Header "DESCRIPTION" |
| |
146 The \fBopenpkg stack\fR command reads a OpenPKG software stack definition |
| |
147 \&\fI\fIname\fI.stk\fR, generates a OpenPKG software stack deployment script |
| |
148 \&\fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].sh\fR, determines, downloads and |
| |
149 stores all required corresponding OpenPKG source packages under |
| |
150 \&\fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].src.d/*.src.{sh,rpm}\fR. |
| |
151 .PP |
| |
152 On executing the generated OpenPKG software stack deployment |
| |
153 script \fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].sh\fR, an OpenPKG |
| |
154 instance is created (or reused if existing), all packages |
| |
155 built and installed in topologically correct dependency order |
| |
156 and the resulting OpenPKG binary packages stored as |
| |
157 \&\fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].\fIplatform\fI\-\fItag\fI.d/*.{sh,rpm}\fR. |
| |
158 .PP |
| |
159 The main design decisions and intentions of OpenPKG software stacks are: |
| |
160 .IP "1." 4 |
| |
161 OpenPKG software stacks can be centrally defined in a single file |
| |
162 \&\fI\fIname\fI.stk\fR, similar to the definition of OpenPKG software packages in |
| |
163 \&\fI\fIname\fI.spec\fR files. This definition includes both OpenPKG framework |
| |
164 bootstrap parameters, OpenPKG package build parameters and OpenPKG |
| |
165 software stack specific deployment-time prolog and epilog scripts. |
| |
166 .IP "2." 4 |
| |
167 OpenPKG software stacks depend on particular OpenPKG software packages |
| |
168 (and perhaps even their particular versions) and by downloading and |
| |
169 locally storing all relevant OpenPKG software packages an OpenPKG |
| |
170 software stack remains stable and self-contained \*(-- even if new versions |
| |
171 of OpenPKG software packages are released. |
| |
172 .IP "3." 4 |
| |
173 For generating the OpenPKG software stack files, an OpenPKG instance |
| |
174 and its \fBopenpkg stack\fR command is required, but executing the OpenPKG |
| |
175 software stack deployment script does \s-1NOT\s0 require any pre-existing |
| |
176 OpenPKG instances. |
| |
177 .IP "4." 4 |
| |
178 By wrapping \fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].sh\fR and |
| |
179 \&\fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].src.d/\fR into a \fIShell Execution |
| |
180 Archive\fR \fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].src.sh\fR with the \fBopenpkg |
| |
181 sea\fR command, you can provide a single self-contained file for building |
| |
182 and installing an OpenPKG software stack from OpenPKG source packages. |
| |
183 .IP "5." 4 |
| |
184 By wrapping \fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].sh\fR and |
| |
185 \&\fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].\fIplatform\fI\-\fItag\fI.d/\fR |
| |
186 into a \fIShell Execution Archive\fR |
| |
187 \&\fI\fIname\fI[\-\fIversion\fI\-\fIrelease\fI].\fIplatform\fI\-\fItag\fI.sh\fR with the |
| |
188 \&\fBopenpkg sea\fR command, you can provide a single self-contained file for |
| |
189 installing an OpenPKG software stack from OpenPKG binary packages. |
| |
190 .SH "COMMAND-LINE OPTIONS AND ARGUMENTS" |
| |
191 .IX Header "COMMAND-LINE OPTIONS AND ARGUMENTS" |
| |
192 .IP "\fB\-h\fR|\fB\-\-help\fR" 4 |
| |
193 .IX Item "-h|--help" |
| |
194 Just shows a short usage information for the \fBopenpkg stack\fR command. |
| |
195 .IP "\fB\-v\fR|\fB\-\-verbose\fR \fIlevel\fR" 4 |
| |
196 .IX Item "-v|--verbose level" |
| |
197 Sets the verbosity level for outputs, from \f(CW0\fR (no output at all) to 4 |
| |
198 (all possible outputs). The default is \f(CW4\fR. |
| |
199 .IP "\fB\-o\fR|\fB\-\-output\fR \fIdir\fR" 4 |
| |
200 .IX Item "-o|--output dir" |
| |
201 The output directory for the OpenPKG software stack files. |
| |
202 The default is the current directory (\fI.\fR). |
| |
203 .IP "[\fB\-D\fR|\fB\-\-define\fR \fIname\fR=\fIvalue\fR ...]" 4 |
| |
204 .IX Item "[-D|--define name=value ...]" |
| |
205 On-the-fly overrides the value of option macro \f(CW\*(C`%{\f(CIname\f(CW}\*(C'\fR with |
| |
206 \&\fIvalue\fR. Use this to generate a variant of an OpenPKG software stack |
| |
207 without modifying the software stack definition file. |
| |
208 .IP "[\fB\-u\fR|\fB\-\-unversioned\fR]" 4 |
| |
209 .IX Item "[-u|--unversioned]" |
| |
210 By default \fBopenpkg stack\fR creates the file |
| |
211 \&\f(CW\*(C`\f(CIname\f(CW\-\f(CIversion\f(CW\-\f(CIrelease\f(CW.sh\*(C'\fR (deployment script) and the |
| |
212 directory \f(CW\*(C`\f(CIname\f(CW\-\f(CIversion\f(CW\-\f(CIrelease\f(CW.src.d/\*(C'\fR (source packages). |
| |
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. |
| |
214 .IP "[\fB\-q\fR|\fB\-\-query\fR]" 4 |
| |
215 .IX Item "[-q|--query]" |
| |
216 Forces a different operation mode where a shell script is output |
| |
217 on \fIstdout\fR containing variable definitions in the format |
| |
218 \&\f(CW\*(C`\f(CIname\f(CW="\f(CIvalue\f(CW";\*(C'\fR with information about the software stack |
| |
219 definition. The provided variable names are \f(CW\*(C`name\*(C'\fR, \f(CW\*(C`summary\*(C'\fR, |
| |
220 \&\f(CW\*(C`packager\*(C'\fR, \f(CW\*(C`version\*(C'\fR and \f(CW\*(C`release\*(C'\fR for the corresponding headers, |
| |
221 plus variables for all defined software stack options (see \f(CW%option\fR |
| |
222 section below). |
| |
223 .IP "\fIname\fR\fI.stk\fR" 4 |
| |
224 .IX Item "name.stk" |
| |
225 The mandatory OpenPKG software stack definition file. |
| |
226 See below under \fB\s-1SOFTWARE\s0 \s-1STACK\s0 \s-1DEFINITION\s0\fR for details. |
| |
227 .SH "SOFTWARE STACK DEFINITION" |
| |
228 .IX Header "SOFTWARE STACK DEFINITION" |
| |
229 An OpenPKG software stack is defined by a configuration file |
| |
230 containing headers (\f(CW\*(C`Foo:\*(C'\fR) and sections (<%foo>). |
| |
231 .SS "Configuration Headers" |
| |
232 .IX Subsection "Configuration Headers" |
| |
233 .IP "\fBName\fR" 4 |
| |
234 .IX Item "Name" |
| |
235 The name of the OpenPKG software stack. Also used as a prefix for many |
| |
236 files. Should match the regular expression \f(CW\*(C`^[a\-z][a\-zA\-Z0\-9]+\*(C'\fR, |
| |
237 although this is not enforced. Example: \f(CW\*(C`Name: example\*(C'\fR. |
| |
238 .IP "\fBSummary\fR" 4 |
| |
239 .IX Item "Summary" |
| |
240 A single line, shortly summarizing the purpose of the OpenPKG software |
| |
241 stack. Example: \f(CW\*(C`Summary: Example Stack\*(C'\fR. |
| |
242 .IP "\fBPackager\fR" 4 |
| |
243 .IX Item "Packager" |
| |
244 Name of the packager of the OpenPKG software software stack. |
| |
245 Example: \f(CW\*(C`Packager: OpenPKG GmbH\*(C'\fR. |
| |
246 .IP "\fBVersion\fR" 4 |
| |
247 .IX Item "Version" |
| |
248 Version identifier of the OpenPKG software stack. Describes the |
| |
249 \&\fIlogical\fR revision of the software stack definition. Should match the |
| |
250 regular expression \f(CW\*(C`^[0\-9]+\e.[0\-9]\e.[0\-9]+$\*(C'\fR, although this is not |
| |
251 enforced. Example: \f(CW\*(C`Version: 1.0.0\*(C'\fR. |
| |
252 .IP "\fBRelease\fR" 4 |
| |
253 .IX Item "Release" |
| |
254 Release identifier of the OpenPKG software stack. Describes the |
| |
255 \&\fIphysical\fR revision of the stack definition. Should be in the format |
| |
256 \&\f(CW\*(C`YYYYMMDD\*(C'\fR and hence match the regular expression \f(CW\*(C`^[0\-9]{8}$\*(C'\fR, |
| |
257 although this is not enforced. Example: \f(CW\*(C`Release: 20120101\*(C'\fR. |
| |
258 .SS "Configuration Sections" |
| |
259 .IX Subsection "Configuration Sections" |
| |
260 .ie n .IP "\fB\fB%options\fB\fR" 4 |
| |
261 .el .IP "\fB\f(CB%options\fB\fR" 4 |
| |
262 .IX Item "%options" |
| |
263 Zero or more options for the OpenPKG software stack, one per line, in |
| |
264 the format "\fIname\fR \fIdefault-value\fR". Options can be overridden on |
| |
265 the command-line with \fB\-D\fR\fIname\fR=\fIvalue\fR. Example: \f(CW\*(C`with_ssl yes\*(C'\fR. |
| |
266 Option values can be expanded in all headers and sections through the |
| |
267 following constructs: |
| |
268 .RS 4 |
| |
269 .ie n .IP "\*(C`%{\f(CIname\f(CW}\*(C'" 4 |
| |
270 .el .IP "\f(CW\*(C`%{\f(CIname\f(CW}\*(C'\fR" 4 |
| |
271 .IX Item "%{name}" |
| |
272 Expand to the value of option \fIname\fR. |
| |
273 .ie n .IP "\*(C`%{?\f(CIname\f(CW:\f(CIvalue\f(CW}\*(C'" 4 |
| |
274 .el .IP "\f(CW\*(C`%{?\f(CIname\f(CW:\f(CIvalue\f(CW}\*(C'\fR" 4 |
| |
275 .IX Item "%{?name:value}" |
| |
276 Expand to \fIvalue\fR if option \fIname\fR is defined. |
| |
277 .ie n .IP "\*(C`%{!?\f(CIname\f(CW:\f(CIvalue\f(CW}\*(C'" 4 |
| |
278 .el .IP "\f(CW\*(C`%{!?\f(CIname\f(CW:\f(CIvalue\f(CW}\*(C'\fR" 4 |
| |
279 .IX Item "%{!?name:value}" |
| |
280 Expand to \fIvalue\fR if option \fIname\fR is \s-1NOT\s0 defined. |
| |
281 .RE |
| |
282 .RS 4 |
| |
283 .RE |
| |
284 .ie n .IP "\fB\fB%description\fB\fR" 4 |
| |
285 .el .IP "\fB\f(CB%description\fB\fR" 4 |
| |
286 .IX Item "%description" |
| |
287 A single textual paragraph describing the purpose of the OpenPKG |
| |
288 software stack in more detail than header \f(CW\*(C`Summary\*(C'\fR. |
| |
289 .ie n .IP "\fB\fB%framework\fB\fR" 4 |
| |
290 .el .IP "\fB\f(CB%framework\fB\fR" 4 |
| |
291 .IX Item "%framework" |
| |
292 The command-line parameters passed to the OpenPKG framework |
| |
293 bootstrap source shell package \fIopenpkg\-*.src.sh\fR. Usually at |
| |
294 least the parameters \fB\-\-prefix=\fR\fIpath\fR, \fB\-\-user=\fR\fIusername\fR, |
| |
295 \&\fB\-\-group=\fR\fIgroupname\fR and \fB\-\-tag=\fR\fItagname\fR are given here. In order |
| |
296 to allow an OpenPKG software stack to be easily reused one creates |
| |
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 |
| |
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, |
| |
299 \&\f(CW\*(C`\-\-group=%{group}\*(C'\fR and \f(CW\*(C`\-\-tag=%{tag}\*(C'\fR in this \f(CW%framework\fR section. |
| |
300 .ie n .IP "\fB\fB%packages\fB\fR" 4 |
| |
301 .el .IP "\fB\f(CB%packages\fB\fR" 4 |
| |
302 .IX Item "%packages" |
| |
303 The packages to build and install for the OpenPKG software stack, in |
| |
304 the format of "\fB\-D\f(BIpackage\fB::\f(BIoption\fB=\f(BIvalue\fB\fR\*(L" and \*(R"\fIpackage\fR" |
| |
305 specifications as understood by the \f(CW\*(C`openpkg build\*(C'\fR tool. Example: |
| |
306 \&\f(CW\*(C`\-Dapache::with_mod_ssl=yes \-Dapache\-php::with_json=yes apache |
| |
307 apache\-php\*(C'\fR. |
| |
308 .ie n .IP "\fB\fB%prolog\fB\fR" 4 |
| |
309 .el .IP "\fB\f(CB%prolog\fB\fR" 4 |
| |
310 .IX Item "%prolog" |
| |
311 A shell script executed before installation of all packages. |
| |
312 The variable \f(CW$prefix\fR is available to access the |
| |
313 OpenPKG software stack without having to hard-code a path. |
| |
314 .ie n .IP "\fB\fB%epilog\fB\fR" 4 |
| |
315 .el .IP "\fB\f(CB%epilog\fB\fR" 4 |
| |
316 .IX Item "%epilog" |
| |
317 A shell script executed after installation of all packages. This |
| |
318 is usually used for applying OpenPKG software stack specific |
| |
319 configurations. The variable \f(CW$prefix\fR is available to access the |
| |
320 OpenPKG software stack without having to hard-code a path. Example: |
| |
321 \&\f(CW\*(C`echo "openldap_enable=no" >>$prefix/etc/rc.conf\*(C'\fR. |
| |
322 .SH "EXAMPLES" |
| |
323 .IX Header "EXAMPLES" |
| |
324 .Vb 1 |
| |
325 \& $ cat xamp.stk |
| |
326 \& |
| |
327 \& Name: xamp |
| |
328 \& Summary: Apache\-MySQL\-PHP Server |
| |
329 \& Packager: OpenPKG GmbH |
| |
330 \& Version: 1.0.0 |
| |
331 \& Release: 20120407 |
| |
332 \& |
| |
333 \& %description |
| |
334 \& This software stack contains a so\-called xAMP web stack, consisting |
| |
335 \& of the major components Apache, MySQL and PHP. |
| |
336 \& |
| |
337 \& %options |
| |
338 \& repo http://download.openpkg.org/stacks/current/source/ |
| |
339 \& prefix /xamp |
| |
340 \& user xamp |
| |
341 \& group xamp |
| |
342 \& tag xamp |
| |
343 \& with_ldap no |
| |
344 \& with_ssl no |
| |
345 \& addr 127.0.0.1 |
| |
346 \& |
| |
347 \& %repository |
| |
348 \& %{repo} |
| |
349 \& |
| |
350 \& %framework |
| |
351 \& \-\-prefix=%{prefix} |
| |
352 \& \-\-user=%{user} |
| |
353 \& \-\-group=%{group} |
| |
354 \& \-\-tag=%{tag} |
| |
355 \& |
| |
356 \& %packages |
| |
357 \& \-D apache::with_mod_dav=yes |
| |
358 \& \-D apache::with_mod_deflate=yes |
| |
359 \& \-D apache::with_mod_ldap=%{with_ldap} |
| |
360 \& \-D apache::with_mod_proxy=yes |
| |
361 \& \-D apache::with_mod_ssl=%{with_ssl} |
| |
362 \& \-D apache\-php::with_curl=yes |
| |
363 \& \-D apache\-php::with_freetype=yes |
| |
364 \& \-D apache\-php::with_gd=yes |
| |
365 \& \-D apache\-php::with_iconv=yes |
| |
366 \& \-D apache\-php::with_json=yes |
| |
367 \& \-D apache\-php::with_mbregex=yes |
| |
368 \& \-D apache\-php::with_mbstring=yes |
| |
369 \& \-D apache\-php::with_mysql=yes |
| |
370 \& \-D apache\-php::with_openldap=%{with_ldap} |
| |
371 \& \-D apache\-php::with_session=yes |
| |
372 \& \-D apache\-php::with_simplexml=yes |
| |
373 \& \-D apache\-php::with_sqlite=yes |
| |
374 \& \-D apache\-php::with_ssl=%{with_ssl} |
| |
375 \& \-D apache\-php::with_xml=yes |
| |
376 \& \-D apache\-php::with_zlib=yes |
| |
377 \& apache |
| |
378 \& apache\-php |
| |
379 \& mysql |
| |
380 \& |
| |
381 \& %epilog |
| |
382 \& shtool subst \e |
| |
383 \& \-e \*(Aqs;127\e.0\e.0\e.1:%{addr};g\*(Aq \e |
| |
384 \& %{prefix}/etc/apache/apache.conf |
| |
385 \& if [ ".%{with_ldap}" = .yes ]; then |
| |
386 \& echo "openldap_enable=\e"no\e"" >>%{prefix}/etc/rc.conf |
| |
387 \& fi |
| |
388 \& |
| |
389 \& $ openpkg stack \-v4 \e |
| |
390 \& \-Dprefix=/v/xamp \-Duser=xamp\-sw \-Dgroup=xamp\-sw \e |
| |
391 \& \-\-unversioned xamp.stk |
| |
392 \& |
| |
393 \& $ openpkg sea \-o xamp.src.sh xamp.sh xamp.src.d/ |
| |
394 \& |
| |
395 \& $ sh xamp.src.sh \-v4 \-S sudo |
| |
396 \& |
| |
397 \& $ openpkg sea \-o xamp.bin.sh xamp.sh xamp.*\-*.d/ |
| |
398 .Ve |
| |
399 .SH "HISTORY" |
| |
400 .IX Header "HISTORY" |
| |
401 The \fBopenpkg stack\fR command was implemented in April 2012 by \fIRalf S. Engelschall\fR |
| |
402 <rse@engelschall.com> for the OpenPKG Framework of the OpenPKG GmbH. |