Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 2269bb274471fd2722517c2c0b740d7f > files > 290

rpm-devel-4.0.4-19mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>rpmqv.c Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.17 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>rpmqv.c</h1><a href="rpmqv_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="preprocessor">#include "<a class="code" href="system_8h.html">system.h</a>"</span>
00002 
<a name="l00003"></a><a class="code" href="rpmqv_8c.html#a0">00003</a> <span class="preprocessor">#define _AUTOHELP</span>
00004 <span class="preprocessor"></span>
00005 <span class="preprocessor">#if defined(IAM_RPM) || defined(__LCLINT__)</span>
00006 <span class="preprocessor"></span><span class="preprocessor">#define IAM_RPMBT</span>
00007 <span class="preprocessor"></span><span class="preprocessor">#define IAM_RPMDB</span>
00008 <span class="preprocessor"></span><span class="preprocessor">#define IAM_RPMEIU</span>
00009 <span class="preprocessor"></span><span class="preprocessor">#define IAM_RPMQV</span>
00010 <span class="preprocessor"></span><span class="preprocessor">#define IAM_RPMK</span>
00011 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00012 <span class="preprocessor"></span>
00013 <span class="preprocessor">#include &lt;<a class="code" href="rpmcli_8h.html">rpmcli.h</a>&gt;</span>
00014 <span class="preprocessor">#include &lt;<a class="code" href="rpmbuild_8h.html">rpmbuild.h</a>&gt;</span>
00015 
<a name="l00016"></a><a class="code" href="rpmqv_8c.html#a1">00016</a> <span class="preprocessor">#define POPT_NODEPS             1025</span>
<a name="l00017"></a><a class="code" href="rpmqv_8c.html#a2">00017</a> <span class="preprocessor"></span><span class="preprocessor">#define POPT_FORCE              1026</span>
<a name="l00018"></a><a class="code" href="rpmqv_8c.html#a3">00018</a> <span class="preprocessor"></span><span class="preprocessor">#define POPT_NOMD5              1027</span>
<a name="l00019"></a><a class="code" href="rpmqv_8c.html#a4">00019</a> <span class="preprocessor"></span><span class="preprocessor">#define POPT_NOSCRIPTS          1028</span>
00020 <span class="preprocessor"></span>
00021 <span class="preprocessor">#ifdef  IAM_RPMBT</span>
00022 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="build_8h.html">build.h</a>"</span>
00023 <span class="preprocessor">#define GETOPT_REBUILD          1003</span>
00024 <span class="preprocessor"></span><span class="preprocessor">#define GETOPT_RECOMPILE        1004</span>
00025 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00026 <span class="preprocessor"></span>
00027 <span class="preprocessor">#if defined(IAM_RPMBT) || defined(IAM_RPMK)</span>
00028 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="signature_8h.html">signature.h</a>"</span>
00029 <span class="preprocessor">#endif</span>
00030 <span class="preprocessor"></span>
00031 <span class="preprocessor">#include "<a class="code" href="debug_8h.html">debug.h</a>"</span>
00032 
<a name="l00033"></a><a class="code" href="rpmqv_8c.html#a5">00033</a> <span class="preprocessor">#define GETOPT_DBPATH           1010</span>
<a name="l00034"></a><a class="code" href="rpmqv_8c.html#a6">00034</a> <span class="preprocessor"></span><span class="preprocessor">#define GETOPT_SHOWRC           1018</span>
<a name="l00035"></a><a class="code" href="rpmqv_8c.html#a7">00035</a> <span class="preprocessor"></span><span class="preprocessor">#define GETOPT_DEFINEMACRO      1020</span>
<a name="l00036"></a><a class="code" href="rpmqv_8c.html#a8">00036</a> <span class="preprocessor"></span><span class="preprocessor">#define GETOPT_EVALMACRO        1021</span>
00037 <span class="preprocessor"></span><span class="preprocessor">#ifdef  NOTYET</span>
00038 <span class="preprocessor"></span><span class="preprocessor">#define GETOPT_RCFILE           1022</span>
00039 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00040 <span class="preprocessor"></span>
<a name="l00041"></a><a class="code" href="rpmqv_8c.html#a52">00041</a> <span class="keyword">enum</span> <a class="code" href="rpmqv_8c.html#a52">modes</a> {
00042 
00043     <a class="code" href="rpmqv_8c.html#a52a32">MODE_QUERY</a>          = (1 &lt;&lt;  0),
00044     <a class="code" href="rpmqv_8c.html#a52a33">MODE_VERIFY</a>         = (1 &lt;&lt;  3),
00045     <a class="code" href="rpmqv_8c.html#a52a34">MODE_QUERYTAGS</a>      = (1 &lt;&lt;  9),
00046 <span class="preprocessor">#define MODES_QV (MODE_QUERY | MODE_VERIFY)</span>
00047 <span class="preprocessor"></span>
00048     <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a>        = (1 &lt;&lt;  1),
00049     <a class="code" href="rpmqv_8c.html#a52a36">MODE_ERASE</a>          = (1 &lt;&lt;  2),
00050 <span class="preprocessor">#define MODES_IE (MODE_INSTALL | MODE_ERASE)</span>
00051 <span class="preprocessor"></span>
00052     <a class="code" href="rpmqv_8c.html#a52a37">MODE_BUILD</a>          = (1 &lt;&lt;  4),
00053     <a class="code" href="rpmqv_8c.html#a52a38">MODE_REBUILD</a>        = (1 &lt;&lt;  5),
00054     <a class="code" href="rpmqv_8c.html#a52a39">MODE_RECOMPILE</a>      = (1 &lt;&lt;  8),
00055     <a class="code" href="rpmqv_8c.html#a52a40">MODE_TARBUILD</a>       = (1 &lt;&lt; 11),
00056 <span class="preprocessor">#define MODES_BT (MODE_BUILD | MODE_TARBUILD | MODE_REBUILD | MODE_RECOMPILE)</span>
00057 <span class="preprocessor"></span>
00058     <a class="code" href="rpmqv_8c.html#a52a41">MODE_CHECKSIG</a>       = (1 &lt;&lt;  6),
00059     <a class="code" href="rpmqv_8c.html#a52a42">MODE_RESIGN</a>         = (1 &lt;&lt;  7),
00060 <span class="preprocessor">#define MODES_K  (MODE_CHECKSIG | MODE_RESIGN)</span>
00061 <span class="preprocessor"></span>
00062     <a class="code" href="rpmqv_8c.html#a52a43">MODE_INITDB</a>         = (1 &lt;&lt; 10),
00063     <a class="code" href="rpmqv_8c.html#a52a44">MODE_REBUILDDB</a>      = (1 &lt;&lt; 12),
00064     <a class="code" href="rpmqv_8c.html#a52a45">MODE_VERIFYDB</a>       = (1 &lt;&lt; 13),
00065 <span class="preprocessor">#define MODES_DB (MODE_INITDB | MODE_REBUILDDB | MODE_VERIFYDB)</span>
00066 <span class="preprocessor"></span>
00067 
00068     <a class="code" href="rpmqv_8c.html#a52a46">MODE_UNKNOWN</a>        = 0
00069 };
00070 
<a name="l00071"></a><a class="code" href="rpmqv_8c.html#a14">00071</a> <span class="preprocessor">#define MODES_FOR_DBPATH        (MODES_BT | MODES_IE | MODES_QV | MODES_DB)</span>
<a name="l00072"></a><a class="code" href="rpmqv_8c.html#a15">00072</a> <span class="preprocessor"></span><span class="preprocessor">#define MODES_FOR_NODEPS        (MODES_BT | MODES_IE | MODE_VERIFY)</span>
<a name="l00073"></a><a class="code" href="rpmqv_8c.html#a16">00073</a> <span class="preprocessor"></span><span class="preprocessor">#define MODES_FOR_TEST          (MODES_BT | MODES_IE)</span>
<a name="l00074"></a><a class="code" href="rpmqv_8c.html#a17">00074</a> <span class="preprocessor"></span><span class="preprocessor">#define MODES_FOR_ROOT          (MODES_BT | MODES_IE | MODES_QV | MODES_DB)</span>
00075 <span class="preprocessor"></span>
00076 <span class="comment">/*@-exportheadervar@*/</span>
00077 <span class="comment">/*@unchecked@*/</span>
<a name="l00078"></a><a class="code" href="rpmqv_8c.html#a18">00078</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="rpmqv_8c.html#a18">_ftp_debug</a>;
00079 <span class="comment">/*@unchecked@*/</span>
<a name="l00080"></a><a class="code" href="rpmqv_8c.html#a19">00080</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="rpmqv_8c.html#a19">noLibio</a>;
00081 <span class="comment">/*@unchecked@*/</span>
<a name="l00082"></a><a class="code" href="rpmqv_8c.html#a20">00082</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="rpmqv_8c.html#a20">_rpmio_debug</a>;
00083 <span class="comment">/*@-redecl@*/</span>
00084 <span class="comment">/*@unchecked@*/</span>
<a name="l00085"></a><a class="code" href="rpmqv_8c.html#a21">00085</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="rpmqv_8c.html#a21">_url_debug</a>;
00086 <span class="comment">/*@=redecl@*/</span>
00087 
00088 <span class="comment">/*@=exportheadervar@*/</span>
00089 
00090 <span class="comment">/* options for all executables */</span>
00091 
00092 <span class="comment">/*@unchecked@*/</span>
<a name="l00093"></a><a class="code" href="rpmqv_8c.html#a22">00093</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="rpmqv_8c.html#a22">help</a> = 0;
00094 <span class="comment">/*@unchecked@*/</span>
<a name="l00095"></a><a class="code" href="rpmqv_8c.html#a23">00095</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="rpmqv_8c.html#a23">noUsageMsg</a> = 0;
00096 <span class="comment">/*@unchecked@*/</span> <span class="comment">/*@observer@*/</span> <span class="comment">/*@null@*/</span>
<a name="l00097"></a><a class="code" href="rpmqv_8c.html#a24">00097</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="rpmqv_8c.html#a24">pipeOutput</a> = NULL;
00098 <span class="comment">/*@unchecked@*/</span>
<a name="l00099"></a><a class="code" href="rpmqv_8c.html#a25">00099</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="rpmqv_8c.html#a25">quiet</a> = 0;
00100 <span class="comment">/*@unchecked@*/</span> <span class="comment">/*@observer@*/</span> <span class="comment">/*@null@*/</span>
<a name="l00101"></a><a class="code" href="rpmqv_8c.html#a26">00101</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="rpmqv_8c.html#a26">rcfile</a> = NULL;
00102 <span class="comment">/*@unchecked@*/</span> <span class="comment">/*@observer@*/</span> <span class="comment">/*@null@*/</span>
<a name="l00103"></a><a class="code" href="rpmqv_8c.html#a27">00103</a> <span class="keyword">static</span> <span class="keywordtype">char</span> * <a class="code" href="rpmqv_8c.html#a27">rootdir</a> = <span class="stringliteral">"/"</span>;
00104 <span class="comment">/*@unchecked@*/</span>
<a name="l00105"></a><a class="code" href="rpmqv_8c.html#a28">00105</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="rpmqv_8c.html#a28">showrc</a> = 0;
00106 <span class="comment">/*@unchecked@*/</span>
<a name="l00107"></a><a class="code" href="rpmqv_8c.html#a29">00107</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="rpmqv_8c.html#a29">showVersion</a> = 0;
00108 
00109 <span class="comment">/*@unchecked@*/</span>
<a name="l00110"></a><a class="code" href="rpmqv_8c.html#a30">00110</a> <span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="structpoptOption.html">poptOption</a> rpmAllPoptTable[] = {
00111  { <span class="stringliteral">"version"</span>, <span class="charliteral">'\0'</span>, 0, &amp;<a class="code" href="rpmqv_8c.html#a29">showVersion</a>, 0,
00112         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"print the version of rpm being used"</span>),
00113         NULL },
00114  { <span class="stringliteral">"quiet"</span>, <span class="charliteral">'\0'</span>, 0, &amp;<a class="code" href="rpmqv_8c.html#a25">quiet</a>, 0,
00115         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"provide less detailed output"</span>), NULL},
00116  { <span class="stringliteral">"verbose"</span>, <span class="charliteral">'v'</span>, 0, 0, <span class="charliteral">'v'</span>,
00117         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"provide more detailed output"</span>), NULL},
00118  { <span class="stringliteral">"define"</span>, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a34">POPT_ARG_STRING</a>, 0, <a class="code" href="rpmqv_8c.html#a7">GETOPT_DEFINEMACRO</a>,
00119         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"define macro &lt;name&gt; with value &lt;body&gt;"</span>),
00120         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"'&lt;name&gt; &lt;body&gt;'"</span>) },
00121  { <span class="stringliteral">"eval"</span>, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a34">POPT_ARG_STRING</a>, 0, <a class="code" href="rpmqv_8c.html#a8">GETOPT_EVALMACRO</a>,
00122         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"print macro expansion of &lt;expr&gt;+"</span>),
00123         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"&lt;expr&gt;+"</span>) },
00124  { <span class="stringliteral">"pipe"</span>, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a34">POPT_ARG_STRING</a>|<a class="code" href="group__popt.html#a44">POPT_ARGFLAG_DOC_HIDDEN</a>, &amp;<a class="code" href="rpmqv_8c.html#a24">pipeOutput</a>, 0,
00125         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"send stdout to &lt;cmd&gt;"</span>),
00126         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"&lt;cmd&gt;"</span>) },
00127  { <span class="stringliteral">"root"</span>, <span class="charliteral">'r'</span>, <a class="code" href="group__popt.html#a34">POPT_ARG_STRING</a> | <a class="code" href="group__popt.html#a56">POPT_ARGFLAG_SHOW_DEFAULT</a>, &amp;<a class="code" href="rpmqv_8c.html#a27">rootdir</a>, 0,
00128         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"use &lt;dir&gt; as the top level directory"</span>),
00129         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"&lt;dir&gt;"</span>) },
00130  { <span class="stringliteral">"macros"</span>, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a34">POPT_ARG_STRING</a>, &amp;macrofiles, 0,
00131         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"read &lt;file:...&gt; instead of default macro file(s)"</span>),
00132         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"&lt;file:...&gt;"</span>) },
00133 <span class="preprocessor">#if !defined(GETOPT_RCFILE)</span>
00134 <span class="preprocessor"></span> { <span class="stringliteral">"rcfile"</span>, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a34">POPT_ARG_STRING</a>, &amp;<a class="code" href="rpmqv_8c.html#a26">rcfile</a>, 0,
00135         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"read &lt;file:...&gt; instead of default rpmrc file(s)"</span>),
00136         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"&lt;file:...&gt;"</span>) },
00137 <span class="preprocessor">#else</span>
00138 <span class="preprocessor"></span> { <span class="stringliteral">"rcfile"</span>, <span class="charliteral">'\0'</span>, 0, 0, GETOPT_RCFILE, 
00139         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"read &lt;file:...&gt; instead of default rpmrc file(s)"</span>),
00140         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"&lt;file:...&gt;"</span>) },
00141 <span class="preprocessor">#endif</span>
00142 <span class="preprocessor"></span> { <span class="stringliteral">"showrc"</span>, <span class="charliteral">'\0'</span>, 0, &amp;<a class="code" href="rpmqv_8c.html#a28">showrc</a>, <a class="code" href="rpmqv_8c.html#a6">GETOPT_SHOWRC</a>,
00143         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"display final rpmrc and macro configuration"</span>),
00144         NULL },
00145 
00146 <span class="preprocessor">#if HAVE_LIBIO_H &amp;&amp; defined(_G_IO_IO_FILE_VERSION)</span>
00147 <span class="preprocessor"></span> { <span class="stringliteral">"nolibio"</span>, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a40">POPT_ARG_VAL</a>|<a class="code" href="group__popt.html#a44">POPT_ARGFLAG_DOC_HIDDEN</a>, &amp;<a class="code" href="rpmqv_8c.html#a19">noLibio</a>, 1,
00148         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"disable use of libio(3) API"</span>), NULL},
00149 <span class="preprocessor">#endif</span>
00150 <span class="preprocessor"></span> { <span class="stringliteral">"ftpdebug"</span>, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a40">POPT_ARG_VAL</a>|<a class="code" href="group__popt.html#a44">POPT_ARGFLAG_DOC_HIDDEN</a>, &amp;<a class="code" href="rpmqv_8c.html#a18">_ftp_debug</a>, -1,
00151         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"debug protocol data stream"</span>), NULL},
00152  { <span class="stringliteral">"rpmiodebug"</span>, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a40">POPT_ARG_VAL</a>|<a class="code" href="group__popt.html#a44">POPT_ARGFLAG_DOC_HIDDEN</a>, &amp;<a class="code" href="rpmqv_8c.html#a20">_rpmio_debug</a>, -1,
00153         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"debug rpmio I/O"</span>), NULL},
00154  { <span class="stringliteral">"urldebug"</span>, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a40">POPT_ARG_VAL</a>|<a class="code" href="group__popt.html#a44">POPT_ARGFLAG_DOC_HIDDEN</a>, &amp;<a class="code" href="rpmqv_8c.html#a21">_url_debug</a>, -1,
00155         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"debug URL cache handling"</span>), NULL},
00156 
00157    <a class="code" href="popt_8h.html#a48">POPT_TABLEEND</a>
00158 };
00159 
00160 <span class="comment">/* the structure describing the options we take and the defaults */</span>
00161 <span class="comment">/*@unchecked@*/</span>
<a name="l00162"></a><a class="code" href="rpmqv_8c.html#a31">00162</a> <span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="structpoptOption.html">poptOption</a> optionsTable[] = {
00163 
00164  <span class="comment">/* XXX colliding options */</span>
00165 <span class="preprocessor">#if defined(IAM_RPMQV) || defined(IAM_RPMEIU) || defined(IAM_RPMBT)</span>
00166 <span class="preprocessor"></span> {  NULL, <span class="charliteral">'i'</span>, <a class="code" href="group__popt.html#a44">POPT_ARGFLAG_DOC_HIDDEN</a>, 0, <span class="charliteral">'i'</span>,                 NULL, NULL},
00167  {  <span class="stringliteral">"nodeps"</span>, 0, <a class="code" href="group__popt.html#a44">POPT_ARGFLAG_DOC_HIDDEN</a>, 0, <a class="code" href="rpmqv_8c.html#a1">POPT_NODEPS</a>,       NULL, NULL},
00168  {  <span class="stringliteral">"noscripts"</span>, 0, <a class="code" href="group__popt.html#a44">POPT_ARGFLAG_DOC_HIDDEN</a>, 0, <a class="code" href="rpmqv_8c.html#a4">POPT_NOSCRIPTS</a>, NULL, NULL},
00169  {  <span class="stringliteral">"nomd5"</span>, 0, <a class="code" href="group__popt.html#a44">POPT_ARGFLAG_DOC_HIDDEN</a>, 0, <a class="code" href="rpmqv_8c.html#a3">POPT_NOMD5</a>,         NULL, NULL},
00170  {  <span class="stringliteral">"force"</span>, 0, <a class="code" href="group__popt.html#a44">POPT_ARGFLAG_DOC_HIDDEN</a>, 0, <a class="code" href="rpmqv_8c.html#a2">POPT_FORCE</a>,         NULL, NULL},
00171 <span class="preprocessor">#endif</span>
00172 <span class="preprocessor"></span>
00173 <span class="preprocessor">#ifdef  IAM_RPMQV</span>
00174 <span class="preprocessor"></span> { NULL, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a37">POPT_ARG_INCLUDE_TABLE</a>, rpmQueryPoptTable, 0,
00175         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"Query options (with -q or --query):"</span>),
00176         NULL },
00177  { NULL, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a37">POPT_ARG_INCLUDE_TABLE</a>, rpmVerifyPoptTable, 0,
00178         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"Verify options (with -V or --verify):"</span>),
00179         NULL },
00180 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMQV */</span>
00181 
00182 <span class="preprocessor">#ifdef  IAM_RPMK</span>
00183 <span class="preprocessor"></span> { NULL, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a37">POPT_ARG_INCLUDE_TABLE</a>, rpmSignPoptTable, 0,
00184         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"Signature options:"</span>),
00185         NULL },
00186 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMK */</span>
00187 
00188 <span class="preprocessor">#ifdef  IAM_RPMDB</span>
00189 <span class="preprocessor"></span> { NULL, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a37">POPT_ARG_INCLUDE_TABLE</a>, rpmDatabasePoptTable, 0,
00190         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"Database options:"</span>),
00191         NULL },
00192 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMDB */</span>
00193 
00194 <span class="preprocessor">#ifdef  IAM_RPMBT</span>
00195 <span class="preprocessor"></span> { NULL, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a37">POPT_ARG_INCLUDE_TABLE</a>, rpmBuildPoptTable, 0,
00196         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"Build options with [ &lt;specfile&gt; | &lt;tarball&gt; | &lt;source package&gt; ]:"</span>),
00197         NULL },
00198 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMBT */</span>
00199 
00200 <span class="preprocessor">#ifdef  IAM_RPMEIU</span>
00201 <span class="preprocessor"></span> { NULL, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a37">POPT_ARG_INCLUDE_TABLE</a>, rpmInstallPoptTable, 0,
00202         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"Install/Upgrade/Erase options:"</span>),
00203         NULL },
00204 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMEIU */</span>
00205 
00206  { NULL, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a37">POPT_ARG_INCLUDE_TABLE</a>, rpmAllPoptTable, 0,
00207         <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"Common options for all rpm modes:"</span>),
00208         NULL },
00209 
00210    <a class="code" href="popt_8h.html#a46">POPT_AUTOALIAS</a>
00211    <a class="code" href="popt_8h.html#a47">POPT_AUTOHELP</a>
00212    <a class="code" href="popt_8h.html#a48">POPT_TABLEEND</a>
00213 };
00214 
00215 <span class="preprocessor">#ifdef __MINT__</span>
00216 <span class="preprocessor"></span><span class="comment">/* MiNT cannot dynamically increase the stack.  */</span>
00217 <span class="keywordtype">long</span> _stksize = 64 * 1024L;
00218 <span class="preprocessor">#endif</span>
00219 <span class="preprocessor"></span>
<a name="l00220"></a><a class="code" href="rpmqv_8c.html#a47">00220</a> <span class="comment">/*@exits@*/</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="poptI_8c.html#a6">argerror</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * desc)
00221         <span class="comment">/*@globals fileSystem @*/</span>
00222         <span class="comment">/*@modifies fileSystem @*/</span>
00223 {
00224     fprintf(stderr, <a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"%s: %s\n"</span>), <a class="code" href="system_8h.html#a13">__progname</a>, desc);
00225     exit(<a class="code" href="system_8h.html#a3">EXIT_FAILURE</a>);
00226 }
00227 
<a name="l00228"></a><a class="code" href="rpmqv_8c.html#a48">00228</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rpmqv_8c.html#a48">printVersion</a>(<span class="keywordtype">void</span>)
00229         <span class="comment">/*@globals rpmEVR, fileSystem @*/</span>
00230         <span class="comment">/*@modifies fileSystem @*/</span>
00231 {
00232     fprintf(stdout, <a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"RPM version %s\n"</span>), rpmEVR);
00233 }
00234 
<a name="l00235"></a><a class="code" href="rpmqv_8c.html#a49">00235</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rpmqv_8c.html#a49">printBanner</a>(<span class="keywordtype">void</span>)
00236         <span class="comment">/*@globals fileSystem @*/</span>
00237         <span class="comment">/*@modifies fileSystem @*/</span>
00238 {
00239     (void) puts(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"Copyright (C) 1998-2000 - Red Hat, Inc."</span>));
00240     (void) puts(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"This program may be freely redistributed under the terms of the GNU GPL"</span>));
00241 }
00242 
<a name="l00243"></a><a class="code" href="rpmqv_8c.html#a50">00243</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rpmqv_8c.html#a50">printUsage</a>(<span class="keywordtype">void</span>)
00244         <span class="comment">/*@globals fileSystem @*/</span>
00245         <span class="comment">/*@modifies fileSystem @*/</span>
00246 {
00247     FILE * fp = stdout;
00248     <a class="code" href="rpmqv_8c.html#a48">printVersion</a>();
00249     <a class="code" href="rpmqv_8c.html#a49">printBanner</a>();
00250     (void) puts(<span class="stringliteral">""</span>);
00251 
00252     fprintf(fp, <a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"Usage: %s {--help}\n"</span>), <a class="code" href="system_8h.html#a13">__progname</a>);
00253     fprintf(fp,   <span class="stringliteral">"       %s {--version}\n"</span> , <a class="code" href="system_8h.html#a13">__progname</a>);
00254 
00255 <span class="preprocessor">#ifdef  IAM_RPMEIU</span>
00256 <span class="preprocessor"></span><span class="preprocessor">#ifdef  DYING</span>
00257 <span class="preprocessor"></span>--dbpath        all
00258 --ftpproxy etc  all
00259 --force         alias <span class="keywordflow">for</span> --replacepkgs --replacefiles
00260 --includedocs   handle as option in table
00261                 --erase forbids many options
00262 <span class="preprocessor">#endif  </span><span class="comment">/* DYING */</span>
00263 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMEIU */</span>
00264 
00265 <span class="preprocessor">#ifdef  IAM_RPMQV</span>
00266 <span class="preprocessor"></span><span class="preprocessor">#ifdef  DYING   </span><span class="comment">/* XXX popt glue needing --help doco. */</span>
00267 --dbpath        all
00268 --ftpproxy etc  all
00269 -i,--info       Q
00270 -R,--requires   Q
00271 -P,--provides   Q
00272 --scripts       Q
00273 --triggeredby   Q
00274 --changelog     Q
00275 --triggers      Q
00276 --querytags     !V
00277 --setperms      V
00278 --setugids      V
00279 <span class="preprocessor">#endif  </span><span class="comment">/* DYING */</span>
00280 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMQV */</span>
00281 
00282 }
00283 
<a name="l00284"></a><a class="code" href="rpmqv_8c.html#a51">00284</a> <span class="keywordtype">int</span> <a class="code" href="rpmsignature_8c.html#a0">main</a>(<span class="keywordtype">int</span> argc, <span class="keyword">const</span> <span class="keywordtype">char</span> ** argv, <span class="keywordtype">char</span> ** envp)
00285 {
00286     <span class="keyword">enum</span> <a class="code" href="rpmqv_8c.html#a52">modes</a> bigMode = <a class="code" href="rpmqv_8c.html#a52a46">MODE_UNKNOWN</a>;
00287 
00288 <span class="preprocessor">#ifdef  IAM_RPMQV</span>
00289 <span class="preprocessor"></span>    <a class="code" href="structrpmQVArguments__s.html">QVA_t</a> qva = &amp;rpmQVArgs;
00290 <span class="preprocessor">#endif</span>
00291 <span class="preprocessor"></span>
00292 <span class="preprocessor">#ifdef  IAM_RPMBT</span>
00293 <span class="preprocessor"></span>    <a class="code" href="structrpmBuildArguments__s.html">BTA_t</a> ba = &amp;rpmBTArgs;
00294 <span class="preprocessor">#endif</span>
00295 <span class="preprocessor"></span>
00296 <span class="preprocessor">#ifdef  IAM_RPMEIU</span>
00297 <span class="preprocessor"></span>   <span class="keyword">struct </span><a class="code" href="structrpmInstallArguments__s.html">rpmInstallArguments_s</a> * ia = &amp;rpmIArgs;
00298 <span class="preprocessor">#endif</span>
00299 <span class="preprocessor"></span>
00300 <span class="preprocessor">#if defined(IAM_RPMDB)</span>
00301 <span class="preprocessor"></span>   <span class="keyword">struct </span><a class="code" href="structrpmDatabaseArguments__s.html">rpmDatabaseArguments_s</a> * da = &amp;rpmDBArgs;
00302 <span class="preprocessor">#endif</span>
00303 <span class="preprocessor"></span>
00304 <span class="preprocessor">#if defined(IAM_RPMK)</span>
00305 <span class="preprocessor"></span>   <span class="keyword">struct </span><a class="code" href="structrpmSignArguments__s.html">rpmSignArguments_s</a> * ka = &amp;rpmKArgs;
00306 <span class="preprocessor">#endif</span>
00307 <span class="preprocessor"></span>
00308 <span class="preprocessor">#if defined(IAM_RPMBT) || defined(IAM_RPMK)</span>
00309 <span class="preprocessor"></span>    <span class="keywordtype">char</span> * passPhrase = <span class="stringliteral">""</span>;
00310 <span class="preprocessor">#endif</span>
00311 <span class="preprocessor"></span>
00312     <span class="keywordtype">int</span> arg;
00313     <span class="keywordtype">int</span> gotDbpath = 0;
00314 
00315     <span class="keyword">const</span> <span class="keywordtype">char</span> * optArg;
00316     pid_t pipeChild = 0;
00317     <a class="code" href="structpoptContext__s.html">poptContext</a> optCon;
00318     <span class="keywordtype">int</span> ec = 0;
00319     <span class="keywordtype">int</span> status;
00320     <span class="keywordtype">int</span> p[2];
00321         
00322 <span class="preprocessor">#if HAVE_MCHECK_H &amp;&amp; HAVE_MTRACE</span>
00323 <span class="preprocessor"></span>    mtrace();   <span class="comment">/* Trace malloc only if MALLOC_TRACE=mtrace-output-file. */</span>
00324 <span class="preprocessor">#endif</span>
00325 <span class="preprocessor"></span>    <a class="code" href="system_8h.html#a14">setprogname</a>(argv[0]);       <span class="comment">/* Retrofit glibc __progname */</span>
00326 
00327 <span class="preprocessor">#if !defined(__GLIBC__)</span>
00328 <span class="preprocessor"></span>    <a class="code" href="signature_8c.html#a1">environ</a> = envp;
00329 <span class="preprocessor">#endif</span>
00330 <span class="preprocessor"></span>
00331     <span class="comment">/* XXX glibc churn sanity */</span>
00332     <span class="keywordflow">if</span> (<a class="code" href="system_8h.html#a13">__progname</a> == NULL) {
00333         <span class="keywordflow">if</span> ((<a class="code" href="system_8h.html#a13">__progname</a> = strrchr(argv[0], <span class="charliteral">'/'</span>)) != NULL) <a class="code" href="system_8h.html#a13">__progname</a>++;
00334         <span class="keywordflow">else</span> <a class="code" href="system_8h.html#a13">__progname</a> = argv[0];
00335     }
00336 
00337     <span class="comment">/* Set the major mode based on argv[0] */</span>
00338     <span class="comment">/*@-nullpass@*/</span>
00339 <span class="preprocessor">#ifdef  IAM_RPMBT</span>
00340 <span class="preprocessor"></span>    <span class="keywordflow">if</span> (!strcmp(<a class="code" href="system_8h.html#a13">__progname</a>, <span class="stringliteral">"rpmb"</span>))    bigMode = <a class="code" href="rpmqv_8c.html#a52a37">MODE_BUILD</a>;
00341     <span class="keywordflow">if</span> (!strcmp(<a class="code" href="system_8h.html#a13">__progname</a>, <span class="stringliteral">"rpmt"</span>))    bigMode = <a class="code" href="rpmqv_8c.html#a52a40">MODE_TARBUILD</a>;
00342     <span class="keywordflow">if</span> (!strcmp(<a class="code" href="system_8h.html#a13">__progname</a>, <span class="stringliteral">"rpmbuild"</span>))        bigMode = <a class="code" href="rpmqv_8c.html#a52a37">MODE_BUILD</a>;
00343 <span class="preprocessor">#endif</span>
00344 <span class="preprocessor"></span><span class="preprocessor">#ifdef  IAM_RPMQV</span>
00345 <span class="preprocessor"></span>    <span class="keywordflow">if</span> (!strcmp(<a class="code" href="system_8h.html#a13">__progname</a>, <span class="stringliteral">"rpmq"</span>))    bigMode = <a class="code" href="rpmqv_8c.html#a52a32">MODE_QUERY</a>;
00346     <span class="keywordflow">if</span> (!strcmp(<a class="code" href="system_8h.html#a13">__progname</a>, <span class="stringliteral">"rpmv"</span>))    bigMode = <a class="code" href="rpmqv_8c.html#a52a33">MODE_VERIFY</a>;
00347     <span class="keywordflow">if</span> (!strcmp(<a class="code" href="system_8h.html#a13">__progname</a>, <span class="stringliteral">"rpmquery"</span>))        bigMode = <a class="code" href="rpmqv_8c.html#a52a32">MODE_QUERY</a>;
00348     <span class="keywordflow">if</span> (!strcmp(<a class="code" href="system_8h.html#a13">__progname</a>, <span class="stringliteral">"rpmverify"</span>))       bigMode = <a class="code" href="rpmqv_8c.html#a52a33">MODE_VERIFY</a>;
00349 <span class="preprocessor">#endif</span>
00350 <span class="preprocessor"></span><span class="preprocessor">#ifdef  RPMEIU</span>
00351 <span class="preprocessor"></span>    <span class="keywordflow">if</span> (!strcmp(<a class="code" href="system_8h.html#a13">__progname</a>, <span class="stringliteral">"rpme"</span>))    bigMode = <a class="code" href="rpmqv_8c.html#a52a36">MODE_ERASE</a>;
00352     <span class="keywordflow">if</span> (!strcmp(<a class="code" href="system_8h.html#a13">__progname</a>, <span class="stringliteral">"rpmi"</span>))    bigMode = <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a>;
00353     <span class="keywordflow">if</span> (!strcmp(<a class="code" href="system_8h.html#a13">__progname</a>, <span class="stringliteral">"rpmu"</span>))    bigMode = <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a>;
00354 <span class="preprocessor">#endif</span>
00355 <span class="preprocessor"></span>    <span class="comment">/*@=nullpass@*/</span>
00356 
00357     <span class="comment">/* set the defaults for the various command line options */</span>
00358     <a class="code" href="rpmqv_8c.html#a18">_ftp_debug</a> = 0;
00359 
00360 <span class="preprocessor">#if HAVE_LIBIO_H &amp;&amp; defined(_G_IO_IO_FILE_VERSION)</span>
00361 <span class="preprocessor"></span>    <a class="code" href="rpmqv_8c.html#a19">noLibio</a> = 0;
00362 <span class="preprocessor">#else</span>
00363 <span class="preprocessor"></span>    <a class="code" href="rpmqv_8c.html#a19">noLibio</a> = 1;
00364 <span class="preprocessor">#endif</span>
00365 <span class="preprocessor"></span>    <a class="code" href="rpmqv_8c.html#a20">_rpmio_debug</a> = 0;
00366     <a class="code" href="rpmqv_8c.html#a21">_url_debug</a> = 0;
00367 
00368     <span class="comment">/* XXX Eliminate query linkage loop */</span>
00369     specedit = 0;
00370     parseSpecVec = parseSpec;
00371     freeSpecVec = freeSpec;
00372 
00373     <span class="comment">/* set up the correct locale */</span>
00374     (void) <a class="code" href="system_8h.html#a15">setlocale</a>(LC_ALL, <span class="stringliteral">""</span> );
00375 
00376 <span class="preprocessor">#ifdef  __LCLINT__</span>
00377 <span class="preprocessor"></span><span class="preprocessor">#define LOCALEDIR       "/usr/share/locale"</span>
00378 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00379 <span class="preprocessor"></span>    <a class="code" href="system_8h.html#a16">bindtextdomain</a>(<a class="code" href="config_8h.html#a107">PACKAGE</a>, <a class="code" href="config_8h.html#a16">LOCALEDIR</a>);
00380     <a class="code" href="system_8h.html#a17">textdomain</a>(<a class="code" href="config_8h.html#a107">PACKAGE</a>);
00381 
00382     <a class="code" href="rpmmessages_8h.html#a8">rpmSetVerbosity</a>(<a class="code" href="rpmmessages_8h.html#a2">RPMMESS_NORMAL</a>);    <span class="comment">/* XXX silly use by showrc */</span>
00383 
00384     <span class="comment">/* Make a first pass through the arguments, looking for --rcfile */</span>
00385     <span class="comment">/* We need to handle that before dealing with the rest of the arguments. */</span>
00386     <span class="comment">/*@-nullpass -temptrans@*/</span>
00387     optCon = <a class="code" href="group__popt.html#a5">poptGetContext</a>(<a class="code" href="system_8h.html#a13">__progname</a>, argc, argv, optionsTable, 0);
00388     <span class="comment">/*@=nullpass =temptrans@*/</span>
00389     (void) <a class="code" href="group__popt.html#a1">poptReadConfigFile</a>(optCon, <a class="code" href="config_8h.html#a21">LIBRPMALIAS_FILENAME</a>);
00390     (void) <a class="code" href="group__popt.html#a2">poptReadDefaultConfig</a>(optCon, 1);
00391     <a class="code" href="group__popt.html#a22">poptSetExecPath</a>(optCon, <a class="code" href="config_8h.html#a17">RPMCONFIGDIR</a>, 1);
00392 
00393     <span class="comment">/* reading rcfile early makes it easy to override */</span>
00394     <span class="comment">/* XXX only --rcfile (and --showrc) need this pre-parse */</span>
00395 
00396     <span class="keywordflow">while</span> ((arg = <a class="code" href="group__popt.html#a7">poptGetNextOpt</a>(optCon)) &gt; 0) {
00397         <span class="keywordflow">switch</span>(arg) {
00398         <span class="keywordflow">case</span> <span class="charliteral">'v'</span>:
00399             <a class="code" href="rpmmessages_8h.html#a9">rpmIncreaseVerbosity</a>();     <span class="comment">/* XXX silly use by showrc */</span>
00400             <span class="keywordflow">break</span>;
00401         <span class="keywordflow">default</span>:
00402             <span class="keywordflow">break</span>;
00403       }
00404     }
00405 
00406     <span class="keywordflow">if</span> (<a class="code" href="group__rpmrc.html#a54">rpmReadConfigFiles</a>(<a class="code" href="rpmqv_8c.html#a26">rcfile</a>, NULL))  
00407         exit(<a class="code" href="system_8h.html#a3">EXIT_FAILURE</a>);
00408 
00409     <span class="keywordflow">if</span> (showrc) {
00410         (void) <a class="code" href="group__rpmrc.html#a55">rpmShowRC</a>(stdout);
00411         exit(EXIT_SUCCESS);
00412     }
00413 
00414     <a class="code" href="rpmmessages_8h.html#a8">rpmSetVerbosity</a>(<a class="code" href="rpmmessages_8h.html#a2">RPMMESS_NORMAL</a>);    <span class="comment">/* XXX silly use by showrc */</span>
00415 
00416     <a class="code" href="group__popt.html#a6">poptResetContext</a>(optCon);
00417 
00418 <span class="preprocessor">#ifdef  IAM_RPMQV</span>
00419 <span class="preprocessor"></span>    qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m5">qva_queryFormat</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m5">qva_queryFormat</a>);
00420     memset(qva, 0, <span class="keyword">sizeof</span>(*qva));
00421     qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m0">qva_source</a> = <a class="code" href="group__rpmcli.html#a45a359">RPMQV_PACKAGE</a>;
00422     qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m3">qva_fflags</a> = <a class="code" href="rpmlib_8h.html#a14">RPMFILE_ALL</a>;
00423     qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m7">qva_mode</a> = <span class="charliteral">' '</span>;
00424     qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m8">qva_char</a> = <span class="charliteral">' '</span>;
00425 <span class="preprocessor">#endif</span>
00426 <span class="preprocessor"></span>
00427 <span class="preprocessor">#ifdef  IAM_RPMBT</span>
00428 <span class="preprocessor"></span>    ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m1">buildRootOverride</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m1">buildRootOverride</a>);
00429     ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m2">targets</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m2">targets</a>);
00430     memset(ba, 0, <span class="keyword">sizeof</span>(*ba));
00431     ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m10">buildMode</a> = <span class="charliteral">' '</span>;
00432     ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m11">buildChar</a> = <span class="charliteral">' '</span>;
00433 <span class="preprocessor">#endif</span>
00434 <span class="preprocessor"></span>
00435 <span class="preprocessor">#ifdef  IAM_RPMDB</span>
00436 <span class="preprocessor"></span>    memset(da, 0, <span class="keyword">sizeof</span>(*da));
00437 <span class="preprocessor">#endif</span>
00438 <span class="preprocessor"></span>
00439 <span class="preprocessor">#ifdef  IAM_RPMK</span>
00440 <span class="preprocessor"></span>    memset(ka, 0, <span class="keyword">sizeof</span>(*ka));
00441     ka-&gt;<a class="code" href="structrpmSignArguments__s.html#m0">addSign</a> = <a class="code" href="group__rpmcli.html#a44a67">RESIGN_NONE</a>;
00442     ka-&gt;<a class="code" href="structrpmSignArguments__s.html#m1">checksigFlags</a> = <a class="code" href="rpmcli_8h.html#a2">CHECKSIG_ALL</a>;
00443 <span class="preprocessor">#endif</span>
00444 <span class="preprocessor"></span>
00445 <span class="preprocessor">#ifdef  IAM_RPMEIU</span>
00446 <span class="preprocessor"></span>    ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>);
00447     memset(ia, 0, <span class="keyword">sizeof</span>(*ia));
00448     ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> = <a class="code" href="group__rpmtrans.html#a19a320">RPMTRANS_FLAG_NONE</a>;
00449     ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> = <a class="code" href="rpmlib_8h.html#a504a349">RPMPROB_FILTER_NONE</a>;
00450     ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> = <a class="code" href="group__rpmcli.html#a47a385">INSTALL_NONE</a>;
00451     ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m3">eraseInterfaceFlags</a> = <a class="code" href="group__rpmcli.html#a48a395">UNINSTALL_NONE</a>;
00452 <span class="preprocessor">#endif</span>
00453 <span class="preprocessor"></span>
00454     <span class="keywordflow">while</span> ((arg = <a class="code" href="group__popt.html#a7">poptGetNextOpt</a>(optCon)) &gt; 0) {
00455         optArg = <a class="code" href="group__popt.html#a8">poptGetOptArg</a>(optCon);
00456 
00457         <span class="keywordflow">switch</span> (arg) {
00458             
00459         <span class="keywordflow">case</span> <span class="charliteral">'v'</span>:
00460             <a class="code" href="rpmmessages_8h.html#a9">rpmIncreaseVerbosity</a>();
00461             <span class="keywordflow">break</span>;
00462 
00463 <span class="comment">/* XXX options used in multiple rpm modes */</span>
00464 <span class="preprocessor">#if defined(IAM_RPMQV) || defined(IAM_RPMK)</span>
00465 <span class="preprocessor"></span>        <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a3">POPT_NOMD5</a>:
00466 <span class="preprocessor">#ifdef  IAM_RPMQV</span>
00467 <span class="preprocessor"></span>            <span class="keywordflow">if</span> (bigMode == <a class="code" href="rpmqv_8c.html#a52a33">MODE_VERIFY</a> || qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m7">qva_mode</a> == <span class="charliteral">'V'</span>)
00468                 qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m2">qva_flags</a> |= <a class="code" href="group__rpmcli.html#a42a46">VERIFY_MD5</a>;
00469             <span class="keywordflow">else</span>
00470 <span class="preprocessor">#endif</span>
00471 <span class="preprocessor"></span><span class="preprocessor">#ifdef  IAM_RPMK</span>
00472 <span class="preprocessor"></span>            <span class="keywordflow">if</span> (bigMode &amp; MODES_K)
00473                 ka-&gt;<a class="code" href="structrpmSignArguments__s.html#m1">checksigFlags</a> &amp;= ~<a class="code" href="group__rpmcli.html#a43a65">CHECKSIG_MD5</a>;
00474             <span class="keywordflow">else</span>
00475 <span class="preprocessor">#endif</span>
00476 <span class="preprocessor"></span><span class="preprocessor">#ifdef  IAM_RPMEIU</span>
00477 <span class="preprocessor"></span>            <span class="keywordflow">if</span> (bigMode &amp; MODES_IE)
00478                 ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> |= <a class="code" href="group__rpmtrans.html#a19a348">RPMTRANS_FLAG_NOMD5</a>;
00479             <span class="keywordflow">else</span>
00480 <span class="preprocessor">#endif</span>
00481 <span class="preprocessor"></span>                {};
00482             <span class="keywordflow">break</span>;
00483 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMQV || IAM_RPMK */</span>
00484 
00485 <span class="preprocessor">#if defined(IAM_RPMQV) || defined(IAM_RPMEIU) || defined(IAM_RPMBT)</span>
00486 <span class="preprocessor"></span>        <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a1">POPT_NODEPS</a>:
00487 <span class="preprocessor">#ifdef  IAM_RPMQV</span>
00488 <span class="preprocessor"></span>            <span class="keywordflow">if</span> (bigMode == <a class="code" href="rpmqv_8c.html#a52a33">MODE_VERIFY</a> || qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m7">qva_mode</a> == <span class="charliteral">'V'</span>)
00489                 qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m2">qva_flags</a> |= <a class="code" href="group__rpmcli.html#a42a55">VERIFY_DEPS</a>;
00490             <span class="keywordflow">else</span>
00491 <span class="preprocessor">#endif</span>
00492 <span class="preprocessor"></span><span class="preprocessor">#ifdef  IAM_RPMEIU</span>
00493 <span class="preprocessor"></span>            <span class="keywordflow">if</span> ((bigMode &amp; MODES_IE) ||
00494                 (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> &amp;
00495             (<a class="code" href="group__rpmcli.html#a47a391">INSTALL_UPGRADE</a>|<a class="code" href="group__rpmcli.html#a47a392">INSTALL_FRESHEN</a>|<a class="code" href="group__rpmcli.html#a47a393">INSTALL_INSTALL</a>|<a class="code" href="group__rpmcli.html#a47a394">INSTALL_ERASE</a>)))
00496                 ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m6">noDeps</a> = 1;
00497             <span class="keywordflow">else</span>
00498 <span class="preprocessor">#endif</span>
00499 <span class="preprocessor"></span><span class="preprocessor">#ifdef  IAM_RPMBT</span>
00500 <span class="preprocessor"></span>            <span class="keywordflow">if</span> ((bigMode &amp; MODES_BT) || ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m10">buildMode</a> != <span class="charliteral">' '</span>)
00501                 ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m5">noDeps</a> = 1;
00502             <span class="keywordflow">else</span>
00503 <span class="preprocessor">#endif</span>
00504 <span class="preprocessor"></span>                <span class="comment">/*@-ifempty@*/</span> ;
00505             <span class="keywordflow">break</span>;
00506 
00507         <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a2">POPT_FORCE</a>:
00508 <span class="preprocessor">#ifdef  IAM_RPMEIU</span>
00509 <span class="preprocessor"></span>            <span class="keywordflow">if</span> ((bigMode &amp; MODES_IE) ||
00510                 (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> &amp;
00511             (<a class="code" href="group__rpmcli.html#a47a391">INSTALL_UPGRADE</a>|<a class="code" href="group__rpmcli.html#a47a392">INSTALL_FRESHEN</a>|<a class="code" href="group__rpmcli.html#a47a393">INSTALL_INSTALL</a>|<a class="code" href="group__rpmcli.html#a47a394">INSTALL_ERASE</a>)))
00512                 ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> |=
00513                         ( <a class="code" href="rpmlib_8h.html#a504a352">RPMPROB_FILTER_REPLACEPKG</a>
00514                         | <a class="code" href="rpmlib_8h.html#a504a355">RPMPROB_FILTER_REPLACEOLDFILES</a>
00515                         | <a class="code" href="rpmlib_8h.html#a504a354">RPMPROB_FILTER_REPLACENEWFILES</a>
00516                         | <a class="code" href="rpmlib_8h.html#a504a356">RPMPROB_FILTER_OLDPACKAGE</a>);
00517             <span class="keywordflow">else</span>
00518 <span class="preprocessor">#endif</span>
00519 <span class="preprocessor"></span><span class="preprocessor">#ifdef  IAM_RPMBT</span>
00520 <span class="preprocessor"></span>            <span class="keywordflow">if</span> ((bigMode &amp; MODES_BT) || ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m10">buildMode</a> != <span class="charliteral">' '</span>)
00521                 ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m3">force</a> = 1;
00522             <span class="keywordflow">else</span>
00523 <span class="preprocessor">#endif</span>
00524 <span class="preprocessor"></span>                <span class="comment">/*@-ifempty@*/</span> ;
00525             <span class="keywordflow">break</span>;
00526 
00527         <span class="keywordflow">case</span> <span class="charliteral">'i'</span>:
00528 <span class="preprocessor">#ifdef  IAM_RPMQV</span>
00529 <span class="preprocessor"></span>            <span class="keywordflow">if</span> (bigMode == <a class="code" href="rpmqv_8c.html#a52a32">MODE_QUERY</a> || qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m7">qva_mode</a> == <span class="charliteral">'q'</span>) {
00530                 <span class="comment">/*@-nullassign -readonlytrans@*/</span>
00531                 <span class="keyword">const</span> <span class="keywordtype">char</span> * infoCommand[] = { <span class="stringliteral">"--info"</span>, NULL };
00532                 <span class="comment">/*@=nullassign =readonlytrans@*/</span>
00533                 (void) <a class="code" href="group__popt.html#a14">poptStuffArgs</a>(optCon, infoCommand);
00534             } <span class="keywordflow">else</span>
00535 <span class="preprocessor">#endif</span>
00536 <span class="preprocessor"></span><span class="preprocessor">#ifdef  IAM_RPMEIU</span>
00537 <span class="preprocessor"></span>            <span class="keywordflow">if</span> (bigMode == <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> ||
00538                 (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> &amp;
00539                     (<a class="code" href="group__rpmcli.html#a47a391">INSTALL_UPGRADE</a>|<a class="code" href="group__rpmcli.html#a47a392">INSTALL_FRESHEN</a>|<a class="code" href="group__rpmcli.html#a47a393">INSTALL_INSTALL</a>)))
00540                 <span class="comment">/*@-ifempty@*/</span> ;
00541             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bigMode == <a class="code" href="rpmqv_8c.html#a52a46">MODE_UNKNOWN</a>) {
00542                 <span class="comment">/*@-nullassign -readonlytrans@*/</span>
00543                 <span class="keyword">const</span> <span class="keywordtype">char</span> * installCommand[] = { <span class="stringliteral">"--install"</span>, NULL };
00544                 <span class="comment">/*@=nullassign =readonlytrans@*/</span>
00545                 (void) <a class="code" href="group__popt.html#a14">poptStuffArgs</a>(optCon, installCommand);
00546             } <span class="keywordflow">else</span>
00547 <span class="preprocessor">#endif</span>
00548 <span class="preprocessor"></span>                <span class="comment">/*@-ifempty@*/</span> ;
00549             <span class="keywordflow">break</span>;
00550 
00551         <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a4">POPT_NOSCRIPTS</a>:
00552 <span class="preprocessor">#ifdef  IAM_RPMQV</span>
00553 <span class="preprocessor"></span>            <span class="keywordflow">if</span> (bigMode == <a class="code" href="rpmqv_8c.html#a52a33">MODE_VERIFY</a> || qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m7">qva_mode</a> == <span class="charliteral">'V'</span>)
00554                 qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m2">qva_flags</a> |= <a class="code" href="group__rpmcli.html#a42a56">VERIFY_SCRIPT</a>;
00555             <span class="keywordflow">else</span>
00556 <span class="preprocessor">#endif</span>
00557 <span class="preprocessor"></span><span class="preprocessor">#ifdef  IAM_RPMEIU</span>
00558 <span class="preprocessor"></span>            <span class="keywordflow">if</span> ((bigMode &amp; MODES_IE) ||
00559                 (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> &amp;
00560             (<a class="code" href="group__rpmcli.html#a47a391">INSTALL_UPGRADE</a>|<a class="code" href="group__rpmcli.html#a47a392">INSTALL_FRESHEN</a>|<a class="code" href="group__rpmcli.html#a47a393">INSTALL_INSTALL</a>|<a class="code" href="group__rpmcli.html#a47a394">INSTALL_ERASE</a>)))
00561                 ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> |= (<a class="code" href="rpmlib_8h.html#a33">_noTransScripts</a> | <a class="code" href="rpmlib_8h.html#a34">_noTransTriggers</a>);
00562             <span class="keywordflow">else</span>
00563 <span class="preprocessor">#endif</span>
00564 <span class="preprocessor"></span>                <span class="comment">/*@-ifempty@*/</span> ;
00565             <span class="keywordflow">break</span>;
00566 
00567 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMQV || IAM_RPMEIU || IAM_RPMBT */</span>
00568 
00569         <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a7">GETOPT_DEFINEMACRO</a>:
00570             <span class="keywordflow">if</span> (optArg) {
00571                 (void) <a class="code" href="macro_8c.html#a45">rpmDefineMacro</a>(NULL, optArg, <a class="code" href="rpmmacro_8h.html#a3">RMIL_CMDLINE</a>);
00572                 (void) <a class="code" href="macro_8c.html#a45">rpmDefineMacro</a>(rpmCLIMacroContext, optArg,<a class="code" href="rpmmacro_8h.html#a3">RMIL_CMDLINE</a>);
00573             }
00574             <a class="code" href="rpmqv_8c.html#a23">noUsageMsg</a> = 1;
00575             <span class="keywordflow">break</span>;
00576 
00577         <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a8">GETOPT_EVALMACRO</a>:
00578             <span class="keywordflow">if</span> (optArg) {
00579                 <span class="keyword">const</span> <span class="keywordtype">char</span> *val = <a class="code" href="macro_8c.html#a50">rpmExpand</a>(optArg, NULL);
00580                 fprintf(stdout, <span class="stringliteral">"%s\n"</span>, val);
00581                 val = <a class="code" href="poptint_8h.html#a14">_free</a>(val);
00582             }
00583             <a class="code" href="rpmqv_8c.html#a23">noUsageMsg</a> = 1;
00584             <span class="keywordflow">break</span>;
00585 
00586 <span class="preprocessor">#if defined(GETOPT_RCFILE)</span>
00587 <span class="preprocessor"></span>        <span class="keywordflow">case</span> GETOPT_RCFILE:
00588             fprintf(stderr, <a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"The --rcfile option has been eliminated.\n"</span>));
00589             fprintf(stderr, <a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"Use \"--macros &lt;file:...&gt;\" instead.\n"</span>));
00590             exit(<a class="code" href="system_8h.html#a3">EXIT_FAILURE</a>);
00591             <span class="comment">/*@notreached@*/</span> <span class="keywordflow">break</span>;
00592 <span class="preprocessor">#endif</span>
00593 <span class="preprocessor"></span>
00594         <span class="keywordflow">default</span>:
00595             fprintf(stderr, <a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"Internal error in argument processing (%d) :-(\n"</span>), arg);
00596             exit(<a class="code" href="system_8h.html#a3">EXIT_FAILURE</a>);
00597         }
00598     }
00599 
00600     <span class="keywordflow">if</span> (quiet)
00601         <a class="code" href="rpmmessages_8h.html#a8">rpmSetVerbosity</a>(<a class="code" href="rpmmessages_8h.html#a6">RPMMESS_QUIET</a>);
00602 
00603     <span class="keywordflow">if</span> (showVersion) <a class="code" href="rpmqv_8c.html#a48">printVersion</a>();
00604 
00605     <span class="keywordflow">if</span> (arg &lt; -1) {
00606         fprintf(stderr, <span class="stringliteral">"%s: %s\n"</span>, 
00607                 <a class="code" href="group__popt.html#a12">poptBadOption</a>(optCon, <a class="code" href="group__popt.html#a32">POPT_BADOPTION_NOALIAS</a>), 
00608                 <a class="code" href="group__popt.html#a21">poptStrerror</a>(arg));
00609         exit(<a class="code" href="system_8h.html#a3">EXIT_FAILURE</a>);
00610     }
00611 
00612 <span class="preprocessor">#ifdef  IAM_RPMBT</span>
00613 <span class="preprocessor"></span>    <span class="keywordflow">switch</span> (ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m10">buildMode</a>) {
00614     <span class="keywordflow">case</span> <span class="charliteral">'b'</span>:   bigMode = <a class="code" href="rpmqv_8c.html#a52a37">MODE_BUILD</a>;           <span class="keywordflow">break</span>;
00615     <span class="keywordflow">case</span> <span class="charliteral">'t'</span>:   bigMode = <a class="code" href="rpmqv_8c.html#a52a40">MODE_TARBUILD</a>;        <span class="keywordflow">break</span>;
00616     <span class="keywordflow">case</span> <span class="charliteral">'B'</span>:   bigMode = <a class="code" href="rpmqv_8c.html#a52a38">MODE_REBUILD</a>;         <span class="keywordflow">break</span>;
00617     <span class="keywordflow">case</span> <span class="charliteral">'C'</span>:   bigMode = <a class="code" href="rpmqv_8c.html#a52a39">MODE_RECOMPILE</a>;       <span class="keywordflow">break</span>;
00618     }
00619 
00620     <span class="keywordflow">if</span> ((ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> &amp; <a class="code" href="group__rpmbuild.html#a56a18">RPMBUILD_RMSOURCE</a>) &amp;&amp; bigMode == <a class="code" href="rpmqv_8c.html#a52a46">MODE_UNKNOWN</a>)
00621         bigMode = <a class="code" href="rpmqv_8c.html#a52a37">MODE_BUILD</a>;
00622 
00623     <span class="keywordflow">if</span> ((ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> &amp; <a class="code" href="group__rpmbuild.html#a56a21">RPMBUILD_RMSPEC</a>) &amp;&amp; bigMode == <a class="code" href="rpmqv_8c.html#a52a46">MODE_UNKNOWN</a>)
00624         bigMode = <a class="code" href="rpmqv_8c.html#a52a37">MODE_BUILD</a>;
00625 
00626     <span class="keywordflow">if</span> (ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m1">buildRootOverride</a> &amp;&amp; bigMode != <a class="code" href="rpmqv_8c.html#a52a37">MODE_BUILD</a> &amp;&amp;
00627         bigMode != <a class="code" href="rpmqv_8c.html#a52a38">MODE_REBUILD</a> &amp;&amp; bigMode != <a class="code" href="rpmqv_8c.html#a52a40">MODE_TARBUILD</a>) {
00628         <a class="code" href="poptI_8c.html#a6">argerror</a>(<span class="stringliteral">"--buildroot may only be used during package builds"</span>);
00629     }
00630 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMBT */</span>
00631     
00632 <span class="preprocessor">#ifdef  IAM_RPMDB</span>
00633 <span class="preprocessor"></span>  <span class="keywordflow">if</span> (bigMode == <a class="code" href="rpmqv_8c.html#a52a46">MODE_UNKNOWN</a> || (bigMode &amp; MODES_DB)) {
00634     <span class="keywordflow">if</span> (da-&gt;<a class="code" href="structrpmDatabaseArguments__s.html#m0">init</a>) {
00635         <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a46">MODE_UNKNOWN</a>) 
00636             <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"only one major mode may be specified"</span>));
00637         <span class="keywordflow">else</span>
00638             bigMode = <a class="code" href="rpmqv_8c.html#a52a43">MODE_INITDB</a>;
00639     } <span class="keywordflow">else</span>
00640     <span class="keywordflow">if</span> (da-&gt;<a class="code" href="structrpmDatabaseArguments__s.html#m1">rebuild</a>) {
00641         <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a46">MODE_UNKNOWN</a>) 
00642             <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"only one major mode may be specified"</span>));
00643         <span class="keywordflow">else</span>
00644             bigMode = <a class="code" href="rpmqv_8c.html#a52a44">MODE_REBUILDDB</a>;
00645     } <span class="keywordflow">else</span>
00646     <span class="keywordflow">if</span> (da-&gt;<a class="code" href="structrpmDatabaseArguments__s.html#m2">verify</a>) {
00647         <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a46">MODE_UNKNOWN</a>) 
00648             <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"only one major mode may be specified"</span>));
00649         <span class="keywordflow">else</span>
00650             bigMode = <a class="code" href="rpmqv_8c.html#a52a45">MODE_VERIFYDB</a>;
00651     }
00652   }
00653 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMDB */</span>
00654 
00655 <span class="preprocessor">#ifdef  IAM_RPMQV</span>
00656 <span class="preprocessor"></span>  <span class="keywordflow">if</span> (bigMode == <a class="code" href="rpmqv_8c.html#a52a46">MODE_UNKNOWN</a> || (bigMode &amp; MODES_QV)) {
00657     <span class="keywordflow">switch</span> (qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m7">qva_mode</a>) {
00658     <span class="keywordflow">case</span> <span class="charliteral">'q'</span>:   bigMode = <a class="code" href="rpmqv_8c.html#a52a32">MODE_QUERY</a>;           <span class="keywordflow">break</span>;
00659     <span class="keywordflow">case</span> <span class="charliteral">'V'</span>:   bigMode = <a class="code" href="rpmqv_8c.html#a52a33">MODE_VERIFY</a>;          <span class="keywordflow">break</span>;
00660     <span class="keywordflow">case</span> <span class="charliteral">'Q'</span>:   bigMode = <a class="code" href="rpmqv_8c.html#a52a34">MODE_QUERYTAGS</a>;       <span class="keywordflow">break</span>;
00661     }
00662 
00663     <span class="keywordflow">if</span> (qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m1">qva_sourceCount</a>) {
00664         <span class="keywordflow">if</span> (qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m1">qva_sourceCount</a> &gt; 2)
00665             <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"one type of query/verify may be performed at a "</span>
00666                         <span class="stringliteral">"time"</span>));
00667     }
00668     <span class="keywordflow">if</span> (qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m2">qva_flags</a> &amp;&amp; (bigMode &amp; ~MODES_QV)) 
00669         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"unexpected query flags"</span>));
00670 
00671     <span class="keywordflow">if</span> (qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m5">qva_queryFormat</a> &amp;&amp; (bigMode &amp; ~MODES_QV)) 
00672         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"unexpected query format"</span>));
00673 
00674     <span class="keywordflow">if</span> (qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m0">qva_source</a> != <a class="code" href="group__rpmcli.html#a45a359">RPMQV_PACKAGE</a> &amp;&amp; (bigMode &amp; ~MODES_QV)) 
00675         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"unexpected query source"</span>));
00676   }
00677 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMQV */</span>
00678 
00679 <span class="preprocessor">#ifdef  IAM_RPMEIU</span>
00680 <span class="preprocessor"></span>  <span class="keywordflow">if</span> (bigMode == <a class="code" href="rpmqv_8c.html#a52a46">MODE_UNKNOWN</a> || (bigMode &amp; MODES_IE))
00681     {   <span class="keywordtype">int</span> iflags = (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> &amp;
00682                 (<a class="code" href="group__rpmcli.html#a47a391">INSTALL_UPGRADE</a>|<a class="code" href="group__rpmcli.html#a47a392">INSTALL_FRESHEN</a>|<a class="code" href="group__rpmcli.html#a47a393">INSTALL_INSTALL</a>));
00683         <span class="keywordtype">int</span> eflags = (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> &amp; <a class="code" href="group__rpmcli.html#a47a394">INSTALL_ERASE</a>);
00684 
00685         <span class="keywordflow">if</span> (iflags &amp; eflags)
00686             <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"only one major mode may be specified"</span>));
00687         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (iflags)
00688             bigMode = <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a>;
00689         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (eflags)
00690             bigMode = <a class="code" href="rpmqv_8c.html#a52a36">MODE_ERASE</a>;
00691     }
00692 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMQV */</span>
00693 
00694 <span class="preprocessor">#ifdef  IAM_RPMK</span>
00695 <span class="preprocessor"></span>  <span class="keywordflow">if</span> (bigMode == <a class="code" href="rpmqv_8c.html#a52a46">MODE_UNKNOWN</a> || (bigMode &amp; MODES_K)) {
00696         <span class="keywordflow">switch</span> (ka-&gt;<a class="code" href="structrpmSignArguments__s.html#m0">addSign</a>) {
00697         <span class="keywordflow">case</span> <a class="code" href="group__rpmcli.html#a44a67">RESIGN_NONE</a>:
00698             <span class="keywordflow">break</span>;
00699         <span class="keywordflow">case</span> <a class="code" href="group__rpmcli.html#a44a68">RESIGN_CHK_SIGNATURE</a>:
00700             bigMode = <a class="code" href="rpmqv_8c.html#a52a41">MODE_CHECKSIG</a>;
00701             <span class="keywordflow">break</span>;
00702         <span class="keywordflow">case</span> <a class="code" href="group__rpmcli.html#a44a70">RESIGN_ADD_SIGNATURE</a>:
00703         <span class="keywordflow">case</span> <a class="code" href="group__rpmcli.html#a44a69">RESIGN_NEW_SIGNATURE</a>:
00704             bigMode = <a class="code" href="rpmqv_8c.html#a52a42">MODE_RESIGN</a>;
00705             <span class="keywordflow">break</span>;
00706 
00707         }
00708   }
00709 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMK */</span>
00710 
00711     <span class="comment">/* XXX TODO: never happens. */</span>
00712     <span class="keywordflow">if</span> (gotDbpath &amp;&amp; (bigMode &amp; ~<a class="code" href="rpmqv_8c.html#a14">MODES_FOR_DBPATH</a>))
00713         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--dbpath given for operation that does not use a "</span>
00714                         <span class="stringliteral">"database"</span>));
00715 
00716 <span class="preprocessor">#if defined(IAM_RPMEIU)</span>
00717 <span class="preprocessor"></span>    <span class="keywordflow">if</span> (!( bigMode == <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> ) &amp;&amp;
00718 (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> &amp; (<a class="code" href="rpmlib_8h.html#a504a352">RPMPROB_FILTER_REPLACEPKG</a> | <a class="code" href="rpmlib_8h.html#a504a355">RPMPROB_FILTER_REPLACEOLDFILES</a> | <a class="code" href="rpmlib_8h.html#a504a354">RPMPROB_FILTER_REPLACENEWFILES</a> | <a class="code" href="rpmlib_8h.html#a504a356">RPMPROB_FILTER_OLDPACKAGE</a>)))
00719         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"only installation, upgrading, rmsource and rmspec may be forced"</span>));
00720     <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> &amp;&amp; (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> &amp; <a class="code" href="rpmlib_8h.html#a504a353">RPMPROB_FILTER_FORCERELOCATE</a>))
00721         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"files may only be relocated during package installation"</span>));
00722 
00723     <span class="keywordflow">if</span> (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a> &amp;&amp; ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m8">prefix</a>)
00724         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"only one of --prefix or --relocate may be used"</span>));
00725 
00726     <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> &amp;&amp; ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>)
00727         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--relocate and --excludepath may only be used when installing new packages"</span>));
00728 
00729     <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> &amp;&amp; ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m8">prefix</a>)
00730         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--prefix may only be used when installing new packages"</span>));
00731 
00732     <span class="keywordflow">if</span> (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m8">prefix</a> &amp;&amp; ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m8">prefix</a>[0] != <span class="charliteral">'/'</span>) 
00733         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"arguments to --prefix must begin with a /"</span>));
00734 
00735     <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> &amp;&amp; (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> &amp; <a class="code" href="group__rpmcli.html#a47a387">INSTALL_HASH</a>))
00736         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--hash (-h) may only be specified during package "</span>
00737                         <span class="stringliteral">"installation"</span>));
00738 
00739     <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> &amp;&amp; (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> &amp; <a class="code" href="group__rpmcli.html#a47a386">INSTALL_PERCENT</a>))
00740         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--percent may only be specified during package "</span>
00741                         <span class="stringliteral">"installation"</span>));
00742 
00743     <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> &amp;&amp;
00744  (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> &amp; (<a class="code" href="rpmlib_8h.html#a504a355">RPMPROB_FILTER_REPLACEOLDFILES</a>|<a class="code" href="rpmlib_8h.html#a504a354">RPMPROB_FILTER_REPLACENEWFILES</a>)))
00745         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--replacefiles may only be specified during package "</span>
00746                         <span class="stringliteral">"installation"</span>));
00747 
00748     <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> &amp;&amp; (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> &amp; <a class="code" href="rpmlib_8h.html#a504a352">RPMPROB_FILTER_REPLACEPKG</a>))
00749         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--replacepkgs may only be specified during package "</span>
00750                         <span class="stringliteral">"installation"</span>));
00751 
00752     <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> &amp;&amp; (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> &amp; <a class="code" href="group__rpmtrans.html#a19a326">RPMTRANS_FLAG_NODOCS</a>))
00753         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--excludedocs may only be specified during package "</span>
00754                    <span class="stringliteral">"installation"</span>));
00755 
00756     <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> &amp;&amp; ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m7">incldocs</a>)
00757         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--includedocs may only be specified during package "</span>
00758                    <span class="stringliteral">"installation"</span>));
00759 
00760     <span class="keywordflow">if</span> (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m7">incldocs</a> &amp;&amp; (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> &amp; <a class="code" href="group__rpmtrans.html#a19a326">RPMTRANS_FLAG_NODOCS</a>))
00761         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"only one of --excludedocs and --includedocs may be "</span>
00762                  <span class="stringliteral">"specified"</span>));
00763   
00764     <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> &amp;&amp; (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> &amp; <a class="code" href="rpmlib_8h.html#a504a351">RPMPROB_FILTER_IGNOREARCH</a>))
00765         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--ignorearch may only be specified during package "</span>
00766                    <span class="stringliteral">"installation"</span>));
00767 
00768     <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> &amp;&amp; (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> &amp; <a class="code" href="rpmlib_8h.html#a504a350">RPMPROB_FILTER_IGNOREOS</a>))
00769         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--ignoreos may only be specified during package "</span>
00770                    <span class="stringliteral">"installation"</span>));
00771 
00772     <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> &amp;&amp;
00773         (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> &amp; (<a class="code" href="rpmlib_8h.html#a504a357">RPMPROB_FILTER_DISKSPACE</a>|<a class="code" href="rpmlib_8h.html#a504a358">RPMPROB_FILTER_DISKNODES</a>)))
00774         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--ignoresize may only be specified during package "</span>
00775                    <span class="stringliteral">"installation"</span>));
00776 
00777     <span class="keywordflow">if</span> ((ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m3">eraseInterfaceFlags</a> &amp; <a class="code" href="group__rpmcli.html#a48a397">UNINSTALL_ALLMATCHES</a>) &amp;&amp; bigMode != <a class="code" href="rpmqv_8c.html#a52a36">MODE_ERASE</a>)
00778         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--allmatches may only be specified during package "</span>
00779                    <span class="stringliteral">"erasure"</span>));
00780 
00781     <span class="keywordflow">if</span> ((ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> &amp; <a class="code" href="group__rpmtrans.html#a19a327">RPMTRANS_FLAG_ALLFILES</a>) &amp;&amp; bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a>)
00782         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--allfiles may only be specified during package "</span>
00783                    <span class="stringliteral">"installation"</span>));
00784 
00785     <span class="keywordflow">if</span> ((ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> &amp; <a class="code" href="group__rpmtrans.html#a19a324">RPMTRANS_FLAG_JUSTDB</a>) &amp;&amp;
00786         bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> &amp;&amp; bigMode != <a class="code" href="rpmqv_8c.html#a52a36">MODE_ERASE</a>)
00787         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--justdb may only be specified during package "</span>
00788                    <span class="stringliteral">"installation and erasure"</span>));
00789 
00790     <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> &amp;&amp; bigMode != <a class="code" href="rpmqv_8c.html#a52a36">MODE_ERASE</a> &amp;&amp;
00791         (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> &amp; (<a class="code" href="group__rpmtrans.html#a19a323">RPMTRANS_FLAG_NOSCRIPTS</a> | <a class="code" href="rpmlib_8h.html#a33">_noTransScripts</a> | <a class="code" href="rpmlib_8h.html#a34">_noTransTriggers</a>)))
00792         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"script disabling options may only be specified during "</span>
00793                    <span class="stringliteral">"package installation and erasure"</span>));
00794 
00795     <span class="keywordflow">if</span> (bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> &amp;&amp; bigMode != <a class="code" href="rpmqv_8c.html#a52a36">MODE_ERASE</a> &amp;&amp;
00796         (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> &amp; (<a class="code" href="group__rpmtrans.html#a19a325">RPMTRANS_FLAG_NOTRIGGERS</a> | <a class="code" href="rpmlib_8h.html#a34">_noTransTriggers</a>)))
00797         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"trigger disabling options may only be specified during "</span>
00798                    <span class="stringliteral">"package installation and erasure"</span>));
00799 
00800     <span class="keywordflow">if</span> (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m6">noDeps</a> &amp; (bigMode &amp; ~<a class="code" href="rpmqv_8c.html#a15">MODES_FOR_NODEPS</a>))
00801         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--nodeps may only be specified during package "</span>
00802                    <span class="stringliteral">"building, rebuilding, recompilation, installation,"</span>
00803                    <span class="stringliteral">"erasure, and verification"</span>));
00804 
00805     <span class="keywordflow">if</span> ((ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> &amp; <a class="code" href="group__rpmtrans.html#a19a321">RPMTRANS_FLAG_TEST</a>) &amp;&amp; (bigMode &amp; ~<a class="code" href="rpmqv_8c.html#a16">MODES_FOR_TEST</a>))
00806         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--test may only be specified during package installation, "</span>
00807                  <span class="stringliteral">"erasure, and building"</span>));
00808 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMEIU */</span>
00809 
00810     <span class="keywordflow">if</span> (<a class="code" href="rpmqv_8c.html#a27">rootdir</a> &amp;&amp; <a class="code" href="rpmqv_8c.html#a27">rootdir</a>[1] &amp;&amp; (bigMode &amp; ~<a class="code" href="rpmqv_8c.html#a17">MODES_FOR_ROOT</a>))
00811         <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--root (-r) may only be specified during "</span>
00812                  <span class="stringliteral">"installation, erasure, querying, and "</span>
00813                  <span class="stringliteral">"database rebuilds"</span>));
00814 
00815     <span class="keywordflow">if</span> (rootdir) {
00816         <span class="keywordflow">switch</span> (<a class="code" href="url_8c.html#a17">urlIsURL</a>(<a class="code" href="rpmqv_8c.html#a27">rootdir</a>)) {
00817         <span class="keywordflow">default</span>:
00818             <span class="keywordflow">if</span> (bigMode &amp; <a class="code" href="rpmqv_8c.html#a17">MODES_FOR_ROOT</a>)
00819                 <span class="keywordflow">break</span>;
00820             <span class="comment">/*@fallthrough@*/</span>
00821         <span class="keywordflow">case</span> <a class="code" href="rpmurl_8h.html#a30a14">URL_IS_UNKNOWN</a>:
00822             <span class="keywordflow">if</span> (<a class="code" href="rpmqv_8c.html#a27">rootdir</a>[0] != <span class="charliteral">'/'</span>)
00823                 <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"arguments to --root (-r) must begin with a /"</span>));
00824             <span class="keywordflow">break</span>;
00825         }
00826     }
00827 
00828 <span class="preprocessor">#if defined(IAM_RPMBT) || defined(IAM_RPMK)</span>
00829 <span class="preprocessor"></span>    <span class="keywordflow">if</span> (0
00830 <span class="preprocessor">#if defined(IAM_RPMBT)</span>
00831 <span class="preprocessor"></span>    || ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m8">sign</a> 
00832 <span class="preprocessor">#endif</span>
00833 <span class="preprocessor"></span><span class="preprocessor">#if defined(IAM_RPMK)</span>
00834 <span class="preprocessor"></span>    || ka-&gt;<a class="code" href="structrpmSignArguments__s.html#m2">sign</a>
00835 <span class="preprocessor">#endif</span>
00836 <span class="preprocessor"></span>    ) {
00837         <span class="keywordflow">if</span> (bigMode == <a class="code" href="rpmqv_8c.html#a52a38">MODE_REBUILD</a> || bigMode == <a class="code" href="rpmqv_8c.html#a52a37">MODE_BUILD</a> ||
00838             bigMode == <a class="code" href="rpmqv_8c.html#a52a42">MODE_RESIGN</a> || bigMode == <a class="code" href="rpmqv_8c.html#a52a40">MODE_TARBUILD</a>) {
00839             <span class="keyword">const</span> <span class="keywordtype">char</span> ** av;
00840             <span class="keyword">struct </span>stat sb;
00841             <span class="keywordtype">int</span> errors = 0;
00842 
00843             <span class="keywordflow">if</span> ((av = <a class="code" href="group__popt.html#a11">poptGetArgs</a>(optCon)) == NULL) {
00844                 fprintf(stderr, <a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"no files to sign\n"</span>));
00845                 errors++;
00846             } <span class="keywordflow">else</span>
00847             <span class="keywordflow">while</span> (*av) {
00848                 <span class="keywordflow">if</span> (stat(*av, &amp;sb)) {
00849                     fprintf(stderr, <a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"cannot access file %s\n"</span>), *av);
00850                     errors++;
00851                 }
00852                 av++;
00853             }
00854 
00855             <span class="keywordflow">if</span> (errors) {
00856                 ec = errors;
00857                 <span class="keywordflow">goto</span> exit;
00858             }
00859 
00860             <span class="keywordflow">if</span> (<a class="code" href="group__popt.html#a10">poptPeekArg</a>(optCon)) {
00861                 <span class="keywordtype">int</span> sigTag;
00862                 <span class="keywordflow">switch</span> (sigTag = <a class="code" href="group__signature.html#a8">rpmLookupSignatureType</a>(<a class="code" href="signature_8h.html#a0">RPMLOOKUPSIG_QUERY</a>)) {
00863                   <span class="keywordflow">case</span> 0:
00864                     <span class="keywordflow">break</span>;
00865                   <span class="keywordflow">case</span> <a class="code" href="group__signature.html#a11a400">RPMSIGTAG_PGP</a>:
00866                     <span class="keywordflow">if</span> ((sigTag == <a class="code" href="group__signature.html#a11a400">RPMSIGTAG_PGP</a> || sigTag == <a class="code" href="group__signature.html#a11a404">RPMSIGTAG_PGP5</a>) &amp;&amp;
00867                         !<a class="code" href="group__signature.html#a10">rpmDetectPGPVersion</a>(NULL)) {
00868                         fprintf(stderr, <a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"pgp not found: "</span>));
00869                         ec = <a class="code" href="system_8h.html#a3">EXIT_FAILURE</a>;
00870                         <span class="keywordflow">goto</span> exit;
00871                     }   <span class="comment">/*@fallthrough@*/</span>
00872                   <span class="keywordflow">case</span> <a class="code" href="group__signature.html#a11a403">RPMSIGTAG_GPG</a>:
00873                     passPhrase = <a class="code" href="group__signature.html#a9">rpmGetPassPhrase</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"Enter pass phrase: "</span>), sigTag);
00874                     <span class="keywordflow">if</span> (passPhrase == NULL) {
00875                         fprintf(stderr, <a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"Pass phrase check failed\n"</span>));
00876                         ec = <a class="code" href="system_8h.html#a3">EXIT_FAILURE</a>;
00877                         <span class="keywordflow">goto</span> exit;
00878                     }
00879                     fprintf(stderr, <a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"Pass phrase is good.\n"</span>));
00880                     passPhrase = <a class="code" href="rpmmalloc_8c.html#a4">xstrdup</a>(passPhrase);
00881                     <span class="keywordflow">break</span>;
00882                   <span class="keywordflow">default</span>:
00883                     fprintf(stderr,
00884                             <a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"Invalid %%_signature spec in macro file.\n"</span>));
00885                     ec = <a class="code" href="system_8h.html#a3">EXIT_FAILURE</a>;
00886                     <span class="keywordflow">goto</span> exit;
00887                     <span class="comment">/*@notreached@*/</span> <span class="keywordflow">break</span>;
00888                 }
00889             }
00890         } <span class="keywordflow">else</span> {
00891             <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"--sign may only be used during package building"</span>));
00892         }
00893     } <span class="keywordflow">else</span> {
00894         <span class="comment">/* Make rpmLookupSignatureType() return 0 ("none") from now on */</span>
00895         (void) <a class="code" href="group__signature.html#a8">rpmLookupSignatureType</a>(<a class="code" href="signature_8h.html#a1">RPMLOOKUPSIG_DISABLE</a>);
00896     }
00897 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMBT || IAM_RPMK */</span>
00898 
00899     <span class="keywordflow">if</span> (pipeOutput) {
00900         (void) pipe(p);
00901 
00902         <span class="keywordflow">if</span> (!(pipeChild = fork())) {
00903             (void) close(p[1]);
00904             (void) dup2(p[0], STDIN_FILENO);
00905             (void) close(p[0]);
00906             (void) execl(<span class="stringliteral">"/bin/sh"</span>, <span class="stringliteral">"/bin/sh"</span>, <span class="stringliteral">"-c"</span>, <a class="code" href="rpmqv_8c.html#a24">pipeOutput</a>, NULL);
00907             fprintf(stderr, <a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"exec failed\n"</span>));
00908         }
00909 
00910         (void) close(p[0]);
00911         (void) dup2(p[1], STDOUT_FILENO);
00912         (void) close(p[1]);
00913     }
00914         
00915     <span class="keywordflow">switch</span> (bigMode) {
00916 <span class="preprocessor">#ifdef  IAM_RPMDB</span>
00917 <span class="preprocessor"></span>    <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a43">MODE_INITDB</a>:
00918         (void) <a class="code" href="group__rpmdb.html#a58">rpmdbInit</a>(<a class="code" href="rpmqv_8c.html#a27">rootdir</a>, 0644);
00919         <span class="keywordflow">break</span>;
00920 
00921     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a44">MODE_REBUILDDB</a>:
00922         ec = <a class="code" href="group__rpmdb.html#a95">rpmdbRebuild</a>(<a class="code" href="rpmqv_8c.html#a27">rootdir</a>);
00923         <span class="keywordflow">break</span>;
00924     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a45">MODE_VERIFYDB</a>:
00925         ec = <a class="code" href="group__rpmdb.html#a59">rpmdbVerify</a>(<a class="code" href="rpmqv_8c.html#a27">rootdir</a>);
00926         <span class="keywordflow">break</span>;
00927 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMDB */</span>
00928 
00929 <span class="preprocessor">#ifdef  IAM_RPMBT</span>
00930 <span class="preprocessor"></span>    <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a38">MODE_REBUILD</a>:
00931     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a39">MODE_RECOMPILE</a>:
00932       { <span class="keyword">const</span> <span class="keywordtype">char</span> * pkg;
00933         <span class="keywordflow">while</span> (!<a class="code" href="rpmmessages_8h.html#a12">rpmIsVerbose</a>())
00934             <a class="code" href="rpmmessages_8h.html#a9">rpmIncreaseVerbosity</a>();
00935 
00936         <span class="keywordflow">if</span> (!<a class="code" href="group__popt.html#a10">poptPeekArg</a>(optCon))
00937             <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"no packages files given for rebuild"</span>));
00938 
00939         ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> = <a class="code" href="group__rpmbuild.html#a56a11">RPMBUILD_PREP</a> | <a class="code" href="group__rpmbuild.html#a56a12">RPMBUILD_BUILD</a> | <a class="code" href="group__rpmbuild.html#a56a13">RPMBUILD_INSTALL</a>;
00940         <span class="keywordflow">if</span> (bigMode == <a class="code" href="rpmqv_8c.html#a52a38">MODE_REBUILD</a>) {
00941             ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a17">RPMBUILD_PACKAGEBINARY</a>;
00942             ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a18">RPMBUILD_RMSOURCE</a>;
00943             ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a21">RPMBUILD_RMSPEC</a>;
00944             ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a14">RPMBUILD_CLEAN</a>;
00945             ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a19">RPMBUILD_RMBUILD</a>;
00946         }
00947 
00948         <span class="keywordflow">while</span> ((pkg = <a class="code" href="group__popt.html#a9">poptGetArg</a>(optCon))) {
00949             <span class="keyword">const</span> <span class="keywordtype">char</span> * specFile = NULL;
00950             <span class="keywordtype">char</span> * cookie = NULL;
00951 
00952             ec = <a class="code" href="group__rpmcli.html#a11">rpmInstallSource</a>(<span class="stringliteral">""</span>, pkg, &amp;specFile, &amp;cookie);
00953             <span class="keywordflow">if</span> (ec)
00954                 <span class="comment">/*@loopbreak@*/</span> <span class="keywordflow">break</span>;
00955 
00956             ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m12">rootdir</a> = <a class="code" href="rpmqv_8c.html#a27">rootdir</a>;
00957             ec = <a class="code" href="build_8c.html#a5">build</a>(specFile, ba, passPhrase, cookie, <a class="code" href="rpmqv_8c.html#a26">rcfile</a>);
00958             free(cookie);
00959             cookie = NULL;
00960             free((<span class="keywordtype">void</span> *)specFile);
00961             specFile = NULL;
00962 
00963             <span class="keywordflow">if</span> (ec)
00964                 <span class="comment">/*@loopbreak@*/</span> <span class="keywordflow">break</span>;
00965         }
00966       } <span class="keywordflow">break</span>;
00967 
00968       <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a37">MODE_BUILD</a>:
00969       <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a40">MODE_TARBUILD</a>:
00970       { <span class="keyword">const</span> <span class="keywordtype">char</span> * pkg;
00971         <span class="keywordflow">while</span> (!<a class="code" href="rpmmessages_8h.html#a12">rpmIsVerbose</a>())
00972             <a class="code" href="rpmmessages_8h.html#a9">rpmIncreaseVerbosity</a>();
00973        
00974         <span class="keywordflow">switch</span> (ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m11">buildChar</a>) {
00975         <span class="keywordflow">case</span> <span class="charliteral">'a'</span>:
00976             ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a16">RPMBUILD_PACKAGESOURCE</a>;
00977             <span class="comment">/*@fallthrough@*/</span>
00978         <span class="keywordflow">case</span> <span class="charliteral">'b'</span>:
00979             ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a17">RPMBUILD_PACKAGEBINARY</a>;
00980             ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a14">RPMBUILD_CLEAN</a>;
00981             <span class="keywordflow">if</span> (ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m7">shortCircuit</a>) <span class="keywordflow">break</span>;
00982             <span class="comment">/*@fallthrough@*/</span>
00983         <span class="keywordflow">case</span> <span class="charliteral">'i'</span>:
00984             ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a13">RPMBUILD_INSTALL</a>;
00985             <span class="keywordflow">if</span> ((ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m11">buildChar</a> == <span class="charliteral">'i'</span>) &amp;&amp; ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m7">shortCircuit</a>)
00986                 <span class="keywordflow">break</span>;
00987             <span class="comment">/*@fallthrough@*/</span>
00988         <span class="keywordflow">case</span> <span class="charliteral">'c'</span>:
00989             ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a12">RPMBUILD_BUILD</a>;
00990             <span class="keywordflow">if</span> ((ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m11">buildChar</a> == <span class="charliteral">'c'</span>) &amp;&amp; ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m7">shortCircuit</a>)
00991                 <span class="keywordflow">break</span>;
00992             <span class="comment">/*@fallthrough@*/</span>
00993         <span class="keywordflow">case</span> <span class="charliteral">'p'</span>:
00994             ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a11">RPMBUILD_PREP</a>;
00995             <span class="keywordflow">break</span>;
00996             
00997         <span class="keywordflow">case</span> <span class="charliteral">'l'</span>:
00998             ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a15">RPMBUILD_FILECHECK</a>;
00999             <span class="keywordflow">break</span>;
01000         <span class="keywordflow">case</span> <span class="charliteral">'s'</span>:
01001             ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a16">RPMBUILD_PACKAGESOURCE</a>;
01002             <span class="keywordflow">break</span>;
01003         }
01004 
01005         <span class="keywordflow">if</span> (!<a class="code" href="group__popt.html#a10">poptPeekArg</a>(optCon)) {
01006             <span class="keywordflow">if</span> (bigMode == <a class="code" href="rpmqv_8c.html#a52a37">MODE_BUILD</a>)
01007                 <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"no spec files given for build"</span>));
01008             <span class="keywordflow">else</span>
01009                 <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"no tar files given for build"</span>));
01010         }
01011 
01012         <span class="keywordflow">while</span> ((pkg = <a class="code" href="group__popt.html#a9">poptGetArg</a>(optCon))) {
01013             ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m12">rootdir</a> = <a class="code" href="rpmqv_8c.html#a27">rootdir</a>;
01014             ec = <a class="code" href="build_8c.html#a5">build</a>(pkg, ba, passPhrase, NULL, <a class="code" href="rpmqv_8c.html#a26">rcfile</a>);
01015             <span class="keywordflow">if</span> (ec)
01016                 <span class="comment">/*@loopbreak@*/</span> <span class="keywordflow">break</span>;
01017             <a class="code" href="macro_8c.html#a48">rpmFreeMacros</a>(NULL);
01018             (void) <a class="code" href="group__rpmrc.html#a54">rpmReadConfigFiles</a>(<a class="code" href="rpmqv_8c.html#a26">rcfile</a>, NULL);
01019         }
01020       } <span class="keywordflow">break</span>;
01021 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMBT */</span>
01022 
01023 <span class="preprocessor">#ifdef  IAM_RPMEIU</span>
01024 <span class="preprocessor"></span>    <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a36">MODE_ERASE</a>:
01025         ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m9">rootdir</a> = <a class="code" href="rpmqv_8c.html#a27">rootdir</a>;
01026         <span class="keywordflow">if</span> (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m6">noDeps</a>) ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m3">eraseInterfaceFlags</a> |= <a class="code" href="group__rpmcli.html#a48a396">UNINSTALL_NODEPS</a>;
01027 
01028         <span class="keywordflow">if</span> (!<a class="code" href="group__popt.html#a10">poptPeekArg</a>(optCon)) {
01029             <span class="keywordflow">if</span> (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m10">rbtid</a> == 0)
01030                 <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"no packages given for erase"</span>));
01031 ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> |= <a class="code" href="group__rpmtrans.html#a19a348">RPMTRANS_FLAG_NOMD5</a>;
01032 ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> |= <a class="code" href="rpmlib_8h.html#a504a356">RPMPROB_FILTER_OLDPACKAGE</a>;
01033             ec += <a class="code" href="group__rpmcli.html#a18">rpmRollback</a>(ia, NULL);
01034         } <span class="keywordflow">else</span> {
01035             ec += <a class="code" href="group__rpmcli.html#a10">rpmErase</a>(<a class="code" href="rpmqv_8c.html#a27">rootdir</a>, (<span class="keyword">const</span> <span class="keywordtype">char</span> **)<a class="code" href="group__popt.html#a11">poptGetArgs</a>(optCon), 
01036                          ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a>, ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m3">eraseInterfaceFlags</a>);
01037         }
01038         <span class="keywordflow">break</span>;
01039 
01040     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a>:
01041         <span class="comment">/* RPMTRANS_FLAG_BUILD_PROBS */</span>
01042         <span class="comment">/* RPMTRANS_FLAG_KEEPOBSOLETE */</span>
01043         ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m9">rootdir</a> = <a class="code" href="rpmqv_8c.html#a27">rootdir</a>;
01044         <span class="keywordflow">if</span> (!ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m7">incldocs</a>) {
01045             <span class="keywordflow">if</span> (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> &amp; <a class="code" href="group__rpmtrans.html#a19a326">RPMTRANS_FLAG_NODOCS</a>)
01046                 ;
01047             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="macro_8c.html#a51">rpmExpandNumeric</a>(<span class="stringliteral">"%{_excludedocs}"</span>))
01048                 ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> |= <a class="code" href="group__rpmtrans.html#a19a326">RPMTRANS_FLAG_NODOCS</a>;
01049         }
01050 
01051         <span class="keywordflow">if</span> (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m6">noDeps</a>) ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> |= <a class="code" href="group__rpmcli.html#a47a388">INSTALL_NODEPS</a>;
01052 
01053         <span class="comment">/* we've already ensured !(!ia-&gt;prefix &amp;&amp; !ia-&gt;relocations) */</span>
01054         <span class="keywordflow">if</span> (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m8">prefix</a>) {
01055             ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a> = <a class="code" href="rpmmalloc_8c.html#a1">xmalloc</a>(2 * <span class="keyword">sizeof</span>(*ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>));
01056             ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>[0].<a class="code" href="structrpmRelocation__s.html#m0">oldPath</a> = NULL;   <span class="comment">/* special case magic */</span>
01057             ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>[0].<a class="code" href="structrpmRelocation__s.html#m1">newPath</a> = ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m8">prefix</a>;
01058             ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>[1].<a class="code" href="structrpmRelocation__s.html#m0">oldPath</a> = ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>[1].<a class="code" href="structrpmRelocation__s.html#m1">newPath</a> = NULL;
01059         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>) {
01060             ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a> = <a class="code" href="rpmmalloc_8c.html#a3">xrealloc</a>(ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>, 
01061                         <span class="keyword">sizeof</span>(*ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>) * (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m5">numRelocations</a> + 1));
01062             ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>[ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m5">numRelocations</a>].oldPath = NULL;
01063             ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>[ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m5">numRelocations</a>].newPath = NULL;
01064         }
01065 
01066         <span class="keywordflow">if</span> (!<a class="code" href="group__popt.html#a10">poptPeekArg</a>(optCon)) {
01067             <span class="keywordflow">if</span> (ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m10">rbtid</a> == 0)
01068                 <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"no packages given for install"</span>));
01069 ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> |= <a class="code" href="group__rpmtrans.html#a19a348">RPMTRANS_FLAG_NOMD5</a>;
01070 ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> |= <a class="code" href="rpmlib_8h.html#a504a356">RPMPROB_FILTER_OLDPACKAGE</a>;
01071             ec += <a class="code" href="group__rpmcli.html#a18">rpmRollback</a>(ia, NULL);
01072         } <span class="keywordflow">else</span> {
01073 
01074             <span class="comment">/*@-compdef@*/</span> <span class="comment">/* FIX: ia-&gt;relocations[0].newPath undefined */</span>
01075             ec += <a class="code" href="group__rpmcli.html#a9">rpmInstall</a>(<a class="code" href="rpmqv_8c.html#a27">rootdir</a>, (<span class="keyword">const</span> <span class="keywordtype">char</span> **)<a class="code" href="group__popt.html#a11">poptGetArgs</a>(optCon), 
01076                         ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a>, ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a>,
01077                         ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a>, ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>);
01078         }
01079         <span class="comment">/*@=compdef@*/</span>
01080         <span class="keywordflow">break</span>;
01081 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMEIU */</span>
01082 
01083 <span class="preprocessor">#ifdef  IAM_RPMQV</span>
01084 <span class="preprocessor"></span>    <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a32">MODE_QUERY</a>:
01085       { <span class="keyword">const</span> <span class="keywordtype">char</span> * pkg;
01086 
01087         qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m6">qva_prefix</a> = <a class="code" href="rpmqv_8c.html#a27">rootdir</a>;
01088         <span class="keywordflow">if</span> (qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m0">qva_source</a> == <a class="code" href="group__rpmcli.html#a45a361">RPMQV_ALL</a>) {
01089 <span class="preprocessor">#ifdef  DYING</span>
01090 <span class="preprocessor"></span>            <span class="keywordflow">if</span> (<a class="code" href="group__popt.html#a10">poptPeekArg</a>(optCon))
01091                 <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"extra arguments given for query of all packages"</span>));
01092 <span class="preprocessor">#else</span>
01093 <span class="preprocessor"></span>            <span class="keyword">const</span> <span class="keywordtype">char</span> ** av = <a class="code" href="group__popt.html#a11">poptGetArgs</a>(optCon);
01094 <span class="preprocessor">#endif</span>
01095 <span class="preprocessor"></span>            <span class="comment">/*@-nullpass@*/</span>     <span class="comment">/* FIX: av can be NULL */</span>
01096             ec = <a class="code" href="group__rpmcli.html#a30">rpmQuery</a>(qva, <a class="code" href="group__rpmcli.html#a45a361">RPMQV_ALL</a>, (<span class="keyword">const</span> <span class="keywordtype">char</span> *) av);
01097             <span class="comment">/*@=nullpass@*/</span>
01098         } <span class="keywordflow">else</span> {
01099             <span class="keywordflow">if</span> (!<a class="code" href="group__popt.html#a10">poptPeekArg</a>(optCon))
01100                 <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"no arguments given for query"</span>));
01101             <span class="keywordflow">while</span> ((pkg = <a class="code" href="group__popt.html#a9">poptGetArg</a>(optCon)))
01102                 ec += <a class="code" href="group__rpmcli.html#a30">rpmQuery</a>(qva, qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m0">qva_source</a>, pkg);
01103         }
01104       } <span class="keywordflow">break</span>;
01105 
01106     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a33">MODE_VERIFY</a>:
01107       { <span class="keyword">const</span> <span class="keywordtype">char</span> * pkg;
01108         <a class="code" href="group__rpmcli.html#a5">rpmVerifyFlags</a> verifyFlags = <a class="code" href="rpmcli_8h.html#a1">VERIFY_ALL</a>;
01109 
01110         verifyFlags &amp;= ~qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m2">qva_flags</a>;
01111         qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m2">qva_flags</a> = (rpmQueryFlags) verifyFlags;
01112         qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m6">qva_prefix</a> = <a class="code" href="rpmqv_8c.html#a27">rootdir</a>;
01113 
01114         <span class="keywordflow">if</span> (qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m0">qva_source</a> == <a class="code" href="group__rpmcli.html#a45a361">RPMQV_ALL</a>) {
01115             <span class="keywordflow">if</span> (<a class="code" href="group__popt.html#a10">poptPeekArg</a>(optCon))
01116                 <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"extra arguments given for verify of all packages"</span>));
01117             ec = <a class="code" href="group__rpmcli.html#a10">rpmVerify</a>(qva, <a class="code" href="group__rpmcli.html#a45a361">RPMQV_ALL</a>, NULL);
01118         } <span class="keywordflow">else</span> {
01119             <span class="keywordflow">if</span> (!<a class="code" href="group__popt.html#a10">poptPeekArg</a>(optCon))
01120                 <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"no arguments given for verify"</span>));
01121             <span class="keywordflow">while</span> ((pkg = <a class="code" href="group__popt.html#a9">poptGetArg</a>(optCon)))
01122                 ec += <a class="code" href="group__rpmcli.html#a10">rpmVerify</a>(qva, qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m0">qva_source</a>, pkg);
01123         }
01124       } <span class="keywordflow">break</span>;
01125 
01126     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a34">MODE_QUERYTAGS</a>:
01127         <span class="keywordflow">if</span> (argc != 2)
01128             <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"unexpected arguments to --querytags "</span>));
01129 
01130         <a class="code" href="group__rpmcli.html#a27">rpmDisplayQueryTags</a>(stdout);
01131         <span class="keywordflow">break</span>;
01132 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMQV */</span>
01133 
01134 <span class="preprocessor">#ifdef IAM_RPMK</span>
01135 <span class="preprocessor"></span>    <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a41">MODE_CHECKSIG</a>:
01136         <span class="keywordflow">if</span> (!<a class="code" href="group__popt.html#a10">poptPeekArg</a>(optCon))
01137             <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"no packages given for signature check"</span>));
01138         ec = <a class="code" href="group__rpmcli.html#a37">rpmCheckSig</a>(ka-&gt;<a class="code" href="structrpmSignArguments__s.html#m1">checksigFlags</a>,
01139                         (<span class="keyword">const</span> <span class="keywordtype">char</span> **)poptGetArgs(optCon));
01140         <span class="comment">/* XXX don't overflow single byte exit status */</span>
01141         <span class="keywordflow">if</span> (ec &gt; 255) ec = 255;
01142         <span class="keywordflow">break</span>;
01143 
01144     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a42">MODE_RESIGN</a>:
01145         <span class="keywordflow">if</span> (!<a class="code" href="group__popt.html#a10">poptPeekArg</a>(optCon))
01146             <a class="code" href="poptI_8c.html#a6">argerror</a>(<a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"no packages given for signing"</span>));
01147         ec = <a class="code" href="group__rpmcli.html#a38">rpmReSign</a>(ka-&gt;<a class="code" href="structrpmSignArguments__s.html#m0">addSign</a>, passPhrase,
01148                         (<span class="keyword">const</span> <span class="keywordtype">char</span> **)poptGetArgs(optCon));
01149         <span class="comment">/* XXX don't overflow single byte exit status */</span>
01150         <span class="keywordflow">if</span> (ec &gt; 255) ec = 255;
01151         <span class="keywordflow">break</span>;
01152 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMK */</span>
01153         
01154 <span class="preprocessor">#if !defined(IAM_RPMQV)</span>
01155 <span class="preprocessor"></span>    <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a32">MODE_QUERY</a>:
01156     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a33">MODE_VERIFY</a>:
01157     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a34">MODE_QUERYTAGS</a>:
01158 <span class="preprocessor">#endif</span>
01159 <span class="preprocessor"></span><span class="preprocessor">#if !defined(IAM_RPMK)</span>
01160 <span class="preprocessor"></span>    <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a41">MODE_CHECKSIG</a>:
01161     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a42">MODE_RESIGN</a>:
01162 <span class="preprocessor">#endif</span>
01163 <span class="preprocessor"></span><span class="preprocessor">#if !defined(IAM_RPMDB)</span>
01164 <span class="preprocessor"></span>    <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a43">MODE_INITDB</a>:
01165     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a44">MODE_REBUILDDB</a>:
01166     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a45">MODE_VERIFYDB</a>:
01167 <span class="preprocessor">#endif</span>
01168 <span class="preprocessor"></span><span class="preprocessor">#if !defined(IAM_RPMBT)</span>
01169 <span class="preprocessor"></span>    <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a37">MODE_BUILD</a>:
01170     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a38">MODE_REBUILD</a>:
01171     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a39">MODE_RECOMPILE</a>:
01172     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a40">MODE_TARBUILD</a>:
01173 <span class="preprocessor">#endif</span>
01174 <span class="preprocessor"></span><span class="preprocessor">#if !defined(IAM_RPMEIU)</span>
01175 <span class="preprocessor"></span>    <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a>:
01176     <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a36">MODE_ERASE</a>:
01177 <span class="preprocessor">#endif</span>
01178 <span class="preprocessor"></span>    <span class="keywordflow">case</span> <a class="code" href="rpmqv_8c.html#a52a46">MODE_UNKNOWN</a>:
01179         <span class="keywordflow">if</span> (!<a class="code" href="rpmqv_8c.html#a29">showVersion</a> &amp;&amp; !<a class="code" href="rpmqv_8c.html#a22">help</a> &amp;&amp; !<a class="code" href="rpmqv_8c.html#a23">noUsageMsg</a>) <a class="code" href="rpmqv_8c.html#a50">printUsage</a>();
01180         <span class="keywordflow">break</span>;
01181     }
01182 
01183 <span class="preprocessor">#if defined(IAM_RPMBT) || defined(IAM_RPMK)</span>
01184 <span class="preprocessor"></span>exit:
01185 <span class="preprocessor">#endif  </span><span class="comment">/* IAM_RPMBT || IAM_RPMK */</span>
01186     optCon = <a class="code" href="group__popt.html#a13">poptFreeContext</a>(optCon);
01187     <a class="code" href="macro_8c.html#a48">rpmFreeMacros</a>(NULL);
01188     <a class="code" href="macro_8c.html#a48">rpmFreeMacros</a>(rpmCLIMacroContext);
01189     <a class="code" href="group__rpmrc.html#a11">rpmFreeRpmrc</a>();
01190 
01191     <span class="keywordflow">if</span> (pipeChild) {
01192         (void) fclose(stdout);
01193         (void) waitpid(pipeChild, &amp;status, 0);
01194     }
01195 
01196     <span class="comment">/* keeps memory leak checkers quiet */</span>
01197     <a class="code" href="group__rpmbuild.html#a12">freeNames</a>();
01198     <a class="code" href="fs_8c.html#a3">freeFilesystems</a>();
01199     <a class="code" href="url_8c.html#a25">urlFreeCache</a>();
01200     <a class="code" href="rpmlog_8c.html#a12">rpmlogClose</a>();
01201     dbiTags = <a class="code" href="poptint_8h.html#a14">_free</a>(dbiTags);
01202 
01203 <span class="preprocessor">#ifdef  IAM_RPMQV</span>
01204 <span class="preprocessor"></span>    qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m5">qva_queryFormat</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(qva-&gt;<a class="code" href="structrpmQVArguments__s.html#m5">qva_queryFormat</a>);
01205 <span class="preprocessor">#endif</span>
01206 <span class="preprocessor"></span>
01207 <span class="preprocessor">#ifdef  IAM_RPMBT</span>
01208 <span class="preprocessor"></span>    ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m1">buildRootOverride</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m1">buildRootOverride</a>);
01209     ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m2">targets</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(ba-&gt;<a class="code" href="structrpmBuildArguments__s.html#m2">targets</a>);
01210 <span class="preprocessor">#endif</span>
01211 <span class="preprocessor"></span>
01212 <span class="preprocessor">#ifdef  IAM_RPMEIU</span>
01213 <span class="preprocessor"></span>    ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(ia-&gt;<a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>);
01214 <span class="preprocessor">#endif</span>
01215 <span class="preprocessor"></span>
01216 <span class="preprocessor">#if HAVE_MCHECK_H &amp;&amp; HAVE_MTRACE</span>
01217 <span class="preprocessor"></span>    muntrace();   <span class="comment">/* Trace malloc only if MALLOC_TRACE=mtrace-output-file. */</span>
01218 <span class="preprocessor">#endif</span>
01219 <span class="preprocessor"></span>    <span class="comment">/*@-globstate@*/</span>
01220     <span class="keywordflow">return</span> ec;
01221     <span class="comment">/*@=globstate@*/</span>
01222 }
</pre></div><hr><address style="align: right;"><small>Generated on Thu Sep 12 22:15:02 2002 for rpm by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.17 </small></address>
</body>
</html>