openpkg/dev.8

Thu, 04 Oct 2012 20:30:05 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 04 Oct 2012 20:30:05 +0200
changeset 715
c10fb90893b9
permissions
-rw-r--r--

Correct out of date build configuration, porting to Solaris 11 network
link infrastructure and new libpcap logic. This additionally allows for
device drivers in subdirectories of /dev. Correct packaged nmap
personalities and signatures to work out of the box. Finally, hack
arpd logic to properly close sockets and quit on TERM by repeating
signaling in the run command script. Sadly, all this fails to correct
the run time behaviour of honeyd which fails to bind to the IP layer.

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 "DEV 8"
michael@428 127 .TH DEV 8 "OpenPKG" "DEV(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 \&\fBopenpkg dev\fR \- OpenPKG Package Development Tool
michael@428 133 .SH "DESCRIPTION"
michael@428 134 .IX Header "DESCRIPTION"
michael@428 135 \&\fBopenpkg dev\fR is a package development tool for \fBOpenPKG\fR.
michael@428 136 .SS "\s-1SOURCE\s0 \s-1PACKAGE\s0 \s-1HANDLING\s0"
michael@428 137 .IX Subsection "SOURCE PACKAGE HANDLING"
michael@428 138 .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
michael@428 139 .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
michael@428 140 .IX Item "openpkg dev unpack [-l layout] [-b basedir] [-s] [-d] name-version-release.src.rpm"
michael@428 141 Unpacks an OpenPKG source \s-1RPM\s0 package
michael@428 142 \&\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
michael@428 143 (default is \fIname\fR\f(CW\*(C`\-\*(C'\fR\fIversion\fR\f(CW\*(C`\-\*(C'\fR\fIrelease\fR)
michael@428 144 using \fIlayout\fR (default is \fIstructured\fR).
michael@428 145 Additionally,
michael@428 146 \&\fIfile-rpmmacros\fR
michael@428 147 configuration file is generated where
michael@428 148 \&\f(CW\*(C`\-s\*(C'\fR enables shared mode and
michael@428 149 \&\f(CW\*(C`\-d\*(C'\fR enables debug mode, see \fIfile-rpmmacros\fR.
michael@428 150 .SS "\s-1SOURCE\s0 \s-1PACKAGE\s0 \s-1DEVELOPMENT\s0"
michael@428 151 .IX Subsection "SOURCE PACKAGE DEVELOPMENT"
michael@428 152 .IP "\fBopenpkg dev shell\fR" 4
michael@428 153 .IX Item "openpkg dev shell"
michael@428 154 This is a convenience command which enters an interactive \fB\s-1GNU\s0 Bash\fR
michael@428 155 shell which provides the following work environment:
michael@428 156 .RS 4
michael@428 157 .IP "\fBEnvironment Variables:\fR" 4
michael@428 158 .IX Item "Environment Variables:"
michael@428 159 .Vb 5
michael@428 160 \& OPENPKG_PREFIX "<prefix>"
michael@428 161 \& 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$ "
michael@428 162 \& T %{_tmppath}
michael@428 163 \& S %{_specdir}
michael@428 164 \& D %{_sourcedir}
michael@428 165 .Ve
michael@428 166 .IP "\fBCommand-Line Aliases:\fR" 4
michael@428 167 .IX Item "Command-Line Aliases:"
michael@428 168 .Vb 2
michael@428 169 \& openpkg "${OPENPKG_PREFIX}/bin/openpkg"
michael@428 170 \& opd "${OPENPKG_PREFIX}/bin/openpkg dev"
michael@428 171 .Ve
michael@428 172 .IP "\fBCommand-Line Keystrokes:\fR" 4
michael@428 173 .IX Item "Command-Line Keystrokes:"
michael@428 174 .Vb 10
michael@428 175 \& ESC+x "opd unpack\en"
michael@428 176 \& ESC+v "opd edit\en"
michael@428 177 \& ESC+t "opd build \-s track\en"
michael@428 178 \& ESC+f "opd build \-s fetch\en"
michael@428 179 \& ESC+b "opd build\en"
michael@428 180 \& ESC+1 "opd build \-s prep\en"
michael@428 181 \& ESC+2 "opd build \-s compile\en"
michael@428 182 \& ESC+3 "opd build \-s install\en"
michael@428 183 \& ESC+4 "opd build \-s binary\en"
michael@428 184 \& ESC+s "opd build \-s source\en"
michael@428 185 \& ESC+p "opd peek\en"
michael@428 186 \& ESC+d "opd diff\en"
michael@428 187 \& ESC+i "opd install\en"
michael@428 188 \& ESC+e "opd erase\en"
michael@428 189 \& ESC+l "opd lint\en"
michael@428 190 \& ESC+r "opd release\en"
michael@428 191 .Ve
michael@428 192 .RE
michael@428 193 .RS 4
michael@428 194 .Sp
michael@428 195 If option \f(CW\*(C`\-s\*(C'\fR is passed to \fBopenpkg dev shell\fR and \fIscreen\fR\|(1) is
michael@428 196 available in \f(CW$PATH\fR, the interactive development shell is started up
michael@428 197 in a convenient virtual screen environment.
michael@428 198 .RE
michael@428 199 .IP "\fBopenpkg dev edit\fR" 4
michael@428 200 .IX Item "openpkg dev edit"
michael@428 201 Load spec file into editor.
michael@428 202 .RS 4
michael@428 203 .IP "\fBEnvironment Variables:\fR" 4
michael@428 204 .IX Item "Environment Variables:"
michael@428 205 .Vb 1
michael@428 206 \& EDITOR "vi"
michael@428 207 .Ve
michael@428 208 .RE
michael@428 209 .RS 4
michael@428 210 .RE
michael@428 211 .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
michael@428 212 .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
michael@428 213 .IX Item "openpkg dev build [-s step] [-D define[=value]] [-w variant]"
michael@428 214 Builds package steps. Default \fIstep\fR is \f(CW\*(C`all\*(C'\fR. Option \f(CW\*(C`\-D\*(C'\fR translated
michael@428 215 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
michael@428 216 into "\f(CW\*(C`\-\-with\*(C'\fR \fIvariant\fR". The \fIstep\fR arguments translate into the
michael@428 217 following \s-1RPM\s0 options:
michael@428 218 .Sp
michael@428 219 .Vb 8
michael@428 220 \& track: \-bt
michael@428 221 \& fetch: \-bf
michael@428 222 \& prep: \-bp
michael@428 223 \& compile: \-bc \-\-short\-circuit
michael@428 224 \& install: \-bi \-\-short\-circuit
michael@428 225 \& binary: \-bb \-\-short\-circuit
michael@428 226 \& source: \-bs
michael@428 227 \& all: \-ba
michael@428 228 .Ve
michael@428 229 .IP "\fBopenpkg dev peek\fR" 4
michael@428 230 .IX Item "openpkg dev peek"
michael@428 231 Peeks file list from package and tags configuration and documentation files.
michael@428 232 .IP "\fBopenpkg dev diff\fR" 4
michael@428 233 .IX Item "openpkg dev diff"
michael@428 234 Shows modifications with the help of a possibly underlying Version
michael@428 235 Control System (\s-1VCS\s0) like \s-1CVS\s0, Subversion, Monotone, Git, Mercurial or
michael@428 236 (as a fallback ) \s-1OSSP\s0 svs.
michael@428 237 .ie n .IP "\fBopenpkg dev install\fR [\*(C`\-f\*(C'] [\*(C`\-o\*(C'] [\*(C`\-n\*(C'] [\*(C`\-s\*(C']" 4
michael@428 238 .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
michael@428 239 .IX Item "openpkg dev install [-f] [-o] [-n] [-s]"
michael@428 240 Installs package.
michael@428 241 Option
michael@428 242 \&\f(CW\*(C`\-f\*(C'\fR adds \f(CW\*(C`\-\-force\*(C'\fR,
michael@428 243 \&\f(CW\*(C`\-n\*(C'\fR adds \f(CW\*(C`\-\-nodeps\*(C'\fR and
michael@428 244 \&\f(CW\*(C`\-o\*(C'\fR adds \f(CW\*(C`\-\-oldpackage\*(C'\fR
michael@428 245 to the underlying \f(CW\*(C`rpm\*(C'\fR call.
michael@428 246 Option \f(CW\*(C`\-s\*(C'\fR prefixes the command with \fIsudo\fR\|(1).
michael@428 247 .ie n .IP "\fBopenpkg dev erase\fR [\*(C`\-f\*(C'] [\*(C`\-o\*(C'] [\*(C`\-a\*(C'] [\*(C`\-s\*(C']" 4
michael@428 248 .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
michael@428 249 .IX Item "openpkg dev erase [-f] [-o] [-a] [-s]"
michael@428 250 Erases package.
michael@428 251 Option
michael@428 252 \&\f(CW\*(C`\-f\*(C'\fR adds \f(CW\*(C`\-\-force\*(C'\fR,
michael@428 253 \&\f(CW\*(C`\-n\*(C'\fR adds \f(CW\*(C`\-\-nodeps\*(C'\fR and
michael@428 254 \&\f(CW\*(C`\-a\*(C'\fR adds \f(CW\*(C`\-\-allmatches\*(C'\fR
michael@428 255 to the underlying \f(CW\*(C`rpm\*(C'\fR call.
michael@428 256 Option \f(CW\*(C`\-s\*(C'\fR prefixes the command with \fIsudo\fR\|(1).
michael@428 257 .ie n .IP "\fBopenpkg dev lint\fR [\*(C`\-v\*(C'] [\*(C`\-b\*(C']" 4
michael@428 258 .el .IP "\fBopenpkg dev lint\fR [\f(CW\*(C`\-v\*(C'\fR] [\f(CW\*(C`\-b\*(C'\fR]" 4
michael@428 259 .IX Item "openpkg dev lint [-v] [-b]"
michael@428 260 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.
michael@428 261 Option \f(CW\*(C`\-v\*(C'\fR enables verboseness.
michael@428 262 Option \f(CW\*(C`\-b\*(C'\fR disables the linting of an existing binary package file.
michael@428 263 .ie n .IP "\fBopenpkg dev release\fR [\*(C`\-m\*(C' \fImessage\fR] [\*(C`\-n\*(C']" 4
michael@428 264 .el .IP "\fBopenpkg dev release\fR [\f(CW\*(C`\-m\*(C'\fR \fImessage\fR] [\f(CW\*(C`\-n\*(C'\fR]" 4
michael@428 265 .IX Item "openpkg dev release [-m message] [-n]"
michael@428 266 Releases package specification to the repository. Unlike previous
michael@428 267 incarnations of \*(L"openpkg dev\*(R" this one is not tied to any repository or
michael@428 268 structure. The default message is created using the difference between
michael@428 269 the previous and current version of the package specification. In order
michael@428 270 to grab the previous version, the working directory and three levels
michael@428 271 towards root are checked for signs of \s-1CVS\s0, Subversion, Monotone, Git,
michael@428 272 Mercurial or \s-1SVS\s0 information, in that order. The appropriate command is
michael@428 273 then executed to retrieve the data and the \s-1VCS\s0 found is passed to the
michael@428 274 actual release command.
michael@428 275 .Sp
michael@428 276 Finally, the command specified by the environment variable
michael@428 277 \&\f(CW\*(C`OPENPKG_DEV_RELEASE\*(C'\fR or, if omitted, specified by the rpm macro
michael@428 278 \&\f(CW\*(C`%{openpkg_dev_release}\*(C'\fR is run and passed the following positional
michael@428 279 arguments:
michael@428 280 .RS 4
michael@428 281 .Sp
michael@428 282 .Vb 12
michael@428 283 \& openpkg\-prefix
michael@428 284 \& spec\-dir
michael@428 285 \& source\-dir
michael@428 286 \& binary\-rpm\-file
michael@428 287 \& source\-rpm\-file
michael@428 288 \& package\-name
michael@428 289 \& package\-version
michael@428 290 \& package\-release
michael@428 291 \& package\-version\-old
michael@428 292 \& package\-release\-old
michael@428 293 \& commit\-message
michael@428 294 \& vcs
michael@428 295 .Ve
michael@428 296 .RE
michael@428 297 .RS 4
michael@428 298 .Sp
michael@428 299 For a dry run, set \f(CW$OPENPKG_DEV_RELEASE\fR to \*(L"echo\*(R" or use option "\f(CW\*(C`\-n\*(C'\fR".
michael@428 300 .RE
michael@428 301 .SH "UNPACKED SOURCE RPM PACKAGE FILESYSTEM LAYOUT"
michael@428 302 .IX Header "UNPACKED SOURCE RPM PACKAGE FILESYSTEM LAYOUT"
michael@428 303 When an OpenPKG source \s-1RPM\s0 package
michael@428 304 \&\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
michael@428 305 filesystem, the following distinct filesystem layouts are known:
michael@428 306 .IP "\fBglobal\fR" 4
michael@428 307 .IX Item "global"
michael@428 308 .RS 4
michael@428 309 .PD 0
michael@428 310 .ie n .IP "\fIprefix\fR\*(C`/RPM/SRC/\*(C'\fIname\fR\*(C`/.openpkg/rpmmacros\*(C'" 4
michael@428 311 .el .IP "\fIprefix\fR\f(CW\*(C`/RPM/SRC/\*(C'\fR\fIname\fR\f(CW\*(C`/.openpkg/rpmmacros\*(C'\fR" 4
michael@428 312 .IX Item "prefix/RPM/SRC/name/.openpkg/rpmmacros"
michael@428 313 .ie n .IP "\fIprefix\fR\*(C`/RPM/SRC/\*(C'\fIname\fR\*(C`/\*(C'\fIname\fR\*(C`.spec\*(C'" 4
michael@428 314 .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
michael@428 315 .IX Item "prefix/RPM/SRC/name/name.spec"
michael@428 316 .ie n .IP "\fIprefix\fR\*(C`/RPM/SRC/\*(C'\fIname\fR\*(C`/\*(C'\fIpackaging-source-file\fR" 4
michael@428 317 .el .IP "\fIprefix\fR\f(CW\*(C`/RPM/SRC/\*(C'\fR\fIname\fR\f(CW\*(C`/\*(C'\fR\fIpackaging-source-file\fR" 4
michael@428 318 .IX Item "prefix/RPM/SRC/name/packaging-source-file"
michael@428 319 .ie n .IP "\fIprefix\fR\*(C`/RPM/SRC/\*(C'\fIname\fR\*(C`/\*(C'\fIthirdparty-distribution-file\fR" 4
michael@428 320 .el .IP "\fIprefix\fR\f(CW\*(C`/RPM/SRC/\*(C'\fR\fIname\fR\f(CW\*(C`/\*(C'\fR\fIthirdparty-distribution-file\fR" 4
michael@428 321 .IX Item "prefix/RPM/SRC/name/thirdparty-distribution-file"
michael@428 322 .ie n .IP "\fIprefix\fR\*(C`/RPM/PKG/\*(C'\fIbinary-rpm-package-file\fR" 4
michael@428 323 .el .IP "\fIprefix\fR\f(CW\*(C`/RPM/PKG/\*(C'\fR\fIbinary-rpm-package-file\fR" 4
michael@428 324 .IX Item "prefix/RPM/PKG/binary-rpm-package-file"
michael@428 325 .ie n .IP "\fIprefix\fR\*(C`/RPM/PKG/\*(C'\fIsource-rpm-package-file\fR" 4
michael@428 326 .el .IP "\fIprefix\fR\f(CW\*(C`/RPM/PKG/\*(C'\fR\fIsource-rpm-package-file\fR" 4
michael@428 327 .IX Item "prefix/RPM/PKG/source-rpm-package-file"
michael@428 328 .ie n .IP "\fIprefix\fR\*(C`/RPM/TMP/\*(C'\fItemporary-file\fR" 4
michael@428 329 .el .IP "\fIprefix\fR\f(CW\*(C`/RPM/TMP/\*(C'\fR\fItemporary-file\fR" 4
michael@428 330 .IX Item "prefix/RPM/TMP/temporary-file"
michael@428 331 .RE
michael@428 332 .RS 4
michael@428 333 .PD
michael@428 334 .Sp
michael@428 335 This is just the \*(L"simple\*(R" filesystem layout (see below) with the
michael@428 336 \&\fIbase-dir\fR set to \fIprefix\fR\f(CW\*(C`/RPM/SRC/\*(C'\fR.
michael@428 337 .Sp
michael@428 338 This is the filesystem layout used by default for building OpenPKG
michael@428 339 packages during \f(CW\*(C`openpkg build\*(C'\fR or the underlying \f(CW\*(C`openpkg rpm
michael@428 340 \&\-\-rebuild\*(C'\fR commands.
michael@428 341 .RE
michael@428 342 .IP "\fBlocal\fR" 4
michael@428 343 .IX Item "local"
michael@428 344 .RS 4
michael@428 345 .PD 0
michael@428 346 .ie n .IP "\fIbase-dir\fR\*(C`/.openpkg/rpmmacros\*(C'" 4
michael@428 347 .el .IP "\fIbase-dir\fR\f(CW\*(C`/.openpkg/rpmmacros\*(C'\fR" 4
michael@428 348 .IX Item "base-dir/.openpkg/rpmmacros"
michael@428 349 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`.spec\*(C'" 4
michael@428 350 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`.spec\*(C'\fR" 4
michael@428 351 .IX Item "base-dir/name.spec"
michael@428 352 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIpackaging-source-file\fR" 4
michael@428 353 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIpackaging-source-file\fR" 4
michael@428 354 .IX Item "base-dir/packaging-source-file"
michael@428 355 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIthirdparty-distribution-file\fR" 4
michael@428 356 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIthirdparty-distribution-file\fR" 4
michael@428 357 .IX Item "base-dir/thirdparty-distribution-file"
michael@428 358 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIbinary-rpm-package-file\fR" 4
michael@428 359 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIbinary-rpm-package-file\fR" 4
michael@428 360 .IX Item "base-dir/binary-rpm-package-file"
michael@428 361 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIsource-rpm-package-file\fR" 4
michael@428 362 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIsource-rpm-package-file\fR" 4
michael@428 363 .IX Item "base-dir/source-rpm-package-file"
michael@428 364 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fItemporary-file\fR" 4
michael@428 365 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fItemporary-file\fR" 4
michael@428 366 .IX Item "base-dir/temporary-file"
michael@428 367 .RE
michael@428 368 .RS 4
michael@428 369 .PD
michael@428 370 .Sp
michael@428 371 This puts everything into one directory.
michael@428 372 .RE
michael@428 373 .IP "\fBsimple\fR" 4
michael@428 374 .IX Item "simple"
michael@428 375 .RS 4
michael@428 376 .PD 0
michael@428 377 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/.openpkg/rpmmacros\*(C'" 4
michael@428 378 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/.openpkg/rpmmacros\*(C'\fR" 4
michael@428 379 .IX Item "base-dir/name/.openpkg/rpmmacros"
michael@428 380 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/\*(C'\fIname\fR\*(C`.spec\*(C'" 4
michael@428 381 .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
michael@428 382 .IX Item "base-dir/name/name.spec"
michael@428 383 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/\*(C'\fIpackaging-source-file\fR" 4
michael@428 384 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/\*(C'\fR\fIpackaging-source-file\fR" 4
michael@428 385 .IX Item "base-dir/name/packaging-source-file"
michael@428 386 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/\*(C'\fIthirdparty-distribution-file\fR" 4
michael@428 387 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/\*(C'\fR\fIthirdparty-distribution-file\fR" 4
michael@428 388 .IX Item "base-dir/name/thirdparty-distribution-file"
michael@428 389 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIbinary-rpm-package-file\fR" 4
michael@428 390 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIbinary-rpm-package-file\fR" 4
michael@428 391 .IX Item "base-dir/binary-rpm-package-file"
michael@428 392 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIsource-rpm-package-file\fR" 4
michael@428 393 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIsource-rpm-package-file\fR" 4
michael@428 394 .IX Item "base-dir/source-rpm-package-file"
michael@428 395 .ie n .IP "\fI\fI$TMPDIR\fI\fR\*(C`/openpkg/\*(C'\fItemporary-file\fR" 4
michael@428 396 .el .IP "\fI\f(CI$TMPDIR\fI\fR\f(CW\*(C`/openpkg/\*(C'\fR\fItemporary-file\fR" 4
michael@428 397 .IX Item "$TMPDIR/openpkg/temporary-file"
michael@428 398 .RE
michael@428 399 .RS 4
michael@428 400 .PD
michael@428 401 .Sp
michael@428 402 This is the simple filesystem layout of an unpacked
michael@428 403 OpenPKG package. All files are simply put into a sub-directory with the
michael@428 404 \&\fIname\fR of the package.
michael@428 405 .Sp
michael@428 406 This is the filesystem layout used for the quick patching of a single
michael@428 407 OpenPKG package in a stand-alone environment.
michael@428 408 .RE
michael@428 409 .IP "\fBstructured\fR" 4
michael@428 410 .IX Item "structured"
michael@428 411 .RS 4
michael@428 412 .PD 0
michael@428 413 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/.openpkg/rpmmacros\*(C'" 4
michael@428 414 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/.openpkg/rpmmacros\*(C'\fR" 4
michael@428 415 .IX Item "base-dir/name/.openpkg/rpmmacros"
michael@428 416 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/src/\*(C'\fIname\fR\*(C`.spec\*(C'" 4
michael@428 417 .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
michael@428 418 .IX Item "base-dir/name/src/name.spec"
michael@428 419 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/src/\*(C'\fIpackaging-source-file\fR" 4
michael@428 420 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/src/\*(C'\fR\fIpackaging-source-file\fR" 4
michael@428 421 .IX Item "base-dir/name/src/packaging-source-file"
michael@428 422 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/dst/\*(C'\fIthirdparty-distribution-file\fR" 4
michael@428 423 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/dst/\*(C'\fR\fIthirdparty-distribution-file\fR" 4
michael@428 424 .IX Item "base-dir/name/dst/thirdparty-distribution-file"
michael@428 425 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/pkg/\*(C'[\*(C`bin/\*(C']\fIbinary-rpm-package-file\fR" 4
michael@428 426 .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
michael@428 427 .IX Item "base-dir/name/pkg/[bin/]binary-rpm-package-file"
michael@428 428 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/pkg/\*(C'[\*(C`src/\*(C']\fIsource-rpm-package-file\fR" 4
michael@428 429 .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
michael@428 430 .IX Item "base-dir/name/pkg/[src/]source-rpm-package-file"
michael@428 431 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\fIname\fR\*(C`/tmp/\*(C'\fItemporary-file\fR" 4
michael@428 432 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\fIname\fR\f(CW\*(C`/tmp/\*(C'\fR\fItemporary-file\fR" 4
michael@428 433 .IX Item "base-dir/name/tmp/temporary-file"
michael@428 434 .RE
michael@428 435 .RS 4
michael@428 436 .PD
michael@428 437 .Sp
michael@428 438 This is the structured (and default) filesystem layout of an unpacked
michael@428 439 OpenPKG package. A top-level sub-directory with the \fIname\fR of the
michael@428 440 package is created. There the package specification and all packaging
michael@428 441 source files are put into the sub-directory \fIsrc\fR and all the
michael@428 442 third-party distribution files are put into the sub-directory \fIdst\fR.
michael@428 443 .Sp
michael@428 444 This is the filesystem layout used for the development of a single
michael@428 445 OpenPKG package in a stand-alone environment.
michael@428 446 .RE
michael@428 447 .IP "\fBdistributed\fR" 4
michael@428 448 .IX Item "distributed"
michael@428 449 .RS 4
michael@428 450 .PD 0
michael@428 451 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\*(C`.openpkg/rpmmacros\*(C'" 4
michael@428 452 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\f(CW\*(C`.openpkg/rpmmacros\*(C'\fR" 4
michael@428 453 .IX Item "base-dir/.openpkg/rpmmacros"
michael@428 454 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\*(C`src/\*(C'\fIname\fR\*(C`/\*(C'\fIname\fR\*(C`.spec\*(C'" 4
michael@428 455 .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
michael@428 456 .IX Item "base-dir/src/name/name.spec"
michael@428 457 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\*(C`src/\*(C'\fIname\fR\*(C`/\*(C'\fIpackaging-source-file\fR" 4
michael@428 458 .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
michael@428 459 .IX Item "base-dir/src/name/packaging-source-file"
michael@428 460 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\*(C`dst/\*(C'\fIname\fR\*(C`/\*(C'\fIthirdparty-distribution-file\fR" 4
michael@428 461 .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
michael@428 462 .IX Item "base-dir/dst/name/thirdparty-distribution-file"
michael@428 463 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\*(C`pkg/\*(C'[\*(C`bin/\*(C']\fIbinary-rpm-package-file\fR" 4
michael@428 464 .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
michael@428 465 .IX Item "base-dir/pkg/[bin/]binary-rpm-package-file"
michael@428 466 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\*(C`pkg/\*(C'[\*(C`src/\*(C']\fIsource-rpm-package-file\fR" 4
michael@428 467 .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
michael@428 468 .IX Item "base-dir/pkg/[src/]source-rpm-package-file"
michael@428 469 .ie n .IP "\fIbase-dir\fR\*(C`/\*(C'\*(C`tmp/\*(C'\fItemporary-file\fR" 4
michael@428 470 .el .IP "\fIbase-dir\fR\f(CW\*(C`/\*(C'\fR\f(CW\*(C`tmp/\*(C'\fR\fItemporary-file\fR" 4
michael@428 471 .IX Item "base-dir/tmp/temporary-file"
michael@428 472 .RE
michael@428 473 .RS 4
michael@428 474 .PD
michael@428 475 .Sp
michael@428 476 This is the distributed filesystem layout of an unpacked OpenPKG
michael@428 477 package. It is similar to the structured filesystem layout but the
michael@428 478 \&\f(CW\*(C`src\*(C'\fR and \f(CW\*(C`dst\*(C'\fR directories and the \fIname\fR directory are swapped,
michael@428 479 mainly with the intention of bundling together all third-party
michael@428 480 distribution files of a large number of packages.
michael@428 481 .Sp
michael@428 482 This is the filesystem layout used for regular OpenPKG package
michael@428 483 development.
michael@428 484 .RE
michael@428 485 .SH "LOCAL RPM MACROS FILE (.openpkg/rpmmacros)"
michael@428 486 .IX Header "LOCAL RPM MACROS FILE (.openpkg/rpmmacros)"
michael@428 487 OpenPKG supports local \s-1RPM\s0 macros files \fI.openpkg/rpmmacros\fR which
michael@428 488 can be used to configure \s-1RPM\s0 in a local scope. This is especially
michael@428 489 interesting to configure a local (even per-package) build environment
michael@428 490 with the help of the \f(CW%openpkg_layout\fR macro.
michael@428 491 .PP
michael@428 492 \&\f(CW%openpkg_layout\fR
michael@428 493 [\f(CW\*(C`macrosfile=\*(C'\fR\fIfilename\fR]
michael@428 494 [\f(CW\*(C`basedir=\*(C'\fR\fIdirectory\fR]
michael@428 495 [\f(CW\*(C`specdir=\*(C'\fR\fIdirectory\fR]
michael@428 496 [\f(CW\*(C`sourcedir=\*(C'\fR\fIdirectory\fR]
michael@428 497 [\f(CW\*(C`builddir=\*(C'\fR\fIdirectory\fR]
michael@428 498 [\f(CW\*(C`tmpdir=\*(C'\fR\fIdirectory\fR]
michael@428 499 [\f(CW\*(C`binrpmdir=\*(C'\fR\fIdirectory\fR]
michael@428 500 [\f(CW\*(C`srcrpmdir=\*(C'\fR\fIdirectory\fR]
michael@428 501 [\f(CW\*(C`shared=\*(C'\fR\fIyes-or-no\fR]
michael@428 502 [\f(CW\*(C`debug=\*(C'\fR\fIyes-or-no\fR]
michael@428 503 .ie n .IP "\*(C`macrosfile=\*(C'\fIfilename\fR" 4
michael@428 504 .el .IP "\f(CW\*(C`macrosfile=\*(C'\fR\fIfilename\fR" 4
michael@428 505 .IX Item "macrosfile=filename"
michael@428 506 Absolute file path of the \f(CW\*(C`.openpkg/rpmmacros\*(C'\fR file where this
michael@428 507 \&\f(CW%openpkg_layout\fR macro is defined. Usually, the intended usage is to
michael@428 508 leverage from OpenPKG \s-1RPM\s0's special \f(CW\*(C`%{macrosfile}\*(C'\fR macro by simply
michael@428 509 using \f(CW\*(C`macrosfile=%{macrosfile}\*(C'\fR. This parameter is important as
michael@428 510 the default \f(CW\*(C`basename\*(C'\fR is derived from it.
michael@428 511 .ie n .IP "\*(C`basedir=\*(C'\fIdirectory\fR" 4
michael@428 512 .el .IP "\f(CW\*(C`basedir=\*(C'\fR\fIdirectory\fR" 4
michael@428 513 .IX Item "basedir=directory"
michael@428 514 Absolute directory path where the \f(CW\*(C`.openpkg/rpmmacros\*(C'\fR file is
michael@428 515 located under. Usually, the intended usage is to not explicitly
michael@428 516 set this parameter but let it be determined indirectly via
michael@428 517 \&\f(CW\*(C`macrosfile\*(C'\fR. The effective default value is equal to a value like
michael@428 518 \&\f(CW\*(C`%{realpath:%{dirname:%{realpath:%{macrosfile}}}/..}\*(C'\fR This parameter is
michael@428 519 important as all standard filesystem layouts (see parameter \f(CW\*(C`layout\*(C'\fR)
michael@428 520 are always at least partially based on this base directory in order
michael@428 521 to provide absolute-path-independent flexible filesystem layouts.
michael@428 522 .ie n .IP "\*(C`layout=\*(C'\fIlayout\fR" 4
michael@428 523 .el .IP "\f(CW\*(C`layout=\*(C'\fR\fIlayout\fR" 4
michael@428 524 .IX Item "layout=layout"
michael@428 525 The name of the filesystem layout type to use. The following standard
michael@428 526 filesystem layout types are pre-defined: \f(CW\*(C`global\*(C'\fR, \f(CW\*(C`local\*(C'\fR, \f(CW\*(C`simple\*(C'\fR,
michael@428 527 \&\f(CW\*(C`structured\*(C'\fR (default) and \f(CW\*(C`distributed\*(C'\fR.
michael@428 528 .Sp
michael@428 529 .Vb 8
michael@428 530 \& global macrosdir <openpkg_prefix>/etc/openpkg
michael@428 531 \& global macrosfile <openpkg_prefix>/etc/openpkg/rpmmacros
michael@428 532 \& global specdir <openpkg_prefix>/RPM/SRC/$name
michael@428 533 \& global sourcedir <openpkg_prefix>/RPM/SRC/$name
michael@428 534 \& global builddir <openpkg_prefix>/RPM/TMP
michael@428 535 \& global tmpdir <openpkg_prefix>/RPM/TMP
michael@428 536 \& global binrpmdir <openpkg_prefix>/RPM/PKG
michael@428 537 \& global srcrpmdir <openpkg_prefix>/RPM/PKG
michael@428 538 \&
michael@428 539 \& local macrosdir <basedir>/.openpkg
michael@428 540 \& local macrosfile <basedir>/.openpkg/rpmmacros
michael@428 541 \& local specdir <basedir>
michael@428 542 \& local sourcedir <basedir>
michael@428 543 \& local builddir <basedir>
michael@428 544 \& local tmpdir <basedir>
michael@428 545 \& local binrpmdir <basedir>
michael@428 546 \& local srcrpmdir <basedir>
michael@428 547 \&
michael@428 548 \& simple macrosdir <basedir>/.openpkg
michael@428 549 \& simple macrosfile <basedir>/.openpkg/rpmmacros
michael@428 550 \& simple specdir <basedir>
michael@428 551 \& simple sourcedir <basedir>
michael@428 552 \& simple builddir <tmpdir>
michael@428 553 \& simple tmpdir <tmpdir>
michael@428 554 \& simple binrpmdir <basedir>/..
michael@428 555 \& simple srcrpmdir <basedir>/..
michael@428 556 \&
michael@428 557 \& structured macrosdir <basedir>/.openpkg
michael@428 558 \& structured macrosfile <basedir>/.openpkg/rpmmacros
michael@428 559 \& structured specdir <basedir>/src
michael@428 560 \& structured sourcedir <basedir>/dst
michael@428 561 \& structured builddir <basedir>/tmp
michael@428 562 \& structured tmpdir <basedir>/tmp
michael@428 563 \& structured binrpmdir <basedir>/pkg/bin
michael@428 564 \& structured srcrpmdir <basedir>/pkg/src
michael@428 565 \&
michael@428 566 \& distributed macrosdir <basedir>/.openpkg
michael@428 567 \& distributed macrosfile <basedir>/.openpkg/rpmmacros
michael@428 568 \& distributed specdir <basedir>/src/<name>
michael@428 569 \& distributed sourcedir <basedir>/dst/<name>
michael@428 570 \& distributed builddir <basedir>/tmp
michael@428 571 \& distributed tmpdir <basedir>/tmp
michael@428 572 \& distributed binrpmdir <basedir>/pkg/bin
michael@428 573 \& distributed srcrpmdir <basedir>/pkg/src
michael@428 574 .Ve
michael@428 575 .ie n .IP "\*(C`specdir=\*(C'\fIdirectory-list\fR" 4
michael@428 576 .el .IP "\f(CW\*(C`specdir=\*(C'\fR\fIdirectory-list\fR" 4
michael@428 577 .IX Item "specdir=directory-list"
michael@428 578 .PD 0
michael@428 579 .ie n .IP "\*(C`sourcedir=\*(C'\fIdirectory-list\fR" 4
michael@428 580 .el .IP "\f(CW\*(C`sourcedir=\*(C'\fR\fIdirectory-list\fR" 4
michael@428 581 .IX Item "sourcedir=directory-list"
michael@428 582 .ie n .IP "\*(C`builddir=\*(C'\fIdirectory-list\fR" 4
michael@428 583 .el .IP "\f(CW\*(C`builddir=\*(C'\fR\fIdirectory-list\fR" 4
michael@428 584 .IX Item "builddir=directory-list"
michael@428 585 .ie n .IP "\*(C`tmpdir=\*(C'\fIdirectory-list\fR" 4
michael@428 586 .el .IP "\f(CW\*(C`tmpdir=\*(C'\fR\fIdirectory-list\fR" 4
michael@428 587 .IX Item "tmpdir=directory-list"
michael@428 588 .ie n .IP "\*(C`binrpmdir=\*(C'\fIdirectory-list\fR" 4
michael@428 589 .el .IP "\f(CW\*(C`binrpmdir=\*(C'\fR\fIdirectory-list\fR" 4
michael@428 590 .IX Item "binrpmdir=directory-list"
michael@428 591 .ie n .IP "\*(C`srcrpmdir=\*(C'\fIdirectory-list\fR" 4
michael@428 592 .el .IP "\f(CW\*(C`srcrpmdir=\*(C'\fR\fIdirectory-list\fR" 4
michael@428 593 .IX Item "srcrpmdir=directory-list"
michael@428 594 .PD
michael@428 595 These parameters correspond to the six individual directories provided
michael@428 596 by a standard layout and allow you to selectively adjust parts of a
michael@428 597 standard layout to local needs and without having to define a full
michael@428 598 standard layout yourself.
michael@428 599 .Sp
michael@428 600 The \fIdirectory-list\fR is a whitespace-separated list of
michael@428 601 \&\fIdirectory\fR[\f(CW\*(C`:\*(C'\fR[\f(CW\*(C`+\*(C'\fR]\fIdirectory\fR] specifications which are
michael@428 602 \&\*(L"first-match\*(R" searched for existence. The last directory in the list
michael@428 603 is always taken as the fallback and if it is not existing it is
michael@428 604 even created on-the-fly. The \fIdirectory-check\fR\f(CW\*(C`:\*(C'\fR\fIdirectory-use\fR
michael@428 605 syntax variant allows the existence test to use \fIdirectory-check\fR,
michael@428 606 but expands to \fIdirectory-use\fR (replace mode). The
michael@428 607 \&\fIdirectory-check\fR\f(CW\*(C`:+\*(C'\fR\fIdirectory-use\fR syntax variant allows
michael@428 608 the existence test to use \fIdirectory-check\fR, but expands to
michael@428 609 \&\fIdirectory-check\fR\fIdirectory-use\fR (append mode). For instance
michael@428 610 \&\f(CW\*(C`tmpdir="%{getenv:HOME)/tmp:+/openpkg %{getenv:TMPDIR}:+/openpkg
michael@428 611 /tmp/%(echo $LOGNAME)/openpkg"\*(C'\fR will first check for ~/tmp (and then use
michael@428 612 ~/tmp/openpkg), then for \f(CW$TMPDIR\fR (and use \f(CW$TMPDIR\fR/openpkg) and finally
michael@428 613 it will use /tmp/$LOGNAME/openpkg at last resort.
michael@428 614 .Sp
michael@428 615 Paths are usually assembled by using \s-1RPM\s0 macros like
michael@428 616 \&\f(CW\*(C`%{l_prefix}\*(C'\fR (the instance prefix), \f(CW\*(C`%{_\|_openpkg_basename}\*(C'\fR (the
michael@428 617 \&\fIbasename\fR parameter), \f(CW\*(C`%{realpath:<path\*(C'\fR} (path resolution),
michael@428 618 \&\f(CW\*(C`%{dirname:<path\*(C'\fR} (directory name extraction), \f(CW\*(C`%{basename:<path\*(C'\fR}
michael@428 619 (file name extraction), etc.
michael@428 620 .ie n .IP "\*(C`shared=\*(C'\fIyes-or-no\fR" 4
michael@428 621 .el .IP "\f(CW\*(C`shared=\*(C'\fR\fIyes-or-no\fR" 4
michael@428 622 .IX Item "shared=yes-or-no"
michael@428 623 This enables the \fIsubdir\fR components in the standard filesystem
michael@428 624 layouts by setting it to an automatically generated sub-directory named
michael@428 625 \&\fIhost\fR\f(CW\*(C`\-\*(C'\fR\fIarch\fR\-\fIos\fR. This allows one to build the same OpenPKG
michael@428 626 package in parallel on multiple hosts in a shared environment (usually
michael@428 627 on an \s-1NFS\s0 based filesystem).
michael@428 628 .ie n .IP "\*(C`debug=\*(C'\fIyes-or-no\fR" 4
michael@428 629 .el .IP "\f(CW\*(C`debug=\*(C'\fR\fIyes-or-no\fR" 4
michael@428 630 .IX Item "debug=yes-or-no"
michael@428 631 This enables debug outputs which shows the effectively used directory
michael@428 632 paths.
michael@428 633 .PP
michael@428 634 The generated \f(CW\*(C`.openpkg/rpmmacros\*(C'\fR file contains the generic filesystem
michael@428 635 layout glue configuration for the particular filesystem \fIlayout\fR.
michael@428 636 .ie n .IP "\*(C`%openpkg_layout macrosfile=%{macrosfile} layout=\*(C'\fItype\fR" 1
michael@428 637 .el .IP "\f(CW\*(C`%openpkg_layout macrosfile=%{macrosfile} layout=\*(C'\fR\fItype\fR" 1
michael@428 638 .IX Item "%openpkg_layout macrosfile=%{macrosfile} layout=type"
michael@428 639 .SH "CONFIGURATION"
michael@428 640 .IX Header "CONFIGURATION"
michael@428 641 .Vb 3
michael@428 642 \& OPENPKG_NAME="Ralf S. Engelschall"
michael@428 643 \& OPENPKG_MAIL="rse@openpkg.net"
michael@428 644 \& OPENPKG_MODE="developer"
michael@428 645 \&
michael@428 646 \& OPENPKG_PREFIX="/openpkg"
michael@428 647 \& OPENPKG_TMPDIR="${TMPDIR\-/tmp}/openpkg"
michael@428 648 \&
michael@428 649 \& OPENPKG_VCS="cvs ci \-m \*(Aq<msg>\*(Aq ."
michael@428 650 \& OPENPKG_UPLD="scp <srpm> openpkg\-ftp@ftp.openpkg.org:/current/SRC/00UPLOAD/"
michael@428 651 .Ve
michael@428 652 .SH "ABOUT"
michael@428 653 .IX Header "ABOUT"
michael@428 654 OpenPKG \fBdev\fR is Ralf S. Engelschall's Perl-based clean-room partial
michael@428 655 re-implementation of 2008 for OpenPKG 4.0 of Thomas Lotterer's original
michael@428 656 OpenPKG \fBdev\fR Bash-based shell from 2002.

mercurial