Mon, 28 Jan 2013 17:37:18 +0100
Correct socket error reporting improvement with IPv6 portable code,
after helpful recommendation by Saúl Ibarra Corretgé on OSips devlist.
1 .\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings. \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote. \*(C+ will
21 .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 . ds -- \(*W-
28 . ds PI pi
29 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
31 . ds L" ""
32 . ds R" ""
33 . ds C`
34 . ds C'
35 'br\}
36 .el\{\
37 . ds -- \|\(em\|
38 . ds PI \(*p
39 . ds L" ``
40 . ds R" ''
41 'br\}
42 .\"
43 .\" Escape single quotes in literal strings from groff's Unicode transform.
44 .ie \n(.g .ds Aq \(aq
45 .el .ds Aq '
46 .\"
47 .\" If the F register is turned on, we'll generate index entries on stderr for
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49 .\" entries marked with X<> in POD. Of course, you'll have to process the
50 .\" output yourself in some meaningful fashion.
51 .ie \nF \{\
52 . de IX
53 . tm Index:\\$1\t\\n%\t"\\$2"
54 ..
55 . nr % 0
56 . rr F
57 .\}
58 .el \{\
59 . de IX
60 ..
61 .\}
62 .\"
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64 .\" Fear. Run. Save yourself. No user-serviceable parts.
65 . \" fudge factors for nroff and troff
66 .if n \{\
67 . ds #H 0
68 . ds #V .8m
69 . ds #F .3m
70 . ds #[ \f1
71 . ds #] \fP
72 .\}
73 .if t \{\
74 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75 . ds #V .6m
76 . ds #F 0
77 . ds #[ \&
78 . ds #] \&
79 .\}
80 . \" simple accents for nroff and troff
81 .if n \{\
82 . ds ' \&
83 . ds ` \&
84 . ds ^ \&
85 . ds , \&
86 . ds ~ ~
87 . ds /
88 .\}
89 .if t \{\
90 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96 .\}
97 . \" troff and (daisy-wheel) nroff accents
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105 .ds ae a\h'-(\w'a'u*4/10)'e
106 .ds Ae A\h'-(\w'A'u*4/10)'E
107 . \" corrections for vroff
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110 . \" for low resolution devices (crt and lpr)
111 .if \n(.H>23 .if \n(.V>19 \
112 \{\
113 . ds : e
114 . ds 8 ss
115 . ds o a
116 . ds d- d\h'-1'\(ga
117 . ds D- D\h'-1'\(hy
118 . ds th \o'bp'
119 . ds Th \o'LP'
120 . ds ae ae
121 . ds Ae AE
122 .\}
123 .rm #[ #] #H #V #F C
124 .\" ========================================================================
125 .\"
126 .IX Title "RPMTOOL 8"
127 .TH RPMTOOL 8 "OpenPKG" "RPMTOOL(8)" "OpenPKG"
128 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
129 .\" way too many mistakes in technical documents.
130 .if n .ad l
131 .nh
132 .SH "NAME"
133 rpmtool \- RPM Auxiliary Tool
134 .SH "SYNOPSIS"
135 .IX Header "SYNOPSIS"
136 \&\fBrpmtool\fR
137 \&\fIcommand\fR
138 [\fIcommand-options\fR]
139 .SH "DESCRIPTION"
140 .IX Header "DESCRIPTION"
141 This is an auxiliary tool to the RedHat Package Manager (\s-1RPM\s0). It
142 provides additional functionality for use in \s-1RPM\s0 \fIspec\fR files while
143 building packages. The following \fIcommand\fRs are available:
144 .IP "\fBplatform\fR" 4
145 .IX Item "platform"
146 This command outputs a unique platform id in the format
147 \&\*(L"<architecture>\-<system><release>\*(R". For instance, the output on a
148 FreeBSD platform can be \*(L"i386\-freebsd4.2\*(R", the output on a Linux
149 platform can be \*(L"i686\-linux2.2.16\*(R", the output on a Solaris platform can
150 be \*(L"sun4u\-sunos5.8\*(R", etc.
151 .Sp
152 Example:
153 .Sp
154 .Vb 5
155 \& case \`rpmtool platform\`; in
156 \& *\-freebsd[34].* ) ... ;;
157 \& *\-sunos5.[678] ) ... ;;
158 \& *\-linux2.[24].* ) ... ;;
159 \& esac
160 .Ve
161 .IP "\fBmflags\fR [\fB\-O\fR] \fItool\fR" 4
162 .IX Item "mflags [-O] tool"
163 This command outputs additional flags for \fImake\fR\|(1) for
164 use with the program \fItool\fR. It provides only standard flags which
165 always can be used. In conjunction with \fB\-O\fR (optimization), it also provides
166 reasonable job control for use on multi-processor platforms (for instance it
167 outputs \*(L"\-j4\*(R" on an \s-1SMP\s0 system with 2 CPUs if \s-1GNU\s0 make or \s-1BSD\s0 pmake is used).
168 .Sp
169 Example:
170 .Sp
171 .Vb 1
172 \& make \`rpmtool mflags \-O make\`
173 .Ve
174 .IP "\fBcflags\fR [\fB\-O\fR] \fItool\fR" 4
175 .IX Item "cflags [-O] tool"
176 This command outputs additional flags for \fIcc\fR\|(1) for use with the program
177 \&\fItool\fR. It provides only standard flags which always can be used.
178 conjunction with \fB\-O\fR it provides also optimization flags (for instance
179 it outputs \*(L"\-O2 \-pipe\*(R" for \s-1GNU\s0 C/\*(C+ compiler).
180 .Sp
181 Example:
182 .Sp
183 .Vb 1
184 \& CC="$CC" CFLAGS=\`rpmtool cflags \-O $CC\` ./configure ...
185 .Ve
186 .ie n .IP "\fBcppflags\fR [\fB\-p\fR \fIprefix\fR] [[\*(C`+|\-\*(C'\fIsubdir\fR ...]" 4
187 .el .IP "\fBcppflags\fR [\fB\-p\fR \fIprefix\fR] [[\f(CW\*(C`+|\-\*(C'\fR\fIsubdir\fR ...]" 4
188 .IX Item "cppflags [-p prefix] [[+|-subdir ...]"
189 This command output \fIcpp\fR\|(1) \f(CW\*(C`\-I\*(C'\fR options for the OpenPKG instance
190 \&\fIprefix\fR. It optionally can prefix or suffix with one or more \fIsubdir\fR
191 related options, too. If \fIsubdir\fR is prefixed with \f(CW\*(C`+\*(C'\fR (or not
192 prefixed at all), the generated option is appended. If \fIsubdir\fR is
193 prefixed with \f(CW\*(C`\-\*(C'\fR the generated option is prepended.
194 .Sp
195 Example:
196 .Sp
197 .Vb 1
198 \& rpmtool cppflags \-p /foo bar \-baz +quux
199 .Ve
200 .ie n .IP "\fBldflags\fR [\fB\-p\fR \fIprefix\fR] [[\*(C`+|\-\*(C'\fIsubdir\fR ...]" 4
201 .el .IP "\fBldflags\fR [\fB\-p\fR \fIprefix\fR] [[\f(CW\*(C`+|\-\*(C'\fR\fIsubdir\fR ...]" 4
202 .IX Item "ldflags [-p prefix] [[+|-subdir ...]"
203 This command output \fIld\fR\|(1) \f(CW\*(C`\-L\*(C'\fR options for the OpenPKG instance
204 \&\fIprefix\fR. It optionally can prefix or suffix with one or more \fIsubdir\fR
205 related options, too. If \fIsubdir\fR is prefixed with \f(CW\*(C`+\*(C'\fR (or not
206 prefixed at all), the generated option is appended. If \fIsubdir\fR is
207 prefixed with \f(CW\*(C`\-\*(C'\fR the generated option is prepended.
208 .Sp
209 Example:
210 .Sp
211 .Vb 1
212 \& rpmtool ldflags \-p /foo bar \-baz +quux
213 .Ve
214 .IP "\fBfiles\fR [\fB\-v\fR] [\fB\-o\fR \fIoutfile\fR] [\fB\-r\fR \fIbuild-root\fR] [\fIentry\fR ...]" 4
215 .IX Item "files [-v] [-o outfile] [-r build-root] [entry ...]"
216 This is a dynamic variant of the \s-1RPM\s0 \f(CW%files\fR section, i.e., it
217 dynamically creates the contents of the \f(CW%files\fR section for use with
218 the \f(CW\*(C`%files \-f\*(C'\fR command. For this the file list entries are read from
219 the command line (or from stdin if no arguments are given or a single
220 argument \f(CW\*(C`\-\*(C'\fR is given) and written to stdout (if no \fB\-o\fR option is
221 given or its \fIoutfile\fR argument is \f(CW\*(C`\-\*(C'\fR) or to \fIoutfile\fR.
222 .Sp
223 The trick of this approach is to be able to use additional features in
224 the file list which \s-1RPM\s0 does not provide. The following features are
225 provided:
226 .RS 4
227 .IP "\fBTrailing Tags\fR" 4
228 .IX Item "Trailing Tags"
229 \&\s-1RPM\s0 requires that all tags (like \f(CW\*(C`%attr(...)\*(C'\fR or \f(CW%dir\fR) preceed the
230 path in a file list entry. This sometimes leads to ugly and unreadable
231 file lists, because all paths cannot be left-aligned. With \fIrpmtool\fR\|(8)
232 tags in the input file list can be at leading and trailing positions.
233 The output file list will nevertheless have all tags in leading
234 positions for \s-1RPM\s0.
235 .IP "\fBSyntactical Set Pattern\fR" 4
236 .IX Item "Syntactical Set Pattern"
237 \&\s-1RPM\s0 supports simple wildcard patterns like \f(CW\*(C`/path/*\*(C'\fR or \f(CW\*(C`/path/[a\-z]\*(C'\fR,
238 etc. Sometimes it is convenient, to also have (in addition to character
239 sets) string sets like \f(CW\*(C`/path/{foo,bar,quux}\*(C'\fR. \fIrpmtool\fR\|(8) provides this
240 by syntactically (without checking the filesystem) expanding those
241 string sets.
242 .IP "\fBOverriding Entries\fR" 4
243 .IX Item "Overriding Entries"
244 This is the most important feature and the reason why \fIshtool\fR\|(1)'s
245 \&\fBfiles\fR command was implemented. Although \s-1RPM\s0 allows one to specify a
246 directory in a file list and then implicitly expands this recursively
247 into its contents, it unfortunately does not allow one to later
248 explcitly override particular entries (usually if an individual
249 \&\f(CW\*(C`%attr(...)\*(C'\fR tag is required). \fIrpmtool\fR\|(8) now supports overriding
250 entries, i.e., if a path occurs multiple times, only the last occurance
251 is kept.
252 .IP "\fBNegation Tag\fR" 4
253 .IX Item "Negation Tag"
254 This provides an additional tag \f(CW%not\fR which can be used to explicitly
255 exclude a previously implicitly added entry.
256 .RE
257 .RS 4
258 .Sp
259 Example:
260 .Sp
261 .Vb 8
262 \& %install
263 \& :
264 \& rpmtool files \-o files \-r$RPM_BUILD_ROOT \e
265 \& \*(Aq%defattr(\-,foo,foo)\*(Aq \e
266 \& \*(Aq%{prefix}\*(Aq \e
267 \& \*(Aq%attr(1755,root,foo) %{prefix}/bin/bar\*(Aq \e
268 \& \*(Aq%not %dir {%{prefix},%{prefix}/*,%{prefix}/man/*}\*(Aq \e
269 \& \*(Aq%not %{prefix}/info/dir\*(Aq
270 \&
271 \& %files \-f files
272 .Ve
273 .RE
274 .IP "\fBmsg\fR [\fB\-b\fR]" 4
275 .IX Item "msg [-b]"
276 This displays the contents of \fIstdin\fR as a boxed message. If option
277 \&\fB\-b\fR is given it additionally beeps once before displaying the box.
278 .SH "HISTORY"
279 .IX Header "HISTORY"
280 This tool was created in November 2000 for use in OpenPKG, the
281 cross-platform RPM-based Unix software packaging facility.
282 .SH "AUTHOR"
283 .IX Header "AUTHOR"
284 .Vb 3
285 \& Ralf S. Engelschall
286 \& rse@engelschall.com
287 \& www.engelschall.com
288 .Ve