Update to doxygen-1.2.6 configuration.
authorjbj <devnull@localhost>
Wed, 14 Mar 2001 23:09:09 +0000 (23:09 +0000)
committerjbj <devnull@localhost>
Wed, 14 Mar 2001 23:09:09 +0000 (23:09 +0000)
Add manual files to Doxfile.in.
lclint annotations.

CVS patchset: 4624
CVS date: 2001/03/14 23:09:09

38 files changed:
Doxyfile.in
build.c
build/build.c
build/files.c
build/pack.c
build/parseBuildInstallClean.c
build/parseFiles.c
build/parsePreamble.c
build/parsePrep.c
build/parseSpec.c
build/spec.c
doc/manual/builddependencies
doc/manual/buildroot
doc/manual/dependencies
doc/manual/format
doc/manual/macros
doc/manual/multiplebuilds
doc/manual/queryformat
doc/manual/relocatable
doc/manual/signatures
doc/manual/spec
doc/manual/triggers
lib/dbconfig.c
lib/header.c
lib/package.c
lib/poptBT.c
lib/poptQV.c
lib/psm.c
lib/psm.h
lib/query.c
lib/rpminstall.c
lib/rpmlib.h
lib/rpmlibprov.c
lib/rpmrc.c
lib/verify.c
po/rpm.pot
rpmio/rpmio.c
rpmio/rpmmessages.h

index 32b1472..17555e5 100644 (file)
@@ -36,7 +36,8 @@ OUTPUT_DIRECTORY       = @WITH_APIDOCS_TARGET@
 # information to generate all constant output in the proper language. 
 # The default language is English, other supported languages are: 
 # Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, 
-# Spanish, Russian, Croatian, Polish, and Portuguese.
+# Korean, Hungarian, Norwegian, Spanish, Romanian, Russian, Croatian,
+# Polish, Portuguese and Slovene.
 
 OUTPUT_LANGUAGE        = English
 
@@ -110,7 +111,7 @@ STRIP_FROM_PATH        = @TOP_SOURCEDIR@/
 # to NO (the default) then the documentation will be excluded. 
 # Set it to YES to include the internal documentation. 
 
-INTERNAL_DOCS          = NO
+INTERNAL_DOCS          = YES
 
 # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
 # generate a class diagram (in Html and LaTeX) for classes with base or 
@@ -134,11 +135,11 @@ INLINE_SOURCES         = NO
 
 STRIP_CODE_COMMENTS    = YES
 
-# If the CASE_SENSE_NAMES tag is set to NO (the default) then Doxygen 
-# will only generate file names in lower case letters. If set t
-# YES upper case letters are also allowed. This is useful if you have 
-# classes or files whose names only differ in case and if your file system 
-# supports case sensitive file names. 
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower case letters. If set to YES upper case letters are als
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# users are adviced to set this option to NO.
 
 CASE_SENSE_NAMES       = YES
 
@@ -160,10 +161,11 @@ VERBATIM_HEADERS       = YES
 
 SHOW_INCLUDE_FILES     = YES
 
