<!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> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> <a class="qindex" href="pages.html">Related Pages</a> </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 <<a class="code" href="rpmcli_8h.html">rpmcli.h</a>></span> 00014 <span class="preprocessor">#include <<a class="code" href="rpmbuild_8h.html">rpmbuild.h</a>></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 << 0), 00044 <a class="code" href="rpmqv_8c.html#a52a33">MODE_VERIFY</a> = (1 << 3), 00045 <a class="code" href="rpmqv_8c.html#a52a34">MODE_QUERYTAGS</a> = (1 << 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 << 1), 00049 <a class="code" href="rpmqv_8c.html#a52a36">MODE_ERASE</a> = (1 << 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 << 4), 00053 <a class="code" href="rpmqv_8c.html#a52a38">MODE_REBUILD</a> = (1 << 5), 00054 <a class="code" href="rpmqv_8c.html#a52a39">MODE_RECOMPILE</a> = (1 << 8), 00055 <a class="code" href="rpmqv_8c.html#a52a40">MODE_TARBUILD</a> = (1 << 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 << 6), 00059 <a class="code" href="rpmqv_8c.html#a52a42">MODE_RESIGN</a> = (1 << 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 << 10), 00063 <a class="code" href="rpmqv_8c.html#a52a44">MODE_REBUILDDB</a> = (1 << 12), 00064 <a class="code" href="rpmqv_8c.html#a52a45">MODE_VERIFYDB</a> = (1 << 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, &<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, &<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 <name> with value <body>"</span>), 00120 <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"'<name> <body>'"</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 <expr>+"</span>), 00123 <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"<expr>+"</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>, &<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 <cmd>"</span>), 00126 <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"<cmd>"</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>, &<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 <dir> as the top level directory"</span>), 00129 <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"<dir>"</span>) }, 00130 { <span class="stringliteral">"macros"</span>, <span class="charliteral">'\0'</span>, <a class="code" href="group__popt.html#a34">POPT_ARG_STRING</a>, &macrofiles, 0, 00131 <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"read <file:...> instead of default macro file(s)"</span>), 00132 <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"<file:...>"</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>, &<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 <file:...> instead of default rpmrc file(s)"</span>), 00136 <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"<file:...>"</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 <file:...> instead of default rpmrc file(s)"</span>), 00140 <a class="code" href="system_8h.html#a20">N_</a>(<span class="stringliteral">"<file:...>"</span>) }, 00141 <span class="preprocessor">#endif</span> 00142 <span class="preprocessor"></span> { <span class="stringliteral">"showrc"</span>, <span class="charliteral">'\0'</span>, 0, &<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 && 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>, &<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>, &<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>, &<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>, &<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 [ <specfile> | <tarball> | <source package> ]:"</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 = &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 = &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 = &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 = &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 = &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 && 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 && 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)) > 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-><a class="code" href="structrpmQVArguments__s.html#m5">qva_queryFormat</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(qva-><a class="code" href="structrpmQVArguments__s.html#m5">qva_queryFormat</a>); 00420 memset(qva, 0, <span class="keyword">sizeof</span>(*qva)); 00421 qva-><a class="code" href="structrpmQVArguments__s.html#m0">qva_source</a> = <a class="code" href="group__rpmcli.html#a45a359">RPMQV_PACKAGE</a>; 00422 qva-><a class="code" href="structrpmQVArguments__s.html#m3">qva_fflags</a> = <a class="code" href="rpmlib_8h.html#a14">RPMFILE_ALL</a>; 00423 qva-><a class="code" href="structrpmQVArguments__s.html#m7">qva_mode</a> = <span class="charliteral">' '</span>; 00424 qva-><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-><a class="code" href="structrpmBuildArguments__s.html#m1">buildRootOverride</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(ba-><a class="code" href="structrpmBuildArguments__s.html#m1">buildRootOverride</a>); 00429 ba-><a class="code" href="structrpmBuildArguments__s.html#m2">targets</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(ba-><a class="code" href="structrpmBuildArguments__s.html#m2">targets</a>); 00430 memset(ba, 0, <span class="keyword">sizeof</span>(*ba)); 00431 ba-><a class="code" href="structrpmBuildArguments__s.html#m10">buildMode</a> = <span class="charliteral">' '</span>; 00432 ba-><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-><a class="code" href="structrpmSignArguments__s.html#m0">addSign</a> = <a class="code" href="group__rpmcli.html#a44a67">RESIGN_NONE</a>; 00442 ka-><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-><a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(ia-><a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>); 00447 memset(ia, 0, <span class="keyword">sizeof</span>(*ia)); 00448 ia-><a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> = <a class="code" href="group__rpmtrans.html#a19a320">RPMTRANS_FLAG_NONE</a>; 00449 ia-><a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> = <a class="code" href="rpmlib_8h.html#a504a349">RPMPROB_FILTER_NONE</a>; 00450 ia-><a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> = <a class="code" href="group__rpmcli.html#a47a385">INSTALL_NONE</a>; 00451 ia-><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)) > 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-><a class="code" href="structrpmQVArguments__s.html#m7">qva_mode</a> == <span class="charliteral">'V'</span>) 00468 qva-><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 & MODES_K) 00473 ka-><a class="code" href="structrpmSignArguments__s.html#m1">checksigFlags</a> &= ~<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 & MODES_IE) 00478 ia-><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-><a class="code" href="structrpmQVArguments__s.html#m7">qva_mode</a> == <span class="charliteral">'V'</span>) 00489 qva-><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 & MODES_IE) || 00494 (ia-><a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> & 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-><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 & MODES_BT) || ba-><a class="code" href="structrpmBuildArguments__s.html#m10">buildMode</a> != <span class="charliteral">' '</span>) 00501 ba-><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 & MODES_IE) || 00510 (ia-><a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> & 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-><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 & MODES_BT) || ba-><a class="code" href="structrpmBuildArguments__s.html#m10">buildMode</a> != <span class="charliteral">' '</span>) 00521 ba-><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-><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-><a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> & 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-><a class="code" href="structrpmQVArguments__s.html#m7">qva_mode</a> == <span class="charliteral">'V'</span>) 00554 qva-><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 & MODES_IE) || 00559 (ia-><a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> & 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-><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 <file:...>\" 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 < -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-><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-><a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> & <a class="code" href="group__rpmbuild.html#a56a18">RPMBUILD_RMSOURCE</a>) && 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-><a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> & <a class="code" href="group__rpmbuild.html#a56a21">RPMBUILD_RMSPEC</a>) && 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-><a class="code" href="structrpmBuildArguments__s.html#m1">buildRootOverride</a> && bigMode != <a class="code" href="rpmqv_8c.html#a52a37">MODE_BUILD</a> && 00627 bigMode != <a class="code" href="rpmqv_8c.html#a52a38">MODE_REBUILD</a> && 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 & MODES_DB)) { 00634 <span class="keywordflow">if</span> (da-><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-><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-><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 & MODES_QV)) { 00657 <span class="keywordflow">switch</span> (qva-><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-><a class="code" href="structrpmQVArguments__s.html#m1">qva_sourceCount</a>) { 00664 <span class="keywordflow">if</span> (qva-><a class="code" href="structrpmQVArguments__s.html#m1">qva_sourceCount</a> > 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-><a class="code" href="structrpmQVArguments__s.html#m2">qva_flags</a> && (bigMode & ~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-><a class="code" href="structrpmQVArguments__s.html#m5">qva_queryFormat</a> && (bigMode & ~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-><a class="code" href="structrpmQVArguments__s.html#m0">qva_source</a> != <a class="code" href="group__rpmcli.html#a45a359">RPMQV_PACKAGE</a> && (bigMode & ~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 & MODES_IE)) 00681 { <span class="keywordtype">int</span> iflags = (ia-><a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> & 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-><a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> & <a class="code" href="group__rpmcli.html#a47a394">INSTALL_ERASE</a>); 00684 00685 <span class="keywordflow">if</span> (iflags & 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 & MODES_K)) { 00696 <span class="keywordflow">switch</span> (ka-><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 && (bigMode & ~<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> ) && 00718 (ia-><a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> & (<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> && (ia-><a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> & <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-><a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a> && ia-><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> && ia-><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> && ia-><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-><a class="code" href="structrpmInstallArguments__s.html#m8">prefix</a> && ia-><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> && (ia-><a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> & <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> && (ia-><a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a> & <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> && 00744 (ia-><a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</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>))) 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> && (ia-><a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> & <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> && (ia-><a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> & <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> && ia-><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-><a class="code" href="structrpmInstallArguments__s.html#m7">incldocs</a> && (ia-><a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> & <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> && (ia-><a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> & <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> && (ia-><a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> & <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> && 00773 (ia-><a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a> & (<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-><a class="code" href="structrpmInstallArguments__s.html#m3">eraseInterfaceFlags</a> & <a class="code" href="group__rpmcli.html#a48a397">UNINSTALL_ALLMATCHES</a>) && 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-><a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> & <a class="code" href="group__rpmtrans.html#a19a327">RPMTRANS_FLAG_ALLFILES</a>) && 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-><a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> & <a class="code" href="group__rpmtrans.html#a19a324">RPMTRANS_FLAG_JUSTDB</a>) && 00786 bigMode != <a class="code" href="rpmqv_8c.html#a52a35">MODE_INSTALL</a> && 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> && bigMode != <a class="code" href="rpmqv_8c.html#a52a36">MODE_ERASE</a> && 00791 (ia-><a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> & (<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> && bigMode != <a class="code" href="rpmqv_8c.html#a52a36">MODE_ERASE</a> && 00796 (ia-><a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> & (<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-><a class="code" href="structrpmInstallArguments__s.html#m6">noDeps</a> & (bigMode & ~<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-><a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> & <a class="code" href="group__rpmtrans.html#a19a321">RPMTRANS_FLAG_TEST</a>) && (bigMode & ~<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> && <a class="code" href="rpmqv_8c.html#a27">rootdir</a>[1] && (bigMode & ~<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 & <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-><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-><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, &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>) && 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-><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-><a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a17">RPMBUILD_PACKAGEBINARY</a>; 00942 ba-><a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a18">RPMBUILD_RMSOURCE</a>; 00943 ba-><a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a21">RPMBUILD_RMSPEC</a>; 00944 ba-><a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a14">RPMBUILD_CLEAN</a>; 00945 ba-><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, &specFile, &cookie); 00953 <span class="keywordflow">if</span> (ec) 00954 <span class="comment">/*@loopbreak@*/</span> <span class="keywordflow">break</span>; 00955 00956 ba-><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-><a class="code" href="structrpmBuildArguments__s.html#m11">buildChar</a>) { 00975 <span class="keywordflow">case</span> <span class="charliteral">'a'</span>: 00976 ba-><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-><a class="code" href="structrpmBuildArguments__s.html#m0">buildAmount</a> |= <a class="code" href="group__rpmbuild.html#a56a17">RPMBUILD_PACKAGEBINARY</a>; 00980 ba-><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-><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-><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-><a class="code" href="structrpmBuildArguments__s.html#m11">buildChar</a> == <span class="charliteral">'i'</span>) && ba-><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-><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-><a class="code" href="structrpmBuildArguments__s.html#m11">buildChar</a> == <span class="charliteral">'c'</span>) && ba-><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-><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-><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-><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-><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-><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-><a class="code" href="structrpmInstallArguments__s.html#m6">noDeps</a>) ia-><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-><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-><a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> |= <a class="code" href="group__rpmtrans.html#a19a348">RPMTRANS_FLAG_NOMD5</a>; 01032 ia-><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-><a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a>, ia-><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-><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-><a class="code" href="structrpmInstallArguments__s.html#m7">incldocs</a>) { 01045 <span class="keywordflow">if</span> (ia-><a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> & <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-><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-><a class="code" href="structrpmInstallArguments__s.html#m6">noDeps</a>) ia-><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->prefix && !ia->relocations) */</span> 01054 <span class="keywordflow">if</span> (ia-><a class="code" href="structrpmInstallArguments__s.html#m8">prefix</a>) { 01055 ia-><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-><a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>)); 01056 ia-><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-><a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>[0].<a class="code" href="structrpmRelocation__s.html#m1">newPath</a> = ia-><a class="code" href="structrpmInstallArguments__s.html#m8">prefix</a>; 01058 ia-><a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>[1].<a class="code" href="structrpmRelocation__s.html#m0">oldPath</a> = ia-><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-><a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>) { 01060 ia-><a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a> = <a class="code" href="rpmmalloc_8c.html#a3">xrealloc</a>(ia-><a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>, 01061 <span class="keyword">sizeof</span>(*ia-><a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>) * (ia-><a class="code" href="structrpmInstallArguments__s.html#m5">numRelocations</a> + 1)); 01062 ia-><a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>[ia-><a class="code" href="structrpmInstallArguments__s.html#m5">numRelocations</a>].oldPath = NULL; 01063 ia-><a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a>[ia-><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-><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-><a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a> |= <a class="code" href="group__rpmtrans.html#a19a348">RPMTRANS_FLAG_NOMD5</a>; 01070 ia-><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->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-><a class="code" href="structrpmInstallArguments__s.html#m0">transFlags</a>, ia-><a class="code" href="structrpmInstallArguments__s.html#m2">installInterfaceFlags</a>, 01077 ia-><a class="code" href="structrpmInstallArguments__s.html#m1">probFilter</a>, ia-><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-><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-><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-><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 &= ~qva-><a class="code" href="structrpmQVArguments__s.html#m2">qva_flags</a>; 01111 qva-><a class="code" href="structrpmQVArguments__s.html#m2">qva_flags</a> = (rpmQueryFlags) verifyFlags; 01112 qva-><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-><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-><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-><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 > 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-><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 > 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> && !<a class="code" href="rpmqv_8c.html#a22">help</a> && !<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, &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-><a class="code" href="structrpmQVArguments__s.html#m5">qva_queryFormat</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(qva-><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-><a class="code" href="structrpmBuildArguments__s.html#m1">buildRootOverride</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(ba-><a class="code" href="structrpmBuildArguments__s.html#m1">buildRootOverride</a>); 01209 ba-><a class="code" href="structrpmBuildArguments__s.html#m2">targets</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(ba-><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-><a class="code" href="structrpmInstallArguments__s.html#m4">relocations</a> = <a class="code" href="poptint_8h.html#a14">_free</a>(ia-><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 && 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>