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.
397 lines
11 KiB
397 lines
11 KiB
## |
|
## openpkg.pod -- OpenPKG maintainance utility (frontend manual page) |
|
## |
|
## Copyright (c) 2000-2003 Cable & Wireless Deutschland GmbH |
|
## Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/> |
|
## Copyright (c) 2000-2003 Ralf S. Engelschall <rse@engelschall.com> |
|
## |
|
## Permission to use, copy, modify, and distribute this software for |
|
## any purpose with or without fee is hereby granted, provided that |
|
## the above copyright notice and this permission notice appear in all |
|
## copies. |
|
## |
|
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
|
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
|
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR |
|
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
|
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
|
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
|
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
|
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
|
## SUCH DAMAGE. |
|
## |
|
|
|
=pod |
|
|
|
=head1 NAME |
|
|
|
B<openpkg> - B<OpenPKG> maintainance utility |
|
|
|
=head1 VERSION |
|
|
|
openpkg-tool XX-VERSION-XX |
|
|
|
=head1 SYNOPSIS |
|
|
|
B<openpkg> |
|
B<index> |
|
[B<-r> I<resource>] |
|
[B<-p> I<platform>] |
|
[B<-C> I<cache.db>] |
|
[B<-o> I<index.rdf>] |
|
[B<-c>] |
|
[B<-i>] |
|
I<dir> ... |
|
|
|
B<openpkg> |
|
B<build> |
|
[B<-R> I<rpm>] |
|
[B<-r> I<repository>] |
|
[B<-f> I<index.rdf>] |
|
[B<-u>] |
|
[B<-U>] |
|
[B<-z>] |
|
[B<-Z>] |
|
[B<-i>] |
|
[B<-q>] |
|
[B<-s>] |
|
[B<-S>] |
|
[B<-M>] |
|
[B<-L>] |
|
[B<-W>] |
|
[B<-X>] |
|
[B<-K>] |
|
[B<-e>] |
|
[B<-b>] |
|
[B<-B>] |
|
[B<-G>] |
|
[B<-P> I<priv-cmd>] |
|
[B<-N> I<non-priv-cmd>] |
|
[B<-p> I<platform>] |
|
[B<-D>I<var>=I<val> ...] |
|
[B<-E> I<name> ...] |
|
[B<-H> I<name> ...] |
|
([B<-a>] [B<-A>] | I<patternlist>) |
|
|
|
=head1 DESCRIPTION |
|
|
|
B<openpkg> is a frontend utility for maintaining an B<OpenPKG> instance. |
|
It currently provides indexing of RPM files (B<openpkg index>) and |
|
automated recursive from-scratch installation and updating of existing |
|
RPM packages (B<openpkg build>). |
|
|
|
=head1 COMMANDS |
|
|
|
=head2 OPENPKG INDEX |
|
|
|
B<openpkg index> creates an XML/RDF based resource index for RPM |
|
F<.spec> files in a source tree or from an RPM package repository. The |
|
index holds enough information to support an automated build process by |
|
B<openpkg build>. |
|
|
|
The following command line options exist: |
|
|
|
=over 4 |
|
|
|
=item B<-r> I<resource> |
|
|
|
The name of the resource stored in the index. The default is |
|
"C<OpenPKG-CURRENT/Source/>". |
|
|
|
=item B<-p> I<platform> |
|
|
|
B<openpkg index> adds a platform attribute for binary RPMs. This |
|
must be unique to correctly identify a specific architecture, OS |
|
and build environment. |
|
|
|
=item B<-C> I<cache.db> |
|
|
|
Cache all F<.spec> 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 B<-C> option requires an installed |
|
DB_File perl module. |
|
|
|
=item B<-o> I<index.rdf> |
|
|
|
Name of the output XML/RDF file, default is to write to F<stdout>. |
|
|
|
=item B<-c> |
|
|
|
Compress output with C<bzip2>. Use the B<-o> option to specify a F<.bz2> |
|
suffix. |
|
|
|
=item B<-i> |
|
|
|
The specified directories are RPM repositories. Build index over |
|
all F<.rpm> files in these directories and all subdirectories. |
|
If a subdirectory already contains a C<00INDEX.rdf> or C<00INDEX.rdf.*> |
|
file then skip scanning the subdirectory, instead add a reference |
|
to the index file into the new index. |
|
|
|
Without this option the directories are source trees with a subdirectory |
|
per package and a I<package>C<.spec> file inside each subdirectory. |
|
|
|
=back |
|
|
|
=head2 OPENPKG BUILD |
|
|
|
B<openpkg build> 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 ("reverse dependencies"). The dependency |
|
information is read from an index generated by B<openpkg index>. |
|
|
|
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. |
|
|
|
The following command line options exist: |
|
|
|
=over 4 |
|
|
|
=item B<-R> I<rpm> |
|
|
|
Specify a path to the installed B<OpenPKG> C<rpm> executable. Several |
|
other internal paths are deduced from the I<rpm> path, so this should be |
|
something like I<%{l_prefix}>C</bin/rpm>. |
|
|
|
=item B<-r> I<repository> |
|
|
|
Specify a path to an RPM repository, this can be a URL or a directory |
|
path. The name of the package file is appended to this path. |
|
The default is to use a URL pointing to the B<OpenPKG> FTP server. |
|
|
|
=item B<-f> I<index.rdf> |
|
|
|
Specify a path to the primary XML/RDF index, this can be a URL or a |
|
file path. If the index contains references to aother indexes these are |
|
included automatically. The default is to use a URL pointing to the |
|
B<OpenPKG> FTP server for the B<OpenPKG> release you are using. |
|
|
|
=item B<-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. |
|
|
|
=item B<-U> |
|
|
|
The generated script will try to upgrade all selected packages |
|
including their dependencies to the most recent version. |
|
|
|
=item B<-z> |
|
|
|
The generated script will rebuild all selected packages |
|
including their dependencies even when the most recent version |
|
is already installed. |
|
|
|
=item B<-Z> |
|
|
|
B<openpkg build> ignores all installed packages, the |
|
script will rebuild all selected packages from scratch. |
|
Note that this doesn't work together with the B<-a> option. |
|
|
|
=item B<-i> |
|
|
|
The generated script will ignore errors. However, if a build |
|
phase fails the install phase is still skipped. |
|
|
|
=item B<-q> |
|
|
|
Ignore all reverse dependencies. |
|
I<ATTENTION: this might break already installed packages!> |
|
|
|
=item B<-s> |
|
|
|
Print a status map instead of the install script. The map consists |
|
of 3 columns: "old", "tag" and "new". "old" shows the installed |
|
version of a package or just the package name if no package of |
|
that name is installed and "new" shows the repository version |
|
of a package if it is considered for installation. "tag" has the |
|
following possible values: |
|
|
|
=over 4 |
|
|
|
=item OK |
|
|
|
The installed package is suitable and will not be touched. |
|
|
|
=item ADD |
|
|
|
There is no installed package yet. |
|
|
|
=item UPGRADE |
|
|
|
The installed package is outdated and requires an update. |
|
|
|
=item DEPEND |
|
|
|
The installed package needs rebuilding because one of its |
|
dependencies is rebuilt. |
|
|
|
=item MISMATCH |
|
|
|
The installed package needs rebuilding because it was build |
|
with different parameters. |
|
|
|
=item CONFLICT |
|
|
|
The required new package cannot be installed because it |
|
conflicts with some already installed package. |
|
|
|
=item UNDEF |
|
|
|
The package has an invalid or ambigous dependency. |
|
|
|
=back |
|
|
|
=item B<-S> |
|
|
|
Similar to B<-s> but also lists the newest versions in the |
|
repository. The following tag might appear in the map. |
|
|
|
=over 4 |
|
|
|
=item NEW |
|
|
|
The package exists in the repository but isn't required yet. |
|
|
|
=back |
|
|
|
=item B<-M> |
|
|
|
Similar to B<-s> but print a short dependency map. |
|
|
|
=item B<-L> |
|
|
|
Print a list of packages in the repository that depend on the target. |
|
|
|
=item B<-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 B<-L> option. |
|
I<ATTENTION: Even mutually exclusive options are evaluated to be 'on', |
|
building packages with B<-W> therefore might fail or cause unusuable |
|
results!> |
|
|
|
=item B<-X> |
|
|
|
Ignore an installed XML parser module but use the internal |
|
simple text parser instead. |
|
|
|
=item B<-K> |
|
|
|
Keep packages that were installed temporarily during the build process. |
|
|
|
=item B<-e> |
|
|
|
Rebuild exact version from repository even when you have installed |
|
a newer version from another repository. |
|
|
|
=item B<-b> |
|
|
|
Wrap rebuild commands with build-time check for existing binary packages |
|
if the package is rebuilt as a dependency. This is best to use with |
|
B<-u> to defer all such checks until build-time. |
|
|
|
=item B<-B> |
|
|
|
Same as -b but also check all packages for existing binary packages |
|
at run-time. |
|
|
|
=item B<-g> |
|
The generated script will rebuild all packages selected even when the |
|
most recent version is already installed. Dependencies are not affected. |
|
|
|
=item B<-P> I<priv-cmd> |
|
|
|
Command prefix to use for install commands that require elevated |
|
privileges. The most common tool for this is sudo(8). If I<priv-cmd> |
|
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. |
|
|
|
=item B<-N> I<non-priv-cmd> |
|
|
|
Command prefix to use for install commands that do not require elevated |
|
privileges. The most common tool for this is sudo(8). If I<priv-cmd> |
|
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. |
|
|
|
=item B<-p> I<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. |
|
|
|
=item B<-D>I<var>=I<val> |
|
|
|
Specify configuration options for selected packages. This can be |
|
either B<-D>I<with_xxx>=I<yyy> or just B<-D>I<with_xxx>, the |
|
latter is equivalent to a B<-D>I<with_xxx>=I<yes>. 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 |
|
B<-D> options. |
|
|
|
If the option name is prefixed with a package name followed by two colons |
|
then it applies only to the specified package. E.g. B<-D>I<gcc::with_binutils>. |
|
|
|
=item B<-E> I<name> |
|
|
|
Ignore a package with the specified I<name>. This can be used to avoid |
|
upgrading to a broken package in the repository. There can be multiple |
|
B<-E> options. |
|
|
|
=item B<-H> I<name> |
|
|
|
Hint about packages that should be preferred when more than one fits |
|
a requirement. There can be multiple B<-E> options. |
|
|
|
=item B<-a> |
|
|
|
Select all installed packages. Do not specify a pattern list together |
|
with the B<-a> option. |
|
|
|
=item B<-A> |
|
|
|
Select all packages in the repository. Do not specify a pattern list together |
|
with the B<-A> option. |
|
|
|
=back |
|
|
|
=head1 CONFIGURATION |
|
|
|
B<openpkg build> reads the configuration file I<$HOME/.openpkg/build>. |
|
The file lists default options, one option per line and section tags |
|
of the form C<[>I<prefix>C<]>. Options following such a tag are only |
|
evaluated if the selected RPM path matches the prefix so that you can |
|
define default options for multiple B<OpenPKG> hierarchies. |
|
|
|
=head1 CAVEATS |
|
|
|
Parallel execution of B<openpkg build> causes undefined effects. |
|
|
|
=head1 SEE ALSO |
|
|
|
rpm(8), sudo(8) |
|
|
|
=head1 HISTORY |
|
|
|
The B<openpkg index> and B<openpkg build> command |
|
was invented in November 2002 by I<Michael van Elst> |
|
E<lt>mlelstv@dev.de.cw.netE<gt> under contract with I<Cable & Wireless |
|
Germany> E<lt>http://www.cw.com/de/E<gt> for use inside the B<OpenPKG> |
|
project E<lt>http://www.openpkg.org/E<gt>. |
|
|
|
=head1 AUTHORS |
|
|
|
Michael van Elst |
|
mlelstv@dev.de.cw.net |
|
|
|
=cut |
|
|
|
|