You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

417 lines
14 KiB

.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. | will give a
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
.\" expand to `' in nroff, nothing in troff, for use with C<>.
.tr \(*W-|\(bv\*(Tr
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C`
. ds C'
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.\"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.hy 0
.if n .na
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "OPENPKG 1"
.TH OPENPKG 1 "2003-02-28" "openpkg-tool" "OpenPKG Maintainance"
.SH "NAME"
\&\fBopenpkg\fR \- \fBOpenPKG\fR maintainance utility
.SH "VERSION"
.IX Header "VERSION"
openpkg-tool XX-VERSION-XX
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
\&\fBopenpkg\fR
\&\fBindex\fR
[\fB\-r\fR \fIresource\fR]
[\fB\-p\fR \fIplatform\fR]
[\fB\-C\fR \fIcache.db\fR]
[\fB\-o\fR \fIindex.rdf\fR]
[\fB\-c\fR]
[\fB\-i\fR]
\&\fIdir\fR ...
.PP
\&\fBopenpkg\fR
\&\fBbuild\fR
[\fB\-R\fR \fIrpm\fR]
[\fB\-r\fR \fIrepository\fR]
[\fB\-f\fR \fIindex.rdf\fR]
[\fB\-u\fR]
[\fB\-U\fR]
[\fB\-z\fR]
[\fB\-Z\fR]
[\fB\-i\fR]
[\fB\-q\fR]
[\fB\-s\fR]
[\fB\-S\fR]
[\fB\-M\fR]
[\fB\-L\fR]
[\fB\-W\fR]
[\fB\-X\fR]
[\fB\-K\fR]
[\fB\-e\fR]
[\fB\-P\fR \fIpriv-cmd\fR]
[\fB\-N\fR \fInon-priv-cmd\fR]
[\fB\-p\fR \fIplatform\fR]
[\fB\-D\fR\fIvar\fR=\fIval\fR ...]
[\fB\-E\fR \fIname\fR ...]
([\fB\-a\fR] [\fB\-A\fR] | \fIpatternlist\fR)
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBopenpkg\fR is a frontend utility for maintaining an \fBOpenPKG\fR instance.
It currenty provides indexing of \s-1RPM\s0 files (\fBopenpkg index\fR) and
automated recursive from-scratch installation and updating of existing
\&\s-1RPM\s0 packages (\fBopenpkg build\fR).
.SH "COMMANDS"
.IX Header "COMMANDS"
.Sh "\s-1OPENPKG\s0 \s-1INDEX\s0"
.IX Subsection "OPENPKG INDEX"
\&\fBopenpkg index\fR creates an \s-1XML/RDF\s0 based resource index for \s-1RPM\s0
\&\fI.spec\fR files in a source tree or from an \s-1RPM\s0 package repository. The
index holds enough information to support an automated build process by
\&\fBopenpkg build\fR.
.PP
The following command line options exist:
.IP "\fB\-r\fR \fIresource\fR" 4
.IX Item "-r resource"
The name of the resource stored in the index. The default is
"\f(CW\*(C`OpenPKG\-CURRENT/Source/\*(C'\fR".
.IP "\fB\-p\fR \fIplatform\fR" 4
.IX Item "-p platform"
\&\fBopenpkg index\fR adds a platform attribute for binary RPMs. This
must be unique to correctly identify a specific architecture, \s-1OS\s0
and build environment.
.IP "\fB\-C\fR \fIcache.db\fR" 4
.IX Item "-C cache.db"
Cache all \fI.spec\fR files into this Berkeley-DB file when indexing source
RPMs. The cache is refreshed automatically when the source RPMs are more
recent than the cache entry. The \fB\-C\fR option requires an installed
DB_File perl module.
.IP "\fB\-o\fR \fIindex.rdf\fR" 4
.IX Item "-o index.rdf"
Name of the output \s-1XML/RDF\s0 file, default is to write to \fIstdout\fR.
.IP "\fB\-c\fR" 4
.IX Item "-c"
Compress output with \f(CW\*(C`bzip2\*(C'\fR. Use the \fB\-o\fR option to specify a \fI.bz2\fR
suffix.
.IP "\fB\-i\fR" 4
.IX Item "-i"
The specified directories are \s-1RPM\s0 repositories. Build index over
all \fI.rpm\fR files in these directories and all subdirectories.
If a subdirectory already contains a \f(CW\*(C`00INDEX.rdf\*(C'\fR or \f(CW\*(C`00INDEX.rdf.*\*(C'\fR
file then skip scanning the subdirectory, instead add a reference
to the index file into the new index.
.Sp
Without this option the directories are source trees with a subdirectory
per package and a \fIpackage\fR\f(CW\*(C`.spec\*(C'\fR file inside each subdirectory.
.Sh "\s-1OPENPKG\s0 \s-1BUILD\s0"
.IX Subsection "OPENPKG BUILD"
\&\fBopenpkg build\fR writes a shell script to standard output that installs
or upgrades software packages including all dependencies. Packages that
are upgraded automatically trigger rebuilds of all packages that depend
on the upgraded package (\*(L"reverse dependencies\*(R"). The dependency
information is read from an index generated by \fBopenpkg index\fR.
.PP
Packages are selected by providing a list of name patterns. Each
pattern is either a package name or a prefix followed by a '*'
character. Additionally you can append a discrimation prefix separated
by a comma that matches against the full name-version-revision
string.
.PP
The following command line options exist:
.IP "\fB\-R\fR \fIrpm\fR" 4
.IX Item "-R rpm"
Specify a path to the installed \fBOpenPKG\fR \f(CW\*(C`rpm\*(C'\fR executable. Several
other internal paths are deduced from the \fIrpm\fR path, so this should be
something like \fI%{l_prefix}\fR\f(CW\*(C`/bin/rpm\*(C'\fR.
.IP "\fB\-r\fR \fIrepository\fR" 4
.IX Item "-r repository"
Specify a path to an \s-1RPM\s0 repository, this can be a \s-1URL\s0 or a directory
path. The name of the package file is appended to this path.
The default is to use a \s-1URL\s0 pointing to the \fBOpenPKG\fR \s-1FTP\s0 server.
.IP "\fB\-f\fR \fIindex.rdf\fR" 4
.IX Item "-f index.rdf"
Specify a path to the primary \s-1XML/RDF\s0 index, this can be a \s-1URL\s0 or a
file path. If the index contains references to aother indexes these are
included automatically. The default is to use a \s-1URL\s0 pointing to the
\&\fBOpenPKG\fR \s-1FTP\s0 server for the \fBOpenPKG\fR release you are using.
.IP "\fB\-u\fR" 4
.IX Item "-u"
The generated script will ignore binary RPMs that are stored on
your system. Instead it will either fetch binary RPMs or rebuild
from source RPMs fetched from the repository.
.IP "\fB\-U\fR" 4
.IX Item "-U"
The generated script will try to upgrade all selected packages
including their dependencies to the most recent version.
.IP "\fB\-z\fR" 4
.IX Item "-z"
The generated script will rebuild all selected packages
including their dependencies even when the most recent version
is already installed.
.IP "\fB\-Z\fR" 4
.IX Item "-Z"
\&\fBopenpkg build\fR ignores all installed packages, the
script will rebuild all selected packages from scratch.
Note that this doesn't work together with the \fB\-a\fR option.
.IP "\fB\-i\fR" 4
.IX Item "-i"
The generated script will ignore errors. However, if a build
phase fails the install phase is still skipped.
.IP "\fB\-q\fR" 4
.IX Item "-q"
Ignore all reverse dependencies.
\&\fI\s-1ATTENTION:\s0 this might break already installed packages!\fR
.IP "\fB\-s\fR" 4
.IX Item "-s"
Print a status map instead of the install script. The map consists
of 3 columns: \*(L"old\*(R", \*(L"tag\*(R" and \*(L"new\*(R". \*(L"old\*(R" shows the installed
version of a package or just the package name if no package of
that name is installed and \*(L"new\*(R" shows the repository version
of a package if it is considered for installation. \*(L"tag\*(R" has the
following possible values:
.RS 4
.IP "\s-1OK\s0" 4
.IX Item "OK"
The installed package is suitable and will not be touched.
.IP "\s-1ADD\s0" 4
.IX Item "ADD"
There is no installed package yet.
.IP "\s-1UPGRADE\s0" 4
.IX Item "UPGRADE"
The installed package is outdated and requires an update.
.IP "\s-1DEPEND\s0" 4
.IX Item "DEPEND"
The installed package needs rebuilding because one of its
dependencies is rebuilt.
.IP "\s-1MISMATCH\s0" 4
.IX Item "MISMATCH"
The installed package needs rebuilding because it was build
with different parameters.
.IP "\s-1CONFLICT\s0" 4
.IX Item "CONFLICT"
The required new package cannot be installed because it
conflicts with some already installed package.
.IP "\s-1UNDEF\s0" 4
.IX Item "UNDEF"
The package has an invalid or ambigous dependency.
.RE
.RS 4
.RE
.IP "\fB\-S\fR" 4
.IX Item "-S"
Similar to \fB\-s\fR but also lists the newest versions in the
repository. The following tag might appear in the map.
.RS 4
.IP "\s-1NEW\s0" 4
.IX Item "NEW"
The package exists in the repository but isn't required yet.
.RE
.RS 4
.RE
.IP "\fB\-M\fR" 4
.IX Item "-M"
Similar to \fB\-s\fR but print a short dependency map.
.IP "\fB\-L\fR" 4
.IX Item "-L"
Print a list of packages in the repository that depend on the target.
.IP "\fB\-W\fR" 4
.IX Item "-W"
Include all conditional dependencies as if all possible configuration
options had been switched on. This has little use except for generating
an all-inclusive list with the \fB\-L\fR option.
\&\fI\s-1ATTENTION:\s0 Even mutually exclusive options are evaluated to be 'on',
building packages with \f(BI\-W\fI therefore might fail or cause unusuable
results!\fR
.IP "\fB\-X\fR" 4
.IX Item "-X"
Ignore an installed \s-1XML\s0 parser module but use the internal
simple text parser instead.
.IP "\fB\-K\fR" 4
.IX Item "-K"
Keep packages that were installed temporarily during the build process.
.IP "\fB\-e\fR" 4
.IX Item "-e"
Rebuild exact version from repository even when you have installed
a newer version from another repository.
.IP "\fB\-P\fR \fIpriv-cmd\fR" 4
.IX Item "-P priv-cmd"
Command prefix to use for install commands that require elevated
privileges. The most common tool for this is \fIsudo\fR\|(8). If \fIpriv-cmd\fR
starts with a dash it will be run without the dash and the command
line it should execute is passed as a single quoted string.
.IP "\fB\-N\fR \fInon-priv-cmd\fR" 4
.IX Item "-N non-priv-cmd"
Command prefix to use for install commands that do not require elevated
privileges. The most common tool for this is \fIsudo\fR\|(8). If \fIpriv-cmd\fR
starts with a dash it will be run without the dash and the command
line it should execute is passed as a single quoted string.
.IP "\fB\-p\fR \fIplatform\fR" 4
.IX Item "-p platform"
The platform string that is matched against the index for binary
packages. Default is an empty string so that no binary packages
are matched.
.IP "\fB\-D\fR\fIvar\fR=\fIval\fR" 4
.IX Item "-Dvar=val"
Specify configuration options for all selected packages. This can be
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
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
are matched against selected packages that are already installed. If
they do indicate a change the package is rebuild. There can be multiple
\&\fB\-D\fR options.
.IP "\fB\-E\fR \fIname\fR" 4
.IX Item "-E name"
Ignore a package with the specified \fIname\fR. This can be used to avoid
upgrading to a broken package in the repository. There can be multiple
\&\fB\-E\fR options.
.IP "\fB\-a\fR" 4
.IX Item "-a"
Select all installed packages. Do not specify a pattern list together
with the \fB\-a\fR option.
.IP "\fB\-A\fR" 4
.IX Item "-A"
Select all packages in the repository. Do not specify a pattern list together
with the \fB\-A\fR option.
.SH "CONFIGURATION"
.IX Header "CONFIGURATION"
\&\fBopenpkg build\fR reads the configuration file \fI$HOME/.openpkg/build\fR.
The file lists default options, one option per line and section tags
of the form \f(CW\*(C`[\*(C'\fR\fIprefix\fR\f(CW\*(C`]\*(C'\fR. Options following such a tag are only
evaluated if the selected \s-1RPM\s0 path matches the prefix so that you can
define default options for multiple \fBOpenPKG\fR hierarchies.
.SH "CAVEATS"
.IX Header "CAVEATS"
Parallel execution of \fBopenpkg build\fR causes undefined effects.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIrpm\fR\|(8), \fIsudo\fR\|(8)
.SH "HISTORY"
.IX Header "HISTORY"
The \fBopenpkg index\fR and \fBopenpkg build\fR command
was invented in November 2002 by \fIMichael van Elst\fR
<mlelstv@dev.de.cw.net> under contract with \fICable & Wireless
Germany\fR <http://www.cw.com/de/> for use inside the \fBOpenPKG\fR
project <http://www.openpkg.org/>.
.SH "AUTHORS"
.IX Header "AUTHORS"
.Vb 2
\& Michael van Elst
\& mlelstv@dev.de.cw.net
.Ve