Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

lib/poptQV.c

Go to the documentation of this file.
00001 
00006 #include "system.h"
00007 
00008 #include <rpmcli.h>
00009 #include <rpmbuild.h>
00010 #include <rpmgi.h>      /* XXX for giFlags */
00011 
00012 #include "debug.h"
00013 
00014 /*@unchecked@*/
00015 struct rpmQVKArguments_s rpmQVKArgs;
00016 
00017 /*@unchecked@*/
00018 int specedit = 0;
00019 
00020 #define POPT_QUERYFORMAT        -1000
00021 #define POPT_WHATREQUIRES       -1001
00022 #define POPT_WHATPROVIDES       -1002
00023 #define POPT_QUERYBYNUMBER      -1003
00024 #define POPT_TRIGGEREDBY        -1004
00025 #define POPT_DUMP               -1005
00026 #define POPT_SPECFILE           -1006
00027 #define POPT_QUERYBYPKGID       -1007
00028 #define POPT_QUERYBYHDRID       -1008
00029 #define POPT_QUERYBYFILEID      -1009
00030 #define POPT_QUERYBYTID         -1010
00031 #define POPT_HDLIST             -1011
00032 #define POPT_FTSWALK            -1012
00033 
00034 /* -1025 thrugh -1033 are common in rpmcli.h. */
00035 #define POPT_TRUST              -1037
00036 #define POPT_WHATNEEDS          -1038
00037 #define POPT_SPECSRPM           -1039
00038 
00039 /* ========== Query/Verify/Signature source args */
00040 static void rpmQVSourceArgCallback( /*@unused@*/ poptContext con,
00041                 /*@unused@*/ enum poptCallbackReason reason,
00042                 const struct poptOption * opt, /*@unused@*/ const char * arg, 
00043                 /*@unused@*/ const void * data)
00044         /*@globals rpmQVKArgs @*/
00045         /*@modifies rpmQVKArgs @*/
00046 {
00047     QVA_t qva = &rpmQVKArgs;
00048 
00049     switch (opt->val) {
00050     case 'q':   /* from --query, -q */
00051     case 'Q':   /* from --querytags (handled by poptALL) */
00052     case 'V':   /* from --verify, -V */
00053     case 'A':   /* from --addsign */
00054     case 'D':   /* from --delsign */
00055     case 'I':   /* from --import */
00056     case 'K':   /* from --checksig, -K */
00057     case 'R':   /* from --resign */
00058         if (qva->qva_mode == '\0' || strchr("qQ ", qva->qva_mode)) {
00059             qva->qva_mode = opt->val;
00060             qva->qva_char = ' ';
00061         }
00062         break;
00063     case 'a': qva->qva_source |= RPMQV_ALL; qva->qva_sourceCount++; break;
00064     case 'f': qva->qva_source |= RPMQV_PATH; qva->qva_sourceCount++; break;
00065     case 'g': qva->qva_source |= RPMQV_GROUP; qva->qva_sourceCount++; break;
00066     case 'p': qva->qva_source |= RPMQV_RPM; qva->qva_sourceCount++; break;
00067     case POPT_WHATNEEDS: qva->qva_source |= RPMQV_WHATNEEDS; 
00068                                 qva->qva_sourceCount++; break;
00069     case POPT_WHATPROVIDES: qva->qva_source |= RPMQV_WHATPROVIDES; 
00070                                 qva->qva_sourceCount++; break;
00071     case POPT_WHATREQUIRES: qva->qva_source |= RPMQV_WHATREQUIRES; 
00072                                 qva->qva_sourceCount++; break;
00073     case POPT_TRIGGEREDBY: qva->qva_source |= RPMQV_TRIGGEREDBY;
00074                                 qva->qva_sourceCount++; break;
00075     case POPT_QUERYBYPKGID: qva->qva_source |= RPMQV_PKGID;
00076                                 qva->qva_sourceCount++; break;
00077     case POPT_QUERYBYHDRID: qva->qva_source |= RPMQV_HDRID;
00078                                 qva->qva_sourceCount++; break;
00079     case POPT_QUERYBYFILEID: qva->qva_source |= RPMQV_FILEID;
00080                                 qva->qva_sourceCount++; break;
00081     case POPT_QUERYBYTID: qva->qva_source |= RPMQV_TID;
00082                                 qva->qva_sourceCount++; break;
00083     case POPT_HDLIST: qva->qva_source |= RPMQV_HDLIST;
00084                                 qva->qva_sourceCount++; break;
00085     case POPT_FTSWALK:qva->qva_source |= RPMQV_FTSWALK;
00086                                 qva->qva_sourceCount++; break;
00087 
00088 /* XXX SPECFILE is not verify sources */
00089     case POPT_SPECFILE:
00090         qva->qva_source |= RPMQV_SPECFILE;
00091         qva->qva_sourceCount++;
00092         break;
00093 /* XXX SPECSRPM is not verify sources */
00094     case POPT_SPECSRPM:
00095         qva->qva_source |= RPMQV_SPECSRPM;
00096         qva->qva_sourceCount++;
00097         break;
00098     case POPT_QUERYBYNUMBER:
00099         qva->qva_source |= RPMQV_DBOFFSET; 
00100         qva->qva_sourceCount++;
00101         break;
00102     }
00103 }
00104 
00108 /*@unchecked@*/
00109 struct poptOption rpmQVSourcePoptTable[] = {
00110 /*@-type@*/ /* FIX: cast? */
00111  { NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA, 
00112         rpmQVSourceArgCallback, 0, NULL, NULL },
00113 /*@=type@*/
00114  { "all", 'a', 0, 0, 'a',
00115         N_("query/verify all packages"), NULL },
00116  { "checksig", 'K', POPT_ARGFLAG_DOC_HIDDEN, NULL, 'K',
00117         N_("rpm checksig mode"), NULL },
00118  { "file", 'f', 0, 0, 'f',
00119         N_("query/verify package(s) owning file"), "FILE" },
00120  { "group", 'g', 0, 0, 'g',
00121         N_("query/verify package(s) in group"), "GROUP" },
00122  { "package", 'p', 0, 0, 'p',
00123         N_("query/verify a package file"), NULL },
00124 
00125  { "ftswalk", 'W', 0, 0, POPT_FTSWALK,
00126         N_("query/verify package(s) from TOP file tree walk"), "TOP" },
00127  { "hdlist", 'H', POPT_ARGFLAG_DOC_HIDDEN, 0, POPT_HDLIST,
00128         N_("query/verify package(s) from system HDLIST"), "HDLIST" },
00129 
00130  { "pkgid", '\0', 0, 0, POPT_QUERYBYPKGID,
00131         N_("query/verify package(s) with package identifier"), "MD5" },
00132  { "hdrid", '\0', 0, 0, POPT_QUERYBYHDRID,
00133         N_("query/verify package(s) with header identifier"), "SHA1" },
00134  { "fileid", '\0', 0, 0, POPT_QUERYBYFILEID,
00135         N_("query/verify package(s) with file identifier"), "MD5" },
00136 
00137  { "query", 'q', POPT_ARGFLAG_DOC_HIDDEN, NULL, 'q',
00138         N_("rpm query mode"), NULL },
00139  { "querybynumber", '\0', POPT_ARGFLAG_DOC_HIDDEN, 0, POPT_QUERYBYNUMBER,
00140         N_("query/verify a header instance"), "HDRNUM" },
00141  { "specfile", '\0', 0, 0, POPT_SPECFILE,
00142         N_("query a spec file"), N_("<spec>") },
00143  { "specsrpm", '\0', POPT_ARGFLAG_DOC_HIDDEN, 0, POPT_SPECSRPM,
00144         N_("query source metadata from spec file parse"), N_("<spec>") },
00145  { "tid", '\0', POPT_ARGFLAG_DOC_HIDDEN, 0, POPT_QUERYBYTID,
00146         N_("query/verify package(s) from install transaction"), "TID" },
00147  { "triggeredby", '\0', 0, 0, POPT_TRIGGEREDBY, 
00148         N_("query the package(s) triggered by the package"), "PACKAGE" },
00149  { "verify", 'V', POPT_ARGFLAG_DOC_HIDDEN, NULL, 'V',
00150         N_("rpm verify mode"), NULL },
00151  { "whatrequires", '\0', 0, 0, POPT_WHATREQUIRES, 
00152         N_("query/verify the package(s) which require a dependency"), "CAPABILITY" },
00153  { "whatneeds", '\0', POPT_ARGFLAG_DOC_HIDDEN, 0, POPT_WHATNEEDS, 
00154         N_("query/verify the package(s) which require any contained provide"),
00155         "CAPABILITY" },
00156 
00157  { "whatprovides", '\0', 0, 0, POPT_WHATPROVIDES, 
00158         N_("query/verify the package(s) which provide a dependency"), "CAPABILITY" },
00159 
00160  { "transaction", 'T', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &giFlags, (RPMGI_TSADD|RPMGI_TSORDER),
00161         N_("create transaction set"), NULL},
00162  { "noorder", '\0', POPT_BIT_CLR|POPT_ARGFLAG_DOC_HIDDEN, &giFlags, RPMGI_TSORDER,
00163         N_("do not order transaction set"), NULL},
00164  { "noglob", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &giFlags, RPMGI_NOGLOB,
00165         N_("do not glob arguments"), NULL},
00166  { "nomanifest", '\0', POPT_BIT_SET, &giFlags, RPMGI_NOMANIFEST,
00167         N_("do not process non-package files as manifests"), NULL},
00168  { "noheader", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &giFlags, RPMGI_NOHEADER,
00169         N_("do not read headers"), NULL},
00170 
00171 
00172    POPT_TABLEEND
00173 };
00174 
00175 /* ========== Query specific popt args */
00176 
00177 static void queryArgCallback(poptContext con,
00178                 /*@unused@*/enum poptCallbackReason reason,
00179                 const struct poptOption * opt, const char * arg, 
00180                 /*@unused@*/ const void * data)
00181         /*@globals rpmQVKArgs @*/
00182         /*@modifies con, rpmQVKArgs @*/
00183 {
00184     QVA_t qva = &rpmQVKArgs;
00185 
00186     switch (opt->val) {
00187     case 'c': qva->qva_flags |= QUERY_FOR_CONFIG | QUERY_FOR_LIST; break;
00188     case 'd': qva->qva_flags |= QUERY_FOR_DOCS | QUERY_FOR_LIST; break;
00189     case 'l': qva->qva_flags |= QUERY_FOR_LIST; break;
00190     case 's': qva->qva_flags |= QUERY_FOR_STATE | QUERY_FOR_LIST;
00191         break;
00192     case POPT_DUMP: qva->qva_flags |= QUERY_FOR_DUMPFILES | QUERY_FOR_LIST;
00193         break;
00194 
00195     case POPT_QUERYFORMAT:
00196         if (arg) {
00197             char * qf = (char *)qva->qva_queryFormat;
00198             /*@-branchstate@*/
00199             if (qf) {
00200                 int len = strlen(qf) + strlen(arg) + 1;
00201                 qf = xrealloc(qf, len);
00202 /*@-boundswrite@*/
00203                 strcat(qf, arg);
00204 /*@=boundswrite@*/
00205             } else {
00206                 qf = xmalloc(strlen(arg) + 1);
00207                 strcpy(qf, arg);
00208             }
00209             /*@=branchstate@*/
00210             qva->qva_queryFormat = qf;
00211         }
00212         break;
00213 
00214     case 'i':
00215         if (qva->qva_mode == 'q') {
00216             /*@-nullassign -readonlytrans@*/
00217             const char * infoCommand[] = { "--info", NULL };
00218             /*@=nullassign =readonlytrans@*/
00219             (void) poptStuffArgs(con, infoCommand);
00220         }
00221         break;
00222 
00223     case RPMCLI_POPT_NODIGEST:
00224         qva->qva_flags |= VERIFY_DIGEST;
00225         break;
00226 
00227     case RPMCLI_POPT_NOSIGNATURE:
00228         qva->qva_flags |= VERIFY_SIGNATURE;
00229         break;
00230 
00231     case RPMCLI_POPT_NOHDRCHK:
00232         qva->qva_flags |= VERIFY_HDRCHK;
00233         break;
00234 
00235     case RPMCLI_POPT_NODEPS:
00236         qva->qva_flags |= VERIFY_DEPS;
00237         break;
00238 
00239     case RPMCLI_POPT_NOFDIGESTS:
00240         qva->qva_flags |= VERIFY_FDIGEST;
00241         break;
00242 
00243     case RPMCLI_POPT_NOCONTEXTS:
00244         qva->qva_flags |= VERIFY_CONTEXTS;
00245         break;
00246 
00247 #ifdef  NOTYET
00248     case RPMCLI_POPT_FORCE:
00249         ia->probFilter |=
00250                 ( RPMPROB_FILTER_REPLACEPKG
00251                 | RPMPROB_FILTER_REPLACEOLDFILES
00252                 | RPMPROB_FILTER_REPLACENEWFILES
00253                 | RPMPROB_FILTER_OLDPACKAGE );
00254         break;
00255 #endif
00256 
00257     case RPMCLI_POPT_NOSCRIPTS:
00258         qva->qva_flags |= VERIFY_SCRIPT;
00259         break;
00260 
00261     /* XXX perhaps POPT_ARG_INT instead of callback. */
00262     case POPT_TRUST:
00263     {   char * end = NULL;
00264         long trust = (int) strtol(arg, &end, 0);
00265         /* XXX range checks on trust. */
00266         /* XXX if (end && *end) argerror(_("non-numeric trust metric.")); */
00267         qva->trust = trust;
00268     }   break;
00269     }
00270 }
00271 
00275 /*@unchecked@*/
00276 struct poptOption rpmQueryPoptTable[] = {
00277 /*@-type@*/ /* FIX: cast? */
00278  { NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA | POPT_CBFLAG_CONTINUE, 
00279         queryArgCallback, 0, NULL, NULL },
00280 /*@=type@*/
00281  { NULL, '\0', POPT_ARG_INCLUDE_TABLE, rpmQVSourcePoptTable, 0,
00282         NULL, NULL },
00283  { "configfiles", 'c', 0, 0, 'c',
00284         N_("list all configuration files"), NULL },
00285  { "docfiles", 'd', 0, 0, 'd',
00286         N_("list all documentation files"), NULL },
00287  { "dump", '\0', 0, 0, POPT_DUMP,
00288         N_("dump basic file information"), NULL },
00289  { NULL, 'i', POPT_ARGFLAG_DOC_HIDDEN, 0, 'i',
00290         NULL, NULL },
00291  { "list", 'l', 0, 0, 'l',
00292         N_("list files in package"), NULL },
00293 
00294  { "aid", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00295         &rpmQVKArgs.depFlags, RPMDEPS_FLAG_ADDINDEPS,
00296         N_("add suggested packages to transaction"), NULL },
00297 
00298  /* Duplicate file attr flags from packages into command line options. */
00299  { "noconfig", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00300         &rpmQVKArgs.qva_fflags, RPMFILE_CONFIG,
00301         N_("skip %%config files"), NULL },
00302  { "nodoc", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00303         &rpmQVKArgs.qva_fflags, RPMFILE_DOC,
00304         N_("skip %%doc files"), NULL },
00305  { "noghost", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00306         &rpmQVKArgs.qva_fflags, RPMFILE_GHOST,
00307         N_("skip %%ghost files"), NULL },
00308 #ifdef  NOTEVER         /* XXX there's hardly a need for these */
00309  { "nolicense", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00310         &rpmQVKArgs.qva_fflags, RPMFILE_LICENSE,
00311         N_("skip %%license files"), NULL },
00312  { "noreadme", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00313         &rpmQVKArgs.qva_fflags, RPMFILE_README,
00314         N_("skip %%readme files"), NULL },
00315 #endif
00316 
00317  { "qf", '\0', POPT_ARG_STRING | POPT_ARGFLAG_DOC_HIDDEN, 0, 
00318         POPT_QUERYFORMAT, NULL, NULL },
00319  { "queryformat", '\0', POPT_ARG_STRING, 0, POPT_QUERYFORMAT,
00320         N_("use the following query format"), N_("QUERYFORMAT") },
00321  { "specedit", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &specedit, -1,
00322         N_("substitute i18n sections into spec file"), NULL },
00323  { "state", 's', 0, 0, 's',
00324         N_("display the states of the listed files"), NULL },
00325  { "target", '\0', POPT_ARG_STRING|POPT_ARGFLAG_DOC_HIDDEN, 0,  RPMCLI_POPT_TARGETPLATFORM,
00326         N_("specify target platform"), N_("CPU-VENDOR-OS") },
00327    POPT_TABLEEND
00328 };
00329 
00333 struct poptOption rpmVerifyPoptTable[] = {
00334 /*@-type@*/ /* FIX: cast? */
00335  { NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA | POPT_CBFLAG_CONTINUE, 
00336         queryArgCallback, 0, NULL, NULL },
00337 /*@=type@*/
00338  { NULL, '\0', POPT_ARG_INCLUDE_TABLE, rpmQVSourcePoptTable, 0,
00339         NULL, NULL },
00340 
00341  { "aid", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00342         &rpmQVKArgs.depFlags, RPMDEPS_FLAG_ADDINDEPS,
00343         N_("add suggested packages to transaction"), NULL },
00344 
00345  /* Duplicate file attr flags from packages into command line options. */
00346  { "noconfig", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00347         &rpmQVKArgs.qva_fflags, RPMFILE_CONFIG,
00348         N_("skip %%config files"), NULL },
00349  { "nodoc", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00350         &rpmQVKArgs.qva_fflags, RPMFILE_DOC,
00351         N_("skip %%doc files"), NULL },
00352 
00353  /* Duplicate file verify flags from packages into command line options. */
00355 #ifdef  DYING
00356  { "nomd5", '\0', POPT_BIT_SET, &rpmQVKArgs.qva_flags, VERIFY_FDIGEST,
00357         N_("don't verify file digests"), NULL },
00358 #else
00359  { "nomd5", '\0', POPT_ARGFLAG_DOC_HIDDEN, NULL, RPMCLI_POPT_NOFDIGESTS,
00360         N_("don't verify file digests"), NULL },
00361  { "nofdigests", '\0', 0, NULL, RPMCLI_POPT_NOFDIGESTS,
00362         N_("don't verify file digests"), NULL },
00363 #endif
00364  { "nosize", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00365         &rpmQVKArgs.qva_flags, VERIFY_SIZE,
00366         N_("don't verify size of files"), NULL },
00367  { "nolinkto", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00368         &rpmQVKArgs.qva_flags, VERIFY_LINKTO,
00369         N_("don't verify symlink path of files"), NULL },
00370  { "nouser", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00371         &rpmQVKArgs.qva_flags, VERIFY_USER,
00372         N_("don't verify owner of files"), NULL },
00373  { "nogroup", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00374         &rpmQVKArgs.qva_flags, VERIFY_GROUP,
00375         N_("don't verify group of files"), NULL },
00376  { "nomtime", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00377         &rpmQVKArgs.qva_flags, VERIFY_MTIME,
00378         N_("don't verify modification time of files"), NULL },
00379  { "nomode", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00380         &rpmQVKArgs.qva_flags, VERIFY_MODE,
00381         N_("don't verify mode of files"), NULL },
00382  { "nordev", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00383         &rpmQVKArgs.qva_flags, VERIFY_RDEV,
00384         N_("don't verify mode of files"), NULL },
00385 
00386  { "nocontexts", '\0', POPT_ARGFLAG_DOC_HIDDEN, NULL, RPMCLI_POPT_NOCONTEXTS,
00387         N_("don't verify file security contexts"), NULL },
00388  { "nofiles", '\0', POPT_BIT_SET, &rpmQVKArgs.qva_flags, VERIFY_FILES,
00389         N_("don't verify files in package"), NULL},
00390 #ifdef  DYING
00391  { "nodeps", '\0', POPT_BIT_SET, &rpmQVKArgs.qva_flags, VERIFY_DEPS,
00392         N_("don't verify package dependencies"), NULL },
00393 #else
00394  { "nodeps", '\0', 0, NULL, RPMCLI_POPT_NODEPS,
00395         N_("don't verify package dependencies"), NULL },
00396 #endif
00397 
00398 #ifdef  DYING
00399  { "noscript", '\0', POPT_BIT_SET,&rpmQVKArgs.qva_flags, VERIFY_SCRIPT,
00400         N_("don't execute verify script(s)"), NULL },
00401  /* XXX legacy had a trailing s on --noscript */
00402  { "noscripts", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00403         &rpmQVKArgs.qva_flags, VERIFY_SCRIPT,
00404         N_("don't execute verify script(s)"), NULL },
00405 #else
00406  { "noscript", '\0', 0, NULL, RPMCLI_POPT_NOSCRIPTS,
00407         N_("don't execute verify script(s)"), NULL },
00408  /* XXX legacy had a trailing s on --noscript */
00409  { "noscripts", '\0', POPT_ARGFLAG_DOC_HIDDEN, NULL, RPMCLI_POPT_NOSCRIPTS,
00410         N_("don't execute verify script(s)"), NULL },
00411 #endif
00412 
00413 #ifdef  DYING
00414  { "nodigest", '\0', POPT_BIT_SET, &rpmQVKArgs.qva_flags, VERIFY_DIGEST,
00415         N_("don't verify package digest(s)"), NULL },
00416  { "nohdrchk", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00417         &rpmQVKArgs.qva_flags, VERIFY_HDRCHK,
00418         N_("don't verify database header(s) when retrieved"), NULL },
00419  { "nosignature", '\0', POPT_BIT_SET,
00420         &rpmQVKArgs.qva_flags, VERIFY_SIGNATURE,
00421         N_("don't verify package signature(s)"), NULL },
00422 #else
00423  { "nodigest", '\0', POPT_ARGFLAG_DOC_HIDDEN, 0, RPMCLI_POPT_NODIGEST,
00424         N_("don't verify package digest(s)"), NULL },
00425  { "nohdrchk", '\0', POPT_ARGFLAG_DOC_HIDDEN, 0, RPMCLI_POPT_NOHDRCHK,
00426         N_("don't verify database header(s) when retrieved"), NULL },
00427  { "nosignature", '\0', POPT_ARGFLAG_DOC_HIDDEN, 0, RPMCLI_POPT_NOSIGNATURE,
00428         N_("don't verify package signature(s)"), NULL },
00429 #endif
00430 
00431     POPT_TABLEEND
00432 };
00433 
00437 /*@unchecked@*/
00438 struct poptOption rpmSignPoptTable[] = {
00439 /*@-type@*/ /* FIX: cast? */
00440  { NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA | POPT_CBFLAG_CONTINUE,
00441         rpmQVSourceArgCallback, 0, NULL, NULL },
00442 /*@=type@*/
00443  { "addsign", '\0', 0, NULL, 'A',
00444         N_("sign package(s) (identical to --resign)"), NULL },
00445  { "checksig", 'K', 0, NULL, 'K',
00446         N_("verify package signature(s)"), NULL },
00447  { "delsign", '\0', 0, NULL, 'D',
00448         N_("delete package signatures"), NULL },
00449  { "import", '\0', 0, NULL, 'I',
00450         N_("import an armored public key"), NULL },
00451  { "resign", '\0', 0, NULL, 'R',
00452         N_("sign package(s) (identical to --addsign)"), NULL },
00453  { "sign", '\0', POPT_ARGFLAG_DOC_HIDDEN, &rpmQVKArgs.sign, 0,
00454         N_("generate signature"), NULL },
00455  /* XXX perhaps POPT_ARG_INT instead of callback. */
00456  { "trust", '\0', POPT_ARG_STRING|POPT_ARGFLAG_DOC_HIDDEN, 0,  POPT_TRUST,
00457         N_("specify trust metric"), "TRUST" },
00458  { "trusted", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN,
00459         &rpmQVKArgs.trust, 1,
00460         N_("set ultimate trust when importing pubkey(s)"), NULL },
00461  { "untrusted", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN,
00462         &rpmQVKArgs.trust, -1,
00463         N_("unset ultimate trust when importing pubkey(s)"), NULL },
00464 
00465  { "nodigest", '\0', POPT_BIT_SET, &rpmQVKArgs.qva_flags, VERIFY_DIGEST,
00466         N_("don't verify package digest(s)"), NULL },
00467  { "nohdrchk", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
00468         &rpmQVKArgs.qva_flags, VERIFY_HDRCHK,
00469         N_("don't verify database header(s) when retrieved"), NULL },
00470  { "nosignature", '\0', POPT_BIT_SET, &rpmQVKArgs.qva_flags, VERIFY_SIGNATURE,
00471         N_("don't verify package signature(s)"), NULL },
00472 
00473    POPT_TABLEEND
00474 };

Generated on Sun Aug 18 14:32:00 2013 for rpm by  doxygen 1.4.4