OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /e/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src Date: 17-Feb-2004 14:22:55
Branch: HEAD Handle: 2004021713225400
Added files:
openpkg-src/openpkg-tool
openpkg-build.1 openpkg-build.pod openpkg-index.1
openpkg-index.pod
Modified files:
openpkg-src/openpkg-tool
Makefile openpkg-build.pl openpkg-index.pl
openpkg-tool.spec
Removed files:
openpkg-src/openpkg-tool
openpkg.1 openpkg.pod openpkg.sh
Log:
switch to new world order by using 'openpkg rpm' and its framework
Summary:
Revision Changes Path
1.3 +7 -2 openpkg-src/openpkg-tool/Makefile
1.1 +384 -0 openpkg-src/openpkg-tool/openpkg-build.1
1.100 +5 -3 openpkg-src/openpkg-tool/openpkg-build.pl
1.1 +330 -0 openpkg-src/openpkg-tool/openpkg-build.pod
1.1 +204 -0 openpkg-src/openpkg-tool/openpkg-index.1
1.22 +5 -3 openpkg-src/openpkg-tool/openpkg-index.pl
1.1 +118 -0 openpkg-src/openpkg-tool/openpkg-index.pod
1.82 +23 -23 openpkg-src/openpkg-tool/openpkg-tool.spec
1.12 +0 -440 openpkg-src/openpkg-tool/openpkg.1
1.21 +0 -397 openpkg-src/openpkg-tool/openpkg.pod
1.7 +0 -89 openpkg-src/openpkg-tool/openpkg.sh
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg-tool/Makefile
============================================================================
$ cvs diff -u -r1.2 -r1.3 Makefile
--- openpkg-src/openpkg-tool/Makefile 28 Jul 2003 17:17:11 -0000 1.2
+++ openpkg-src/openpkg-tool/Makefile 17 Feb 2004 13:22:54 -0000 1.3
@@ -1,4 +1,9 @@
-openpkg.1: openpkg.pod
- pod2man --section=1 --quotes=none --release="openpkg-tool" --center="OpenPKG
Maintenance" openpkg.pod >openpkg.1
+all: openpkg-index.1 openpkg-build.1
+
+openpkg-index.1: openpkg-index.pod
+ pod2man --section=1 --quotes=none --release="openpkg-index" --center="OpenPKG
Maintenance" openpkg-index.pod >openpkg-index.1
+
+openpkg-build.1: openpkg-build.pod
+ pod2man --section=1 --quotes=none --release="openpkg-build" --center="OpenPKG
Maintenance" openpkg-build.pod >openpkg-build.1
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg-tool/openpkg-build.1
============================================================================
$ cvs diff -u -r0 -r1.1 openpkg-build.1
--- /dev/null 2004-02-17 14:22:54.000000000 +0100
+++ openpkg-build.1 2004-02-17 14:22:54.000000000 +0100
@@ -0,0 +1,384 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\"
+.\" 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-BUILD 1"
+.TH OPENPKG-BUILD 1 "2004-02-17" "openpkg-build" "OpenPKG Maintenance"
+.SH "NAME"
+\&\fBopenpkg build\fR \- \fBOpenPKG\fR Maintenance Tool (Building)
+.SH "VERSION"
+.IX Header "VERSION"
+openpkg build XX-VERSION-XX
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+\&\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\-b\fR]
+[\fB\-B\fR]
+[\fB\-G\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\-H\fR \fIname\fR ...]
+([\fB\-a\fR] [\fB\-A\fR] | \fIpatternlist\fR)
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+The \fBopenpkg build\fR tool provides automated recursive from-scratch
+installation and updating of existing \s-1RPM\s0 packages (\fBopenpkg build\fR).
+It 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 discrimination prefix separated
+by a comma that matches against the full name-version-revision
+string.
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+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 command. 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/openpkg 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 other 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 ambiguous 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 unusable
+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\-b\fR" 4
+.IX Item "-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
+\&\fB\-u\fR to defer all such checks until build\-time.
+.IP "\fB\-B\fR" 4
+.IX Item "-B"
+Same as \-b but also check all packages for existing binary packages
+at run\-time.
+.IP "\fB\-g\fR" 4
+.IX Item "-g"
+The generated script will rebuild all packages selected even when the
+most recent version is already installed. Dependencies are not affected.
+.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 selected packages. This can be
+either \fB\-D\fR\fIwith_xxx\fR=\fIyyy\fR or just \fB\-D\fR\fIwith_xxx\fR, the
+latter is equivalent to a \fB\-D\fR\fIwith_xxx\fR=\fIyes\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.
+.Sp
+If the option name is prefixed with a package name followed by two colons
+then it applies only to the specified package. E.g.
\fB\-D\fR\fIgcc::with_binutils\fR.
+.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\-H\fR \fIname\fR" 4
+.IX Item "-H name"
+Hint about packages that should be preferred when more than one fits
+a requirement. 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 build\fR command was invented in November 2002 by \fIMichael
+van Elst\fR <[EMAIL PROTECTED]> under contract with \fICable
+& Wireless\fR <http://www.cw.com/> for use inside the \fBOpenPKG\fR
+project <http://www.openpkg.org/>.
+.SH "AUTHORS"
+.IX Header "AUTHORS"
+.Vb 2
+\& Michael van Elst
+\& [EMAIL PROTECTED]
+.Ve
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg-tool/openpkg-build.pl
============================================================================
$ cvs diff -u -r1.99 -r1.100 openpkg-build.pl
--- openpkg-src/openpkg-tool/openpkg-build.pl 26 Aug 2003 14:41:36 -0000 1.99
+++ openpkg-src/openpkg-tool/openpkg-build.pl 17 Feb 2004 13:22:54 -0000 1.100
@@ -155,7 +155,9 @@
my($RPM,$CURL,$PROG);
-$RPM = $opt_R || $env{''}->{'R'} || '@l_prefix@/bin/rpm';
+$RPM = $opt_R || $env{''}->{'R'} ||
+ ((-f "@l_prefix@/bin/openpkg" && -f "@l_prefix@/libexec/rpm") ?
+ "@l_prefix@/bin/openpkg rpm" : "@l_prefix@/bin/rpm");
$RPM = (`which $RPM` =~ m{^(/.*)})[0] if ($RPM !~ m|^/|);
die "FATAL: cannot locate rpm in path\n" unless $RPM =~ m{^/};
@@ -167,7 +169,7 @@
}
$CURL = $RPM;
-$CURL =~ s/\/bin\/rpm$/\/lib\/openpkg\/curl/
+$CURL =~ s/\/bin\/(openpkg )?rpm$/\/lib\/openpkg\/curl/
or die "FATAL: cannot deduce curl path from $RPM\n";
($PROG) = $0 =~ /(?:.*\/)?(.*)/;
@@ -1063,7 +1065,7 @@
$fetch = defined $fn ? $fn : $url;
$bzip2 = $RPM;
- $bzip2 =~ s/bin\/rpm$/lib\/openpkg\/bzip2/
+ $bzip2 =~ s/bin\/(openpkg )?rpm$/lib\/openpkg\/bzip2/
or die "FATAL: cannot deduce bzip2 path from $RPM\n";
$fetch !~ /\.bz2$/ || -x $bzip2
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg-tool/openpkg-build.pod
============================================================================
$ cvs diff -u -r0 -r1.1 openpkg-build.pod
--- /dev/null 2004-02-17 14:22:54.000000000 +0100
+++ openpkg-build.pod 2004-02-17 14:22:54.000000000 +0100
@@ -0,0 +1,330 @@
+##
+## openpkg.pod -- OpenPKG Maintenance Tool (manual page)
+## Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
+## Copyright (c) 2000-2003 Ralf S. Engelschall <[EMAIL PROTECTED]>
+## Copyright (c) 2000-2003 Cable & Wireless <http://www.cw.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 build> - B<OpenPKG> Maintenance Tool (Building)
+
+=head1 VERSION
+
+openpkg build XX-VERSION-XX
+
+=head1 SYNOPSIS
+
+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
+
+The B<openpkg build> tool provides automated recursive from-scratch
+installation and updating of existing RPM packages (B<openpkg build>).
+It 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 discrimination prefix separated
+by a comma that matches against the full name-version-revision
+string.
+
+=head1 OPTIONS
+
+The following command line options exist:
+
+=over 4
+
+=item B<-R> I<rpm>
+
+Specify a path to the installed B<OpenPKG> C<rpm> command. Several
+other internal paths are deduced from the I<rpm> path, so this should be
+something like "I<%{l_prefix}>C</bin/openpkg 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 other 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 ambiguous 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 unusable
+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 build> command was invented in November 2002 by I<Michael
+van Elst> E<lt>[EMAIL PROTECTED]<gt> under contract with I<Cable
+& Wireless> E<lt>http://www.cw.com/E<gt> for use inside the B<OpenPKG>
+project E<lt>http://www.openpkg.org/E<gt>.
+
+=head1 AUTHORS
+
+ Michael van Elst
+ [EMAIL PROTECTED]
+
+=cut
+
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg-tool/openpkg-index.1
============================================================================
$ cvs diff -u -r0 -r1.1 openpkg-index.1
--- /dev/null 2004-02-17 14:22:54.000000000 +0100
+++ openpkg-index.1 2004-02-17 14:22:54.000000000 +0100
@@ -0,0 +1,204 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\"
+.\" 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-INDEX 1"
+.TH OPENPKG-INDEX 1 "2004-02-17" "openpkg-index" "OpenPKG Maintenance"
+.SH "NAME"
+\&\fBopenpkg index\fR \- \fBOpenPKG\fR Maintenance Tool (Indexing)
+.SH "VERSION"
+.IX Header "VERSION"
+openpkg index 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 ...
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+The \fBopenpkg index\fR tool is a frontend for indexing of \s-1RPM\s0 files. It
+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.
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+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 "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIrpm\fR\|(8).
+.SH "HISTORY"
+.IX Header "HISTORY"
+The \fBopenpkg index\fR command was invented in November 2002 by \fIMichael
+van Elst\fR <[EMAIL PROTECTED]> under contract with \fICable
+& Wireless\fR <http://www.cw.com/> for use inside the \fBOpenPKG\fR
+project <http://www.openpkg.org/>.
+.SH "AUTHORS"
+.IX Header "AUTHORS"
+.Vb 2
+\& Michael van Elst
+\& [EMAIL PROTECTED]
+.Ve
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg-tool/openpkg-index.pl
============================================================================
$ cvs diff -u -r1.21 -r1.22 openpkg-index.pl
--- openpkg-src/openpkg-tool/openpkg-index.pl 2 Sep 2003 08:17:20 -0000 1.21
+++ openpkg-src/openpkg-tool/openpkg-index.pl 17 Feb 2004 13:22:54 -0000 1.22
@@ -35,8 +35,10 @@
use DirHandle;
my $l_prefix = '@l_prefix@';
-my $RPM = "$l_prefix/bin/rpm";
-my $R2C = "$l_prefix/bin/rpm2cpio";
+my $RPM = ((-f "$l_prefix/bin/openpkg" && -f "$l_prefix/libexec/rpm") ?
+ "$l_prefix/bin/openpkg rpm" : "$l_prefix/bin/rpm");
+my $R2C = ((-f "$l_prefix/bin/openpkg" && -f "$l_prefix/libexec/rpm2cpio") ?
+ "$l_prefix/bin/openpkg rpm2cpio" : "$l_prefix/bin/rpm2cpio");
my $BZ = "$l_prefix/lib/openpkg/bzip2 -9";
#########################################################################
@@ -935,7 +937,7 @@
if ($#ARGV < 0) {
print "openpkg:index:USAGE: $0 [-r resource] [-p platform] [-C cache.db] [-o
index.rdf] [-c] [-i] dir ...\n";
- die "\n";
+ exit(1);
}
if ($opt_C) {
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg-tool/openpkg-index.pod
============================================================================
$ cvs diff -u -r0 -r1.1 openpkg-index.pod
--- /dev/null 2004-02-17 14:22:54.000000000 +0100
+++ openpkg-index.pod 2004-02-17 14:22:54.000000000 +0100
@@ -0,0 +1,118 @@
+##
+## openpkg-index.pod -- OpenPKG Maintenance Tool (manual page)
+## Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
+## Copyright (c) 2000-2003 Ralf S. Engelschall <[EMAIL PROTECTED]>
+## Copyright (c) 2000-2003 Cable & Wireless <http://www.cw.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 index> - B<OpenPKG> Maintenance Tool (Indexing)
+
+=head1 VERSION
+
+openpkg index 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> ...
+
+=head1 DESCRIPTION
+
+The B<openpkg index> tool is a frontend for indexing of RPM files. It
+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>.
+
+=head1 OPTIONS
+
+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
+
+=head1 SEE ALSO
+
+rpm(8).
+
+=head1 HISTORY
+
+The B<openpkg index> command was invented in November 2002 by I<Michael
+van Elst> E<lt>[EMAIL PROTECTED]<gt> under contract with I<Cable
+& Wireless> E<lt>http://www.cw.com/E<gt> for use inside the B<OpenPKG>
+project E<lt>http://www.openpkg.org/E<gt>.
+
+=head1 AUTHORS
+
+ Michael van Elst
+ [EMAIL PROTECTED]
+
+=cut
+
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg-tool/openpkg-tool.spec
============================================================================
$ cvs diff -u -r1.81 -r1.82 openpkg-tool.spec
--- openpkg-src/openpkg-tool/openpkg-tool.spec 5 Feb 2004 22:31:13 -0000
1.81
+++ openpkg-src/openpkg-tool/openpkg-tool.spec 17 Feb 2004 13:22:54 -0000
1.82
@@ -33,22 +33,23 @@
Class: PLUS
Group: Bootstrapping
License: GPL
-Version: 20040205
-Release: 20040205
+Version: 20040217
+Release: 20040217
# list of sources
-Source0: openpkg.sh
-Source1: openpkg-index.pl
-Source2: openpkg-build.pl
-Source3: openpkg.pod
-Source4: openpkg.1
-Source5: Makefile
+Source0: openpkg-index.pl
+Source1: openpkg-index.pod
+Source2: openpkg-index.1
+Source3: openpkg-build.pl
+Source4: openpkg-build.pod
+Source5: openpkg-build.1
+Source6: Makefile
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
-BuildPreReq: OpenPKG, openpkg
-PreReq: OpenPKG, openpkg
+BuildPreReq: OpenPKG, openpkg >= 20040217
+PreReq: OpenPKG, openpkg >= 20040217
AutoReq: no
AutoReqProv: no
@@ -66,27 +67,26 @@
%install
rm -rf $RPM_BUILD_ROOT
%{l_shtool} mkdir -f -p -m 755 \
- $RPM_BUILD_ROOT%{l_prefix}/bin \
- $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg \
- $RPM_BUILD_ROOT%{l_prefix}/man/man1
- %{l_shtool} install -c -m 755 \
- -e 's;@openpkg_tool_prefix@;%{l_prefix};g' \
- -e 's;@version@;%{version};g' \
- %{SOURCE openpkg.sh} $RPM_BUILD_ROOT%{l_prefix}/bin/openpkg
- %{l_shtool} install -c -m 644 \
- -e 's;XX-VERSION-XX;%{version};g' \
- %{SOURCE openpkg.1} $RPM_BUILD_ROOT%{l_prefix}/man/man1/
+ $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg
%{l_shtool} install -c -m 755 \
-e 's;@l_prefix@;%{l_prefix};g' \
%{SOURCE openpkg-index.pl} \
- $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/
+ $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/index.pl
%{l_shtool} install -c -m 755 \
-e 's;@l_prefix@;%{l_prefix};g' \
%{SOURCE openpkg-build.pl} \
- $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/
+ $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/build.pl
+ %{l_shtool} install -c -m 644 \
+ -e 's;XX-VERSION-XX;%{version};g' \
+ %{SOURCE openpkg-index.1} \
+ $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/index.1
+ %{l_shtool} install -c -m 644 \
+ -e 's;XX-VERSION-XX;%{version};g' \
+ %{SOURCE openpkg-build.1} \
+ $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/build.1
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
%{l_files_std} \
- '%not %dir %{l_prefix}/lib/openpkg'
+ '%not %dir %{l_prefix}/libexec/openpkg'
%files -f files
@@ .
rm -f openpkg-src/openpkg-tool/openpkg.1 <<'@@ .'
Index: openpkg-src/openpkg-tool/openpkg.1
============================================================================
[NO CHANGE SUMMARY BECAUSE FILE AS A WHOLE IS JUST REMOVED]
@@ .
rm -f openpkg-src/openpkg-tool/openpkg.pod <<'@@ .'
Index: openpkg-src/openpkg-tool/openpkg.pod
============================================================================
[NO CHANGE SUMMARY BECAUSE FILE AS A WHOLE IS JUST REMOVED]
@@ .
rm -f openpkg-src/openpkg-tool/openpkg.sh <<'@@ .'
Index: openpkg-src/openpkg-tool/openpkg.sh
============================================================================
[NO CHANGE SUMMARY BECAUSE FILE AS A WHOLE IS JUST REMOVED]
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [EMAIL PROTECTED]