00001
00005 #include "system.h"
00006
00007 #include <rpmio_internal.h>
00008 #include <rpmcb.h>
00009 #include <rpmsq.h>
00010 #include <argv.h>
00011
00012 #define _RPMTAG_INTERNAL
00013 #include <rpmtag.h>
00014 #define _RPMEVR_INTERNAL
00015 #include <rpmevr.h>
00016 #include <rpmdb.h>
00017 #include <rpmcli.h>
00018
00019 #include "legacy.h"
00020 #include "misc.h"
00021
00022 #include "header-py.h"
00023 #include "rpmal-py.h"
00024 #include "rpmds-py.h"
00025 #include "rpmfd-py.h"
00026 #include "rpmfts-py.h"
00027 #include "rpmfi-py.h"
00028 #include "rpmkeyring-py.h"
00029 #include "rpmmacro-py.h"
00030 #include "rpmmi-py.h"
00031 #include "rpmps-py.h"
00032 #include "rpmtd-py.h"
00033 #include "rpmte-py.h"
00034 #include "rpmts-py.h"
00035 #include "spec-py.h"
00036
00037 #include "debug.h"
00038
00039 #ifdef __LCLINT__
00040 #undef PyObject_HEAD
00041 #define PyObject_HEAD int _PyObjectHead
00042 #endif
00043
00048
00051 PyObject * pyrpmError;
00052
00053 extern sigset_t rpmsqCaught;
00054
00057 static PyObject * archScore(PyObject * s, PyObject * args,
00058 PyObject * kwds)
00059 {
00060 char * arch;
00061 char * platform;
00062 int score;
00063 char * kwlist[] = {"arch", NULL};
00064
00065 if (!PyArg_ParseTupleAndKeywords(args, kwds, "s", kwlist, &arch))
00066 return NULL;
00067
00068 #if defined(RPM_VENDOR_WINDRIVER)
00069 platform = rpmExpand(arch, "-%{_host_vendor}", "-%{_host_os}%{?_gnu}", NULL);
00070 #else
00071 platform = rpmExpand(arch, "-", "%{_vendor}", "-", "%{_os}", NULL);
00072 #endif
00073 score = rpmPlatformScore(platform, NULL, 0);
00074 platform = _free(platform);
00075
00076 return Py_BuildValue("i", score);
00077 }
00078
00081 static PyObject * platformScore(PyObject * s, PyObject * args,
00082 PyObject * kwds)
00083 {
00084 char * platform;
00085 int score;
00086 char * kwlist[] = {"platform", NULL};
00087
00088 if (!PyArg_ParseTupleAndKeywords(args, kwds, "s", kwlist, &platform))
00089 return NULL;
00090
00091 score = rpmPlatformScore(platform, NULL, 0);
00092
00093 return Py_BuildValue("i", score);
00094 }
00095
00098 static PyObject * signalsCaught(PyObject * s, PyObject * check)
00099 {
00100 PyObject *caught, *o;
00101 Py_ssize_t llen;
00102 int signum, i;
00103 sigset_t newMask, oldMask;
00104
00105 if (!PyList_Check(check)) {
00106 PyErr_SetString(PyExc_TypeError, "list expected");
00107 return NULL;
00108 }
00109
00110 llen = PyList_Size(check);
00111 caught = PyList_New(0);
00112
00113
00114 (void) sigfillset(&newMask);
00115 (void) sigprocmask(SIG_BLOCK, &newMask, &oldMask);
00116
00117 for (i = 0; i < llen; i++) {
00118 o = PyList_GetItem(check, i);
00119 signum = PyInt_AsLong(o);
00120 if (sigismember(&rpmsqCaught, signum)) {
00121 PyList_Append(caught, o);
00122 }
00123 }
00124 (void) sigprocmask(SIG_SETMASK, &oldMask, NULL);
00125
00126 return caught;
00127 }
00128
00131 static PyObject * checkSignals(PyObject * s, PyObject * args)
00132 {
00133 if (!PyArg_ParseTuple(args, ":checkSignals")) return NULL;
00134 rpmdbCheckSignals();
00135 Py_INCREF(Py_None);
00136 return Py_None;
00137 }
00138
00141 static PyObject * setLogFile (PyObject * s, PyObject * args,
00142 PyObject *kwds)
00143 {
00144 PyObject * fop = NULL;
00145 FILE * fp = NULL;
00146 char * kwlist[] = {"fileObject", NULL};
00147
00148 if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O:logSetFile", kwlist, &fop))
00149 return NULL;
00150
00151 if (fop) {
00152 if (!PyFile_Check(fop)) {
00153 PyErr_SetString(pyrpmError, "requires file object");
00154 return NULL;
00155 }
00156 fp = PyFile_AsFile(fop);
00157 }
00158
00159 (void) rpmlogSetFile(fp);
00160
00161 Py_INCREF(Py_None);
00162 return (PyObject *) Py_None;
00163 }
00164
00167 static PyObject *
00168 setVerbosity (PyObject * s, PyObject * args, PyObject *kwds)
00169 {
00170 int level;
00171 char * kwlist[] = {"level", NULL};
00172
00173 if (!PyArg_ParseTupleAndKeywords(args, kwds, "i", kwlist, &level))
00174 return NULL;
00175
00176 rpmSetVerbosity(level);
00177
00178 Py_INCREF(Py_None);
00179 return (PyObject *) Py_None;
00180 }
00181
00184 static PyObject *
00185 setEpochPromote (PyObject * s, PyObject * args, PyObject * kwds)
00186 {
00187 char * kwlist[] = {"promote", NULL};
00188
00189 if (!PyArg_ParseTupleAndKeywords(args, kwds, "i", kwlist,
00190 &_rpmds_nopromote))
00191 return NULL;
00192
00193 Py_INCREF(Py_None);
00194 return (PyObject *) Py_None;
00195 }
00196
00199 static PyObject * setStats (PyObject * s, PyObject * args,
00200 PyObject * kwds)
00201 {
00202 char * kwlist[] = {"stats", NULL};
00203
00204 if (!PyArg_ParseTupleAndKeywords(args, kwds, "i", kwlist, &_rpmts_stats))
00205 return NULL;
00206
00207 Py_INCREF(Py_None);
00208 return (PyObject *) Py_None;
00209 }
00214 static PyMethodDef rpmModuleMethods[] = {
00215 { "TransactionSet", (PyCFunction) rpmts_Create, METH_VARARGS|METH_KEYWORDS,
00216 "rpm.TransactionSet([rootDir, [db]]) -> ts\n\
00217 - Create a transaction set.\n" },
00218
00219 { "addMacro", (PyCFunction) rpmmacro_AddMacro, METH_VARARGS|METH_KEYWORDS,
00220 NULL },
00221 { "delMacro", (PyCFunction) rpmmacro_DelMacro, METH_VARARGS|METH_KEYWORDS,
00222 NULL },
00223 { "expandMacro", (PyCFunction)rpmmacro_ExpandMacro, METH_VARARGS|METH_KEYWORDS,
00224 NULL },
00225 { "getMacros", (PyCFunction) rpmmacro_GetMacros, METH_VARARGS|METH_KEYWORDS,
00226 NULL },
00227
00228 { "archscore", (PyCFunction) archScore, METH_VARARGS|METH_KEYWORDS,
00229 NULL },
00230 { "platformscore", (PyCFunction) platformScore, METH_VARARGS|METH_KEYWORDS,
00231 NULL },
00232
00233 { "signalsCaught", (PyCFunction) signalsCaught, METH_O,
00234 NULL },
00235 { "checkSignals", (PyCFunction) checkSignals, METH_VARARGS,
00236 NULL },
00237
00238 { "headerLoad", (PyCFunction) hdrLoad, METH_VARARGS|METH_KEYWORDS,
00239 NULL },
00240
00241 { "readHeaderListFromFD", (PyCFunction) rpmHeaderFromFD, METH_VARARGS|METH_KEYWORDS,
00242 NULL },
00243 { "readHeaderListFromFile", (PyCFunction) rpmHeaderFromFile, METH_VARARGS|METH_KEYWORDS,
00244 NULL },
00245 { "readHeaderFromFD", (PyCFunction) rpmSingleHeaderFromFD, METH_VARARGS|METH_KEYWORDS,
00246 NULL },
00247 { "writeHeaderListToFD", (PyCFunction) rpmHeaderToFD, METH_VARARGS|METH_KEYWORDS,
00248 NULL },
00249 { "writeHeaderListToFile", (PyCFunction) rpmHeaderToFile, METH_VARARGS|METH_KEYWORDS,
00250 NULL },
00251
00252 { "setLogFile", (PyCFunction) setLogFile, METH_VARARGS|METH_KEYWORDS,
00253 NULL },
00254
00255 { "versionCompare", (PyCFunction) versionCompare, METH_VARARGS|METH_KEYWORDS,
00256 NULL },
00257 { "labelCompare", (PyCFunction) labelCompare, METH_VARARGS|METH_KEYWORDS,
00258 NULL },
00259 { "setVerbosity", (PyCFunction) setVerbosity, METH_VARARGS|METH_KEYWORDS,
00260 NULL },
00261 { "setEpochPromote", (PyCFunction) setEpochPromote, METH_VARARGS|METH_KEYWORDS,
00262 NULL },
00263 { "setStats", (PyCFunction) setStats, METH_VARARGS|METH_KEYWORDS,
00264 NULL },
00265
00266 { "dsSingle", (PyCFunction) rpmds_Single, METH_VARARGS|METH_KEYWORDS,
00267 "rpm.dsSingle(TagN, N, [EVR, [Flags]] -> ds\n\
00268 - Create a single element dependency set.\n" },
00269 { NULL }
00270 } ;
00271
00272
00273
00274
00275 static void rpm_exithook(void)
00276 {
00277 rpmdbCheckTerminate(1);
00278 }
00279
00280
00281
00282
00283 static void addRpmTags(PyObject *module)
00284 {
00285 PyObject * dict = PyDict_New();
00286
00287 #ifdef NOTYET
00288
00289 PyObject *pyval, *pyname;
00290 rpmtd names = rpmtdNew();
00291 rpmTagGetNames(names, 1);
00292 const char *tagname, *shortname;
00293 rpmTag tagval;
00294
00295 while ((tagname = rpmtdNextString(names))) {
00296 shortname = tagname + strlen("RPMTAG_");
00297 tagval = rpmTagGetValue(shortname);
00298
00299 PyModule_AddIntConstant(module, tagname, tagval);
00300 pyval = PyInt_FromLong(tagval);
00301 pyname = PyString_FromString(shortname);
00302 PyDict_SetItem(dict, pyval, pyname);
00303 Py_DECREF(pyval);
00304 Py_DECREF(pyname);
00305 }
00306 PyModule_AddObject(module, "tagnames", dict);
00307 rpmtdFreeData(names);
00308 rpmtdFree(names);
00309
00310 #else
00311
00312 PyObject * d = PyModule_GetDict(module);
00313 PyObject * o;
00314
00315 { const struct headerTagTableEntry_s * t;
00316 PyObject * to;
00317 for (t = rpmTagTable; t && t->name; t++) {
00318 PyDict_SetItemString(d, (char *) t->name, to=PyInt_FromLong(t->val));
00319 Py_DECREF(to);
00320 PyDict_SetItem(dict, to, o=PyString_FromString(t->name + 7));
00321 Py_DECREF(o);
00322 }
00323 }
00324
00325 { headerSprintfExtension exts = rpmHeaderFormats;
00326 headerSprintfExtension ext;
00327 PyObject * to;
00328 int extNum;
00329 for (ext = exts, extNum = 0; ext != NULL && ext->type != HEADER_EXT_LAST;
00330 ext = (ext->type == HEADER_EXT_MORE ? *ext->u.more : ext+1), extNum++)
00331 {
00332 if (ext->name == NULL || ext->type != HEADER_EXT_TAG)
00333 continue;
00334 PyDict_SetItemString(d, (char *) ext->name, to=PyCObject_FromVoidPtr((void *)ext, NULL));
00335 Py_DECREF(to);
00336 PyDict_SetItem(dict, to, o=PyString_FromString(ext->name + 7));
00337 Py_DECREF(o);
00338 }
00339 }
00340
00341 PyDict_SetItemString(d, "tagnames", dict);
00342 Py_DECREF(dict);
00343
00344 #endif
00345 }
00346
00349 static char rpm__doc__[] =
00350 "";
00351
00352 void init_rpm(void);
00355 void init_rpm(void)
00356 {
00357 PyObject * d, * o, * m;
00358
00359 #if Py_TPFLAGS_HAVE_ITER
00360 if (PyType_Ready(&hdr_Type) < 0) return;
00361 if (PyType_Ready(&rpmal_Type) < 0) return;
00362 if (PyType_Ready(&rpmds_Type) < 0) return;
00363 if (PyType_Ready(&rpmfd_Type) < 0) return;
00364 if (PyType_Ready(&rpmfts_Type) < 0) return;
00365 if (PyType_Ready(&rpmfi_Type) < 0) return;
00366 if (PyType_Ready(&rpmmi_Type) < 0) return;
00367 if (PyType_Ready(&rpmps_Type) < 0) return;
00368
00369 if (PyType_Ready(&rpmtd_Type) < 0) return;
00370 if (PyType_Ready(&rpmKeyring_Type) < 0) return;
00371 if (PyType_Ready(&rpmPubkey_Type) < 0) return;
00372
00373 if (PyType_Ready(&rpmte_Type) < 0) return;
00374 if (PyType_Ready(&rpmts_Type) < 0) return;
00375 if (PyType_Ready(&spec_Type) < 0) return;
00376 #endif
00377
00378 m = Py_InitModule3("_rpm", rpmModuleMethods, rpm__doc__);
00379 if (m == NULL)
00380 return;
00381
00382
00383
00384
00385
00386 if (Py_AtExit(rpm_exithook) == -1)
00387 return;
00388
00389 rpmReadConfigFiles(NULL, NULL);
00390
00391 d = PyModule_GetDict(m);
00392
00393 #ifdef HACK
00394 pyrpmError = PyString_FromString("_rpm.error");
00395 PyDict_SetItemString(d, "error", pyrpmError);
00396 Py_DECREF(pyrpmError);
00397 #else
00398 pyrpmError = PyErr_NewException("_rpm.error", NULL, NULL);
00399 if (pyrpmError != NULL)
00400 PyDict_SetItemString(d, "error", pyrpmError);
00401 #endif
00402
00403 #if Py_TPFLAGS_HAVE_ITER
00404 Py_INCREF(&hdr_Type);
00405 PyModule_AddObject(m, "hdr", (PyObject *) &hdr_Type);
00406
00407 Py_INCREF(&rpmal_Type);
00408 PyModule_AddObject(m, "al", (PyObject *) &rpmal_Type);
00409
00410 Py_INCREF(&rpmds_Type);
00411 PyModule_AddObject(m, "ds", (PyObject *) &rpmds_Type);
00412
00413 Py_INCREF(&rpmfd_Type);
00414 PyModule_AddObject(m, "fd", (PyObject *) &rpmfd_Type);
00415
00416 Py_INCREF(&rpmfts_Type);
00417 PyModule_AddObject(m, "fts", (PyObject *) &rpmfts_Type);
00418
00419 Py_INCREF(&rpmfi_Type);
00420 PyModule_AddObject(m, "fi", (PyObject *) &rpmfi_Type);
00421
00422 Py_INCREF(&rpmKeyring_Type);
00423 PyModule_AddObject(m, "Keyring", (PyObject *) &rpmKeyring_Type);
00424 Py_INCREF(&rpmPubkey_Type);
00425 PyModule_AddObject(m, "Pubkey", (PyObject *) &rpmPubkey_Type);
00426
00427 Py_INCREF(&rpmmi_Type);
00428 PyModule_AddObject(m, "mi", (PyObject *) &rpmmi_Type);
00429
00430 Py_INCREF(&rpmps_Type);
00431 PyModule_AddObject(m, "ps", (PyObject *) &rpmps_Type);
00432
00433 Py_INCREF(&rpmtd_Type);
00434 PyModule_AddObject(m, "td", (PyObject *) &rpmtd_Type);
00435
00436 Py_INCREF(&rpmte_Type);
00437 PyModule_AddObject(m, "te", (PyObject *) &rpmte_Type);
00438
00439 Py_INCREF(&rpmts_Type);
00440 PyModule_AddObject(m, "ts", (PyObject *) &rpmts_Type);
00441
00442 Py_INCREF(&spec_Type);
00443 PyModule_AddObject(m, "spec", (PyObject *) &spec_Type);
00444 #else
00445 hdr_Type.ob_type = &PyType_Type;
00446 rpmal_Type.ob_type = &PyType_Type;
00447 rpmds_Type.ob_type = &PyType_Type;
00448 rpmfd_Type.ob_type = &PyType_Type;
00449 rpmfts_Type.ob_type = &PyType_Type;
00450 rpmfi_Type.ob_type = &PyType_Type;
00451 rpmmi_Type.ob_type = &PyType_Type;
00452 rpmps_Type.ob_type = &PyType_Type;
00453 rpmte_Type.ob_type = &PyType_Type;
00454 rpmts_Type.ob_type = &PyType_Type;
00455 spec_Type.ob_type = &PyType_Type;
00456 #endif
00457
00458 addRpmTags(m);
00459
00460 #define REGISTER_ENUM(val) \
00461 PyDict_SetItemString(d, #val, o=PyInt_FromLong( val )); \
00462 Py_DECREF(o);
00463
00464 REGISTER_ENUM(RPMFILE_STATE_NORMAL);
00465 REGISTER_ENUM(RPMFILE_STATE_REPLACED);
00466 REGISTER_ENUM(RPMFILE_STATE_NOTINSTALLED);
00467 REGISTER_ENUM(RPMFILE_STATE_NETSHARED);
00468 REGISTER_ENUM(RPMFILE_STATE_WRONGCOLOR);
00469
00470 REGISTER_ENUM(RPMFILE_CONFIG);
00471 REGISTER_ENUM(RPMFILE_DOC);
00472 REGISTER_ENUM(RPMFILE_ICON);
00473 REGISTER_ENUM(RPMFILE_MISSINGOK);
00474 REGISTER_ENUM(RPMFILE_NOREPLACE);
00475 REGISTER_ENUM(RPMFILE_GHOST);
00476 REGISTER_ENUM(RPMFILE_LICENSE);
00477 REGISTER_ENUM(RPMFILE_README);
00478 REGISTER_ENUM(RPMFILE_EXCLUDE);
00479 REGISTER_ENUM(RPMFILE_UNPATCHED);
00480 REGISTER_ENUM(RPMFILE_PUBKEY);
00481
00482 REGISTER_ENUM(RPMDEP_SENSE_REQUIRES);
00483 REGISTER_ENUM(RPMDEP_SENSE_CONFLICTS);
00484
00485 REGISTER_ENUM(RPMSENSE_LESS);
00486 REGISTER_ENUM(RPMSENSE_GREATER);
00487 REGISTER_ENUM(RPMSENSE_EQUAL);
00488 REGISTER_ENUM(RPMSENSE_NOTEQUAL);
00489 REGISTER_ENUM(RPMSENSE_FIND_REQUIRES);
00490
00491 REGISTER_ENUM(RPMDEPS_FLAG_NOUPGRADE);
00492 REGISTER_ENUM(RPMDEPS_FLAG_NOREQUIRES);
00493 REGISTER_ENUM(RPMDEPS_FLAG_NOCONFLICTS);
00494 REGISTER_ENUM(RPMDEPS_FLAG_NOOBSOLETES);
00495 REGISTER_ENUM(RPMDEPS_FLAG_NOPARENTDIRS);
00496 REGISTER_ENUM(RPMDEPS_FLAG_NOLINKTOS);
00497 REGISTER_ENUM(RPMDEPS_FLAG_ANACONDA);
00498 REGISTER_ENUM(RPMDEPS_FLAG_NOSUGGEST);
00499 REGISTER_ENUM(RPMDEPS_FLAG_ADDINDEPS);
00500 REGISTER_ENUM(RPMDEPS_FLAG_DEPLOOPS);
00501
00502 REGISTER_ENUM(RPMTRANS_FLAG_TEST);
00503 REGISTER_ENUM(RPMTRANS_FLAG_BUILD_PROBS);
00504 REGISTER_ENUM(RPMTRANS_FLAG_NOSCRIPTS);
00505 REGISTER_ENUM(RPMTRANS_FLAG_JUSTDB);
00506 REGISTER_ENUM(RPMTRANS_FLAG_NOTRIGGERS);
00507 REGISTER_ENUM(RPMTRANS_FLAG_NODOCS);
00508 REGISTER_ENUM(RPMTRANS_FLAG_ALLFILES);
00509 REGISTER_ENUM(RPMTRANS_FLAG_NORPMDB);
00510 REGISTER_ENUM(RPMTRANS_FLAG_REPACKAGE);
00511 REGISTER_ENUM(RPMTRANS_FLAG_NOPRE);
00512 REGISTER_ENUM(RPMTRANS_FLAG_NOPOST);
00513 REGISTER_ENUM(RPMTRANS_FLAG_NOTRIGGERPREIN);
00514 REGISTER_ENUM(RPMTRANS_FLAG_NOTRIGGERIN);
00515 REGISTER_ENUM(RPMTRANS_FLAG_NOTRIGGERUN);
00516 REGISTER_ENUM(RPMTRANS_FLAG_NOPREUN);
00517 REGISTER_ENUM(RPMTRANS_FLAG_NOPOSTUN);
00518 REGISTER_ENUM(RPMTRANS_FLAG_NOTRIGGERPOSTUN);
00519 REGISTER_ENUM(RPMTRANS_FLAG_NOFDIGESTS);
00520 REGISTER_ENUM(RPMTRANS_FLAG_NOCONFIGS);
00521
00522 REGISTER_ENUM(RPMPROB_FILTER_IGNOREOS);
00523 REGISTER_ENUM(RPMPROB_FILTER_IGNOREARCH);
00524 REGISTER_ENUM(RPMPROB_FILTER_REPLACEPKG);
00525 REGISTER_ENUM(RPMPROB_FILTER_FORCERELOCATE);
00526 REGISTER_ENUM(RPMPROB_FILTER_REPLACENEWFILES);
00527 REGISTER_ENUM(RPMPROB_FILTER_REPLACEOLDFILES);
00528 REGISTER_ENUM(RPMPROB_FILTER_OLDPACKAGE);
00529 REGISTER_ENUM(RPMPROB_FILTER_DISKSPACE);
00530 REGISTER_ENUM(RPMPROB_FILTER_DISKNODES);
00531
00532 REGISTER_ENUM(RPMCALLBACK_UNKNOWN);
00533 REGISTER_ENUM(RPMCALLBACK_INST_PROGRESS);
00534 REGISTER_ENUM(RPMCALLBACK_INST_START);
00535 REGISTER_ENUM(RPMCALLBACK_INST_OPEN_FILE);
00536 REGISTER_ENUM(RPMCALLBACK_INST_CLOSE_FILE);
00537 REGISTER_ENUM(RPMCALLBACK_TRANS_PROGRESS);
00538 REGISTER_ENUM(RPMCALLBACK_TRANS_START);
00539 REGISTER_ENUM(RPMCALLBACK_TRANS_STOP);
00540 REGISTER_ENUM(RPMCALLBACK_UNINST_PROGRESS);
00541 REGISTER_ENUM(RPMCALLBACK_UNINST_START);
00542 REGISTER_ENUM(RPMCALLBACK_UNINST_STOP);
00543 REGISTER_ENUM(RPMCALLBACK_REPACKAGE_PROGRESS);
00544 REGISTER_ENUM(RPMCALLBACK_REPACKAGE_START);
00545 REGISTER_ENUM(RPMCALLBACK_REPACKAGE_STOP);
00546 REGISTER_ENUM(RPMCALLBACK_UNPACK_ERROR);
00547 REGISTER_ENUM(RPMCALLBACK_CPIO_ERROR);
00548 REGISTER_ENUM(RPMCALLBACK_SCRIPT_ERROR);
00549
00550 REGISTER_ENUM(RPMPROB_BADARCH);
00551 REGISTER_ENUM(RPMPROB_BADOS);
00552 REGISTER_ENUM(RPMPROB_PKG_INSTALLED);
00553 REGISTER_ENUM(RPMPROB_BADRELOCATE);
00554 REGISTER_ENUM(RPMPROB_REQUIRES);
00555 REGISTER_ENUM(RPMPROB_CONFLICT);
00556 REGISTER_ENUM(RPMPROB_NEW_FILE_CONFLICT);
00557 REGISTER_ENUM(RPMPROB_FILE_CONFLICT);
00558 REGISTER_ENUM(RPMPROB_OLDPACKAGE);
00559 REGISTER_ENUM(RPMPROB_DISKSPACE);
00560 REGISTER_ENUM(RPMPROB_DISKNODES);
00561 REGISTER_ENUM(RPMPROB_BADPRETRANS);
00562
00563 REGISTER_ENUM(VERIFY_DIGEST);
00564 REGISTER_ENUM(VERIFY_SIGNATURE);
00565
00566 REGISTER_ENUM(RPMLOG_EMERG);
00567 REGISTER_ENUM(RPMLOG_ALERT);
00568 REGISTER_ENUM(RPMLOG_CRIT);
00569 REGISTER_ENUM(RPMLOG_ERR);
00570 REGISTER_ENUM(RPMLOG_WARNING);
00571 REGISTER_ENUM(RPMLOG_NOTICE);
00572 REGISTER_ENUM(RPMLOG_INFO);
00573 REGISTER_ENUM(RPMLOG_DEBUG);
00574
00575 REGISTER_ENUM(RPMMIRE_DEFAULT);
00576 REGISTER_ENUM(RPMMIRE_STRCMP);
00577 REGISTER_ENUM(RPMMIRE_REGEX);
00578 REGISTER_ENUM(RPMMIRE_GLOB);
00579
00580 REGISTER_ENUM(RPMVSF_DEFAULT);
00581 REGISTER_ENUM(RPMVSF_NOHDRCHK);
00582 REGISTER_ENUM(RPMVSF_NEEDPAYLOAD);
00583 REGISTER_ENUM(RPMVSF_NOSHA1HEADER);
00584 REGISTER_ENUM(RPMVSF_NOMD5HEADER);
00585 REGISTER_ENUM(RPMVSF_NODSAHEADER);
00586 REGISTER_ENUM(RPMVSF_NORSAHEADER);
00587 REGISTER_ENUM(RPMVSF_NOSHA1);
00588 REGISTER_ENUM(RPMVSF_NOMD5);
00589 REGISTER_ENUM(RPMVSF_NODSA);
00590 REGISTER_ENUM(RPMVSF_NORSA);
00591 REGISTER_ENUM(_RPMVSF_NODIGESTS);
00592 REGISTER_ENUM(_RPMVSF_NOSIGNATURES);
00593 REGISTER_ENUM(_RPMVSF_NOHEADER);
00594 REGISTER_ENUM(_RPMVSF_NOPAYLOAD);
00595
00596 REGISTER_ENUM(TR_ADDED);
00597 REGISTER_ENUM(TR_REMOVED);
00598
00599 REGISTER_ENUM(RPMDBI_PACKAGES);
00600
00601 REGISTER_ENUM((long)RPMAL_NOMATCH);
00602 }