openpkg/dev.8

changeset 428
f880f219c566
     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.

mercurial