-# If the JAVADOC_AUTOBRIEF tag is set to YES (the default) then Doxygen 
-# will interpret the first line (until the first dot) of a JavaDoc-style 
-# comment as the brief description. If set to NO, the Javadoc-style will 
-# behave just like the Qt-style comments. 
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments  will behave just like the Qt-style comments (thus requiring an
+# explict @brief command for a brief description.
 
 JAVADOC_AUTOBRIEF      = YES
 
@@ -185,6 +187,13 @@ INLINE_INFO            = YES
 
 SORT_MEMBER_DOCS       = YES
 
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
 # The TAB_SIZE tag can be used to set the number of spaces in a tab. 
 # Doxygen uses this value to replace tabs by spaces in code fragments. 
 
@@ -207,6 +216,44 @@ GENERATE_TODOLIST      = YES
 
 GENERATE_TESTLIST      = YES
 
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines. 
+
+ALIASES                = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consist of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting. 
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
+# only. Doxygen will then generate output that is more tailored for C. 
+# For instance some of the names that are used will be different. The list 
+# of all members will be omitted, etc. 
+
+OPTIMIZE_OUTPUT_FOR_C  = YES
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation. 
+
+SHOW_USED_FILES        = YES
+
 #---------------------------------------------------------------------------
 # configuration options related to warning and progress messages
 #---------------------------------------------------------------------------
@@ -235,6 +282,12 @@ WARN_IF_UNDOCUMENTED   = YES
 
 WARN_FORMAT            = "$file:$line: $text"
 
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr. 
+
+WARN_LOGFILE           = 
+
 #---------------------------------------------------------------------------
 # configuration options related to the input files
 #---------------------------------------------------------------------------
@@ -246,6 +299,17 @@ WARN_FORMAT            = "$file:$line: $text"
 
 INPUT                  = \
        ./Doxyheader \
+       ./doc/manual/builddependencies \
+       ./doc/manual/buildroot \
+       ./doc/manual/dependencies \
+       ./doc/manual/format \
+       ./doc/manual/macros \
+       ./doc/manual/multiplebuilds \
+       ./doc/manual/queryformat \
+       ./doc/manual/signatures \
+       ./doc/manual/relocatable \
+       ./doc/manual/spec \
+       ./doc/manual/triggers \
        ./build.c \
        ./build.h \
        ./config.h \
@@ -415,6 +479,12 @@ IMAGE_PATH             =
 
 INPUT_FILTER           = 
 
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse. 
+
+FILTER_SOURCE_FILES    = NO
+
 #---------------------------------------------------------------------------
 # configuration options related to the alphabetical class index
 #---------------------------------------------------------------------------
@@ -485,12 +555,48 @@ HTML_ALIGN_MEMBERS     = YES
 
 GENERATE_HTMLHELP      = NO
 
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set YES to add extra items for group members 
+# to the contents of the Html help documentation and to the tree view. 
+
+TOC_EXPAND             = NO
+
 # The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
 # top of each HTML page. The value NO (the default) enables the index and 
 # the value YES disables it. 
 
 DISABLE_INDEX          = NO
 
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation. 
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript and frames is required (for instance Netscape 4.0+ 
+# or Internet explorer 4.0+). 
+
+GENERATE_TREEVIEW      = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown. 
+
+TREEVIEW_WIDTH         = 250
+
 #---------------------------------------------------------------------------
 # configuration options related to the LaTeX output
 #---------------------------------------------------------------------------
@@ -516,7 +622,7 @@ COMPACT_LATEX          = NO
 # by the printer. Possible values are: a4, a4wide, letter, legal and 
 # executive. If left blank a4wide will be used. 
 
-PAPER_TYPE             = a4wide
+PAPER_TYPE             = letter
 
 # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
 # packages that should be included in the LaTeX output. 
@@ -608,17 +714,6 @@ MAN_OUTPUT             = man
 MAN_EXTENSION          = .3
 
 #---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will 
-# generate an XML file that captures the structure of 
-# the code including all documentation. Warning: This feature 
-# is still experimental and very incomplete.
-
-GENERATE_XML           = NO
-
-#---------------------------------------------------------------------------
 # Configuration options related to the preprocessor   
 #---------------------------------------------------------------------------
 
@@ -762,6 +857,18 @@ MAX_DOT_GRAPH_WIDTH    = 1024
 
 MAX_DOT_GRAPH_HEIGHT   = 1024
 
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs. 
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermedate dot files that are used to generate 
+# the various graphs. 
+
+DOT_CLEANUP            = YES
+
 #---------------------------------------------------------------------------
 # Configuration::addtions related to the search engine   
 #---------------------------------------------------------------------------
diff --git a/build.c b/build.c
index b8f73dd..b871c3b 100644 (file)
--- a/build.c
+++ b/build.c
@@ -1,3 +1,7 @@
+/** \ingroup rpmcli
+ * Parse spec file and build package.
+ */
+
 #include "system.h"
 
 #include <rpmbuild.h>
@@ -6,6 +10,8 @@
 #include "build.h"
 #include "debug.h"
 
+/**
+ */
 static int checkSpec(Header h)
 {
     char *rootdir = NULL;
@@ -51,6 +57,8 @@ static int checkSpec(Header h)
  * angielsku...
  */
 /* XXX this is still a dumb test but at least it's i18n aware */
+/**
+ */
 static int isSpecFile(const char *specfile)
 {
     char buf[256];
@@ -86,6 +94,8 @@ static int isSpecFile(const char *specfile)
     return 1;
 }
 
+/**
+ */
 static int buildForTarget(const char *arg, struct rpmBuildArguments *ba,
        const char *passPhrase, char *cookie)
 {
index a6fcae0..403e0c8 100644 (file)
@@ -12,6 +12,9 @@
 
 static int _build_debug = 0;
 
+/*@access StringBuf @*/
+/*@access FD_t @*/
+
 /**
  */
 static void doRmSource(Spec spec)
index 057b8d9..513cd12 100644 (file)
 #include "md5.h"
 #include "debug.h"
 
+/*@access Header @*/
+/*@access StringBuf @*/
+/*@access TFI_t @*/
+/*@access FD_t @*/
+
 #define        SKIPWHITE(_x)   {while(*(_x) && (isspace(*_x) || *(_x) == ',')) (_x)++;}
 #define        SKIPNONWHITE(_x){while(*(_x) &&!(isspace(*_x) || *(_x) == ',')) (_x)++;}
 
index 1a3672e..e101f33 100644 (file)
 
 extern int _noDirTokens;
 
+/*@access StringBuf @*/        /* compared with NULL */
+/*@access TFI_t @*/    /* compared with NULL */
+/*@access Header @*/   /* compared with NULL */
+/*@access FD_t @*/     /* compared with NULL */
+
 /**
  */
 static inline int genSourceRpmName(Spec spec)
index 16e0e10..9b35045 100644 (file)
@@ -7,6 +7,8 @@
 #include "rpmbuild.h"
 #include "debug.h"
 
+/*@access StringBuf @*/
+
 int parseBuildInstallClean(Spec spec, rpmParseState parsePart)
 {
     int nextPart, rc;
index 7d46e06..b948ba2 100644 (file)
@@ -8,6 +8,8 @@
 #include "rpmbuild.h"
 #include "debug.h"
 
+/*@access StringBuf @*/                /* compared with NULL */
+
 /* These have to be global scope to make up for *stupid* compilers */
     /*@observer@*/ /*@null@*/ static const char *name = NULL;
     /*@observer@*/ /*@null@*/ static const char *file = NULL;
index 3a8fd11..19d272f 100644 (file)
@@ -9,6 +9,8 @@
 #include <rpmbuild.h>
 #include "debug.h"
 
+/*@access FD_t @*/     /* compared with NULL */
+
 /**
  */
 static int_32 copyTagsDuringParse[] = {
index 99e1704..9f81d9f 100644 (file)
@@ -9,6 +9,8 @@
 #include <rpmbuild.h>
 #include "debug.h"
 
+/*@access StringBuf @8/        /* compared with NULL */
+
 /* These have to be global to make up for stupid compilers */
     static int leaveDirs, skipDefaultAction;
     static int createDir, quietly;
index 3334817..37428b9 100644 (file)
@@ -11,6 +11,8 @@ static int _debug = 0;
 #include <rpmbuild.h>
 #include "debug.h"
 
+/*@access FD_t @*/     /* compared with NULL */
+
 /**
  */
 static struct PartRec {
index 6c58d6d..037f85f 100644 (file)
@@ -15,6 +15,8 @@ extern MacroContext rpmGlobalMacroContext;
 #define SKIPWHITE(_x)  {while(*(_x) && (isspace(*_x) || *(_x) == ',')) (_x)++;}
 #define SKIPNONWHITE(_x){while(*(_x) &&!(isspace(*_x) || *(_x) == ',')) (_x)++;}
 
+/*@access Header @*/   /* compared with NULL */
+
 /**
  */
 static inline void freeTriggerFiles(/*@only@*/ struct TriggerFileEntry *p)
index 0d6dca6..bc09bcd 100644 (file)
@@ -1,12 +1,17 @@
-As we start updating packages for Red Hat 6.2, I'd like to see packages
-start to make use of build dependencies. Basically build dependencies are
-just like install dependencies, but they are resolved against the build system
-just after parsing the spec file. Syntactically, build dependencies look just
-like install dependencies in a spec file with "Build" prefixed:
+/*! \page builddpendencies How to generate build depedencies
 
+As we start updating packages for the next Red Hat distro, I'd like to see
+packages start to make use of build dependencies. Basically build
+dependencies are just like install dependencies, but they are resolved
+against the build system just after parsing the spec file. Syntactically,
+build dependencies look just like install dependencies in a spec file with
+"Build" prefixed:
+
+\verbatim
        BuildPrereqs:
        BuildRequires:
        BuildConflicts:
+\endverbatim
 
 All the above dependencies include versions, files, existence/range tests, etc.
 The build dependency checking can also be turned off with --nodeps if necessary
@@ -21,6 +26,7 @@ spec files as part of rebuilding packages for Red Hat 6.2.
 Here's a short example of how to generate the package/file names that were used
 while building gnorpm using InDependence:
 
+\verbatim
        rpm -U /mnt/redhat/comps/powertools/6.2/i386/InDependence-1.0-3.i386.rpm
        rpm -i /mnt/redhat/comps/dist/6.2/SRPMS/gnorpm-0.9-11.src.rpm
        cd /usr/src/redhat/SPECS
@@ -29,8 +35,9 @@ while building gnorpm using InDependence:
        (the build will take longer since both dep and strace are pigs)
        ...
        grep -- '::' xxx > yyy
+\endverbatim
 
-=========================================================================
+\verbatim
 Aside: The dep perl wrapper is a "pig" only because it's exec'ing
                rpm -qf <filename>
         in order to turn filenames into package names. There are easier/faster
@@ -42,10 +49,11 @@ Aside:      The dep perl wrapper is a "pig" only because it's exec'ing
        same open/execve syscalls using LD_PRELOAD.
 
        Patches cheerfully accepted :-)
-=========================================================================
+\endverbatim
 
 Here's what's in yyy (<packagename>::<filename> format):
 
+\verbatim
        ORBit-devel-0.4.95-2::/usr/bin/orbit-config 
        XFree86-libs-3.3.5-6::/usr/X11R6/lib/libICE.so.6 
        XFree86-libs-3.3.5-6::/usr/X11R6/lib/libSM.so.6 
@@ -151,15 +159,20 @@ Here's what's in yyy (<packagename>::<filename> format):
        textutils-2.0-2::/usr/bin/cut 
        textutils-2.0-2::/usr/bin/tr 
        zlib-1.1.3-5::/usr/lib/libz.so.1 
+\endverbatim
 
 The information can be used to generate build prerequisites. What is still
 needed is a sensible approach on
 
+\verbatim
        1) eliminating obvious common dependencies (e.g. libtool, egcs).
        2) identifying (and removing for now) per-platform build dependencies.
        3) deciding on whether to add the build dependency on a file or on the
        package that contains the file.
        4) if adding a dependency on a package, choosing version ranges as
        appropriate.
+\endverbatim
 
 but that's up to individual packagers.
+
+*/
index 7c9facd..f31db47 100644 (file)
@@ -1,18 +1,17 @@
-BUILD ROOT
-==========
+/*! \page buildroot Using a build root
 
-The build root is very similar to Root: (which will be deprecated
-soon).  By using Buildroot: in your spec file you are indicating
+The build root is very similar to Root: (which is now legacy).
+By using Buildroot: in your spec file you are indicating
 that your package can be built (installed into and packaged from)
 a user-definable directory.  This helps package building by normal
 users.
 
-The Spec File
--------------
+<h2>The Spec File</h2>
 
 Simply use
-
+\verbatim
   Buildroot: <dir>
+\endverbatim
 
 in your spec file.  The acutal buildroot used by RPM during the
 build will be available to you (and your %prep, %build, and %install
@@ -22,6 +21,7 @@ proper buildroot.  As with Root:, the files listed in the %files
 section should *not* contain the buildroot.  For example, the
 following hypothetical spec file:
 
+\verbatim
   Name: foo
   ...
   Root: /tmp
@@ -37,12 +37,14 @@ following hypothetical spec file:
   
   %files
   /usr/bin/fooprog
+\endverbatim
 
 would be changed to:
 
+\verbatim
   Name: foo
   ...
-  Buildroot: /tmp
+  BuildRoot: /tmp
   
   %prep
   ...
@@ -55,9 +57,9 @@ would be changed to:
   
   %files
   /usr/bin/fooprog
+\endverbatim
 
-Building With a Build Root
---------------------------
+<h2>Building With a Build Root</h2>
 
 RPM will use the buildroot listed in the spec file as the default
 buildroot.  There are two ways to override this.  First, you can
@@ -65,19 +67,22 @@ have "buildroot: <dir>" in your rpmrc.  Second, you can override
 the default, and any entry in an rpmrc by using "--buildroot <dir>"
 on the RPM command line.
 
-Caveats using Build Roots
--------------------------
+<h2>Caveats using Build Roots</h2>
 
 Care should be taken when using buildroots that the install directory
 is owned by the correct package.  For example the file
 
+\verbatim
        /usr/lib/perl5/site_perl/MD5.pm
+\endverbatim
 
 is installed by the package perl-MD5.  If we were to use a buildroot
 and specified 
 
+\verbatim
        %files  
        /usr/lib/perl5/site_perl
+\endverbatim
 
 we would end up with the directory /usr/lib/perl5/site_perl being
 owned by the library package. This directory is in fact used by ALL
@@ -85,7 +90,9 @@ perl libriares and should be owned by the package for perl not any of
 its libraries. It is important that the %files command specifies all
 the known directories explicitly. So this would be preferable:
 
+\verbatim
        /usr/lib/perl5/site_perl/*
+\endverbatim
 
 Since we only want the files and directories that the package perl-MD5
 installed into /usr/lib/perl5/site_perl/ to be owned by the package.
@@ -111,3 +118,5 @@ contains file names already used by other packages on the system then
 RPM will warn you of the problem and give a fatal error. This error can
 be overriden with --force and the installed file will be replaced by the
 new file and when the new package is removed the file will be removed as well.
+
+*/
index 4f5b3f3..7e268e0 100644 (file)
@@ -1,5 +1,4 @@
-DEPENDENCIES
-============
+/*! \page dependencies Dependencies
 
 Dependencies provide a way for a package builder to require other
 packages or capabilities to be installed before or simultaneously
@@ -7,17 +6,20 @@ with one another. These can be used to require a python interpretor
 for a python based application for example. RPM ensures dependencies
 are satisfied whenever packages are installed, erased, or upgraded.
 
-Requiring Packages
-------------------
+<h2>Requiring Packages</h2>
 
 To require packages, use:
 
+\verbatim
        Requires: python perl
+\endverbatim
 
 in the spec file. Note that "Requires python, perl" would work as well. If you
 needed to have a very recent version of python but any version of perl,
 
+\verbatim
        Requires: python >= 1.3, perl
+\endverbatim
 
 would do the trick. Again, the ',' in the line is optional.  Instead of
 '>=', you may also use '<', '>', '<=', or '='.
@@ -30,12 +32,16 @@ to indicate beta versions.
 
 To work around this, you may specify an epoch number for a package like this:
 
+\verbatim
        Epoch: 23
+\endverbatim
 
 If a Requires: line needs to include an epoch in the comparison, then
 the line should be written like
 
+\verbatim
        Requires: somepackage = 23:version
+\endverbatim
 
 You can't continue a "Requires: " line. If you have multiple
 "Requires: " lines then the package requires all packages mentioned on
@@ -43,14 +49,17 @@ all of the lines to be installed. Max line length is probably 8K.
 
 The full syntax for specifying a dependency on an epoch, version and release
 is
+\verbatim
        [epoch:]version[-release]
+\endverbatim
 where
+\verbatim
        epoch   (optional) number, with assumed default of 0 if not supplied
        version (required) can contain any character except '-'
        release (optional) can contain any character except '-'
+\endverbatim
 
-Prereqs
--------
+<h2>Prereqs</h2>
 
 Prereqs are slightly different than requires. If multiple packages are
 given on a single command line, then RPM will rearrange the package
@@ -60,8 +69,7 @@ the package itself is installed. Otherwise prereqs are identical to
 requires.
 
 
-Virtual Packages
-----------------
+<h2>Virtual Packages</h2>
 
 Sometimes you need to make sure the system your package is being installed 
 on has a package which provides a certain capability, even though you don't
@@ -69,23 +77,28 @@ care what specific package provides it. For example, sendmail won't work
 properly unless a local delivery agent (lda) is present. You can ensure that
 one is installed like this:
 
+\verbatim
        Requires: lda
+\endverbatim
 
 This will match either a package called lda (as mentioned above), or any
 package which contains:
 
+\verbatim
        Provides: lda
+\endverbatim
 
 in its .spec file. No version numbers may be used with virtual packages.
 
 Virtual packages are often used to supply file dependencies such as /bin/sh
 on machines that are only partly managed by rpm. A virtual package with
+\verbatim
        Provides: /bin/sh
+\endverbatim
 differs from a package that has /bin/sh in the %files list in that the
 package can be safely removed without removing /bin/sh.
 
-Automatic Dependencies
-----------------------
+<h2>Automatic Dependencies</h2>
 
 To reduce the amount of work required by the package builder, RPM scans
 the file list of a package when it is being built. Any files in the file
@@ -105,8 +118,7 @@ libm.so.5 and libc.so.5. We expect this automatic dependency generation
 to eliminate the need for most packages to use explicit Requires: lines.
 
 
-Interpreters and Shells (to be implemented)
------------------------
+<h2>Interpreters and Shells (to be implemented)</h2>
 
 Modules for interpreted languages like perl and tcl impose additional
 dependency requirements on packages. A script written for an interpreter
@@ -117,26 +129,35 @@ module name collisions between interpreters, module names are enclosed within
 parentheses and a conventional interpreter specific identifier is pre-pended:
 
 
+\verbatim
   Provides: perl(MIME-Base64), perl(Mail-Header)-1-09
 
   Requires: perl(Carp), perl(IO-Wrap) = 4.5
+\endverbatim
 
 
 The output of a per-interpreter find-requires (notice in this example the
 first requirement is a package and the rest are langague specific modules)
 
+\verbatim
        Mail-Header >= 1.01
        perl(Carp) >= 3.2
        perl(IO-Wrap) == 4.5 or perl(IO-Wrap)-4.5
+\endverbatim
 
 the output from find-provides is
+\verbatim
        Foo-0.9
        perl(Widget)-0-1
+\endverbatim
 
 The per-interpreter automatic module detectors will normally be located in
+\verbatim
        /usr/lib/rpm/{perl,tcl}/find-{provides,requires}
 with appropriate per-interpreter hooks into
+\verbatim
        /usr/lib/rpm/find-{provides,requires}
+\endverbatim
 
 Notice that shell dependencies will require that all executable programs be
 tracked by the dependency processing system. Since a shell script depends on
@@ -144,8 +165,7 @@ all the programs which it runs. In this way executables are much like shared
 libraries for shell scripts.
 
 
-Installing and Erasing Packages with Dependencies
--------------------------------------------------
+<h2>Installing and Erasing Packages with Dependencies</h2>
 
 For the most part, dependencies should be transparent to the user. However,
 a few things will change.
@@ -153,18 +173,19 @@ a few things will change.
 First, when packages are added or upgraded, all of their dependencies
 must be satisfied. If they are not, an error message like this appears:
 
+\verbatim
     failed dependencies:
            libICE.so.6  is needed by somepackage-2.11-1
            libSM.so.6  is needed by somepackage-2.11-1
            libc.so.5  is needed by somepackage-2.11-1
+\endverbatim
 
 Similarly, when packages are removed, a check is made to ensure that 
 no installed packages will have their dependency conditions break due to
 the packages being removed. If you wish to turn off dependency checking for 
 a particular command, use the --nodeps flag.
 
-Conflicts
----------
+<h2>Conflicts</h2>
 
 While conflicts were implemented in earlier versions of RPM they never 
 worked properly until RPM 2.3.4 (well, we hope they work properly now
@@ -175,13 +196,14 @@ virtual package) installed on the system. For example, qmail doesn't work
 (w/o custom setup) on machines with sendmail installed. The qmail spec file
 may codify this with a line like:
 
-Conflicts: sendmail
+\verbatim
+       Conflicts: sendmail
+\endverbatim
 
 The syntax of the "Conflicts" tag is identical to the syntax of the Requires
 tag and conflict checking may be overridden by using the --nodeps flag.
 
-Querying with Dependencies
---------------------------
+<h2>Querying with Dependencies</h2>
 
 Two new query information selection options are now available. The first, 
 --provides, prints a list of all of the capabilities a package provides. 
@@ -195,12 +217,13 @@ provide the <item> virtual package. Note that querying for package that
 provides "python" will not return anything, as python is a package, not
 a virtual package.
 
-Verifying Dependencies
-----------------------
+<h2>Verifying Dependencies</h2>
 
-As of RPM 2.2.2, -V (aka -y, --verify) verifies package dependencies
+As of RPM 2.2.2, -V (aka --verify) verifies package dependencies
 by default. You can tell rpm to ignore dependencies during system
 verification with the --nodeps. If you want RPM to verify just dependencies
 and not file attributes (including file existence), use the --nofiles
 flag. Note that "rpm -Va --nofiles --nodeps" will not verify anything at
 all, nor generate an error message.
+
+*/
index 987faf9..9281add 100644 (file)
@@ -1,5 +1,4 @@
-RPM File Format
-===============
+/*! \page pkgformat Package format
 
 This document describes the RPM file format version 3.0, which is used
 by RPM versions 2.1 and greater.  The format is subject to change, and
@@ -12,24 +11,26 @@ LIBRARY!!
 The RPM file format covers both source and binary packages.  An RPM
 package file is divided in 4 logical sections:
 
+\verbatim
 . Lead      -- 96 bytes of "magic" and other info
 . Signature -- collection of "digital signatures"
 . Header    -- holding area for all the package information
-. Archive   -- compressed archive of all the files in the package
+. Payload   -- compressed archive of all the files in the package
+\endverbatim
 
 All 2 and 4 byte "integer" quantities (int16 and int32) are stored in
 network byte order.  When data is presented, the first number is the
 byte number, or address, in hex, followed by the byte values in hex,
 followed by character "translations" (where appropriate).
 
-Lead
-----
+<h2>Lead</h2>
 
 The Lead is basically for file(1).  All the information contained in
 the Lead is duplicated or superceded by information in the Header.
 Much of the info in the Lead was used in old versions of RPM but is
 now ignored.  The Lead is stored as a C structure:
 
+\code
 struct rpmlead {
     unsigned char magic[4];
     unsigned char major, minor;
@@ -40,11 +41,14 @@ struct rpmlead {
     short signature_type;
     char reserved[16];
 };
+\endcode
 
 and is illustrated with one pulled from the rpm-2.1.2-1.i386.rpm
 package:
 
+\verbatim
 00000000: ed ab ee db 03 00 00 00
+\endverbatim
 
 The first 4 bytes (0-3) are "magic" used to uniquely identify an RPM
 package.  It is used by RPM and file(1).  The next two bytes (4, 5)
@@ -53,7 +57,9 @@ version.  This package is in 3.0 format.  The following 2 bytes (6-7)
 form an int16 which indicates the package type.  As of this writing
 there are only two types: 0 == binary, 1 == source.
 
+\verbatim
 00000008: 00 01 72 70 6d 2d 32 2e    ..rpm-2.
+\endverbatim
 
 The next two bytes (8-9) form an int16 that indicates the architecture
 the package was built for.  While this is used by file(1), the true
@@ -63,6 +69,7 @@ Starting with byte 10 and extending to byte 75, are 65 characters and
 a null byte which contain the familiar "name-version-release" of the
 package, padded with null (0) bytes.
 
+\verbatim
 00000010: 31 2e 32 2d 31 00 00 00    1.2-1...
 00000018: 00 00 00 00 00 00 00 00    ........
 00000020: 00 00 00 00 00 00 00 00    ........
@@ -71,6 +78,7 @@ package, padded with null (0) bytes.
 00000038: 00 00 00 00 00 00 00 00    ........
 00000040: 00 00 00 00 00 00 00 00    ........
 00000048: 00 00 00 00 00 01 00 05    ........
+\endverbatim
 
 Bytes 76-77 ("00 01" above) form an int16 that indicates the OS the
 package was built for.  In this case, 1 == Linux.  The next 2 bytes
@@ -78,14 +86,15 @@ package was built for.  In this case, 1 == Linux.  The next 2 bytes
 RPM what to expect in the Signature.  For version 3.0 packages, this
 is 5, which indicates the new "Header-style" signatures.
 
+\verbatim
 00000050: 04 00 00 00 68 e6 ff bf    ........
 00000058: ab ad 00 08 3c eb ff bf    ........
+\endverbatim
 
 The remaining 16 bytes (80-95) are currently unused and are reserved
 for future expansion.
 
-Signature
----------
+<h2>Signature</h2>
 
 A 3.0 format signature (denoted by signature type 5 in the Lead), uses
 the same structure as the Header.  For historical reasons, this
@@ -99,11 +108,13 @@ The Signature can contain multiple signatures, of different types.
 There are currently only three types, each with its own tag in the
 header structure:
 
+\verbatim
        Name    Tag     Header Type
        ----    ----    -----------
        SIZE    1000    INT_32
        MD5     1001    BIN
        PGP     1002    BIN
+\endverbatim
 
 The MD5 signature is 16 bytes, and the PGP signature varies with
 the size of the PGP key used to sign the package.
@@ -111,8 +122,7 @@ the size of the PGP key used to sign the package.
 As of RPM 2.1, all packages carry at least SIZE and MD5 signatures,
 and the Signature section is padded to a multiple of 8 bytes.
 
-Header
-------
+<h2>Header</h2>
 
 The Header contains all the information about a package: name,
 version, file list, etc.  It uses the same "header structure" as the
@@ -121,14 +131,12 @@ tags for the Header would take too much space to list here, and the
 list grows fairly frequently.  For the complete list see lib/rpmlib.h
 in the RPM sources.
 
-Archive
--------
+<h2>Payload</h2>
 
-The Archive is currently a gzipped cpio archive.  The cpio
+The Payload is currently a gzipped cpio archive.  The cpio
 archive type used is SVR4 with a CRC checksum.
 
-The Header Structure
---------------------
+<h2>The Header Structure</h2>
 
 The header structure is a little complicated, but actually performs a
 very simple function.  It acts almost like a small database in that it
@@ -141,6 +149,7 @@ Along with the tag and the data, a data "type" is stored, which indicates,
 obviously, the type of the data associated with the tag.  There are
 currently 9 types:
 
+\verbatim
        Type            Number
        ----            ------
        NULL            0
@@ -152,6 +161,8 @@ currently 9 types:
        STRING          6
        BIN             7
        STRING_ARRAY    8
+       I18NSTRING_TYPE 9
+\endverbatim
 
 One final piece of information is a "count" which is stored with each
 tag, and indicates the number of items of the associated type that are
@@ -162,12 +173,16 @@ STRING_ARRAY.
 Altogether, the tag, type, count, and data are called an "Entry" or
 "Header Entry".
 
+\verbatim
 00000000: 8e ad e8 01 00 00 00 00    ........
+\endverbatim
 
 A header begins with 3 bytes of magic "8e ad e8" and a single byte to
 indicate the header version.  The next four bytes (4-7) are reserved.
 
+\verbatim
 00000008: 00 00 00 20 00 00 07 77    ........
+\endverbatim
 
 The next four bytes (8-11) form an int32 that is a count of the number
 of entries stored (in this case, 32).  Bytes 12-15 form an int32 that
@@ -175,7 +190,9 @@ is a count of the number of bytes of data stored (that is, the number
 of bytes made up by the data portion of each entry).  In this case it
 is 1911 bytes.
 
+\verbatim
 00000010: 00 00 03 e8 00 00 00 06 00 00 00 00 00 00 00 01    ................
+\endverbatim
 
 Following the first 16 bytes is the part of the header called the
 "index".  The index is made of up "index entries", one for each entry
@@ -192,6 +209,7 @@ not allowed to have a count greater than 1).
 In our example there would be 32 such 16-byte index entries, followed
 by the data section:
 
+\verbatim
 00000210: 72 70 6d 00 32 2e 31 2e 32 00 31 00 52 65 64 20    rpm.2.1.2.1.Red 
 00000220: 48 61 74 20 50 61 63 6b 61 67 65 20 4d 61 6e 61    Hat Package Mana
 00000230: 67 65 72 00 31 e7 cb b4 73 63 68 72 6f 65 64 65    ger.1...schroede
@@ -199,6 +217,7 @@ by the data section:
 ...
 00000970: 6c 69 62 63 2e 73 6f 2e 35 00 6c 69 62 64 62 2e    libc.so.5.libdb.
 00000980: 73 6f 2e 32 00 00                                  so.2..
+\endverbatim
 
 The data section begins at byte 528 (4 magic, 4 reserved, 4 index
 entry count, 4 data byte count, 16 * 32 index entries).  At offset 0,
@@ -211,11 +230,13 @@ so that the data of INT64 type starts on an 8 byte boundary, INT32
 type starts on a 4 byte boundary, and an INT16 type starts on a 2 byte
 boundary.  For example:
 
+\verbatim
 00000060: 00 00 03 ef 00 00 00 06 00 00 00 28 00 00 00 01    ................
 00000070: 00 00 03 f1 00 00 00 04 00 00 00 40 00 00 00 01    ................
 ...
 00000240: 72 2e 72 65 64 68 61 74 2e 63 6f 6d 00 00 00 00    r.redhat.com....
 00000250: 00 09 9b 31 52 65 64 20 48 61 74 20 4c 69 6e 75    ....Red Hat Linu
+\endverbatim
 
 Index entry number 6 is the BUILDHOST, of type STRING.  Index entry
 number 7 is the SIZE, of type INT32.  The corresponding data for entry
@@ -224,23 +245,28 @@ could start at byte 589, byte that is an improper boundary for an INT32.
 As a result, 3 null bytes are inserted and the date for the SIZE actually
 starts at byte 592: "00 09 9b 31", which is 629553).
 
-Tools
------
+<h2>Tools</h2>
 
 The tools directory in the RPM sources contains a number of small
 programs that use the RPM library to pick apart packages.  These
 tools are mostly used for debugging, but can also be used to help
 you understand the internals of the RPM package format.
 
+\verbatim
        rpmlead         - extracts the Lead from a package
        rpmsignature    - extracts the Signature from a package
        rpmheader       - extracts the Header from a package
        rpmarchive      - extracts the Archive from a package
        dump            - displays a header structure in readable format
+\endverbatim
 
 Given a package foo.rpm you might try:
 
+\verbatim
        rpmlead foo.rpm | od -x
        rpmsignature foo.rpm | dump
        rpmheader foo.rpm | dump
        rpmarchive foo.rpm | zcat | cpio --list
+\endverbatim
+
+*/
index cd8ea3e..781ceda 100644 (file)
@@ -1,22 +1,22 @@
-SPEC FILE MACROS
-================
-
-RPM 2.4.104 introduces fully recursive spec file macros.  Simple macros
-do straight text substitution. Parameterized macros include an options
-field, and perform argc/argv processing on white space separated tokens
-to the next newline. During macro expansion, both flags and arguments are
-available as macros which are deleted at the end of macro expansion.
-Macros can be used (almost) anywhere in a spec file, and, in particular,
-in "included file lists" (i.e. those read in using %files -f <file>).
-In addition, macros can be nested, hiding the previous definition for the
-duration of the expansion of the macro which contains nested macros.
-
-Defining a Macro
-----------------
+/*! \page macros Macro syntax
+
+RPM has fully recursive spec file macros.  Simple macros do straight text
+substitution. Parameterized macros include an options field, and perform
+argc/argv processing on white space separated tokens to the next newline.
+During macro expansion, both flags and arguments are available as macros
+which are deleted at the end of macro expansion.  Macros can be used
+(almost) anywhere in a spec file, and, in particular, in "included file
+lists" (i.e. those read in using %files -f <file>).  In addition, macros
+can be nested, hiding the previous definition for the duration of the
+expansion of the macro which contains nested macros.
+
+<h2>Defining a Macro</h2>
 
 To define a macro use:
 
-%define <name>[(opts)] <body>
+\verbatim
+       %define <name>[(opts)] <body>
+\endverbatim
 
 All whitespace surrounding <body> is removed.  Name may be composed
 of alphanumeric characters, and the character `_' and must be at least
@@ -27,18 +27,19 @@ exactly as is to getopts(3) for argc/argv processing at the beginning of
 a macro invocation.  While a parameterized macro is being expanded, the
 following shell-like macros are available:
 
+\verbatim
        %0      the name of the macro being invoked
        %*      all arguments (unlike shell, not including any processed flags)
        %#      the number of arguments
        %{-f}   if present at invocation, the flag f itself
        %{-f*}  if present at invocation, the argument to flag f
        %1, %2  the arguments themselves (after getopt(3) processing)
+\endverbatim
 
 At the end of invocation of a parameterized macro, the above macros are
 (at the moment, silently) discarded.
 
-Writing a Macro
----------------
+<h2>Writing a Macro</h2>
 
 Within the body of a macro, there are several constructs that permit
 testing for the presence of optional parameters. The simplest construct
@@ -56,11 +57,12 @@ deleted). Note the 2nd % needed to escape the arguments to /bin/date.
 There is currently an 8K limit on the size that this macro can expand
 to.
 
-Builtin Macros
---------------
+<h2>Builtin Macros</h2>
+
 There are several builtin macros (with reserved names) that are needed
 to perform useful operations. The current list is
 
+\verbatim
        %trace          toggle print of debugging information before/after
                        expansion
        %dump           print the active (i.e. non-covered) macro table
@@ -83,29 +85,35 @@ to perform useful operations. The current list is
        %{S:...}        expand ... to <source> file name
        %{P:...}        expand ... to <patch> file name
        %{F:...}        expand ... to <file> file name
+\endverbatim
 
 Macros may also be automatically included from /usr/lib/rpm/macros.
 In addition, rpm itself defines numerous macros. To display the current
 set, add "%dump" to the beginning of any spec file, process with rpm, and
 examine the output from stderr.
 
-Example of a Macro
-------------------
+<h2>Example of a Macro</h2>
 
 Here is an example %patch definition from /usr/lib/rpm/macros:
 
-%patch(b:p:P:REz:) \
-%define patch_file     %{P:%{-P:%{-P*}}%{!-P:%%PATCH0}} \
-%define patch_suffix   %{!-z:%{-b:--suffix %{-b*}}}%{!-b:%{-z:--suffix %{-z*}}}%{!-z:%{!-b: }}%{-z:%{-b:%{error:Can't specify both -z(%{-z*}) and -b(%{-b*})}}} \
-       %{uncompress:%patch_file} | patch %{-p:-p%{-p*}} %patch_suffix %{-R} %{-E} \
+\verbatim
+       %patch(b:p:P:REz:) \
+       %define patch_file      %{P:%{-P:%{-P*}}%{!-P:%%PATCH0}} \
+       %define patch_suffix    %{!-z:%{-b:--suffix %{-b*}}}%{!-b:%{-z:--suffix %{-z*}}}%{!-z:%{!-b: }}%{-z:%{-b:%{error:Can't specify both -z(%{-z*}) and -b(%{-b*})}}} \
+               %{uncompress:%patch_file} | patch %{-p:-p%{-p*}} %patch_suffix %{-R} %{-E} \
        ...
+\endverbatim
+
 
 The first line defines %patch with its options. The body of %patch is
 
+\verbatim
        %{uncompress:%patch_file} | patch %{-p:-p%{-p*}} %patch_suffix %{-R} %{-E}
+\endverbatim
 
 The body contains 7 macros, which expand as follows
 
+\verbatim
        %{uncompress:...}       copy uncompressed patch to stdout
          %patch_file           ... the name of the patch file
        %{-p:...}               if "-p N" was present, (re-)generate "-pN" flag
@@ -113,29 +121,34 @@ The body contains 7 macros, which expand as follows
        %patch_suffix           override (default) ".orig" suffix if desired
        %{-R}                   supply -R (reversed) flag if desired
        %{-E}                   supply -E (delete empty?) flag if desired
+\endverbatim
 
 There are two "private" helper macros:
 
+\verbatim
        %patch_file     the gory details of generating the patch file name
        %patch_suffix   the gory details of overriding the (default) ".orig"
+\endverbatim
 
-Using a Macro
--------------
+<h2>Using a Macro</h2>
 
 To use a macro, write:
 
-%<name> ...
+\verbatim
+       %<name> ...
+\endverbatim
 
 or
 
-%{<name>}
+\verbatim
+       %{<name>}
+\endverbatim
 
 The %{...} form allows you to place the expansion adjacent to other text.
 The %<name> form, if a parameterized macro, will do argc/argv processing
 of the rest of the line as described above.
 
-Command Line Options
---------------------
+<h2>Command Line Options</h2>
 
 When the command line option "--define 'macroname value'" allows the
 user to specify the value that a macro should have during the build.
@@ -144,16 +157,17 @@ users who accidentally type the leading % but this should not be
 relied upon.
 
 Evaluating a macro can be difficult outside of an rpm execution context. If
-you wish to see the expanded value of a macro, you may use
-       "--eval '<macro expression>'"
+you wish to see the expanded value of a macro, you may use the option
+\verbatim
+       --eval '<macro expression>'
+\endverbatim
 that will read rpm config files and print the macro expansion on stdout.
 
 Note: This works only macros defined in rpm configuration files, not for
 macros defined in specfiles. You can use %{echo: %{your_macro_here}} if
 you wish to see the expansion of a macro defined in a spec file.
  
-RPM Configuration using Macros
---------------------------------
+<h2>Configuration using Macros</h2>
 
 Starting in rpm 3.0, macros rather than rpmrc lines are used to configure rpm.
 In general, all the rpmrc configuration lines documented in "Maximum RPM"
@@ -165,6 +179,7 @@ spec file parsing.
 
 Here's an example to illustrate configuration using macros:
 
+\verbatim
    Old way:
        In /etc/rpmrc and/or ~/.rpmrc you put
                something:      some_value
@@ -172,9 +187,11 @@ Here's an example to illustrate configuration using macros:
    New way:
        In /etc/rpm/macros and/or ~/.rpmmacros
                %_something     some_value
+\endverbatim
 
 Here are 2 common FAQ for experienced users of rpm:
 
+\verbatim
   1) --rcfile works differently.
     Old way:   rpm --rcfile whatever
     New way:   rpm --rcfile /usr/lib/rpm/rpmrc:whatever
@@ -190,13 +207,14 @@ Here are 2 common FAQ for experienced users of rpm:
                macrofiles:     /usr/lib/rpm/macros: ... :~/.rpmmacros
        ~/.rpmmacros contains
                %_topdir        whatever
+\endverbatim
 
-Macro Analogues of Autoconf Variables
--------------------------------------
+<h2>Macro Analogues of Autoconf Variables</h2>
 
 Several macro definitions provided by the default rpm macro set have uses in
 packaging similar to the autoconf variables that are used in building packages:
 
+\verbatim
     %_prefix           /usr
     %_exec_prefix      %{_prefix}
     %_bindir           %{_exec_prefix}/bin
@@ -211,4 +229,6 @@ packaging similar to the autoconf variables that are used in building packages:
     %_oldincludedir    /usr/include
     %_infodir          %{_prefix}/include
     %_mandir           %{_prefix}/man
+\endverbatim
 
+*/
index 3557b24..3db75fb 100644 (file)
@@ -1,4 +1,4 @@
-(From Ken Estes <kestes@staff.mail.com>)
+/*! \page multiplebuilds Multiple build areas
 
 It is possible to run several RPM builds on the same machine using
 separate RPM databases.  On my build machine I have several build
@@ -7,35 +7,41 @@ interfere with each other.  Each build behaves as if it was running on
 its own machine and no build area knows about the RPM database which
 actually configures the machine.
 
-1) First setup a "topdir" in a prefix other then where RPM is
+First, setup a "topdir" in a prefix other then where RPM is
 installed.  You will need to make the directories.  They need to be
 writable by the account which will do the building, typically they
 are owned by the buildmaster account and set to permissions
 755.
 
+\verbatim
         BUILD RPMS SOURCES SPECS SRPMS
+\endverbatim
 
-2) Next you will need to decide where the database files live. I suggest
+Next, you will need to decide where the database files live. I suggest
 putting them in a separate directory under "topdir".  I call my
 directory DB and it has the same owner and permissions as the other
 directories.
 
-3) Each separate build area needs a rpmrc.  This will need to specify
-the new topdir and dbpath.  If you will be building the same packages
-in different work areas you will also need to specify a tmppath into
-the topdir.  I suggest either making tmppath be the same as the BUILD
-directory or adding another directory called BUILDROOT for it in the
-topdir.
+Each separate build area needs a rpmrc and macro configuration file. This
+will need to specify the new topdir and dbpath.  If you will be building
+the same packages in different work areas you will also need to specify a
+tmppath into the topdir.  I suggest either making tmppath be the same as
+the BUILD directory or adding another directory called BUILDROOT for it
+in the topdir.
 
-4) keeping track of the correct rpmrc for each build area can be
+Keeping track of the correct rpmrc for each build area can be
 difficult.  To make my life easier I make a small shell script with the
 topdir hard coded inside:
 
+\verbatim
         #!/bin/sh
         /bin/rpm --rcfile /topdir/rpmrc "$@"
         exit $?
+\endverbatim
 
 I call the shell script rpm and it lives in the topdir.  Each time I
 wish to use a particular build area I just ensure that the build area
 is first in my path so that when I run "rpm" I get the regular rpm
 binary but I am using the local build areas rpmrc.
+
+*/
index 3864caf..d088b57 100644 (file)
@@ -1,12 +1,10 @@
-QUERY FORMATS
-=============
+/*! \page queryformat Query formats
 
 As it is impossible to please everyone with one style of query output, RPM
 allows you to specify what information should be printed during a query
 operation and how it should be formatted.
 
-Tags
-----
+<h2>Tags</h2>
 
 All of the information a package contains, apart from signatures and the
 actual files, is in a part of the package called the header. Each piece
@@ -18,6 +16,7 @@ To get a list of all of the tags your version of RPM knows about, run the
 command 'rpm --querytags'. It will print out a list like (but much longer
 then) this:
 
+\verbatim
     RPMTAG_NAME
     RPMTAG_VERSION
     RPMTAG_RELEASE
@@ -28,6 +27,7 @@ then) this:
     RPMTAG_BUILDHOST
     RPMTAG_INSTALLTIME
     RPMTAG_SIZE
+\endverbatim
 
 As all of these tags begin with RPMTAG_, you may omit it from query format
 specifiers and it will be omitted from the rest of this documentation for
@@ -36,8 +36,7 @@ the same reason.
 A tag can consist of one element or an array of elements. Each element can
 be a string or number only.
 
-Query Formats
--------------
+<h2>Query Formats</h2>
 
 A query format is passed to RPM after the --queryformat argument, and normally
 should be enclosed in single quotes. This query format is then used to print
@@ -52,16 +51,19 @@ its place put the tag name you wish to print enclosed in curly braces
 ({}). For example, the following RPM command prints the names and sizes
 of all of the packages installed on a system:
 
+\verbatim
     rpm -qa --queryformat "%{NAME} %{SIZE}\n"
+\endverbatim
 
 If you want to use printf formatters, they go between the % and {. To
 change the above command to print the NAME in the first 30 bytes and
 right align the size to, use:
 
+\verbatim
     rpm -qa --queryformat "%-30{NAME} %10{SIZE}\n"
+\endverbatim
 
-Arrays
-------
+<h2>Arrays</h2>
 
 RPM uses many parallel arrays internally. For example, file sizes and 
 file names are kept as an array of numbers and an array of strings
@@ -73,18 +75,22 @@ to print each item in the array within square brackets ([]). For example,
 to print all of the files and their sizes in the slang-devel package
 followed by their sizes, with one file per line, use this command:
 
+\verbatim
     rpm -q --queryformat "[%-50{FILENAMES} %10{FILESIZES}\n]" slang-devel
+\endverbatim
 
 Note that since the trailing newline is inside of the square brackets, one
 newline is printed for each filename.
 
 A popular query format to try to construct is one that prints the
 name of a package and the name of a file it contains on one line, 
-repeated for every file in the package. This query can be very usefull
+repeated for every file in the package. This query can be very useful
 for passing information to any program that's line oriented (such as
 grep or awk). If you try the obvious,
 
+\verbatim
     rpm --queryformat "[%{NAME} %{FILENAMES}\n]" cdp
+\endverbatim
 
 If you try this, you'll see RPM complain about a "parallel array size 
 mismatch". Internally, all items in RPM are actually arrays, so the NAME
@@ -96,16 +102,19 @@ To make this work properly, you need to tell RPM to always print the first
 item in the NAME element. You do this by placing a '=' before the tag
 name, like this:
 
+\verbatim
     rpm --queryformat "[%{=NAME} %{FILENAMES}\n]" cdp
+\endverbatim
 
 which will give you the expected output.
 
+\verbatim
     cdp /usr/bin/cdp
     cdp /usr/bin/cdplay
     cdp /usr/man/man1/cdp.1
+\endverbatim
 
-Formatting Tags
----------------
+<h2>Formatting Tags</h2>
 
 One of the weaknesses with query formats is that it doesn't recognize
 that the INSTALLTIME tag (for example) should be printed as a date instead
@@ -113,17 +122,18 @@ of as a number. To compensate, you can specify one of a few different
 formats to use when printing tags by placing a colon followed the formatting 
 name after the tag name. Here are some examples:
 
+\verbatim
     rpm -q --queryformat "%{NAME} %{INSTALLTIME:date}\n" fileutils
     rpm -q --queryformat "[%{FILEMODES:perms} %{FILENAMES}\n]" rpm
     rpm -q --queryformat \
        "[%{REQUIRENAME} %{REQUIREFLAGS:depflags} %{REQUIREVERSION}\n]" \
        vlock
+\endverbatim
 
 The :shescape may be used on plain strings to get a string which can pass
 through a single level of shell and give the original string.
 
-Query Expressions
------------------
+<h2>Query Expressions</h2>
 
 Simple conditionals may be evaluated through query expressions. Expressions
 are delimited by %|...|. The only type of expression currently supported
@@ -131,7 +141,11 @@ is a C-like ternary conditional, which provides simple if/then/else
 conditions. For example, the following query format display "present" if
 the SOMETAG tag is present, and "missing" otherwise:
 
+\verbatim
     %|SOMETAG?{present}:{missing}|
+\endverbatim
 
 Notice that the subformats "present" and "missing" must be inside of curly
 braces.
+
+*/
index 82bb36a..ecc5039 100644 (file)
@@ -1,5 +1,4 @@
-RELOCATABLE PACKAGES
-====================
+/*! \page relocateable Relocateable packages
 
 Relocatable packages are a way to give the user a little control
 over the installation location of a package.  For example, a vendor
@@ -7,8 +6,7 @@ may distribute their software to install in "/opt" but you'd like
 it to install in "/usr/opt".  If the vendor were distributing a
 relocatable RPM package, it would be easy.
 
-Building a Relocatable Package
-------------------------------
+<h2>Building a Relocatable Package</h2>
 
 Not all software can be "relocatable".  Before continuing you should
 think about how the program works, what files it accesses, what other
@@ -18,7 +16,9 @@ then it can probably be built as "relocatable".
 
 All you need to do to build a relocatable package is put one or more:
 
+\verbatim
   Prefix: <dir>
+\endverbatim
 
 in your spec file.  The "<dir>" will usually be something like "/usr",
 "/usr/local", or "/opt".  Every file in your %files list must start
@@ -26,15 +26,16 @@ with that prefix.  For example, if you have "Prefix: /usr" and your
 %files list contains "/etc/foo.conf", the build will fail. The fix for
 this is to put
 
+\verbatim
   Prefix: /usr
   Prefix: /etc
+\endverbatim
 
 into the spec file so that the /usr and /etc directories may be
 relocated separately when this package is installed.
 
 
-Installing Relocatable Packages
--------------------------------
+<h2>Installing Relocatable Packages</h2>
 
 By default, RPM will install a relocatable package in the prefix
 directory listed in the spec file.  You can override this on the
@@ -46,8 +47,11 @@ package), you could install it "--prefix /usr/opt".
 If there is more then one Prefix you may relocate each prefix
 separately by using syntax like:
 
+\verbatim
   rpm ... --relocate /opt=/usr/opt --relocate /etc=/usr/etc ...
+\endverbatim
 
 If any of the Prefixs are not being relocated they can be skipped on
 the command line
 
+*/
index 39c08f5..22f5a78 100644 (file)
@@ -1,5 +1,4 @@
-New RPM Signatures
-==================
+/*! \page signatures Signature header
 
 The 2.1 release of RPM had a few improvements in the area of
 digital package signatures.  The usage of PGP has been cleaned
@@ -7,8 +6,7 @@ up and extended, the signature section in the RPM file format
 has been made easily extensible with new signature types, and
 packages can have multiple signatures.
 
-PGP
----
+<h2>PGP</h2>
 
 RPM's previous usage of PGP was cumbersome, and only supported
 1024 bit keys.  Both of these problems have been corrected.
@@ -23,40 +21,48 @@ uses its default ($HOME/.pgp).
 
 If you just want to verify packages, you need to supply values
 for the macros
+\verbatim
        %_pgpbin        the path to the pgp executable
        %_signature     the type of signature to use
+\endverbatim
 
 In order to be able to sign packages, you may also have to
 supply values for
+\verbatim
        %_pgp_name      the pgp signature to use for signing
        %_pgp_path      the path to the key ring
+\endverbatim
 
-Signature Creation
-------------------
+<h2>Signature Creation</h2>
 
 Signature creation is the same as previous releases: just add
 a --sign to your build command line.  You can sign a package
 after the package is built with:
 
-rpm --resign <package>
+\verbatim
+       rpm --resign <package>
+\endverbatim
 
 Using --resign removes any previous signature in the package.
 To *add* a signature to a package, leaving all existing
 signatures use:
 
-rpm --addsign <package>
+\verbatim
+       rpm --addsign <package>
+\endverbatim
 
 RPM always creates MD5 and SIZE signatures when it build
 packages, which means that packages built without --sign can
 be "verified" to some extent.  The MD5 signature should catch
 problems like corrupt packages, faulty downloads, etc.
 
-Signature Verification
-----------------------
+<h2>Signature Verification</h2>
 
 Package signature verification is the same as previous releases:
 
-rpm -K <package>
+\verbatim
+       rpm -K <package>
+\endverbatim
 
 RPM will verify evey signature in the package, which may include
 more than one PGP signature.  The output indicates what types of
@@ -67,7 +73,11 @@ If you have a package with PGP signatures, but don't have PGP
 installed, but still want to verify it as much as possible, you
 can do:
 
-rpm -K --nopgp <package>
+\verbatim
+       rpm -K --nopgp <package>
+\endverbatim
 
 That will cause RPM to skip any PGP signatures, but still check
 any others (currently only MD5 and SIZE).
+
+*/
index 1ee780e..71c905e 100644 (file)
@@ -1,10 +1,8 @@
-SPEC FILE ADDITIONS
-===================
+/*! \page specfile Spec file tags
 
 A few additions have been made to the spec file format.
 
-Summary and Description
------------------------
+<h2>Summary and Description</h2>
 
 The Summary: tag should be use to give a short (50 char or so) summary
 of the package.  Most package's Description: line should be changed to
@@ -13,15 +11,18 @@ be changed to a "%description" entry similar to %package and %files.
 At some point in the future support will be removed for "Description:".
 As an example, this spec file fragment:
 
+\verbatim
   Description: Screen drawing library
   Name: screenlib
   Version: 1.0
 
   %package devel
   Description: Screen drawing library headers and static libs
+\endverbatim
 
 might be changed to:
 
+\verbatim
   Summary: Screen drawing library
   Name: screenlib
   Version: 1.0
@@ -40,6 +41,7 @@ might be changed to:
 
   You'll only need this package if you
   are doing development.
+\endverbatim
 
 The description is free form text, but there are two things to note.
 The first regards reformating.  Lines that begin with white space
@@ -47,8 +49,7 @@ are considered "pre-formatted" and will be left alone.  Adjacent
 lines without leading whitespace are considered a single paragraph
 and may be subject to formatting by glint or another RPM tool.
 
-Other Tags
-----------
+<h2>Other Tags</h2>
 
 Two new tags are "URL:" and "Packager:".  "URL:" is a place to put a
 URL for more information and/or documentation on the software
@@ -58,8 +59,7 @@ address of the person who "maintains" the RPM package (which may be
 different from the person who actually maintains the program the
 package contains).
 
-Files Attributes
-----------------
+<h2>Files Attributes</h2>
 
 A %ghost tag on a file indicates that this file is not to be included
 in the package.  It is typically used when the attributes of the file
@@ -76,8 +76,7 @@ The %config(noreplace) indicates that the file in the package should
 be installed with extension .rpmnew if there is already a file by
 the same name on the installed machine.
 
-Fine Adjustment of Automatic Dependencies
------------------------------------------
+<h2>Fine Adjustment of Automatic Dependencies</h2>
 
 Rpm currently supports separate "Autoreq:" and "Autoprov:" tags in a
 spec file to independently control the running of find-requires and
@@ -88,10 +87,16 @@ installed on the target machine even though their intended use was
 optional. To rectify the situation you may turn off requirements when
 building the package by putting
 
+\verbatim
        Autoreq: 0 
+\endverbatim
 
 in your spec file. Any and all requirements should be added manually using the
 
+\verbatim
        Requires: depend1, ..., dependN
+\endverbatim
 
 in this case.
+
+*/
index 40f9031..7333327 100644 (file)
@@ -1,5 +1,4 @@
-TRIGGERS
-========
+/*! \page triggers Trigger scriptlets
 
 Triggers provide a well-defined method for packages to interact with one
 another at package install and uninstall time. They are an extension
@@ -8,8 +7,7 @@ of the normal installation scripts (i.e. %pre) which allows one package
 "triggered package"]) to execute an action when the installation status
 of another package (the "target" of the trigger) changes.
 
-A Simple Example
-----------------
+<h2>A Simple Example</h2>
 
 Say the package "mymailer" needs an /etc/mymailer/mailer symlink which points
 to the mail transport agent to use. If sendmail is installed, the link should
@@ -22,22 +20,27 @@ not exist at all.
 This can be accomplished by mymailer providing trigger scripts which 
 move the symlink when any of the following occurs:
 
+\verbatim
        1) sendmail is installed
        2) vmail is installed
        3) sendmail is removed
        4) vmail is removed
+\endverbatim
 
 The first two of these scripts would look like this:
 
+\verbatim
        %triggerin -- sendmail
        ln -sf /usr/bin/sendmail /etc/mymailer/mailer
 
        %triggerin -- vmail
        ln -sf /usr/bin/vmail /etc/mymailer/mailer
+\endverbatim
 
 These are two installation triggers, triggered by one of sendmail or vmail.
 They are run when:
 
+\verbatim
        1) mymailer is already installed, and sendmail is installed or
           upgraded
        2) mymailer is already installed, and vmail is installed or
@@ -46,11 +49,13 @@ They are run when:
           upgraded
        4) vmail is already installed, and mymailer is installed or
           upgraded
+\endverbatim
 
 For the upgrading, the strategy is a little different. Rather then
 setting the link to point to the trigger, the link is set to point to
 the *other* mailer (if it exists), as follows:
 
+\verbatim
        %triggerun -- sendmail
        [ $2 = 0 ] || exit 0
        if [ -f /usr/bin/vmail ]; then
@@ -71,13 +76,16 @@ the *other* mailer (if it exists), as follows:
 
        %postun
        [ $1 = 0 ] && rm -f /etc/mymailer/mailer
+\endverbatim
 
 These trigger scripts get run when:
 
+\verbatim
        1) sendmail is installed, and mymailer is removed
        2) vmail is installed, and mymailer is removed
        3) mymailer is installed, and sendmail gets removed
        4) mymailer is installed, and vmail gets removed
+\endverbatim
 
 The %postun insures that /etc/mymailer/mailer is removed when mymailer
 is removed (triggers get run at the same time as %preun scripts, so 
@@ -92,12 +100,13 @@ this case, if any of the targets will remain after the uninstall, the
 trigger doesn't do anything (as it's probably being triggered by an
 upgrade).
 
-Trigger Syntax
---------------
+<h2>Trigger Syntax</h2>
 
 Trigger specifications are of the form:
 
+\verbatim
        %trigger{un|in|postun} [[-n] <subpackage>] [-p <program>] -- <trigger>
+\endverbatim
 
 The -n and -p arguments are the same as for %post scripts.  The
 <trigger> portion is syntactically equivalent to a "Requires"
@@ -105,30 +114,31 @@ specification (version numbers may be used). If multiple items are
 given (comma separated), the trigger is run when *any* of those
 conditions becomes true (the , can be read as "or"). For example:
 
+\verbatim
        %triggerin -n package -p /usr/bin/perl -- fileutils > 3.0, perl < 1.2
        print "I'm in my trigger!\n";
+\endverbatim
 
 Will put a trigger in package 'package' which runs when the installation
 status of either fileutils > 3.0 or perl < 1.2 is changed. The script will
 be run through /usr/bin/perl rather then /bin/sh (which is the default).
 
-An Unusual Case
----------------
+<h2>An Unusual Case</h2>
 
 There is one other type of trigger available -- %triggerpostun. These are
 triggers that are run after their target package has been removed; they will
 never be run when the package containing the trigger is removed. 
 
-While this type of trigger is almost never usefull, they allow a package to
+While this type of trigger is almost never useful, they allow a package to
 fix errors introduced by the %postun of another package (or by an earlier 
 version of that package).
 
-Order of Script Execution
--------------------------
+<h2>Order of Script Execution</h2>
 
 For reference, here's the order in which scripts are executed on a single
 package upgrade:
 
+\verbatim
   new-%pre     for new version of package being installed
   ...          (all new files are installed)
   new-%post    for new version of package being installed
@@ -145,4 +155,5 @@ package upgrade:
   old-%triggerpostun
   any-%triggerpostun (%triggerpostun from other packages set off by old un
                install)
-
+\endverbatim
+*/
index 0de669c..7fd71b6 100644 (file)
@@ -1,5 +1,5 @@
-/** \ingroup db3
- * \file lib/db3.c
+/** \ingroup rpmdb
+ * \file lib/dbconfig.c
  */
 
 #include "system.h"
index c50d4bc..848e066 100644 (file)
@@ -299,7 +299,8 @@ static void copyEntry(const struct indexEntry * entry, /*@out@*/ int_32 * type,
 
            count = 2 * sizeof(*ei) + (ril * sizeof(*pe)) +
                        entry->rdlen + REGION_TAG_COUNT;
-           ei = (int_32 *) *p = xmalloc(count);
+           *p = xmalloc(count);
+           ei = (int_32 *) *p;
            ei[0] = htonl(ril);
            ei[1] = htonl(entry->rdlen + REGION_TAG_COUNT);
            pe = (struct entryInfo *) memcpy(ei + 2, pe, (ril * sizeof(*pe)));
index eb44281..bd78980 100644 (file)
@@ -37,7 +37,7 @@ void headerMergeLegacySigs(Header h, const Header sig)
        case RPMSIGTAG_MD5:     tag = RPMTAG_SIGMD5;    break;
        case RPMSIGTAG_GPG:     tag = RPMTAG_SIGGPG;    break;
        case RPMSIGTAG_PGP5:    tag = RPMTAG_SIGPGP5;   break;
-       default:                                        break;
+       default:
            continue;
            /*@notreached@*/ break;
        }
index cc30f08..fd2ba74 100644 (file)
@@ -52,9 +52,12 @@ static int noDeps = 0;
 static int signIt = 0;
 static int useCatalog = 0;
 
+/**
+ */
 static void buildArgCallback( /*@unused@*/ poptContext con,
        /*@unused@*/ enum poptCallbackReason reason,
-       const struct poptOption * opt, const char * arg, const void * data)
+       const struct poptOption * opt, const char * arg,
+       /*@unused@*/ const void * data)
 {
     struct rpmBuildArguments * rba = &rpmBTArgs;
 
@@ -76,7 +79,7 @@ static void buildArgCallback( /*@unused@*/ poptContext con,
     case POPT_TP:
     case POPT_TS:
        if (rba->buildMode == ' ') {
-           rba->buildMode = (opt->val >> 8) & 0xff;
+           rba->buildMode = ((unsigned)(opt->val >> 8)) & 0xff;
            rba->buildChar = (opt->val     ) & 0xff;
        }
        break;
@@ -111,7 +114,8 @@ static void buildArgCallback( /*@unused@*/ poptContext con,
     }
 }
 
-/** */
+/**
+ */
 struct poptOption rpmBuildPoptTable[] = {
  { NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA,
        buildArgCallback, 0, NULL, NULL },
index 786e48e..19e4ad3 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/** \ingroup rpmcli
  * \file lib/poptQV.c
  *  Popt tables for query/verify modes.
  */
@@ -25,7 +25,7 @@ int specedit = 0;
 static void rpmQVSourceArgCallback( /*@unused@*/ poptContext con,
        /*@unused@*/ enum poptCallbackReason reason,
        const struct poptOption * opt, /*@unused@*/ const char * arg, 
-       const void * data)
+       /*@unused@*/ const void * data)
 {
     QVA_t *qva = &rpmQVArgs;
 
index 9271a9d..2b55fbb 100644 (file)
--- a/lib/psm.c
+++ b/lib/psm.c
 
 /*@access Header @*/           /* compared with NULL */
 /*@access rpmTransactionSet @*/        /* compared with NULL */
+/*@access rpmdbMatchIterator @*/ /* compared with NULL */
 /*@access TFI_t @*/            /* compared with NULL */
+/*@access FSM_t @*/            /* compared with NULL */
+/*@access PSM_t @*/            /* compared with NULL */
+/*@access FD_t @*/             /* compared with NULL */
 
 extern int _fsm_debug;
 
@@ -1198,7 +1202,7 @@ static int runImmedTriggers(PSM_t psm)
            rpmdbFreeIterator(mi);
        }
     }
-    triggerIndices = hfd(triggerNames, tit);
+    triggerIndices = hfd(triggerIndices, tit);
     triggerNames = hfd(triggerNames, tnt);
     return rc;
 }
index 4f60a6f..f39c18f 100644 (file)
--- a/lib/psm.h
+++ b/lib/psm.h
@@ -135,8 +135,8 @@ typedef enum pkgStage_e {
 /**
  */
 struct psm_s {
-    rpmTransactionSet ts;      /*!< transaction set */
-    TFI_t fi;                  /*!< transaction element file info */
+/*@kept@*/ rpmTransactionSet ts;/*!< transaction set */
+/*@kept@*/ TFI_t fi;           /*!< transaction element file info */
     FD_t cfd;                  /*!< Payload file handle. */
     FD_t fd;                   /*!< Repackage file handle. */
     Header oh;                 /*!< Repackage/multilib header. */
index ad3fb5f..f51fc0f 100644 (file)
@@ -1,5 +1,6 @@
 /** \ingroup rpmcli
  * \file lib/query.c
+ * Display tag values from package metadata.
  */
 
 #include "system.h"
@@ -25,7 +26,8 @@ static /*@null@*/ void * _free(/*@only@*/ /*@null@*/ const void * this) {
     return NULL;
 }
 
-/* ======================================================================== */
+/**
+ */
 static char * permsString(int mode)
 {
     char *perms = xstrdup("----------");
@@ -69,6 +71,8 @@ static char * permsString(int mode)
     return perms;
 }
 
+/**
+ */
 static void printFileInfo(char * te, const char * name,
                          unsigned int size, unsigned short mode,
                          unsigned int mtime,
@@ -151,6 +155,8 @@ static void printFileInfo(char * te, const char * name,
     if (perms) free(perms);
 }
 
+/**
+ */
 static inline const char * queryHeader(Header h, const char * qfmt)
 {
     const char * errstr;
@@ -162,6 +168,8 @@ static inline const char * queryHeader(Header h, const char * qfmt)
     return str;
 }
 
+/**
+ */
 static int countLinks(int_16 * fileRdevList, int_32 * fileInodeList, int nfiles,
                int xfile)
 {
@@ -402,6 +410,8 @@ exit:
     return rc;
 }
 
+/**
+ */
 static void
 printNewSpecfile(Spec spec)
 {
index 54ae2b6..c232fba 100644 (file)
@@ -11,6 +11,7 @@
 #include "misc.h"
 #include "debug.h"
 
+/*@access rpmTransactionSet@*/ /* XXX compared with NULL */
 /*@access Header@*/            /* XXX compared with NULL */
 /*@access FD_t@*/              /* XXX compared with NULL */
 
index 4134c62..76454f1 100644 (file)
@@ -39,7 +39,8 @@ extern "C" {
  * @return             rpmRC return code
  */
 rpmRC rpmReadPackageInfo(FD_t fd, /*@out@*/ Header * signatures,
-       /*@out@*/ Header * hdr) /*@modifies fd, *signatures, *hdr @*/;
+       /*@out@*/ Header * hdr)
+               /*@modifies fd, *signatures, *hdr @*/;
 
 /**
  * Return package header and lead info from file handle.
index 23d0400..932930a 100644 (file)
@@ -31,7 +31,7 @@ static struct rpmlibProvides {
     { "rpmlib(HeaderLoadSortsTags)",    "4.0.1-1",
        (                RPMSENSE_EQUAL),
     N_("header tags are always sorted after being loaded.") },
-    { NULL,                            NULL,   0 }
+    { NULL,                            NULL, NULL,     0 }
 };
 
 void rpmShowRpmlibProvides(FILE * fp)
index 940dc01..b8ae618 100644 (file)
@@ -8,6 +8,8 @@
 #define __power_pc() 0
 #endif
 
+/*@ access FD_t @*/            /* compared with NULL */
+
 #include <rpmlib.h>
 #include <rpmmacro.h>
 
index 8810f91..96c104b 100644 (file)
@@ -1,5 +1,6 @@
 /** \ingroup rpmcli
  * \file lib/verify.c
+ * Verify installed payload files from package metadata.
  */
 
 #include "system.h"
@@ -12,6 +13,9 @@
 #include "misc.h"
 #include "debug.h"
 
+/*@ access TFI_t */
+/*@ access PSM_t */
+
 static int _ie = 0x44332211;
 static union _vendian { int i; char b[4]; } *_endian = (union _vendian *)&_ie;
 #define        IS_BIG_ENDIAN()         (_endian->b[0] == '\x44')
index 1d84317..031217f 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2001-03-14 11:56-0500\n"
+"POT-Creation-Date: 2001-03-14 17:59-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -14,58 +14,58 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: ENCODING\n"
 
-#: build.c:25
+#: build.c:31
 #, c-format
 msgid "cannot open rpm database in %s\n"
 msgstr ""
 
-#: build.c:35
+#: build.c:41
 msgid "failed build dependencies:\n"
 msgstr ""
 
-#: build.c:64
+#: build.c:72
 #, c-format
 msgid "Unable to open spec file %s: %s\n"
 msgstr ""
 
-#: build.c:131 build.c:143
+#: build.c:141 build.c:153
 #, c-format
 msgid "Failed to open tar pipe: %m\n"
 msgstr ""
 
 #. Give up
-#: build.c:150
+#: build.c:160
 #, c-format
 msgid "Failed to read spec file from %s\n"
 msgstr ""
 
-#: build.c:178
+#: build.c:188
 #, c-format
 msgid "Failed to rename %s to %s: %m\n"
 msgstr ""
 
-#: build.c:217
+#: build.c:227
 #, c-format
 msgid "failed to stat %s: %m\n"
 msgstr ""
 
-#: build.c:222
+#: build.c:232
 #, c-format
 msgid "File %s is not a regular file.\n"
 msgstr ""
 
-#: build.c:231
+#: build.c:241
 #, c-format
 msgid "File %s does not appear to be a specfile.\n"
 msgstr ""
 
 #. parse up the build operators
-#: build.c:288
+#: build.c:298
 #, c-format
 msgid "Building target platforms: %s\n"
 msgstr ""
 
-#: build.c:303
+#: build.c:313
 #, c-format
 msgid "Building for target %s\n"
 msgstr ""
@@ -503,12 +503,12 @@ msgid ""
 "options as -q"
 msgstr ""
 
-#: lib/poptBT.c:183 lib/verify.c:54 rpm.c:416 rpm.c:458 rpm.c:493 rpmqv.c:268
+#: lib/poptBT.c:187 lib/verify.c:58 rpm.c:416 rpm.c:458 rpm.c:493 rpmqv.c:268
 #: rpmqv.c:567 rpmqv.c:615 rpmqv.c:649
 msgid "do not verify package dependencies"
 msgstr ""
 
-#: lib/verify.c:60 rpm.c:418 rpmqv.c:208 rpmqv.c:571
+#: lib/verify.c:64 rpm.c:418 rpmqv.c:208 rpmqv.c:571
 msgid "do not verify file md5 checksums"
 msgstr ""
 
@@ -697,15 +697,15 @@ msgstr ""
 msgid "bin/src package (prep, compile, install, package)"
 msgstr ""
 
-#: lib/poptBT.c:194 rpm.c:519
+#: lib/poptBT.c:198 rpm.c:519
 msgid "skip straight to specified stage (only for c,i)"
 msgstr ""
 
-#: lib/poptBT.c:173 rpm.c:521
+#: lib/poptBT.c:177 rpm.c:521
 msgid "remove build tree when done"
 msgstr ""
 
-#: lib/poptBT.c:190 rpm.c:523
+#: lib/poptBT.c:194 rpm.c:523
 msgid "remove sources when done"
 msgstr ""
 
@@ -713,7 +713,7 @@ msgstr ""
 msgid "remove spec file when done"
 msgstr ""
 
-#: lib/poptBT.c:196 rpm.c:527 rpmqv.c:200
+#: lib/poptBT.c:200 rpm.c:527 rpmqv.c:200
 msgid "generate PGP/GPG signature"
 msgstr ""
 
@@ -1173,7 +1173,7 @@ msgstr ""
 msgid "generate headers compatible with (legacy) rpm[23] packaging"
 msgstr ""
 
-#: lib/poptBT.c:175 rpmqv.c:187
+#: lib/poptBT.c:179 rpmqv.c:187
 msgid "generate headers compatible with rpm4 packaging"
 msgstr ""
 
@@ -1517,26 +1517,26 @@ msgstr ""
 msgid "no tar files given for build"
 msgstr ""
 
-#: build/build.c:114 build/pack.c:384
+#: build/build.c:117 build/pack.c:389
 msgid "Unable to open temp file.\n"
 msgstr ""
 
-#: build/build.c:193
+#: build/build.c:196
 #, c-format
 msgid "Executing(%s): %s\n"
 msgstr ""
 
-#: build/build.c:199
+#: build/build.c:202
 #, c-format
 msgid "Exec of %s failed (%s): %s\n"
 msgstr ""
 
-#: build/build.c:208
+#: build/build.c:211
 #, c-format
 msgid "Bad exit status from %s (%s)\n"
 msgstr ""
 
-#: build/build.c:307
+#: build/build.c:310
 msgid ""
 "\n"
 "\n"
@@ -1592,163 +1592,163 @@ msgstr ""
 msgid "syntax error in expression\n"
 msgstr ""
 
-#: build/files.c:229
+#: build/files.c:234
 #, c-format
 msgid "TIMECHECK failure: %s\n"
 msgstr ""
 
-#: build/files.c:280 build/files.c:365 build/files.c:540
+#: build/files.c:285 build/files.c:370 build/files.c:545
 #, c-format
 msgid "Missing '(' in %s %s\n"
 msgstr ""
 
-#: build/files.c:291 build/files.c:485 build/files.c:551
+#: build/files.c:296 build/files.c:490 build/files.c:556
 #, c-format
 msgid "Missing ')' in %s(%s\n"
 msgstr ""
 
-#: build/files.c:329 build/files.c:510
+#: build/files.c:334 build/files.c:515
 #, c-format
 msgid "Invalid %s token: %s\n"
 msgstr ""
 
-#: build/files.c:381
+#: build/files.c:386
 #, c-format
 msgid "Non-white space follows %s(): %s\n"
 msgstr ""
 
-#: build/files.c:419
+#: build/files.c:424
 #, c-format
 msgid "Bad syntax: %s(%s)\n"
 msgstr ""
 
-#: build/files.c:429
+#: build/files.c:434
 #, c-format
 msgid "Bad mode spec: %s(%s)\n"
 msgstr ""
 
-#: build/files.c:441
+#: build/files.c:446
 #, c-format
 msgid "Bad dirmode spec: %s(%s)\n"
 msgstr ""
 
-#: build/files.c:578
+#: build/files.c:583
 msgid "Unusual locale length: \"%.*s\" in %%lang(%s)\n"
 msgstr ""
 
-#: build/files.c:588
+#: build/files.c:593
 msgid "Duplicate locale %.*s in %%lang(%s)\n"
 msgstr ""
 
-#: build/files.c:725
+#: build/files.c:730
 msgid "Hit limit for %%docdir\n"
 msgstr ""
 
-#: build/files.c:731
+#: build/files.c:736
 msgid "Only one arg for %%docdir\n"
 msgstr ""
 
 #. We already got a file -- error
-#: build/files.c:759
+#: build/files.c:764
 #, c-format
 msgid "Two files on one line: %s\n"
 msgstr ""
 
-#: build/files.c:773
+#: build/files.c:778
 #, c-format
 msgid "File must begin with \"/\": %s\n"
 msgstr ""
 
-#: build/files.c:785
+#: build/files.c:790
 msgid "Can't mix special %%doc with other forms: %s\n"
 msgstr ""
 
-#: build/files.c:952
+#: build/files.c:957
 #, c-format
 msgid "File listed twice: %s\n"
 msgstr ""
 
-#: build/files.c:1042
+#: build/files.c:1047
 #, c-format
 msgid "Symlink points to BuildRoot: %s -> %s\n"
 msgstr ""
 
-#: build/files.c:1229
+#: build/files.c:1234
 #, c-format
 msgid "File doesn't match prefix (%s): %s\n"
 msgstr ""
 
-#: build/files.c:1239
+#: build/files.c:1244
 #, c-format
 msgid "File not found: %s\n"
 msgstr ""
 
-#: build/files.c:1282 build/files.c:1803 build/parsePrep.c:42
+#: build/files.c:1287 build/files.c:1808 build/parsePrep.c:44
 #, c-format
 msgid "Bad owner/group: %s\n"
 msgstr ""
 
-#: build/files.c:1294
+#: build/files.c:1299
 #, c-format
 msgid "File %4d: %07o %s.%s\t %s\n"
 msgstr ""
 
-#: build/files.c:1371
+#: build/files.c:1376
 #, c-format
 msgid "File needs leading \"/\": %s\n"
 msgstr ""
 
-#: build/files.c:1401
+#: build/files.c:1406
 #, c-format
 msgid "File not found by glob: %s\n"
 msgstr ""
 
-#: build/files.c:1455
+#: build/files.c:1460
 msgid "Could not open %%files file %s: %s\n"
 msgstr ""
 
-#: build/files.c:1464 build/pack.c:117
+#: build/files.c:1469 build/pack.c:122
 #, c-format
 msgid "line: %s\n"
 msgstr ""
 
-#: build/files.c:1791
+#: build/files.c:1796
 #, c-format
 msgid "Bad file: %s: %s\n"
 msgstr ""
 
 #. XXX this error message is probably not seen.
-#: build/files.c:1859
+#: build/files.c:1864
 #, c-format
 msgid "Couldn't exec %s: %s\n"
 msgstr ""
 
-#: build/files.c:1864
+#: build/files.c:1869
 #, c-format
 msgid "Couldn't fork %s: %s\n"
 msgstr ""
 
-#: build/files.c:1946
+#: build/files.c:1951
 #, c-format
 msgid "%s failed\n"
 msgstr ""
 
-#: build/files.c:1950
+#: build/files.c:1955
 #, c-format
 msgid "failed to write all data to %s\n"
 msgstr ""
 
-#: build/files.c:2077
+#: build/files.c:2082
 #, c-format
 msgid "Finding  %s: (using %s)...\n"
 msgstr ""
 
-#: build/files.c:2105 build/files.c:2119
+#: build/files.c:2110 build/files.c:2124
 #, c-format
 msgid "Failed to find %s:\n"
 msgstr ""
 
-#: build/files.c:2232
+#: build/files.c:2237
 #, c-format
 msgid "Processing files: %s-%s-%s\n"
 msgstr ""
@@ -1774,131 +1774,131 @@ msgstr ""
 msgid "Could not canonicalize hostname: %s\n"
 msgstr ""
 
-#: build/pack.c:61
+#: build/pack.c:66
 #, c-format
 msgid "create archive failed on file %s: %s\n"
 msgstr ""
 
-#: build/pack.c:83
+#: build/pack.c:88
 #, c-format
 msgid "cpio_copy write failed: %s\n"
 msgstr ""
 
-#: build/pack.c:90
+#: build/pack.c:95
 #, c-format
 msgid "cpio_copy read failed: %s\n"
 msgstr ""
 
-#: build/pack.c:174
+#: build/pack.c:179
 #, c-format
 msgid "Could not open PreIn file: %s\n"
 msgstr ""
 
-#: build/pack.c:181
+#: build/pack.c:186
 #, c-format
 msgid "Could not open PreUn file: %s\n"
 msgstr ""
 
-#: build/pack.c:188
+#: build/pack.c:193
 #, c-format
 msgid "Could not open PostIn file: %s\n"
 msgstr ""
 
-#: build/pack.c:195
+#: build/pack.c:200
 #, c-format
 msgid "Could not open PostUn file: %s\n"
 msgstr ""
 
-#: build/pack.c:203
+#: build/pack.c:208
 #, c-format
 msgid "Could not open VerifyScript file: %s\n"
 msgstr ""
 
-#: build/pack.c:218
+#: build/pack.c:223
 #, c-format
 msgid "Could not open Trigger script file: %s\n"
 msgstr ""
 
-#: build/pack.c:244
+#: build/pack.c:249
 #, c-format
 msgid "readRPM: open %s: %s\n"
 msgstr ""
 
-#: build/pack.c:254
+#: build/pack.c:259
 #, c-format
 msgid "readRPM: read %s: %s\n"
 msgstr ""
 
-#: build/pack.c:275
+#: build/pack.c:280
 #, c-format
 msgid "readRPM: %s is not an RPM package\n"
 msgstr ""
 
-#: build/pack.c:284
+#: build/pack.c:289
 #, c-format
 msgid "readRPM: reading header from %s\n"
 msgstr ""
 
-#: build/pack.c:396
+#: build/pack.c:401
 msgid "Bad CSA data\n"
 msgstr ""
 
-#: build/pack.c:437
+#: build/pack.c:442
 #, c-format
 msgid "Generating signature: %d\n"
 msgstr ""
 
-#: build/pack.c:447
+#: build/pack.c:452
 #, c-format
 msgid "Could not open %s: %s\n"
 msgstr ""
 
-#: build/pack.c:484 lib/psm.c:1443
+#: build/pack.c:489 lib/psm.c:1447
 #, c-format
 msgid "Unable to write package: %s\n"
 msgstr ""
 
-#: build/pack.c:499
+#: build/pack.c:504
 #, c-format
 msgid "Unable to open sigtarget %s: %s\n"
 msgstr ""
 
-#: build/pack.c:509
+#: build/pack.c:514
 #, c-format
 msgid "Unable to read header from %s: %s\n"
 msgstr ""
 
-#: build/pack.c:523
+#: build/pack.c:528
 #, c-format
 msgid "Unable to write header to %s: %s\n"
 msgstr ""
 
-#: build/pack.c:533
+#: build/pack.c:538
 #, c-format
 msgid "Unable to read payload from %s: %s\n"
 msgstr ""
 
-#: build/pack.c:539
+#: build/pack.c:544
 #, c-format
 msgid "Unable to write payload to %s: %s\n"
 msgstr ""
 
-#: build/pack.c:566 lib/psm.c:1679
+#: build/pack.c:571 lib/psm.c:1683
 #, c-format
 msgid "Wrote: %s\n"
 msgstr ""
 
-#: build/pack.c:631
+#: build/pack.c:636
 #, c-format
 msgid "Could not generate output filename for package %s: %s\n"
 msgstr ""
 
-#: build/pack.c:648
+#: build/pack.c:653
 #, c-format
 msgid "cannot create %s: %s\n"
 msgstr ""
 
-#: build/parseBuildInstallClean.c:28
+#: build/parseBuildInstallClean.c:30
 #, c-format
 msgid "line %d: second %s\n"
 msgstr ""
@@ -1931,17 +1931,17 @@ msgstr ""
 msgid "line %d: Error parsing %%description: %s\n"
 msgstr ""
 
-#: build/parseDescription.c:52 build/parseFiles.c:47 build/parseScript.c:187
+#: build/parseDescription.c:52 build/parseFiles.c:49 build/parseScript.c:187
 #, c-format
 msgid "line %d: Bad option %s: %s\n"
 msgstr ""
 
-#: build/parseDescription.c:65 build/parseFiles.c:59 build/parseScript.c:199
+#: build/parseDescription.c:65 build/parseFiles.c:61 build/parseScript.c:199
 #, c-format
 msgid "line %d: Too many names: %s\n"
 msgstr ""
 
-#: build/parseDescription.c:75 build/parseFiles.c:68 build/parseScript.c:208
+#: build/parseDescription.c:75 build/parseFiles.c:70 build/parseScript.c:208
 #, c-format
 msgid "line %d: Package does not exist: %s\n"
 msgstr ""
@@ -1951,186 +1951,186 @@ msgstr ""
 msgid "line %d: Second description\n"
 msgstr ""
 
-#: build/parseFiles.c:33
+#: build/parseFiles.c:35
 msgid "line %d: Error parsing %%files: %s\n"
 msgstr ""
 
-#: build/parseFiles.c:75
+#: build/parseFiles.c:77
 msgid "line %d: Second %%files list\n"
 msgstr ""
 
-#: build/parsePreamble.c:211
+#: build/parsePreamble.c:213
 #, c-format
 msgid "Architecture is excluded: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:216
+#: build/parsePreamble.c:218
 #, c-format
 msgid "Architecture is not included: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:221
+#: build/parsePreamble.c:223
 #, c-format
 msgid "OS is excluded: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:226
+#: build/parsePreamble.c:228
 #, c-format
 msgid "OS is not included: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:243
+#: build/parsePreamble.c:245
 #, c-format
 msgid "%s field must be present in package: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:270
+#: build/parsePreamble.c:272
 #, c-format
 msgid "Duplicate %s entries in package: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:324
+#: build/parsePreamble.c:326
 #, c-format
 msgid "Unable to open icon %s: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:342
+#: build/parsePreamble.c:344
 #, c-format
 msgid "Unable to read icon %s: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:355
+#: build/parsePreamble.c:357
 #, c-format
 msgid "Unknown icon type: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:422
+#: build/parsePreamble.c:424
 #, c-format
 msgid "line %d: Malformed tag: %s\n"
 msgstr ""
 
 #. Empty field
-#: build/parsePreamble.c:430
+#: build/parsePreamble.c:432
 #, c-format
 msgid "line %d: Empty tag: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:452 build/parsePreamble.c:459
+#: build/parsePreamble.c:454 build/parsePreamble.c:461
 #, c-format
 msgid "line %d: Illegal char '-' in %s: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:516 build/parseSpec.c:386
+#: build/parsePreamble.c:518 build/parseSpec.c:388
 #, c-format
 msgid "BuildRoot can not be \"/\": %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:529
+#: build/parsePreamble.c:531
 #, c-format
 msgid "line %d: Prefixes must not end with \"/\": %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:541
+#: build/parsePreamble.c:543
 #, c-format
 msgid "line %d: Docdir must begin with '/': %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:553
+#: build/parsePreamble.c:555
 #, c-format
 msgid "line %d: Epoch/Serial field must be a number: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:593 build/parsePreamble.c:604
+#: build/parsePreamble.c:595 build/parsePreamble.c:606
 #, c-format
 msgid "line %d: Bad %s: qualifiers: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:630
+#: build/parsePreamble.c:632
 #, c-format
 msgid "line %d: Bad BuildArchitecture format: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:639
+#: build/parsePreamble.c:641
 #, c-format
 msgid "Internal error: Bogus tag %d\n"
 msgstr ""
 
-#: build/parsePreamble.c:783
+#: build/parsePreamble.c:785
 #, c-format
 msgid "Bad package specification: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:789
+#: build/parsePreamble.c:791
 #, c-format
 msgid "Package already exists: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:815
+#: build/parsePreamble.c:817
 #, c-format
 msgid "line %d: Unknown tag: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:837
+#: build/parsePreamble.c:839
 msgid "Spec file can't use BuildRoot\n"
 msgstr ""
 
-#: build/parsePrep.c:37
+#: build/parsePrep.c:39
 #, c-format
 msgid "Bad source: %s: %s\n"
 msgstr ""
 
-#: build/parsePrep.c:75
+#: build/parsePrep.c:77
 #, c-format
 msgid "No patch number %d\n"
 msgstr ""
 
-#: build/parsePrep.c:165
+#: build/parsePrep.c:167
 #, c-format
 msgid "No source number %d\n"
 msgstr ""
 
-#: build/parsePrep.c:185
+#: build/parsePrep.c:187
 #, c-format
 msgid "Couldn't download nosource %s: %s\n"
 msgstr ""
 
-#: build/parsePrep.c:279
+#: build/parsePrep.c:281
 msgid "Error parsing %%setup: %s\n"
 msgstr ""
 
-#: build/parsePrep.c:294
+#: build/parsePrep.c:296
 msgid "line %d: Bad arg to %%setup %c: %s\n"
 msgstr ""
 
-#: build/parsePrep.c:312
+#: build/parsePrep.c:314
 msgid "line %d: Bad %%setup option %s: %s\n"
 msgstr ""
 
-#: build/parsePrep.c:446
+#: build/parsePrep.c:448
 msgid "line %d: Need arg to %%patch -b: %s\n"
 msgstr ""
 
-#: build/parsePrep.c:455
+#: build/parsePrep.c:457
 msgid "line %d: Need arg to %%patch -z: %s\n"
 msgstr ""
 
-#: build/parsePrep.c:467
+#: build/parsePrep.c:469
 msgid "line %d: Need arg to %%patch -p: %s\n"
 msgstr ""
 
-#: build/parsePrep.c:474
+#: build/parsePrep.c:476
 msgid "line %d: Bad arg to %%patch -p: %s\n"
 msgstr ""
 
-#: build/parsePrep.c:481
+#: build/parsePrep.c:483
 msgid "Too many patches!\n"
 msgstr ""
 
-#: build/parsePrep.c:485
+#: build/parsePrep.c:487
 msgid "line %d: Bad arg to %%patch: %s\n"
 msgstr ""
 
-#: build/parsePrep.c:521
+#: build/parsePrep.c:523
 msgid "line %d: second %%prep\n"
 msgstr ""
 
@@ -2175,57 +2175,57 @@ msgstr ""
 msgid "line %d: Second %s\n"
 msgstr ""
 
-#: build/parseSpec.c:136
+#: build/parseSpec.c:138
 #, c-format
 msgid "line %d: %s\n"
 msgstr ""
 
 #. XXX Fstrerror
-#: build/parseSpec.c:185
+#: build/parseSpec.c:187
 #, c-format
 msgid "Unable to open %s: %s\n"
 msgstr ""
 
-#: build/parseSpec.c:197
+#: build/parseSpec.c:199
 msgid "Unclosed %%if\n"
 msgstr ""
 
-#: build/parseSpec.c:269
+#: build/parseSpec.c:271
 #, c-format
 msgid "%s:%d: parseExpressionBoolean returns %d\n"
 msgstr ""
 
-#: build/parseSpec.c:278
+#: build/parseSpec.c:280
 msgid "%s:%d: Got a %%else with no %%if\n"
 msgstr ""
 
-#: build/parseSpec.c:290
+#: build/parseSpec.c:292
 msgid "%s:%d: Got a %%endif with no %%if\n"
 msgstr ""
 
-#: build/parseSpec.c:304 build/parseSpec.c:313
+#: build/parseSpec.c:306 build/parseSpec.c:315
 msgid "malformed %%include statement\n"
 msgstr ""
 
-#: build/parseSpec.c:493
+#: build/parseSpec.c:495
 msgid "No buildable architectures\n"
 msgstr ""
 
-#: build/parseSpec.c:548
+#: build/parseSpec.c:550
 msgid "Package has no %%description: %s\n"
 msgstr ""
 
-#: build/spec.c:216
+#: build/spec.c:218
 #, c-format
 msgid "line %d: Bad number: %s\n"
 msgstr ""
 
-#: build/spec.c:222
+#: build/spec.c:224
 #, c-format
 msgid "line %d: Bad no%s number: %d\n"
 msgstr ""
 
-#: build/spec.c:280
+#: build/spec.c:282
 #, c-format
 msgid "line %d: Bad %s number: %s\n"
 msgstr ""
@@ -2479,7 +2479,7 @@ msgid ""
 msgstr ""
 
 #: lib/formats.c:86 lib/formats.c:112 lib/formats.c:141 lib/formats.c:182
-#: lib/header.c:2596 lib/header.c:2613 lib/header.c:2633
+#: lib/header.c:2597 lib/header.c:2614 lib/header.c:2634
 msgid "(not a number)"
 msgstr ""
 
@@ -2556,88 +2556,88 @@ msgstr ""
 msgid "dataLength() RPM_STRING_TYPE count must be 1.\n"
 msgstr ""
 
-#: lib/header.c:207 lib/header.c:1081 lib/psm.c:373
+#: lib/header.c:207 lib/header.c:1082 lib/psm.c:377
 #, c-format
 msgid "Data type %d not supported\n"
 msgstr ""
 
-#: lib/header.c:1504
+#: lib/header.c:1505
 #, c-format
 msgid "Bad count for headerAddEntry(): %d\n"
 msgstr ""
 
 #. @-observertrans@
-#: lib/header.c:1949
+#: lib/header.c:1950
 #, c-format
 msgid "missing { after %"
 msgstr ""
 
 #. @-observertrans@
-#: lib/header.c:1979
+#: lib/header.c:1980
 msgid "missing } after %{"
 msgstr ""
 
 #. @-observertrans@
-#: lib/header.c:1993
+#: lib/header.c:1994
 msgid "empty tag format"
 msgstr ""
 
 #. @-observertrans@
-#: lib/header.c:2005
+#: lib/header.c:2006
 msgid "empty tag name"
 msgstr ""
 
 #. @-observertrans@
-#: lib/header.c:2022
+#: lib/header.c:2023
 msgid "unknown tag"
 msgstr ""
 
 #. @-observertrans@
-#: lib/header.c:2049
+#: lib/header.c:2050
 msgid "] expected at end of array"
 msgstr ""
 
 #. @-observertrans@
-#: lib/header.c:2067
+#: lib/header.c:2068
 msgid "unexpected ]"
 msgstr ""
 
 #. @-observertrans@
-#: lib/header.c:2071
+#: lib/header.c:2072
 msgid "unexpected }"
 msgstr ""
 
 #. @-observertrans@
-#: lib/header.c:2131
+#: lib/header.c:2132
 msgid "? expected in expression"
 msgstr ""
 
 #. @-observertrans@
-#: lib/header.c:2140
+#: lib/header.c:2141
 msgid "{ expected after ? in expression"
 msgstr ""
 
 #. @-observertrans@
-#: lib/header.c:2153 lib/header.c:2194
+#: lib/header.c:2154 lib/header.c:2195
 msgid "} expected in expression"
 msgstr ""
 
 #. @-observertrans@
-#: lib/header.c:2163
+#: lib/header.c:2164
 msgid ": expected following ? subexpression"
 msgstr ""
 
 #. @-observertrans@
-#: lib/header.c:2179
+#: lib/header.c:2180
 msgid "{ expected after : in expression"
 msgstr ""
 
 #. @-observertrans@
-#: lib/header.c:2204
+#: lib/header.c:2205
 msgid "| expected at end of expression"
 msgstr ""
 
-#: lib/header.c:2375
+#: lib/header.c:2376
 msgid "(unknown type)"
 msgstr ""
 
@@ -2655,127 +2655,127 @@ msgid ""
 "only packaging with major numbers <= 4 is supported by this version of RPM\n"
 msgstr ""
 
-#: lib/poptBT.c:95
+#: lib/poptBT.c:98
 #, c-format
 msgid "buildroot already specified, ignoring %s\n"
 msgstr ""
 
-#: lib/poptBT.c:120
+#: lib/poptBT.c:124
 #, c-format
 msgid "build through %prep (unpack sources and apply patches) from <specfile>"
 msgstr ""
 
-#: lib/poptBT.c:121 lib/poptBT.c:124 lib/poptBT.c:127 lib/poptBT.c:130
-#: lib/poptBT.c:133 lib/poptBT.c:136 lib/poptBT.c:139
+#: lib/poptBT.c:125 lib/poptBT.c:128 lib/poptBT.c:131 lib/poptBT.c:134
+#: lib/poptBT.c:137 lib/poptBT.c:140 lib/poptBT.c:143
 msgid "<specfile>"
 msgstr ""
 
-#: lib/poptBT.c:123
+#: lib/poptBT.c:127
 msgid "build through %build (%prep, then compile) from <specfile>"
 msgstr ""
 
-#: lib/poptBT.c:126
+#: lib/poptBT.c:130
 msgid "build through %install (%prep, %build, then install) from <specfile>"
 msgstr ""
 
-#: lib/poptBT.c:129
+#: lib/poptBT.c:133
 #, c-format
 msgid "verify %files section from <specfile>"
 msgstr ""
 
-#: lib/poptBT.c:132
+#: lib/poptBT.c:136
 msgid "build source and binary packages from <specfile>"
 msgstr ""
 
-#: lib/poptBT.c:135
+#: lib/poptBT.c:139
 msgid "build binary package only from <specfile>"
 msgstr ""
 
-#: lib/poptBT.c:138
+#: lib/poptBT.c:142
 msgid "build source package only from <specfile>"
 msgstr ""
 
-#: lib/poptBT.c:142
+#: lib/poptBT.c:146
 #, c-format
 msgid "build through %prep (unpack sources and apply patches) from <tarball>"
 msgstr ""
 
-#: lib/poptBT.c:143 lib/poptBT.c:146 lib/poptBT.c:149 lib/poptBT.c:152
-#: lib/poptBT.c:155 lib/poptBT.c:158 lib/poptBT.c:161
+#: lib/poptBT.c:147 lib/poptBT.c:150 lib/poptBT.c:153 lib/poptBT.c:156
+#: lib/poptBT.c:159 lib/poptBT.c:162 lib/poptBT.c:165
 msgid "<tarball>"
 msgstr ""
 
-#: lib/poptBT.c:145
+#: lib/poptBT.c:149
 msgid "build through %build (%prep, then compile) from <tarball>"
 msgstr ""
 
-#: lib/poptBT.c:148
+#: lib/poptBT.c:152
 msgid "build through %install (%prep, %build, then install) from <tarball>"
 msgstr ""
 
-#: lib/poptBT.c:151
+#: lib/poptBT.c:155
 #, c-format
 msgid "verify %files section from <tarball>"
 msgstr ""
 
-#: lib/poptBT.c:154
+#: lib/poptBT.c:158
 msgid "build source and binary packages from <tarball>"
 msgstr ""
 
-#: lib/poptBT.c:157
+#: lib/poptBT.c:161
 msgid "build binary package only from <tarball>"
 msgstr ""
 
-#: lib/poptBT.c:160
+#: lib/poptBT.c:164
 msgid "build source package only from <tarball>"
 msgstr ""
 
-#: lib/poptBT.c:164
+#: lib/poptBT.c:168
 msgid "build binary package from <source package>"
 msgstr ""
 
-#: lib/poptBT.c:165 lib/poptBT.c:168
+#: lib/poptBT.c:169 lib/poptBT.c:172
 msgid "<source package>"
 msgstr ""
 
-#: lib/poptBT.c:167
+#: lib/poptBT.c:171
 msgid ""
 "build through %install (%prep, %build, then install) from <source package>"
 msgstr ""
 
-#: lib/poptBT.c:171
+#: lib/poptBT.c:175
 msgid "override build root"
 msgstr ""
 
-#: lib/poptBT.c:177
+#: lib/poptBT.c:181
 msgid "ignore ExcludeArch: directives from spec file"
 msgstr ""
 
-#: lib/poptBT.c:179
+#: lib/poptBT.c:183
 msgid "debug file state machine"
 msgstr ""
 
-#: lib/poptBT.c:181
+#: lib/poptBT.c:185
 msgid "do not execute any stages of the build"
 msgstr ""
 
-#: lib/poptBT.c:185
+#: lib/poptBT.c:189
 msgid "generate package header(s) compatible with (legacy) rpm[23] packaging"
 msgstr ""
 
-#: lib/poptBT.c:188
+#: lib/poptBT.c:192
 msgid "do not accept i18N msgstr's from specfile"
 msgstr ""
 
-#: lib/poptBT.c:192
+#: lib/poptBT.c:196
 msgid "remove specfile when done"
 msgstr ""
 
-#: lib/poptBT.c:198
+#: lib/poptBT.c:202
 msgid "override target platform"
 msgstr ""
 
-#: lib/poptBT.c:200
+#: lib/poptBT.c:204
 msgid "lookup i18N strings in specfile catalog"
 msgstr ""
 
@@ -2924,186 +2924,186 @@ msgstr ""
 msgid "unknown error %d encountered while manipulating package %s"
 msgstr ""
 
-#: lib/psm.c:560
+#: lib/psm.c:564
 #, c-format
 msgid "cannot create %s %s\n"
 msgstr ""
 
-#: lib/psm.c:566
+#: lib/psm.c:570
 #, c-format
 msgid "cannot write to %s\n"
 msgstr ""
 
-#: lib/psm.c:600
+#: lib/psm.c:604
 msgid "source package expected, binary found\n"
 msgstr ""
 
-#: lib/psm.c:702
+#: lib/psm.c:706
 msgid "source package contains no .spec file\n"
 msgstr ""
 
-#: lib/psm.c:950
+#: lib/psm.c:954
 #, c-format
 msgid "execution of %s scriptlet from %s-%s-%s failed, waitpid returned %s\n"
 msgstr ""
 
-#: lib/psm.c:957
+#: lib/psm.c:961
 #, c-format
 msgid "execution of %s scriptlet from %s-%s-%s failed, exit status %d\n"
 msgstr ""
 
-#: lib/psm.c:1261
+#: lib/psm.c:1265
 #, c-format
 msgid "%s: %s-%s-%s has %d files, test = %d\n"
 msgstr ""
 
-#: lib/psm.c:1374
+#: lib/psm.c:1378
 #, c-format
 msgid "%s: %s scriptlet failed (%d), skipping %s-%s-%s\n"
 msgstr ""
 
-#: lib/psm.c:1480
+#: lib/psm.c:1484
 #, c-format
 msgid "user %s does not exist - using root\n"
 msgstr ""
 
-#: lib/psm.c:1489
+#: lib/psm.c:1493
 #, c-format
 msgid "group %s does not exist - using root\n"
 msgstr ""
 
-#: lib/psm.c:1518
+#: lib/psm.c:1522
 #, c-format
 msgid "unpacking of archive failed%s%s: %s\n"
 msgstr ""
 
-#: lib/psm.c:1519
+#: lib/psm.c:1523
 msgid " on file "
 msgstr ""
 
-#: lib/psm.c:1770
+#: lib/psm.c:1774
 #, c-format
 msgid "%s: running %s script(s) (if any)\n"
 msgstr ""
 
-#: lib/query.c:161
+#: lib/query.c:167
 #, c-format
 msgid "incorrect format: %s\n"
 msgstr ""
 
-#: lib/query.c:243
+#: lib/query.c:251
 msgid "(contains no files)"
 msgstr ""
 
-#: lib/query.c:294
+#: lib/query.c:302
 msgid "normal        "
 msgstr ""
 
-#: lib/query.c:296
+#: lib/query.c:304
 msgid "replaced      "
 msgstr ""
 
-#: lib/query.c:298
+#: lib/query.c:306
 msgid "not installed "
 msgstr ""
 
-#: lib/query.c:300
+#: lib/query.c:308
 msgid "net shared    "
 msgstr ""
 
-#: lib/query.c:302
+#: lib/query.c:310
 #, c-format
 msgid "(unknown %3d) "
 msgstr ""
 
-#: lib/query.c:307
+#: lib/query.c:315
 msgid "(no state)    "
 msgstr ""
 
-#: lib/query.c:326 lib/query.c:371
+#: lib/query.c:334 lib/query.c:379
 msgid "package has neither file owner or id lists\n"
 msgstr ""
 
-#: lib/query.c:428
+#: lib/query.c:438
 #, c-format
 msgid "can't query %s: %s\n"
 msgstr ""
 
 #. XXX Fstrerror
-#: lib/query.c:545
+#: lib/query.c:555
 #, c-format
 msgid "open of %s failed: %s\n"
 msgstr ""
 
-#: lib/query.c:566
+#: lib/query.c:576
 msgid "old format source packages cannot be queried\n"
 msgstr ""
 
-#: lib/query.c:575 lib/rpminstall.c:319
+#: lib/query.c:585 lib/rpminstall.c:320
 #, c-format
 msgid "%s does not appear to be a RPM package\n"
 msgstr ""
 
-#: lib/query.c:580
+#: lib/query.c:590
 #, c-format
 msgid "query of %s failed\n"
 msgstr ""
 
-#: lib/query.c:614
+#: lib/query.c:624
 #, c-format
 msgid "query of specfile %s failed, can't parse\n"
 msgstr ""
 
-#: lib/query.c:637
+#: lib/query.c:647
 msgid "no packages\n"
 msgstr ""
 
-#: lib/query.c:648
+#: lib/query.c:658
 #, c-format
 msgid "group %s does not contain any packages\n"
 msgstr ""
 
-#: lib/query.c:658
+#: lib/query.c:668
 #, c-format
 msgid "no package triggers %s\n"
 msgstr ""
 
-#: lib/query.c:668
+#: lib/query.c:678
 #, c-format
 msgid "no package requires %s\n"
 msgstr ""
 
-#: lib/query.c:679
+#: lib/query.c:689
 #, c-format
 msgid "no package provides %s\n"
 msgstr ""
 
-#: lib/query.c:710
+#: lib/query.c:720
 #, c-format
 msgid "file %s: %s\n"
 msgstr ""
 
-#: lib/query.c:714
+#: lib/query.c:724
 #, c-format
 msgid "file %s is not owned by any package\n"
 msgstr ""
 
-#: lib/query.c:740
+#: lib/query.c:750
 #, c-format
 msgid "invalid package number: %s\n"
 msgstr ""
 
-#: lib/query.c:743
+#: lib/query.c:753
 #, c-format
 msgid "package record number: %u\n"
 msgstr ""
 
-#: lib/query.c:748
+#: lib/query.c:758
 #, c-format
 msgid "record %d could not be read\n"
 msgstr ""
 
-#: lib/query.c:759 lib/rpminstall.c:565
+#: lib/query.c:769 lib/rpminstall.c:566
 #, c-format
 msgid "package %s is not installed\n"
 msgstr ""
@@ -3339,117 +3339,117 @@ msgstr ""
 msgid "failed to remove directory %s: %s\n"
 msgstr ""
 
-#: lib/rpminstall.c:148
+#: lib/rpminstall.c:149
 msgid "Preparing..."
 msgstr ""
 
-#: lib/rpminstall.c:150
+#: lib/rpminstall.c:151
 msgid "Preparing packages for installation..."
 msgstr ""
 
-#: lib/rpminstall.c:209
+#: lib/rpminstall.c:210
 msgid "counting packages to install\n"
 msgstr ""
 
-#: lib/rpminstall.c:213
+#: lib/rpminstall.c:214
 #, c-format
 msgid "found %d packages\n"
 msgstr ""
 
-#: lib/rpminstall.c:218
+#: lib/rpminstall.c:219
 msgid "looking for packages to download\n"
 msgstr ""
 
-#: lib/rpminstall.c:233
+#: lib/rpminstall.c:234
 #, c-format
 msgid "skipping %s - rpmGlob failed(%d)\n"
 msgstr ""
 
-#: lib/rpminstall.c:248
+#: lib/rpminstall.c:249
 #, c-format
 msgid "Retrieving %s\n"
 msgstr ""
 
 #. XXX undefined %{name}/%{version}/%{release} here
 #. XXX %{_tmpdir} does not exist
-#: lib/rpminstall.c:258
+#: lib/rpminstall.c:259
 #, c-format
 msgid " ... as %s\n"
 msgstr ""
 
-#: lib/rpminstall.c:262
+#: lib/rpminstall.c:263
 #, c-format
 msgid "skipping %s - transfer failed - %s\n"
 msgstr ""
 
-#: lib/rpminstall.c:289
+#: lib/rpminstall.c:290
 #, c-format
 msgid "retrieved %d packages\n"
 msgstr ""
 
-#: lib/rpminstall.c:305 lib/rpminstall.c:486
+#: lib/rpminstall.c:306 lib/rpminstall.c:487
 #, c-format
 msgid "cannot open file %s: %s\n"
 msgstr ""
 
-#: lib/rpminstall.c:327 lib/rpminstall.c:633
+#: lib/rpminstall.c:328 lib/rpminstall.c:634
 #, c-format
 msgid "%s cannot be installed\n"
 msgstr ""
 
-#: lib/rpminstall.c:343
+#: lib/rpminstall.c:344
 #, c-format
 msgid "cannot open Packages database in %s\n"
 msgstr ""
 
-#: lib/rpminstall.c:365
+#: lib/rpminstall.c:366
 #, c-format
 msgid "package %s is not relocateable\n"
 msgstr ""
 
-#: lib/rpminstall.c:410
+#: lib/rpminstall.c:411
 #, c-format
 msgid "error reading from file %s\n"
 msgstr ""
 
-#: lib/rpminstall.c:415
+#: lib/rpminstall.c:416
 #, c-format
 msgid "file %s requires a newer version of RPM\n"
 msgstr ""
 
-#: lib/rpminstall.c:432
+#: lib/rpminstall.c:433
 #, c-format
 msgid "found %d source and %d binary packages\n"
 msgstr ""
 
-#: lib/rpminstall.c:445
+#: lib/rpminstall.c:446
 msgid "failed dependencies:\n"
 msgstr ""
 
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:467
 msgid "installing binary packages\n"
 msgstr ""
 
-#: lib/rpminstall.c:552
+#: lib/rpminstall.c:553
 #, c-format
 msgid "cannot open %s/packages.rpm\n"
 msgstr ""
 
-#: lib/rpminstall.c:568
+#: lib/rpminstall.c:569
 #, c-format
 msgid "\"%s\" specifies multiple packages\n"
 msgstr ""
 
-#: lib/rpminstall.c:591
+#: lib/rpminstall.c:592
 msgid "removing these packages would break dependencies:\n"
 msgstr ""
 
-#: lib/rpminstall.c:620
+#: lib/rpminstall.c:621
 #, c-format
 msgid "cannot open %s: %s\n"
 msgstr ""
 
-#: lib/rpminstall.c:626
+#: lib/rpminstall.c:627
 #, c-format
 msgid "Installing %s\n"
 msgstr ""
@@ -3459,98 +3459,98 @@ msgstr ""
 msgid "read failed: %s (%d)\n"
 msgstr ""
 
-#: lib/rpmrc.c:150
+#: lib/rpmrc.c:152
 #, c-format
 msgid "missing second ':' at %s:%d\n"
 msgstr ""
 
-#: lib/rpmrc.c:153
+#: lib/rpmrc.c:155
 #, c-format
 msgid "missing architecture name at %s:%d\n"
 msgstr ""
 
-#: lib/rpmrc.c:305
+#: lib/rpmrc.c:307
 #, c-format
 msgid "Incomplete data line at %s:%d\n"
 msgstr ""
 
-#: lib/rpmrc.c:310
+#: lib/rpmrc.c:312
 #, c-format
 msgid "Too many args in data line at %s:%d\n"
 msgstr ""
 
-#: lib/rpmrc.c:317
+#: lib/rpmrc.c:319
 #, c-format
 msgid "Bad arch/os number: %s (%s:%d)\n"
 msgstr ""
 
-#: lib/rpmrc.c:352
+#: lib/rpmrc.c:354
 #, c-format
 msgid "Incomplete default line at %s:%d\n"
 msgstr ""
 
-#: lib/rpmrc.c:357
+#: lib/rpmrc.c:359
 #, c-format
 msgid "Too many args in default line at %s:%d\n"
 msgstr ""
 
-#: lib/rpmrc.c:547
+#: lib/rpmrc.c:549
 #, c-format
 msgid "Cannot expand %s\n"
 msgstr ""
 
-#: lib/rpmrc.c:552
+#: lib/rpmrc.c:554
 #, c-format
 msgid "Cannot read %s, HOME is too large.\n"
 msgstr ""
 
-#: lib/rpmrc.c:569
+#: lib/rpmrc.c:571
 #, c-format
 msgid "Unable to open %s for reading: %s.\n"
 msgstr ""
 
 #. XXX Feof(fd)
-#: lib/rpmrc.c:614
+#: lib/rpmrc.c:616
 #, c-format
 msgid "Failed to read %s: %s.\n"
 msgstr ""
 
-#: lib/rpmrc.c:651
+#: lib/rpmrc.c:653
 #, c-format
 msgid "missing ':' (found 0x%02x) at %s:%d\n"
 msgstr ""
 
-#: lib/rpmrc.c:668 lib/rpmrc.c:742
+#: lib/rpmrc.c:670 lib/rpmrc.c:744
 #, c-format
 msgid "missing argument for %s at %s:%d\n"
 msgstr ""
 
-#: lib/rpmrc.c:685 lib/rpmrc.c:707
+#: lib/rpmrc.c:687 lib/rpmrc.c:709
 #, c-format
 msgid "%s expansion failed at %s:%d \"%s\"\n"
 msgstr ""
 
-#: lib/rpmrc.c:694
+#: lib/rpmrc.c:696
 #, c-format
 msgid "cannot open %s at %s:%d: %s\n"
 msgstr ""
 
-#: lib/rpmrc.c:734
+#: lib/rpmrc.c:736
 #, c-format
 msgid "missing architecture for %s at %s:%d\n"
 msgstr ""
 
-#: lib/rpmrc.c:801
+#: lib/rpmrc.c:803
 #, c-format
 msgid "bad option '%s' at %s:%d\n"
 msgstr ""
 
-#: lib/rpmrc.c:1321
+#: lib/rpmrc.c:1323
 #, c-format
 msgid "Unknown system: %s\n"
 msgstr ""
 
-#: lib/rpmrc.c:1322
+#: lib/rpmrc.c:1324
 msgid "Please contact rpm-list@redhat.com\n"
 msgstr ""
 
@@ -3716,28 +3716,28 @@ msgstr ""
 msgid "%s skipped due to missingok flag\n"
 msgstr ""
 
-#: lib/verify.c:57
+#: lib/verify.c:61
 msgid "don't verify files in package"
 msgstr ""
 
-#: lib/verify.c:63
+#: lib/verify.c:67
 msgid "do not execute %verifyscript (if any)"
 msgstr ""
 
-#: lib/verify.c:249
+#: lib/verify.c:253
 msgid "package lacks both user name and id lists (this should never happen)\n"
 msgstr ""
 
-#: lib/verify.c:267
+#: lib/verify.c:271
 msgid "package lacks both group name and id lists (this should never happen)\n"
 msgstr ""
 
-#: lib/verify.c:340
+#: lib/verify.c:344
 #, c-format
 msgid "missing    %s"
 msgstr ""
 
-#: lib/verify.c:421
+#: lib/verify.c:425
 #, c-format
 msgid "Unsatisfied dependencies for %s-%s-%s: "
 msgstr ""
@@ -3824,59 +3824,59 @@ msgstr ""
 msgid "File %s is smaller than %u bytes\n"
 msgstr ""
 
-#: rpmio/rpmio.c:534
+#: rpmio/rpmio.c:535
 msgid "Success"
 msgstr ""
 
-#: rpmio/rpmio.c:537
+#: rpmio/rpmio.c:538
 msgid "Bad server response"
 msgstr ""
 
-#: rpmio/rpmio.c:540
+#: rpmio/rpmio.c:541
 msgid "Server I/O error"
 msgstr ""
 
-#: rpmio/rpmio.c:543
+#: rpmio/rpmio.c:544
 msgid "Server timeout"
 msgstr ""
 
-#: rpmio/rpmio.c:546
+#: rpmio/rpmio.c:547
 msgid "Unable to lookup server host address"
 msgstr ""
 
-#: rpmio/rpmio.c:549
+#: rpmio/rpmio.c:550
 msgid "Unable to lookup server host name"
 msgstr ""
 
-#: rpmio/rpmio.c:552
+#: rpmio/rpmio.c:553
 msgid "Failed to connect to server"
 msgstr ""
 
-#: rpmio/rpmio.c:555
+#: rpmio/rpmio.c:556
 msgid "Failed to establish data connection to server"
 msgstr ""
 
-#: rpmio/rpmio.c:558
+#: rpmio/rpmio.c:559
 msgid "I/O error to local file"
 msgstr ""
 
-#: rpmio/rpmio.c:561
+#: rpmio/rpmio.c:562
 msgid "Error setting remote server to passive mode"
 msgstr ""
 
-#: rpmio/rpmio.c:564
+#: rpmio/rpmio.c:565
 msgid "File not found on server"
 msgstr ""
 
-#: rpmio/rpmio.c:567
+#: rpmio/rpmio.c:568
 msgid "Abort in progress"
 msgstr ""
 
-#: rpmio/rpmio.c:571
+#: rpmio/rpmio.c:572
 msgid "Unknown or unexpected error"
 msgstr ""
 
-#: rpmio/rpmio.c:1166
+#: rpmio/rpmio.c:1167
 #, c-format
 msgid "logging into %s as %s, pw %s\n"
 msgstr ""
index 59dff83..d7edec9 100644 (file)
@@ -65,7 +65,8 @@ static int inet_aton(const char *cp, struct in_addr *inp)
 
 #include "debug.h"
 
-/*@access urlinfo@*/
+/*@access urlinfo @*/
+/*@access FDSTAT_t @*/
 
 #define FDNREFS(fd)    (fd ? ((FD_t)fd)->nrefs : -9)
 #define FDTO(fd)       (fd ? ((FD_t)fd)->rd_timeoutsecs : -99)
index f0d9146..20cb177 100644 (file)
@@ -21,9 +21,9 @@
 #define        rpmSetVerbosity(_lvl)   \
        ((void)rpmlogSetMask( RPMLOG_UPTO( RPMLOG_PRI(_lvl))))
 #define        rpmIncreaseVerbosity()  \
-       ((void)rpmlogSetMask((((rpmlogSetMask(0) & 0xff) << 1) | 1)))
+    ((void)rpmlogSetMask(((((unsigned)(rpmlogSetMask(0) & 0xff)) << 1) | 1)))
 #define        rpmDecreaseVerbosity()  \
-       ((void)rpmlogSetMask(((rpmlogSetMask(0) & 0xff) >> 1)))
+       ((void)rpmlogSetMask((((int)(rpmlogSetMask(0) & 0xff)) >> 1)))
 #define        rpmIsNormal()           \
        (rpmlogSetMask(0) >= RPMLOG_MASK( RPMMESS_NORMAL ))
 #define        rpmIsVerbose()          \