1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/openpkg/dev.8 Tue Jul 31 12:23:42 2012 +0200 1.3 @@ -0,0 +1,656 @@ 1.4 +.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22) 1.5 +.\" 1.6 +.\" Standard preamble: 1.7 +.\" ======================================================================== 1.8 +.de Sp \" Vertical space (when we can't use .PP) 1.9 +.if t .sp .5v 1.10 +.if n .sp 1.11 +.. 1.12 +.de Vb \" Begin verbatim text 1.13 +.ft CW 1.14 +.nf 1.15 +.ne \\$1 1.16 +.. 1.17 +.de Ve \" End verbatim text 1.18 +.ft R 1.19 +.fi 1.20 +.. 1.21 +.\" Set up some character translations and predefined strings. \*(-- will 1.22 +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left 1.23 +.\" double quote, and \*(R" will give a right double quote. \*(C+ will 1.24 +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and 1.25 +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, 1.26 +.\" nothing in troff, for use with C<>. 1.27 +.tr \(*W- 1.28 +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' 1.29 +.ie n \{\ 1.30 +. ds -- \(*W- 1.31 +. ds PI pi 1.32 +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch 1.33 +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch 1.34 +. ds L" "" 1.35 +. ds R" "" 1.36 +. ds C` 1.37 +. ds C' 1.38 +'br\} 1.39 +.el\{\ 1.40 +. ds -- \|\(em\| 1.41 +. ds PI \(*p 1.42 +. ds L" `` 1.43 +. ds R" '' 1.44 +'br\} 1.45 +.\" 1.46 +.\" Escape single quotes in literal strings from groff's Unicode transform. 1.47 +.ie \n(.g .ds Aq \(aq 1.48 +.el .ds Aq ' 1.49 +.\" 1.50 +.\" If the F register is turned on, we'll generate index entries on stderr for 1.51 +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index 1.52 +.\" entries marked with X<> in POD. Of course, you'll have to process the 1.53 +.\" output yourself in some meaningful fashion. 1.54 +.ie \nF \{\ 1.55 +. de IX 1.56 +. tm Index:\\$1\t\\n%\t"\\$2" 1.57 +.. 1.58 +. nr % 0 1.59 +. rr F 1.60 +.\} 1.61 +.el \{\ 1.62 +. de IX 1.63 +.. 1.64 +.\} 1.65 +.\" 1.66 +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). 1.67 +.\" Fear. Run. Save yourself. No user-serviceable parts. 1.68 +. \" fudge factors for nroff and troff 1.69 +.if n \{\ 1.70 +. ds #H 0 1.71 +. ds #V .8m 1.72 +. ds #F .3m 1.73 +. ds #[ \f1 1.74 +. ds #] \fP 1.75 +.\} 1.76 +.if t \{\ 1.77 +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) 1.78 +. ds #V .6m 1.79 +. ds #F 0 1.80 +. ds #[ \& 1.81 +. ds #] \& 1.82 +.\} 1.83 +. \" simple accents for nroff and troff 1.84 +.if n \{\ 1.85 +. ds ' \& 1.86 +. ds ` \& 1.87 +. ds ^ \& 1.88 +. ds , \& 1.89 +. ds ~ ~ 1.90 +. ds / 1.91 +.\} 1.92 +.if t \{\ 1.93 +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" 1.94 +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' 1.95 +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' 1.96 +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' 1.97 +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' 1.98 +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' 1.99 +.\} 1.100 +. \" troff and (daisy-wheel) nroff accents 1.101 +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' 1.102 +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' 1.103 +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] 1.104 +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' 1.105 +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' 1.106 +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] 1.107 +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] 1.108 +.ds ae a\h'-(\w'a'u*4/10)'e 1.109 +.ds Ae A\h'-(\w'A'u*4/10)'E 1.110 +. \" corrections for vroff 1.111 +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' 1.112 +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' 1.113 +. \" for low resolution devices (crt and lpr) 1.114 +.if \n(.H>23 .if \n(.V>19 \ 1.115 +\{\ 1.116 +. ds : e 1.117 +. ds 8 ss 1.118 +. ds o a 1.119 +. ds d- d\h'-1'\(ga 1.120 +. ds D- D\h'-1'\(hy 1.121 +. ds th \o'bp' 1.122 +. ds Th \o'LP' 1.123 +. ds ae ae 1.124 +. ds Ae AE 1.125 +.\} 1.126 +.rm #[ #] #H #V #F C 1.127 +.\" ======================================================================== 1.128 +.\" 1.129 +.IX Title "DEV 8" 1.130 +.TH DEV 8 "OpenPKG" "DEV(8)" "OpenPKG" 1.131 +.\" For nroff, turn off justification. Always turn off hyphenation; it makes 1.132 +.\" way too many mistakes in technical documents. 1.133 +.if n .ad l 1.134 +.nh 1.135 +\&\fBopenpkg dev\fR \- OpenPKG Package Development Tool 1.136 +.SH "DESCRIPTION" 1.137 +.IX Header "DESCRIPTION" 1.138 +\&\fBopenpkg dev\fR is a package development tool for \fBOpenPKG\fR. 1.139 +.SS "\s-1SOURCE\s0 \s-1PACKAGE\s0 \s-1HANDLING\s0" 1.140 +.IX Subsection "SOURCE PACKAGE HANDLING" 1.141 +.ie n .IP "\fBopenpkg dev unpack\fR [\*(C`\-l\*(C' \fIlayout\fR] [\*(C`\-b\*(C' \fIbasedir\fR] [\*(C`\-s\*(C'] [\*(C`\-d\*(C'] \fIname\fR\*(C`\-\*(C'\fIversion\fR\*(C`\-\*(C'\fIrelease\fR\*(C`.src.rpm\*(C'" 4 1.142 +.el .IP "\fBopenpkg dev unpack\fR [\f(CW\*(C`\-l\*(C'\fR \fIlayout\fR] [\f(CW\*(C`\-b\*(C'\fR \fIbasedir\fR] [\f(CW\*(C`\-s\*(C'\fR] [\f(CW\*(C`\-d\*(C'\fR] \fIname\fR\f(CW\*(C`\-\*(C'\fR\fIversion\fR\f(CW\*(C`\-\*(C'\fR\fIrelease\fR\f(CW\*(C`.src.rpm\*(C'\fR" 4 1.143 +.IX Item "openpkg dev unpack [-l layout] [-b basedir] [-s] [-d] name-version-release.src.rpm" 1.144 +Unpacks an OpenPKG source \s-1RPM\s0 package 1.145 +\&\fIname\fR\f(CW\*(C`\-\*(C'\fR\fIversion\fR\f(CW\*(C`\-\*(C'\fR\fIrelease\fR\f(CW\*(C`.src.rpm\*(C'\fR into \fIbasedir\fR 1.146 +(default is \fIname\fR\f(CW\*(C`\-\*(C'\fR\fIversion\fR\f(CW\*(C`\-\*(C'\fR\fIrelease\fR) 1.147 +using \fIlayout\fR (default is \fIstructured\fR). 1.148 +Additionally, 1.149 +\&\fIfile-rpmmacros\fR 1.150 +configuration file is generated where 1.151 +\&\f(CW\*(C`\-s\*(C'\fR enables shared mode and 1.152 +\&\f(CW\*(C`\-d\*(C'\fR enables debug mode, see \fIfile-rpmmacros\fR. 1.153 +.SS "\s-1SOURCE\s0 \s-1PACKAGE\s0 \s-1DEVELOPMENT\s0" 1.154 +.IX Subsection "SOURCE PACKAGE DEVELOPMENT" 1.155 +.IP "\fBopenpkg dev shell\fR" 4 1.156 +.IX Item "openpkg dev shell" 1.157 +This is a convenience command which enters an interactive \fB\s-1GNU\s0 Bash\fR 1.158 +shell which provides the following work environment: 1.159 +.RS 4 1.160 +.IP "\fBEnvironment Variables:\fR" 4 1.161 +.IX Item "Environment Variables:" 1.162 +.Vb 5 1.163 +\& OPENPKG_PREFIX "<prefix>" 1.164 +\& PS1 "\e\e[\e\ee[31;1m\e\e]\e\eu\e\e[\e\ee[0m\e\e]@\e\eh:\e\ew [OPENPKG_PREFIX=$OPENPKG_PREFIX]\en\e\e\e$ " 1.165 +\& T %{_tmppath} 1.166 +\& S %{_specdir} 1.167 +\& D %{_sourcedir} 1.168 +.Ve 1.169 +.IP "\fBCommand-Line Aliases:\fR" 4 1.170 +.IX Item "Command-Line Aliases:" 1.171 +.Vb 2 1.172 +\& openpkg "${OPENPKG_PREFIX}/bin/openpkg" 1.173 +\& opd "${OPENPKG_PREFIX}/bin/openpkg dev" 1.174 +.Ve 1.175 +.IP "\fBCommand-Line Keystrokes:\fR" 4 1.176 +.IX Item "Command-Line Keystrokes:" 1.177 +.Vb 10 1.178 +\& ESC+x "opd unpack\en" 1.179 +\& ESC+v "opd edit\en" 1.180 +\& ESC+t "opd build \-s track\en" 1.181 +\& ESC+f "opd build \-s fetch\en" 1.182 +\& ESC+b "opd build\en" 1.183 +\& ESC+1 "opd build \-s prep\en" 1.184 +\& ESC+2 "opd build \-s compile\en" 1.185 +\& ESC+3 "opd build \-s install\en" 1.186 +\& ESC+4 "opd build \-s binary\en" 1.187 +\& ESC+s "opd build \-s source\en" 1.188 +\& ESC+p "opd peek\en" 1.189 +\& ESC+d "opd diff\en" 1.190 +\& ESC+i "opd install\en" 1.191 +\& ESC+e "opd erase\en" 1.192 +\& ESC+l "opd lint\en" 1.193 +\& ESC+r "opd release\en" 1.194 +.Ve 1.195 +.RE 1.196 +.RS 4 1.197 +.Sp 1.198 +If option \f(CW\*(C`\-s\*(C'\fR is passed to \fBopenpkg dev shell\fR and \fIscreen\fR\|(1) is 1.199 +available in \f(CW$PATH\fR, the interactive development shell is started up 1.200 +in a convenient virtual screen environment. 1.201 +.RE 1.202 +.IP "\fBopenpkg dev edit\fR" 4 1.203 +.IX Item "openpkg dev edit" 1.204 +Load spec file into editor. 1.205 +.RS 4 1.206 +.IP "\fBEnvironment Variables:\fR" 4 1.207 +.IX Item "Environment Variables:" 1.208 +.Vb 1 1.209 +\& EDITOR "vi" 1.210 +.Ve 1.211 +.RE 1.212 +.RS 4 1.213 +.RE 1.214 +.ie n .IP "\fBopenpkg dev build\fR [\*(C`\-s\*(C' \fIstep\fR] [\*(C`\-D\*(C' \fIdefine\fR[=\fIvalue\fR]] [\*(C`\-w\*(C' \fIvariant\fR]" 4 1.215 +.el .IP "\fBopenpkg dev build\fR [\f(CW\*(C`\-s\*(C'\fR \fIstep\fR] [\f(CW\*(C`\-D\*(C'\fR \fIdefine\fR[=\fIvalue\fR]] [\f(CW\*(C`\-w\*(C'\fR \fIvariant\fR]" 4 1.216 +.IX Item "openpkg dev build [-s step] [-D define[=value]] [-w variant]" 1.217 +Builds package steps. Default \fIstep\fR is \f(CW\*(C`all\*(C'\fR. Option \f(CW\*(C`\-D\*(C'\fR translated 1.218 +into "\f(CW\*(C`\-\-define \*(Aq\f(CIdefine\f(CW \f(CIvalue\f(CW\*(Aq\*(C'\fR" while option \f(CW\*(C`\-w\*(C'\fR translated 1.219 +into "\f(CW\*(C`\-\-with\*(C'\fR \fIvariant\fR". The \fIstep\fR arguments translate into the 1.220 +following \s-1RPM\s0 options: 1.221 +.Sp 1.222 +.Vb 8 1.223 +\& track: \-bt 1.224 +\& fetch: \-bf 1.225 +\& prep: \-bp 1.226 +\& compile: \-bc \-\-short\-circuit 1.227 +\& install: \-bi \-\-short\-circuit 1.228 +\& binary: \-bb \-\-short\-circuit 1.229 +\& source: \-bs 1.230 +\& all: \-ba 1.231 +.Ve 1.232 +.IP "\fBopenpkg dev peek\fR" 4 1.233 +.IX Item "openpkg dev peek" 1.234 +Peeks file list from package and tags configuration and documentation files. 1.235 +.IP "\fBopenpkg dev diff\fR" 4 1.236 +.IX Item "openpkg dev diff" 1.237 +Shows modifications with the help of a possibly underlying Version 1.238 +Control System (\s-1VCS\s0) like \s-1CVS\s0, Subversion, Monotone, Git, Mercurial or 1.239 +(as a fallback ) \s-1OSSP\s0 svs. 1.240 +.ie n .IP "\fBopenpkg dev install\fR [\*(C`\-f\*(C'] [\*(C`\-o\*(C'] [\*(C`\-n\*(C'] [\*(C`\-s\*(C']" 4 1.241 +.el .IP "\fBopenpkg dev install\fR [\f(CW\*(C`\-f\*(C'\fR] [\f(CW\*(C`\-o\*(C'\fR] [\f(CW\*(C`\-n\*(C'\fR] [\f(CW\*(C`\-s\*(C'\fR]" 4 1.242 +.IX Item "openpkg dev install [-f] [-o] [-n] [-s]" 1.243 +Installs package. 1.244 +Option 1.245 +\&\f(CW\*(C`\-f\*(C'\fR adds \f(CW\*(C`\-\-force\*(C'\fR, 1.246 +\&\f(CW\*(C`\-n\*(C'\fR adds \f(CW\*(C`\-\-nodeps\*(C'\fR and 1.247 +\&\f(CW\*(C`\-o\*(C'\fR adds \f(CW\*(C`\-\-oldpackage\*(C'\fR 1.248 +to the underlying \f(CW\*(C`rpm\*(C'\fR call. 1.249 +Option \f(CW\*(C`\-s\*(C'\fR prefixes the command with \fIsudo\fR\|(1). 1.250 +.ie n .IP "\fBopenpkg dev erase\fR [\*(C`\-f\*(C'] [\*(C`\-o\*(C'] [\*(C`\-a\*(C'] [\*(C`\-s\*(C']" 4 1.251 +.el .IP "\fBopenpkg dev erase\fR [\f(CW\*(C`\-f\*(C'\fR] [\f(CW\*(C`\-o\*(C'\fR] [\f(CW\*(C`\-a\*(C'\fR] [\f(CW\*(C`\-s\*(C'\fR]" 4 1.252 +.IX Item "openpkg dev erase [-f] [-o] [-a] [-s]" 1.253 +Erases package. 1.254 +Option 1.255 +\&\f(CW\*(C`\-f\*(C'\fR adds \f(CW\*(C`\-\-force\*(C'\fR, 1.256 +\&\f(CW\*(C`\-n\*(C'\fR adds \f(CW\*(C`\-\-nodeps\*(C'\fR and 1.257 +\&\f(CW\*(C`\-a\*(C'\fR adds \f(CW\*(C`\-\-allmatches\*(C'\fR 1.258 +to the underlying \f(CW\*(C`rpm\*(C'\fR call. 1.259 +Option \f(CW\*(C`\-s\*(C'\fR prefixes the command with \fIsudo\fR\|(1). 1.260 +.ie n .IP "\fBopenpkg dev lint\fR [\*(C`\-v\*(C'] [\*(C`\-b\*(C']" 4 1.261 +.el .IP "\fBopenpkg dev lint\fR [\f(CW\*(C`\-v\*(C'\fR] [\f(CW\*(C`\-b\*(C'\fR]" 4 1.262 +.IX Item "openpkg dev lint [-v] [-b]" 1.263 +Lints package sources \f(CW\*(C`*.spec\*(C'\fR, \f(CW\*(C`fsl.*\*(C'\fR, \f(CW\*(C`rc.*\*(C'\fR and binary package files. 1.264 +Option \f(CW\*(C`\-v\*(C'\fR enables verboseness. 1.265 +Option \f(CW\*(C`\-b\*(C'\fR disables the linting of an existing binary package file. 1.266 +.ie n .IP "\fBopenpkg dev release\fR [\*(C`\-m\*(C' \fImessage\fR] [\*(C`\-n\*(C']" 4 1.267 +.el .IP "\fBopenpkg dev release\fR [\f(CW\*(C`\-m\*(C'\fR \fImessage\fR] [\f(CW\*(C`\-n\*(C'\fR]" 4 1.268 +.IX Item "openpkg dev release [-m message] [-n]" 1.269 +Releases package specification to the repository. Unlike previous 1.270 +incarnations of \*(L"openpkg dev\*(R" this one is not tied to any repository or 1.271 +structure. The default message is created using the difference between 1.272 +the previous and current version of the package specification. In order 1.273 +to grab the previous version, the working directory and three levels 1.274 +towards root are checked for signs of \s-1CVS\s0, Subversion, Monotone, Git, 1.275 +Mercurial or \s-1SVS\s0 information, in that order. The appropriate command is 1.276 +then executed to retrieve the data and the \s-1VCS\s0 found is passed to the 1.277 +actual release command. 1.278 +.Sp 1.279 +Finally, the command specified by the environment variable 1.280 +\&\f(CW\*(C`OPENPKG_DEV_RELEASE\*(C'\fR or, if omitted, specified by the rpm macro 1.281 +\&\f(CW\*(C`%{openpkg_dev_release}\*(C'\fR is run and passed the following positional 1.282 +arguments: 1.283 +.RS 4 1.284 +.Sp 1.285 +.Vb 12 1.286 +\& openpkg\-prefix 1.287 +\& spec\-dir 1.288 +\& source\-dir 1.289 +\& binary\-rpm\-file 1.290 +\& source\-rpm\-file 1.291 +\& package\-name 1.292 +\& package\-version 1.293 +\& package\-release 1.294 +\& package\-version\-old 1.295 +\& package\-release\-old 1.296 +\& commit\-message 1.297 +\& vcs 1.298 +.Ve 1.299 +.RE 1.300 +.RS 4 1.301 +.Sp 1.302 +For a dry run, set \f(CW$OPENPKG_DEV_RELEASE\fR to \*(L"echo\*(R" or use option "\f(CW\*(C`\-n\*(C'\fR". 1.303 +.RE 1.304 +.SH "UNPACKED SOURCE RPM PACKAGE FILESYSTEM LAYOUT" 1.305 +.IX Header "UNPACKED SOURCE RPM PACKAGE FILESYSTEM LAYOUT" 1.306 +When an OpenPKG source \s-1RPM\s0 package 1.307 +\&\fIname\fR\f(CW\*(C`\-\*(C'\fR\fIversion\fR\f(CW\*(C`\-\*(C'\fR\fIrelease\fR\f(CW\*(C`.src.rpm\*(C'\fR is unpacked to the 1.308 +filesystem, the following distinct filesystem layouts are known: 1.309 +.IP "\fBglobal\fR" 4 1.310 +.IX Item "global" 1.311 +.RS 4 1.312 +.PD 0 1.313 +.ie n .IP "\fIprefix\fR\*(C`/RPM/SRC/\*(C'\fIname\fR\*(C`/.openpkg/rpmmacros\*(C'" 4 1.314 +.el .IP "\fIprefix\fR\f(CW\*(C`/RPM/SRC/\*(C'\fR\fIname\fR\f(CW\*(C`/.openpkg/rpmmacros\*(C'\fR" 4 1.315 +.IX Item "prefix/RPM/SRC/name/.openpkg/rpmmacros" 1.316 +.ie n .IP "\fIprefix\fR\*(C`/RPM/SRC/\*(C'\fIname\fR\*(C`/\*(C'\fIname\fR\*(C`.spec\*(C'" 4 1.317 +.el .IP "\fIprefix\fR\f(CW\*(C`/RPM/SRC/\*(C'\fR\fIname\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`.spec\*(C'\fR" 4 1.318 +.IX Item "prefix/RPM/SRC/name/name.spec" 1.319 +.ie n .IP "\fIprefix\fR\*(C`/RPM/SRC/\*(C'\fIname\fR\*(C`/\*(C'\fIpackaging-source-file\fR" 4 1.320 +.el .IP "\fIprefix\fR\f(CW\*(C`/RPM/SRC/\*(C'\fR\fIname\fR\f(CW\*(C`/\*(C'\fR\fIpackaging-source-file\fR" 4 1.321 +.IX Item "prefix/RPM/SRC/name/packaging-source-file" 1.322 +.ie n .IP "\fIprefix\fR\*(C`/RPM/SRC/\*(C'\fIname\fR\*(C`/\*(C'\fIthirdparty-distribution-file\fR" 4 1.323 +.el .IP "\fIprefix\fR\f(CW\*(C`/RPM/SRC/\*(C'\fR\fIname\fR\f(CW\*(C`/\*(C'\fR\fIthirdparty-distribution-file\fR" 4 1.324 +.IX Item "prefix/RPM/SRC/name/thirdparty-distribution-file" 1.325 +.ie n .IP "\fIprefix\fR\*(C`/RPM/PKG/\*(C'\fIbinary-rpm-package-file\fR" 4 1.326 +.el .IP "\fIprefix\fR\f(CW\*(C`/RPM/PKG/\*(C'\fR\fIbinary-rpm-package-file\fR" 4 1.327 +.IX Item "prefix/RPM/PKG/binary-rpm-package-file" 1.328 +.ie n .IP "\fIprefix\fR\*(C`/RPM/PKG/\*(C'\fIsource-rpm-package-file\fR" 4 1.329 +.el .IP "\fIprefix\fR\f(CW\*(C`/RPM/PKG/\*(C'\fR\fIsource-rpm-package-file\fR" 4 1.330 +.IX Item "prefix/RPM/PKG/source-rpm-package-file" 1.331 +.ie n .IP "\fIprefix\fR\*(C`/RPM/TMP/\*(C'\fItemporary-file\fR" 4 1.332 +.el .IP "\fIprefix\fR\f(CW\*(C`/RPM/TMP/\*(C'\fR\fItemporary-file\fR" 4 1.333 +.IX Item "prefix/RPM/TMP/temporary-file" 1.334 +.RE 1.335 +.RS 4 1.336 +.PD 1.337 +.Sp 1.338 +This is just the \*(L"simple\*(R" filesystem layout (see below) with the 1.339 +\&\fIbase-dir\fR set to \fIprefix\fR\f(CW\*(C`/RPM/SRC/\*(C'\fR. 1.340 +.Sp 1.341 +This is the filesystem layout used by default for building OpenPKG 1.342 +packages during \f(CW\*(C`openpkg build\*(C'\fR or the underlying \f(CW\*(C`openpkg rpm 1.343 +\&\-\-rebuild\*(C'\fR commands. 1.344 +.RE 1.345 +.IP "\fBlocal\fR" 4 1.346 +.IX Item "local" 1.347 +.RS 4 1.348 +.PD 0 1.349 +.ie n .IP "\fIbase-dir\fR\*(C`/.openpkg/rpmmacros\*(C'" 4 1.350 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/.openpkg/rpmmacros\*(C'\fR" 4 1.351 +.IX Item "base-dir/.openpkg/rpmmacros" 1.352 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`.spec\*(C'" 4 1.353 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`.spec\*(C'\fR" 4 1.354 +.IX Item "base-dir/name.spec" 1.355 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIpackaging-source-file\fR" 4 1.356 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIpackaging-source-file\fR" 4 1.357 +.IX Item "base-dir/packaging-source-file" 1.358 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIthirdparty-distribution-file\fR" 4 1.359 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIthirdparty-distribution-file\fR" 4 1.360 +.IX Item "base-dir/thirdparty-distribution-file" 1.361 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIbinary-rpm-package-file\fR" 4 1.362 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIbinary-rpm-package-file\fR" 4 1.363 +.IX Item "base-dir/binary-rpm-package-file" 1.364 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIsource-rpm-package-file\fR" 4 1.365 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIsource-rpm-package-file\fR" 4 1.366 +.IX Item "base-dir/source-rpm-package-file" 1.367 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fItemporary-file\fR" 4 1.368 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fItemporary-file\fR" 4 1.369 +.IX Item "base-dir/temporary-file" 1.370 +.RE 1.371 +.RS 4 1.372 +.PD 1.373 +.Sp 1.374 +This puts everything into one directory. 1.375 +.RE 1.376 +.IP "\fBsimple\fR" 4 1.377 +.IX Item "simple" 1.378 +.RS 4 1.379 +.PD 0 1.380 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/.openpkg/rpmmacros\*(C'" 4 1.381 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/.openpkg/rpmmacros\*(C'\fR" 4 1.382 +.IX Item "base-dir/name/.openpkg/rpmmacros" 1.383 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/\*(C'\fIname\fR\*(C`.spec\*(C'" 4 1.384 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`.spec\*(C'\fR" 4 1.385 +.IX Item "base-dir/name/name.spec" 1.386 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/\*(C'\fIpackaging-source-file\fR" 4 1.387 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/\*(C'\fR\fIpackaging-source-file\fR" 4 1.388 +.IX Item "base-dir/name/packaging-source-file" 1.389 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/\*(C'\fIthirdparty-distribution-file\fR" 4 1.390 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/\*(C'\fR\fIthirdparty-distribution-file\fR" 4 1.391 +.IX Item "base-dir/name/thirdparty-distribution-file" 1.392 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIbinary-rpm-package-file\fR" 4 1.393 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIbinary-rpm-package-file\fR" 4 1.394 +.IX Item "base-dir/binary-rpm-package-file" 1.395 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIsource-rpm-package-file\fR" 4 1.396 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIsource-rpm-package-file\fR" 4 1.397 +.IX Item "base-dir/source-rpm-package-file" 1.398 +.ie n .IP "\fI\fI$TMPDIR\fI\fR\*(C`/openpkg/\*(C'\fItemporary-file\fR" 4 1.399 +.el .IP "\fI\f(CI$TMPDIR\fI\fR\f(CW\*(C`/openpkg/\*(C'\fR\fItemporary-file\fR" 4 1.400 +.IX Item "$TMPDIR/openpkg/temporary-file" 1.401 +.RE 1.402 +.RS 4 1.403 +.PD 1.404 +.Sp 1.405 +This is the simple filesystem layout of an unpacked 1.406 +OpenPKG package. All files are simply put into a sub-directory with the 1.407 +\&\fIname\fR of the package. 1.408 +.Sp 1.409 +This is the filesystem layout used for the quick patching of a single 1.410 +OpenPKG package in a stand-alone environment. 1.411 +.RE 1.412 +.IP "\fBstructured\fR" 4 1.413 +.IX Item "structured" 1.414 +.RS 4 1.415 +.PD 0 1.416 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/.openpkg/rpmmacros\*(C'" 4 1.417 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/.openpkg/rpmmacros\*(C'\fR" 4 1.418 +.IX Item "base-dir/name/.openpkg/rpmmacros" 1.419 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/src/\*(C'\fIname\fR\*(C`.spec\*(C'" 4 1.420 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/src/\*(C'\fR\fIname\fR\f(CW\*(C`.spec\*(C'\fR" 4 1.421 +.IX Item "base-dir/name/src/name.spec" 1.422 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/src/\*(C'\fIpackaging-source-file\fR" 4 1.423 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/src/\*(C'\fR\fIpackaging-source-file\fR" 4 1.424 +.IX Item "base-dir/name/src/packaging-source-file" 1.425 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/dst/\*(C'\fIthirdparty-distribution-file\fR" 4 1.426 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/dst/\*(C'\fR\fIthirdparty-distribution-file\fR" 4 1.427 +.IX Item "base-dir/name/dst/thirdparty-distribution-file" 1.428 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/pkg/\*(C'[\*(C`bin/\*(C']\fIbinary-rpm-package-file\fR" 4 1.429 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/pkg/\*(C'\fR[\f(CW\*(C`bin/\*(C'\fR]\fIbinary-rpm-package-file\fR" 4 1.430 +.IX Item "base-dir/name/pkg/[bin/]binary-rpm-package-file" 1.431 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/pkg/\*(C'[\*(C`src/\*(C']\fIsource-rpm-package-file\fR" 4 1.432 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/pkg/\*(C'\fR[\f(CW\*(C`src/\*(C'\fR]\fIsource-rpm-package-file\fR" 4 1.433 +.IX Item "base-dir/name/pkg/[src/]source-rpm-package-file" 1.434 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/tmp/\*(C'\fItemporary-file\fR" 4 1.435 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/tmp/\*(C'\fR\fItemporary-file\fR" 4 1.436 +.IX Item "base-dir/name/tmp/temporary-file" 1.437 +.RE 1.438 +.RS 4 1.439 +.PD 1.440 +.Sp 1.441 +This is the structured (and default) filesystem layout of an unpacked 1.442 +OpenPKG package. A top-level sub-directory with the \fIname\fR of the 1.443 +package is created. There the package specification and all packaging 1.444 +source files are put into the sub-directory \fIsrc\fR and all the 1.445 +third-party distribution files are put into the sub-directory \fIdst\fR. 1.446 +.Sp 1.447 +This is the filesystem layout used for the development of a single 1.448 +OpenPKG package in a stand-alone environment. 1.449 +.RE 1.450 +.IP "\fBdistributed\fR" 4 1.451 +.IX Item "distributed" 1.452 +.RS 4 1.453 +.PD 0 1.454 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\*(C`.openpkg/rpmmacros\*(C'" 4 1.455 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\f(CW\*(C`.openpkg/rpmmacros\*(C'\fR" 4 1.456 +.IX Item "base-dir/.openpkg/rpmmacros" 1.457 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\*(C`src/\*(C'\fIname\fR\*(C`/\*(C'\fIname\fR\*(C`.spec\*(C'" 4 1.458 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\f(CW\*(C`src/\*(C'\fR\fIname\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`.spec\*(C'\fR" 4 1.459 +.IX Item "base-dir/src/name/name.spec" 1.460 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\*(C`src/\*(C'\fIname\fR\*(C`/\*(C'\fIpackaging-source-file\fR" 4 1.461 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\f(CW\*(C`src/\*(C'\fR\fIname\fR\f(CW\*(C`/\*(C'\fR\fIpackaging-source-file\fR" 4 1.462 +.IX Item "base-dir/src/name/packaging-source-file" 1.463 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\*(C`dst/\*(C'\fIname\fR\*(C`/\*(C'\fIthirdparty-distribution-file\fR" 4 1.464 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\f(CW\*(C`dst/\*(C'\fR\fIname\fR\f(CW\*(C`/\*(C'\fR\fIthirdparty-distribution-file\fR" 4 1.465 +.IX Item "base-dir/dst/name/thirdparty-distribution-file" 1.466 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\*(C`pkg/\*(C'[\*(C`bin/\*(C']\fIbinary-rpm-package-file\fR" 4 1.467 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\f(CW\*(C`pkg/\*(C'\fR[\f(CW\*(C`bin/\*(C'\fR]\fIbinary-rpm-package-file\fR" 4 1.468 +.IX Item "base-dir/pkg/[bin/]binary-rpm-package-file" 1.469 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\*(C`pkg/\*(C'[\*(C`src/\*(C']\fIsource-rpm-package-file\fR" 4 1.470 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\f(CW\*(C`pkg/\*(C'\fR[\f(CW\*(C`src/\*(C'\fR]\fIsource-rpm-package-file\fR" 4 1.471 +.IX Item "base-dir/pkg/[src/]source-rpm-package-file" 1.472 +.ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\*(C`tmp/\*(C'\fItemporary-file\fR" 4 1.473 +.el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\f(CW\*(C`tmp/\*(C'\fR\fItemporary-file\fR" 4 1.474 +.IX Item "base-dir/tmp/temporary-file" 1.475 +.RE 1.476 +.RS 4 1.477 +.PD 1.478 +.Sp 1.479 +This is the distributed filesystem layout of an unpacked OpenPKG 1.480 +package. It is similar to the structured filesystem layout but the 1.481 +\&\f(CW\*(C`src\*(C'\fR and \f(CW\*(C`dst\*(C'\fR directories and the \fIname\fR directory are swapped, 1.482 +mainly with the intention of bundling together all third-party 1.483 +distribution files of a large number of packages. 1.484 +.Sp 1.485 +This is the filesystem layout used for regular OpenPKG package 1.486 +development. 1.487 +.RE 1.488 +.SH "LOCAL RPM MACROS FILE (.openpkg/rpmmacros)" 1.489 +.IX Header "LOCAL RPM MACROS FILE (.openpkg/rpmmacros)" 1.490 +OpenPKG supports local \s-1RPM\s0 macros files \fI.openpkg/rpmmacros\fR which 1.491 +can be used to configure \s-1RPM\s0 in a local scope. This is especially 1.492 +interesting to configure a local (even per-package) build environment 1.493 +with the help of the \f(CW%openpkg_layout\fR macro. 1.494 +.PP 1.495 +\&\f(CW%openpkg_layout\fR 1.496 +[\f(CW\*(C`macrosfile=\*(C'\fR\fIfilename\fR] 1.497 +[\f(CW\*(C`basedir=\*(C'\fR\fIdirectory\fR] 1.498 +[\f(CW\*(C`specdir=\*(C'\fR\fIdirectory\fR] 1.499 +[\f(CW\*(C`sourcedir=\*(C'\fR\fIdirectory\fR] 1.500 +[\f(CW\*(C`builddir=\*(C'\fR\fIdirectory\fR] 1.501 +[\f(CW\*(C`tmpdir=\*(C'\fR\fIdirectory\fR] 1.502 +[\f(CW\*(C`binrpmdir=\*(C'\fR\fIdirectory\fR] 1.503 +[\f(CW\*(C`srcrpmdir=\*(C'\fR\fIdirectory\fR] 1.504 +[\f(CW\*(C`shared=\*(C'\fR\fIyes-or-no\fR] 1.505 +[\f(CW\*(C`debug=\*(C'\fR\fIyes-or-no\fR] 1.506 +.ie n .IP "\*(C`macrosfile=\*(C'\fIfilename\fR" 4 1.507 +.el .IP "\f(CW\*(C`macrosfile=\*(C'\fR\fIfilename\fR" 4 1.508 +.IX Item "macrosfile=filename" 1.509 +Absolute file path of the \f(CW\*(C`.openpkg/rpmmacros\*(C'\fR file where this 1.510 +\&\f(CW%openpkg_layout\fR macro is defined. Usually, the intended usage is to 1.511 +leverage from OpenPKG \s-1RPM\s0's special \f(CW\*(C`%{macrosfile}\*(C'\fR macro by simply 1.512 +using \f(CW\*(C`macrosfile=%{macrosfile}\*(C'\fR. This parameter is important as 1.513 +the default \f(CW\*(C`basename\*(C'\fR is derived from it. 1.514 +.ie n .IP "\*(C`basedir=\*(C'\fIdirectory\fR" 4 1.515 +.el .IP "\f(CW\*(C`basedir=\*(C'\fR\fIdirectory\fR" 4 1.516 +.IX Item "basedir=directory" 1.517 +Absolute directory path where the \f(CW\*(C`.openpkg/rpmmacros\*(C'\fR file is 1.518 +located under. Usually, the intended usage is to not explicitly 1.519 +set this parameter but let it be determined indirectly via 1.520 +\&\f(CW\*(C`macrosfile\*(C'\fR. The effective default value is equal to a value like 1.521 +\&\f(CW\*(C`%{realpath:%{dirname:%{realpath:%{macrosfile}}}/..}\*(C'\fR This parameter is 1.522 +important as all standard filesystem layouts (see parameter \f(CW\*(C`layout\*(C'\fR) 1.523 +are always at least partially based on this base directory in order 1.524 +to provide absolute-path-independent flexible filesystem layouts. 1.525 +.ie n .IP "\*(C`layout=\*(C'\fIlayout\fR" 4 1.526 +.el .IP "\f(CW\*(C`layout=\*(C'\fR\fIlayout\fR" 4 1.527 +.IX Item "layout=layout" 1.528 +The name of the filesystem layout type to use. The following standard 1.529 +filesystem layout types are pre-defined: \f(CW\*(C`global\*(C'\fR, \f(CW\*(C`local\*(C'\fR, \f(CW\*(C`simple\*(C'\fR, 1.530 +\&\f(CW\*(C`structured\*(C'\fR (default) and \f(CW\*(C`distributed\*(C'\fR. 1.531 +.Sp 1.532 +.Vb 8 1.533 +\& global macrosdir <openpkg_prefix>/etc/openpkg 1.534 +\& global macrosfile <openpkg_prefix>/etc/openpkg/rpmmacros 1.535 +\& global specdir <openpkg_prefix>/RPM/SRC/$name 1.536 +\& global sourcedir <openpkg_prefix>/RPM/SRC/$name 1.537 +\& global builddir <openpkg_prefix>/RPM/TMP 1.538 +\& global tmpdir <openpkg_prefix>/RPM/TMP 1.539 +\& global binrpmdir <openpkg_prefix>/RPM/PKG 1.540 +\& global srcrpmdir <openpkg_prefix>/RPM/PKG 1.541 +\& 1.542 +\& local macrosdir <basedir>/.openpkg 1.543 +\& local macrosfile <basedir>/.openpkg/rpmmacros 1.544 +\& local specdir <basedir> 1.545 +\& local sourcedir <basedir> 1.546 +\& local builddir <basedir> 1.547 +\& local tmpdir <basedir> 1.548 +\& local binrpmdir <basedir> 1.549 +\& local srcrpmdir <basedir> 1.550 +\& 1.551 +\& simple macrosdir <basedir>/.openpkg 1.552 +\& simple macrosfile <basedir>/.openpkg/rpmmacros 1.553 +\& simple specdir <basedir> 1.554 +\& simple sourcedir <basedir> 1.555 +\& simple builddir <tmpdir> 1.556 +\& simple tmpdir <tmpdir> 1.557 +\& simple binrpmdir <basedir>/.. 1.558 +\& simple srcrpmdir <basedir>/.. 1.559 +\& 1.560 +\& structured macrosdir <basedir>/.openpkg 1.561 +\& structured macrosfile <basedir>/.openpkg/rpmmacros 1.562 +\& structured specdir <basedir>/src 1.563 +\& structured sourcedir <basedir>/dst 1.564 +\& structured builddir <basedir>/tmp 1.565 +\& structured tmpdir <basedir>/tmp 1.566 +\& structured binrpmdir <basedir>/pkg/bin 1.567 +\& structured srcrpmdir <basedir>/pkg/src 1.568 +\& 1.569 +\& distributed macrosdir <basedir>/.openpkg 1.570 +\& distributed macrosfile <basedir>/.openpkg/rpmmacros 1.571 +\& distributed specdir <basedir>/src/<name> 1.572 +\& distributed sourcedir <basedir>/dst/<name> 1.573 +\& distributed builddir <basedir>/tmp 1.574 +\& distributed tmpdir <basedir>/tmp 1.575 +\& distributed binrpmdir <basedir>/pkg/bin 1.576 +\& distributed srcrpmdir <basedir>/pkg/src 1.577 +.Ve 1.578 +.ie n .IP "\*(C`specdir=\*(C'\fIdirectory-list\fR" 4 1.579 +.el .IP "\f(CW\*(C`specdir=\*(C'\fR\fIdirectory-list\fR" 4 1.580 +.IX Item "specdir=directory-list" 1.581 +.PD 0 1.582 +.ie n .IP "\*(C`sourcedir=\*(C'\fIdirectory-list\fR" 4 1.583 +.el .IP "\f(CW\*(C`sourcedir=\*(C'\fR\fIdirectory-list\fR" 4 1.584 +.IX Item "sourcedir=directory-list" 1.585 +.ie n .IP "\*(C`builddir=\*(C'\fIdirectory-list\fR" 4 1.586 +.el .IP "\f(CW\*(C`builddir=\*(C'\fR\fIdirectory-list\fR" 4 1.587 +.IX Item "builddir=directory-list" 1.588 +.ie n .IP "\*(C`tmpdir=\*(C'\fIdirectory-list\fR" 4 1.589 +.el .IP "\f(CW\*(C`tmpdir=\*(C'\fR\fIdirectory-list\fR" 4 1.590 +.IX Item "tmpdir=directory-list" 1.591 +.ie n .IP "\*(C`binrpmdir=\*(C'\fIdirectory-list\fR" 4 1.592 +.el .IP "\f(CW\*(C`binrpmdir=\*(C'\fR\fIdirectory-list\fR" 4 1.593 +.IX Item "binrpmdir=directory-list" 1.594 +.ie n .IP "\*(C`srcrpmdir=\*(C'\fIdirectory-list\fR" 4 1.595 +.el .IP "\f(CW\*(C`srcrpmdir=\*(C'\fR\fIdirectory-list\fR" 4 1.596 +.IX Item "srcrpmdir=directory-list" 1.597 +.PD 1.598 +These parameters correspond to the six individual directories provided 1.599 +by a standard layout and allow you to selectively adjust parts of a 1.600 +standard layout to local needs and without having to define a full 1.601 +standard layout yourself. 1.602 +.Sp 1.603 +The \fIdirectory-list\fR is a whitespace-separated list of 1.604 +\&\fIdirectory\fR[\f(CW\*(C`:\*(C'\fR[\f(CW\*(C`+\*(C'\fR]\fIdirectory\fR] specifications which are 1.605 +\&\*(L"first-match\*(R" searched for existence. The last directory in the list 1.606 +is always taken as the fallback and if it is not existing it is 1.607 +even created on-the-fly. The \fIdirectory-check\fR\f(CW\*(C`:\*(C'\fR\fIdirectory-use\fR 1.608 +syntax variant allows the existence test to use \fIdirectory-check\fR, 1.609 +but expands to \fIdirectory-use\fR (replace mode). The 1.610 +\&\fIdirectory-check\fR\f(CW\*(C`:+\*(C'\fR\fIdirectory-use\fR syntax variant allows 1.611 +the existence test to use \fIdirectory-check\fR, but expands to 1.612 +\&\fIdirectory-check\fR\fIdirectory-use\fR (append mode). For instance 1.613 +\&\f(CW\*(C`tmpdir="%{getenv:HOME)/tmp:+/openpkg %{getenv:TMPDIR}:+/openpkg 1.614 +/tmp/%(echo $LOGNAME)/openpkg"\*(C'\fR will first check for ~/tmp (and then use 1.615 +~/tmp/openpkg), then for \f(CW$TMPDIR\fR (and use \f(CW$TMPDIR\fR/openpkg) and finally 1.616 +it will use /tmp/$LOGNAME/openpkg at last resort. 1.617 +.Sp 1.618 +Paths are usually assembled by using \s-1RPM\s0 macros like 1.619 +\&\f(CW\*(C`%{l_prefix}\*(C'\fR (the instance prefix), \f(CW\*(C`%{_\|_openpkg_basename}\*(C'\fR (the 1.620 +\&\fIbasename\fR parameter), \f(CW\*(C`%{realpath:<path\*(C'\fR} (path resolution), 1.621 +\&\f(CW\*(C`%{dirname:<path\*(C'\fR} (directory name extraction), \f(CW\*(C`%{basename:<path\*(C'\fR} 1.622 +(file name extraction), etc. 1.623 +.ie n .IP "\*(C`shared=\*(C'\fIyes-or-no\fR" 4 1.624 +.el .IP "\f(CW\*(C`shared=\*(C'\fR\fIyes-or-no\fR" 4 1.625 +.IX Item "shared=yes-or-no" 1.626 +This enables the \fIsubdir\fR components in the standard filesystem 1.627 +layouts by setting it to an automatically generated sub-directory named 1.628 +\&\fIhost\fR\f(CW\*(C`\-\*(C'\fR\fIarch\fR\-\fIos\fR. This allows one to build the same OpenPKG 1.629 +package in parallel on multiple hosts in a shared environment (usually 1.630 +on an \s-1NFS\s0 based filesystem). 1.631 +.ie n .IP "\*(C`debug=\*(C'\fIyes-or-no\fR" 4 1.632 +.el .IP "\f(CW\*(C`debug=\*(C'\fR\fIyes-or-no\fR" 4 1.633 +.IX Item "debug=yes-or-no" 1.634 +This enables debug outputs which shows the effectively used directory 1.635 +paths. 1.636 +.PP 1.637 +The generated \f(CW\*(C`.openpkg/rpmmacros\*(C'\fR file contains the generic filesystem 1.638 +layout glue configuration for the particular filesystem \fIlayout\fR. 1.639 +.ie n .IP "\*(C`%openpkg_layout macrosfile=%{macrosfile} layout=\*(C'\fItype\fR" 1 1.640 +.el .IP "\f(CW\*(C`%openpkg_layout macrosfile=%{macrosfile} layout=\*(C'\fR\fItype\fR" 1 1.641 +.IX Item "%openpkg_layout macrosfile=%{macrosfile} layout=type" 1.642 +.SH "CONFIGURATION" 1.643 +.IX Header "CONFIGURATION" 1.644 +.Vb 3 1.645 +\& OPENPKG_NAME="Ralf S. Engelschall" 1.646 +\& OPENPKG_MAIL="rse@openpkg.net" 1.647 +\& OPENPKG_MODE="developer" 1.648 +\& 1.649 +\& OPENPKG_PREFIX="/openpkg" 1.650 +\& OPENPKG_TMPDIR="${TMPDIR\-/tmp}/openpkg" 1.651 +\& 1.652 +\& OPENPKG_VCS="cvs ci \-m \*(Aq<msg>\*(Aq ." 1.653 +\& OPENPKG_UPLD="scp <srpm> openpkg\-ftp@ftp.openpkg.org:/current/SRC/00UPLOAD/" 1.654 +.Ve 1.655 +.SH "ABOUT" 1.656 +.IX Header "ABOUT" 1.657 +OpenPKG \fBdev\fR is Ralf S. Engelschall's Perl-based clean-room partial 1.658 +re-implementation of 2008 for OpenPKG 4.0 of Thomas Lotterer's original 1.659 +OpenPKG \fBdev\fR Bash-based shell from 2002.