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