1
2RPMINSPECT(1)                       Red Hat                      RPMINSPECT(1)
3
4
5

NAME

7       rpminspect - compare package builds
8

SYNOPSIS

10       rpminspect [ OPTIONS ] before_build [ after_build ]
11

DESCRIPTION

13       rpminspect  is a tool designed to help developers maintain build policy
14       compliance and consistency among releases.  The  tool  is  intended  to
15       provide output alerting the developer to any changes in the built pack‐
16       ages that significantly differ from a previous built;  the  implication
17       being the previous build has already been made available to users.
18
19       rpminspect  originated  at  Red  Hat as an auditing tool used by the QA
20       department to ensure builds complied with  certain  release  rules  and
21       policies.   Over time it grew to incorporate other checks, such as mak‐
22       ing sure debugging symbols are accurate.  Users are encourage  to  con‐
23       tribute tests for new functionality as well as bug fixes.
24
25       The  software  is  made  available  as this command line program and an
26       accompanying library.  This is intentional.   Our  findings  over  time
27       have  shown  that  simple tools with a flexible design are more easy to
28       integrate in to continuous integration  systems.   The  library  allows
29       development  of  other  frontends  should  anyone ever be interested in
30       that.  The thought is that most developers will  interact  with  rpmin‐
31       spect  through the command line.  Everything about an rpminspect run is
32       configurable at runtime through command line options as well as a  con‐
33       figuration  file.   The command line options override the configuration
34       file which overrides the compiled in defaults.
35

OPTIONS

37       -c FILE, --config=FILE
38              Configuration  file  to  use  (default:   /etc/rpminspect/rpmin‐
39              spect.conf)
40
41       -r STR, --release=STR
42              String  identifying  the product release for the specified build
43              or builds.  Normally rpminspect will determine this  by  looking
44              for  a "dist tag" at the end of the NVR.  For build comparisons,
45              the determined product releases must match in order  for  rpmin‐
46              spect to continue.  If you want to compare builds from different
47              products, you will need to specify a product  release  manually.
48              You  will also need to specify the product release if the builds
49              you are comparing lack any kind of product release identifier at
50              the end of the NVR.
51
52       -T LIST, --tests=LIST
53              If  specified,  this option assumes all inspections are disabled
54              except the names of the  ones  you  specify  with  this  option.
55              Specify  a  comma-separated list of inspections to run (default:
56              ALL).  The names of available inspections can be found with  the
57              -l  option.  You can also specify the name ALL to explicitly say
58              run all inspections.  NOTE:  This option is  mutually  exclusive
59              with the -E option.
60
61       -E LIST, --exclude=LIST
62              If  specified,  this  option assumes all inspections are enabled
63              except the names of the  ones  you  specify  with  this  option.
64              Specify  a comma-separated list of inspections to skip (default:
65              none).  The names of available inspections can be found with the
66              -l  option.  You can also specify the name ALL to explicitly say
67              skip all inspections, though that makes the program do  nothing.
68              NOTE:  This option is mutually exclusive with the -T option.
69
70       -l, --list
71              List available output formats and inspections
72
73       -a LIST, --arches=LIST
74              Comma-separated  list  of  architectures to inspect packages on.
75              By default rpminspect will gather  all  available  architectures
76              for  the  builds you specify, but you may want to restrict a run
77              to just x86_64 or just aarch64.   You  can  do  that  with  this
78              option.   If  you do specify this option, be sure to include the
79              'src' architecture to inspect source  packages.   The  architec‐
80              tures  you  list here are validated against the available archi‐
81              tectures in the Koji hub and any invalid  ones  will  report  an
82              error.
83
84       -o FILE, --output=FILE
85              Write  the results to the name output file.  By default, results
86              go to stdout.
87
88       -F TYPE, --format=TYPE
89              Write the inspection results in the TYPE  format.   The  default
90              format  is  text.   Available  formats  can  be seen with the -l
91              option.
92
93       -w PATH, --workdir=PATH
94              Temporary working directory  to  use  (default:  /var/tmp/rpmin‐
95              spect).  You can specify a tilde (~) character in the PATH spec‐
96              ification and rpminspect will expand it.  Keep in mind that  the
97              PATH  you  specify  with  ~ must exist in order for expansion to
98              work.
99
100       -f, --fetch-only
101              Only download builds, do not perform  any  inspections  (implies
102              -k).  This option is intended as a convenience for developers as
103              well as for easier integration in to different CI workflows.
104
105       -k, --keep
106              Do not remove temporary working files before exit
107
108       -v, --verbose
109              Verbose inspection output.  By default, only warnings  or  fail‐
110              ures  are  reported.   This  option  also displays informational
111              findings.
112
113       -?, --help
114              Display usage information
115
116       -V, --version
117              Display version information
118

USAGE

120       rpminspect requires very little to run.  Assuming you meet the  runtime
121       requirements  to  either  build  the  software  from source or you have
122       installed it on your operating system, you are ready to  use  it.   The
123       only required argument is a build, which we will call the before_build.
124       It is possible to run rpminspect against a single build and perform the
125       policy checks against the packages in it.  If two builds are specified,
126       the policy checks are performed, but the builds are also compared.
127
128       Use the -l option to  list  available  inspections.   By  default,  all
129       inspections  will  be run.  You can restrict the program to a subset of
130       inspections by listing their short names and separating them with  com‐
131       mas  (no  spaces).   Or you can list inspections to skip by listing the
132       short name prefixed with a `!' in the same comma-delimited list.
133
134       Builds are specified using koji syntax.  The common method is the  NVR,
135       or name, version, and release of a package with hyphens separating each
136       part.  But you can also supply any valid koji  build  identifier.   For
137       example, you can use the koji build ID number.  For more information on
138       koji build specification, please see the koji documentation.
139
140       Lastly, builds may be local to the system you are using.  If you  spec‐
141       ify a directory tree containing the output of a properly structure koji
142       build, rpminspect can use that directly.  This may be useful for multi‐
143       ple  runs of rpminspect against a specific previous build where you are
144       trying to fix something in a new build compared against the old one.
145
146       Examples:
147
148              rpminspect -T ALL -k zlib-1.2.7-1.fc29 zlib-1.2.7-2.fc29
149
150              rpminspect      -T      license,elfsyms       perl-5.28.0-47.fc6
151              perl-5.28.1-1.fc6
152
153              rpminspect -T !manpage x3270-3.6ga5-6.fc31 x3270-3.6ga6-1.fc31
154
155              rpminspect -T ALL -a ppc64le zsh-5.7.1-3.fc31 zsh-5.7.1-4.fc31
156
157              rpminspect    -E    disttag    -a    ppc64le    zsh-5.7.1-3.fc31
158              zsh-5.7.1-4.fc31
159
160       The end result of running rpminspect is a  report  on  standard  output
161       explaining what was found.  Descriptions of actions developers can take
162       are provided in the findings.
163

SEE ALSO

165       rpm(8)
166

AUTHOR

168       David Cantrell <dcantrell@redhat.com>
169
170
171
172rpminspect                       February 2019                   RPMINSPECT(1)
Impressum