openpkg.1 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387
  1. .\" Automatically generated by Pod::Man version 1.15
  2. .\" Thu Dec 26 13:41:09 2002
  3. .\"
  4. .\" Standard preamble:
  5. .\" ======================================================================
  6. .de Sh \" Subsection heading
  7. .br
  8. .if t .Sp
  9. .ne 5
  10. .PP
  11. \fB\\$1\fR
  12. .PP
  13. ..
  14. .de Sp \" Vertical space (when we can't use .PP)
  15. .if t .sp .5v
  16. .if n .sp
  17. ..
  18. .de Ip \" List item
  19. .br
  20. .ie \\n(.$>=3 .ne \\$3
  21. .el .ne 3
  22. .IP "\\$1" \\$2
  23. ..
  24. .de Vb \" Begin verbatim text
  25. .ft CW
  26. .nf
  27. .ne \\$1
  28. ..
  29. .de Ve \" End verbatim text
  30. .ft R
  31. .fi
  32. ..
  33. .\" Set up some character translations and predefined strings. \*(-- will
  34. .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
  35. .\" double quote, and \*(R" will give a right double quote. | will give a
  36. .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used
  37. .\" to do unbreakable dashes and therefore won't be available. \*(C` and
  38. .\" \*(C' expand to `' in nroff, nothing in troff, for use with C<>
  39. .tr \(*W-|\(bv\*(Tr
  40. .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
  41. .ie n \{\
  42. . ds -- \(*W-
  43. . ds PI pi
  44. . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
  45. . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
  46. . ds L" ""
  47. . ds R" ""
  48. . ds C`
  49. . ds C'
  50. 'br\}
  51. .el\{\
  52. . ds -- \|\(em\|
  53. . ds PI \(*p
  54. . ds L" ``
  55. . ds R" ''
  56. 'br\}
  57. .\"
  58. .\" If the F register is turned on, we'll generate index entries on stderr
  59. .\" for titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and
  60. .\" index entries marked with X<> in POD. Of course, you'll have to process
  61. .\" the output yourself in some meaningful fashion.
  62. .if \nF \{\
  63. . de IX
  64. . tm Index:\\$1\t\\n%\t"\\$2"
  65. ..
  66. . nr % 0
  67. . rr F
  68. .\}
  69. .\"
  70. .\" For nroff, turn off justification. Always turn off hyphenation; it
  71. .\" makes way too many mistakes in technical documents.
  72. .hy 0
  73. .if n .na
  74. .\"
  75. .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  76. .\" Fear. Run. Save yourself. No user-serviceable parts.
  77. .bd B 3
  78. . \" fudge factors for nroff and troff
  79. .if n \{\
  80. . ds #H 0
  81. . ds #V .8m
  82. . ds #F .3m
  83. . ds #[ \f1
  84. . ds #] \fP
  85. .\}
  86. .if t \{\
  87. . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
  88. . ds #V .6m
  89. . ds #F 0
  90. . ds #[ \&
  91. . ds #] \&
  92. .\}
  93. . \" simple accents for nroff and troff
  94. .if n \{\
  95. . ds ' \&
  96. . ds ` \&
  97. . ds ^ \&
  98. . ds , \&
  99. . ds ~ ~
  100. . ds /
  101. .\}
  102. .if t \{\
  103. . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
  104. . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
  105. . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
  106. . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
  107. . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
  108. . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
  109. .\}
  110. . \" troff and (daisy-wheel) nroff accents
  111. .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
  112. .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
  113. .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
  114. .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
  115. .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
  116. .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
  117. .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
  118. .ds ae a\h'-(\w'a'u*4/10)'e
  119. .ds Ae A\h'-(\w'A'u*4/10)'E
  120. . \" corrections for vroff
  121. .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
  122. .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
  123. . \" for low resolution devices (crt and lpr)
  124. .if \n(.H>23 .if \n(.V>19 \
  125. \{\
  126. . ds : e
  127. . ds 8 ss
  128. . ds o a
  129. . ds d- d\h'-1'\(ga
  130. . ds D- D\h'-1'\(hy
  131. . ds th \o'bp'
  132. . ds Th \o'LP'
  133. . ds ae ae
  134. . ds Ae AE
  135. .\}
  136. .rm #[ #] #H #V #F C
  137. .\" ======================================================================
  138. .\"
  139. .IX Title "OPENPKG 1"
  140. .TH OPENPKG 1 "openpkg-tool" "2002-12-26" "OpenPKG Maintainance"
  141. .UC
  142. .SH "NAME"
  143. \&\fBopenpkg\fR \- \fBOpenPKG\fR maintainance utility
  144. .SH "VERSION"
  145. .IX Header "VERSION"
  146. openpkg-tool \s-1XX-VERSION-XX\s0
  147. .SH "SYNOPSIS"
  148. .IX Header "SYNOPSIS"
  149. \&\fBopenpkg\fR
  150. \&\fBindex\fR
  151. [\fB\-r\fR \fIresource\fR]
  152. [\fB\-p\fR \fIplatform\fR]
  153. [\fB\-C\fR \fIcache.db\fR]
  154. [\fB\-o\fR \fIindex.rdf\fR]
  155. [\fB\-c\fR]
  156. [\fB\-i\fR]
  157. \&\fIdir\fR ...
  158. .PP
  159. \&\fBopenpkg\fR
  160. \&\fBbuild\fR
  161. [\fB\-R\fR \fIrpm\fR]
  162. [\fB\-r\fR \fIrepository\fR]
  163. [\fB\-f\fR \fIindex.rdf\fR]
  164. [\fB\-u\fR]
  165. [\fB\-U\fR]
  166. [\fB\-z\fR]
  167. [\fB\-Z\fR]
  168. [\fB\-i\fR]
  169. [\fB\-q\fR]
  170. [\fB\-s\fR]
  171. [\fB\-S\fR]
  172. [\fB\-P\fR \fIpriv-cmd\fR]
  173. [\fB\-N\fR \fInon-priv-cmd\fR]
  174. [\fB\-p\fR \fIplatform\fR]
  175. [\fB\-D\fR\fIvar\fR=\fIval\fR ...]
  176. [\fB\-E\fR \fIname\fR ...]
  177. ([\fB\-a\fR] [\fB\-A\fR] | \fIpatternlist\fR)
  178. .SH "DESCRIPTION"
  179. .IX Header "DESCRIPTION"
  180. \&\fBopenpkg\fR is a frontend utility for maintaining an \fBOpenPKG\fR instance.
  181. It currenty provides indexing of \s-1RPM\s0 files (\fBopenpkg index\fR) and
  182. automated recursive from-scratch installation and updating of existing
  183. \&\s-1RPM\s0 packages (\fBopenpkg build\fR).
  184. .SH "COMMANDS"
  185. .IX Header "COMMANDS"
  186. .Sh "\s-1OPENPKG\s0 \s-1INDEX\s0"
  187. .IX Subsection "OPENPKG INDEX"
  188. \&\fBopenpkg index\fR creates an \s-1XML/RDF\s0 based resource index for \s-1RPM\s0
  189. \&\fI.spec\fR files in a source tree or from an \s-1RPM\s0 package repository. The
  190. index holds enough information to support an automated build process by
  191. \&\fBopenpkg build\fR.
  192. .PP
  193. The following command line options exist:
  194. .Ip "\fB\-r\fR \fIresource\fR" 4
  195. .IX Item "-r resource"
  196. The name of the resource stored in the index. The default is
  197. "\f(CW\*(C`OpenPKG\-CURRENT/Source/\*(C'\fR".
  198. .Ip "\fB\-p\fR \fIplatform\fR" 4
  199. .IX Item "-p platform"
  200. \&\fBopenpkg index\fR adds a platform attribute for binary RPMs. The
  201. attribute is built as \fI%{arch}\fR\f(CW\*(C`\-\*(C'\fR\fIplatform\fR\f(CW\*(C`\-\*(C'\fR\fI%{os}\fR where
  202. \&\fI%{arch}\fR and \fI%{os}\fR are taken from the \s-1RPM\s0 header and \fIplatform\fR is
  203. the value of the \fB\-p\fR option. The default value is "\f(CW\*(C`unknown\*(C'\fR". This
  204. must be used to distinguish between platforms that support the same
  205. Architecture and \s-1OS\s0 name like various Linux distributions.
  206. .Ip "\fB\-C\fR \fIcache.db\fR" 4
  207. .IX Item "-C cache.db"
  208. Cache all \fI.spec\fR files into this Berkeley-DB file when indexing source
  209. RPMs. The cache is refreshed automatically when the source RPMs are more
  210. recent than the cache entry.
  211. .Ip "\fB\-o\fR \fIindex.rdf\fR" 4
  212. .IX Item "-o index.rdf"
  213. Name of the output \s-1XML/RDF\s0 file, default is to write to \fIstdout\fR.
  214. .Ip "\fB\-c\fR" 4
  215. .IX Item "-c"
  216. Compress output with \f(CW\*(C`bzip2\*(C'\fR. Use the \fB\-o\fR option to specify a \fI.bz2\fR
  217. suffix.
  218. .Ip "\fB\-i\fR" 4
  219. .IX Item "-i"
  220. The specified directories are \s-1RPM\s0 repositories. Build index over
  221. all \fI.rpm\fR files in these directories and all subdirectories.
  222. If a subdirectory already contains a \f(CW\*(C`00INDEX.rdf\*(C'\fR or \f(CW\*(C`00INDEX.rdf.*\*(C'\fR
  223. file then skip scanning the subdirectory, instead add a reference
  224. to the index file into the new index.
  225. .Sp
  226. Without this option the directories are source trees with a subdirectory
  227. per package and a \fIpackage\fR\f(CW\*(C`.spec\*(C'\fR file inside each subdirectory.
  228. .Sh "\s-1OPENPKG\s0 \s-1BUILD\s0"
  229. .IX Subsection "OPENPKG BUILD"
  230. \&\fBopenpkg build\fR writes a shell script to standard output that installs
  231. or upgrades software packages including all dependencies. Packages that
  232. are upgraded automatically trigger rebuilds of all packages that depend
  233. on the upgraded package (\*(L"reverse dependencies\*(R"). The dependency
  234. information is read from an index generated by \fBopenpkg index\fR.
  235. .PP
  236. The following command line options exist:
  237. .Ip "\fB\-R\fR \fIrpm\fR" 4
  238. .IX Item "-R rpm"
  239. Specify a path to the installed \fBOpenPKG\fR \f(CW\*(C`rpm\*(C'\fR executable. Several
  240. other internal paths are deduced from the \fIrpm\fR path, so this should be
  241. something like \fI%{l_prefix}\fR\f(CW\*(C`/bin/rpm\*(C'\fR.
  242. .Ip "\fB\-r\fR \fIrepository\fR" 4
  243. .IX Item "-r repository"
  244. Specify a path to an \s-1RPM\s0 repository, this can be a \s-1URL\s0 or a directory
  245. path. The name of the package file is appended to this path.
  246. The default is to use a \s-1URL\s0 pointing to the \fBOpenPKG\fR \s-1FTP\s0 server.
  247. .Ip "\fB\-f\fR \fIindex.rdf\fR" 4
  248. .IX Item "-f index.rdf"
  249. Specify a path to the primary \s-1XML/RDF\s0 index, this can be a \s-1URL\s0 or a
  250. file path. If the index contains references to aother indexes these are
  251. included automatically. The default is to use a \s-1URL\s0 pointing to the
  252. \&\fBOpenPKG\fR \s-1FTP\s0 server for the \fBOpenPKG\fR release you are using.
  253. .Ip "\fB\-u\fR" 4
  254. .IX Item "-u"
  255. The generated script will ignore binary RPMs that are stored on
  256. your system. Instead it will either fetch binary RPMs or rebuild
  257. from source RPMs fetched from the repository.
  258. .Ip "\fB\-U\fR" 4
  259. .IX Item "-U"
  260. The generated script will try to upgrade all selected packages
  261. including their dependencies to the most recent version.
  262. .Ip "\fB\-z\fR" 4
  263. .IX Item "-z"
  264. The generated script will rebuild all selected packages
  265. including their dependencies even when the most recent version
  266. is already installed.
  267. .Ip "\fB\-Z\fR" 4
  268. .IX Item "-Z"
  269. \&\fBopenpkg build\fR ignores all installed packages, the
  270. script will rebuild all selected packages from scratch.
  271. Note that this doesn't work together with the \fB\-a\fR option.
  272. .Ip "\fB\-i\fR" 4
  273. .IX Item "-i"
  274. The generated script will ignore errors. However, if a build
  275. phase fails the install phase is still skipped.
  276. .Ip "\fB\-q\fR" 4
  277. .IX Item "-q"
  278. Ignore all reverse dependencies.
  279. \&\fI\s-1ATTENTION:\s0 this might break already installed packages!\fR
  280. .Ip "\fB\-s\fR" 4
  281. .IX Item "-s"
  282. Print a status map instead of the install script. The map consists
  283. of 3 columns: \*(L"old\*(R", \*(L"tag\*(R" and \*(L"new\*(R". \*(L"old\*(R" shows the installed
  284. version of a package or just the package name if no package of
  285. that name is installed and \*(L"new\*(R" shows the repository version
  286. of a package if it is considered for installation. \*(L"tag\*(R" has the
  287. following possible values:
  288. .RS 4
  289. .Ip "\s-1OK\s0" 4
  290. .IX Item "OK"
  291. The installed package is suitable and will not be touched.
  292. .Ip "\s-1ADD\s0" 4
  293. .IX Item "ADD"
  294. There is no installed package yet.
  295. .Ip "\s-1UPGRADE\s0" 4
  296. .IX Item "UPGRADE"
  297. The installed package is outdated and requires an update.
  298. .Ip "\s-1DEPEND\s0" 4
  299. .IX Item "DEPEND"
  300. The installed package needs rebuilding because one of its
  301. dependencies is rebuilt.
  302. .Ip "\s-1MISMATCH\s0" 4
  303. .IX Item "MISMATCH"
  304. The installed package needs rebuilding because it was build
  305. with different parameters.
  306. .Ip "\s-1CONFLICT\s0" 4
  307. .IX Item "CONFLICT"
  308. The required new package cannot be installed because it
  309. conflicts with some already installed package.
  310. .Ip "\s-1UNDEF\s0" 4
  311. .IX Item "UNDEF"
  312. The package has an invalid or ambigous dependency.
  313. .RE
  314. .RS 4
  315. .RE
  316. .Ip "\fB\-S\fR" 4
  317. .IX Item "-S"
  318. Similar to \fB\-s\fR but also lists the newest versions in the
  319. repository. The following tag might appear in the map.
  320. .RS 4
  321. .Ip "\s-1NEW\s0" 4
  322. .IX Item "NEW"
  323. The package exists in the repository but isn't required yet.
  324. .RE
  325. .RS 4
  326. .RE
  327. .Ip "\fB\-P\fR \fIpriv-cmd\fR" 4
  328. .IX Item "-P priv-cmd"
  329. Command prefix to use for install commands that require elevated
  330. privileges. The most common tool for this is \fIsudo\fR\|(8).
  331. .Ip "\fB\-N\fR \fInon-priv-cmd\fR" 4
  332. .IX Item "-N non-priv-cmd"
  333. Command prefix to use for install commands that do not require elevated
  334. privileges. The most common tool for this is \fIsudo\fR\|(8).
  335. .Ip "\fB\-p\fR \fIplatform\fR" 4
  336. .IX Item "-p platform"
  337. The platform string that is matched against the index for binary
  338. packages. Default is to use the \fI%{_target_platform}\fR variable.
  339. .Ip "\fB\-D\fR\fIvar\fR=\fIval\fR" 4
  340. .IX Item "-Dvar=val"
  341. Specify configuration options for all selected packages. This can be
  342. either \fB\-D\fR\f(CW\*(C`with_\*(C'\fR\fIxxx\fR\f(CW\*(C`=\*(C'\fR\fIyyy\fR or just \fB\-D\fR\f(CW\*(C`with_\*(C'\fR\fIxxx\fR, the
  343. latter is equivalent to a \fB\-D\fR\f(CW\*(C`with_\*(C'\fR\fIxxx\fR\f(CW\*(C`=\*(C'\fR\f(CW\*(C`yes\*(C'\fR. The parameters
  344. are matched against selected packages that are already installed. If
  345. they do indicate a change the package is rebuild. There can be multiple
  346. \&\fB\-D\fR options.
  347. .Ip "\fB\-E\fR \fIname\fR" 4
  348. .IX Item "-E name"
  349. Ignore a package with the specified \fIname\fR. This can be used to avoid
  350. upgrading to a broken package in the repository. There can be multiple
  351. \&\fB\-E\fR options.
  352. .Ip "\fB\-a\fR" 4
  353. .IX Item "-a"
  354. Select all installed packages. Do not specify a pattern list together
  355. with the \fB\-a\fR option.
  356. .Ip "\fB\-A\fR" 4
  357. .IX Item "-A"
  358. Select all packages in the repository. Do not specify a pattern list together
  359. with the \fB\-a\fR option.
  360. .SH "CONFIGURATION"
  361. .IX Header "CONFIGURATION"
  362. \&\fBopenpkg build\fR reads the configuration file \fI$HOME/.openpkg/build\fR.
  363. The file lists default options, one option per line and section tags
  364. of the form \f(CW\*(C`[\*(C'\fR\fIprefix\fR\f(CW\*(C`]\*(C'\fR. Options following such a tag are only
  365. evaluated if the selected \s-1RPM\s0 path matches the prefix so that you can
  366. define default options for multiple \fBOpenPKG\fR hierarchies.
  367. .SH "CAVEATS"
  368. .IX Header "CAVEATS"
  369. Parallel execution of \fBopenpkg build\fR causes undefined effects.
  370. .SH "SEE ALSO"
  371. .IX Header "SEE ALSO"
  372. \&\fIrpm\fR\|(8), \fIsudo\fR\|(8)
  373. .SH "HISTORY"
  374. .IX Header "HISTORY"
  375. The \fBopenpkg index\fR and \fBopenpkg build\fR command
  376. was invented in November 2002 by \fIMichael van Elst\fR
  377. <mlelstv@dev.de.cw.net> under contract with \fICable & Wireless
  378. Germany\fR <http://www.cw.com/de/> for use inside the \fBOpenPKG\fR
  379. project <http://www.openpkg.org/>.
  380. .SH "AUTHORS"
  381. .IX Header "AUTHORS"
  382. .Vb 2
  383. \& Michael van Elst
  384. \& mlelstv@dev.de.cw.net
  385. .Ve