RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 25-Apr-2012 20:28:19 Branch: rpm-5_4 Handle: 2012042518281900 Modified files: (Branch: rpm-5_4) rpm/lib query.c rpminstall.c rpmrollback.c Log: - c++: hide the C -> C++ typedef'd enum flags issue more carefully. Summary: Revision Changes Path 2.216.2.4 +57 -17 rpm/lib/query.c 1.229.2.5 +55 -17 rpm/lib/rpminstall.c 1.44.4.4 +38 -11 rpm/lib/rpmrollback.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/lib/query.c ============================================================================ $ cvs diff -u -r2.216.2.3 -r2.216.2.4 query.c --- rpm/lib/query.c 19 Apr 2012 17:26:06 -0000 2.216.2.3 +++ rpm/lib/query.c 25 Apr 2012 18:28:19 -0000 2.216.2.4 @@ -35,6 +35,30 @@ /*@access rpmts @*/ /* XXX cast */ +#ifdef __cplusplus + +#define FF_ISSET(_fflags, _FLAG) ((_fflags) & (RPMFILE_##_FLAG)) + +#define QVA_ISSET(_qvaflags, _FLAG) ((_qvaflags) & (QUERY_##_FLAG)) + +#define VSF_ISSET(_vsflags, _FLAG) ((_vsflags) & (RPMVSF_##_FLAG)) +#define VSF_SET(_vsflags, _FLAG) \ + (*((unsigned *)&(_vsflags)) |= (RPMVSF_##_FLAG)) +#define VSF_CLR(_vsflags, _FLAG) \ + (*((unsigned *)&(_vsflags)) &= ~(RPMVSF_##_FLAG)) + +#else /* __cplusplus */ + +#define FF_ISSET(_fflags, _FLAG) ((_fflags) & (RPMFILE_##_FLAG)) + +#define QVA_ISSET(_qvaflags, _FLAG) ((_qvaflags) & (QUERY_##_FLAG)) + +#define VSF_ISSET(_vsflags, _FLAG) ((_vsflags) & (RPMVSF_##_FLAG)) +#define VSF_SET(_vsflags, _FLAG) (_vsflags) |= (RPMVSF_##_FLAG) +#define VSF_CLR(_vsflags, _FLAG) (_vsflags) &= ~(RPMVSF_##_FLAG) + +#endif /* __cplusplus */ + /** */ static void printFileInfo(char * te, const char * name, @@ -215,7 +239,7 @@ } } - if (!(qva->qva_flags & QUERY_FOR_LIST)) + if (!QVA_ISSET(qva->qva_flags, FOR_LIST)) goto exit; fi = rpmfiNew(ts, h, RPMTAG_BASENAMES, scareMem); @@ -269,23 +293,23 @@ assert(fdigest != NULL); /* If querying only docs, skip non-doc files. */ - if ((qva->qva_flags & QUERY_FOR_DOCS) && !(fflags & RPMFILE_DOC)) + if (QVA_ISSET(qva->qva_flags, FOR_DOCS) && !FF_ISSET(fflags, DOC)) continue; /* If querying only configs, skip non-config files. */ - if ((qva->qva_flags & QUERY_FOR_CONFIG) && !(fflags & RPMFILE_CONFIG)) + if (QVA_ISSET(qva->qva_flags, FOR_CONFIG) && !FF_ISSET(fflags, CONFIG)) continue; /* If not querying %config, skip config files. */ - if ((qva->qva_fflags & RPMFILE_CONFIG) && (fflags & RPMFILE_CONFIG)) + if (FF_ISSET(qva->qva_fflags, CONFIG) && FF_ISSET(fflags, CONFIG)) continue; /* If not querying %doc, skip doc files. */ - if ((qva->qva_fflags & RPMFILE_DOC) && (fflags & RPMFILE_DOC)) + if (FF_ISSET(qva->qva_fflags, DOC) && FF_ISSET(fflags, DOC)) continue; /* If not querying %ghost, skip ghost files. */ - if ((qva->qva_fflags & RPMFILE_GHOST) && (fflags & RPMFILE_GHOST)) + if (FF_ISSET(qva->qva_fflags, GHOST) && FF_ISSET(fflags, GHOST)) continue; /* Insure space for header derived data */ @@ -305,7 +329,7 @@ if (!rpmIsVerbose() && prefix) te = stpcpy(te, prefix); - if (qva->qva_flags & QUERY_FOR_STATE) { + if (QVA_ISSET(qva->qva_flags, FOR_STATE)) { switch (fstate) { case RPMFILE_STATE_NORMAL: te = stpcpy(te, _("normal ")); @@ -332,7 +356,7 @@ } } - if (qva->qva_flags & QUERY_FOR_DUMPFILES) { + if (QVA_ISSET(qva->qva_flags, FOR_DUMPFILES)) { sprintf(te, "%s %d %d %s 0%o ", fn, (int)fsize, fmtime, fdigest, fmode); te += strlen(te); @@ -347,8 +371,8 @@ } sprintf(te, " %s %s %u ", - fflags & RPMFILE_CONFIG ? "1" : "0", - fflags & RPMFILE_DOC ? "1" : "0", + FF_ISSET(fflags, CONFIG) ? "1" : "0", + FF_ISSET(fflags, DOC) ? "1" : "0", frdev); te += strlen(te); @@ -892,7 +916,13 @@ qva->qva_showPackage = showQueryPackage; /* If --queryformat unspecified, then set default now. */ - if (!(qva->qva_flags & _QUERY_FOR_BITS) && qva->qva_queryFormat == NULL) { + if (qva->qva_queryFormat == NULL + && !QVA_ISSET(qva->qva_flags, FOR_LIST) + && !QVA_ISSET(qva->qva_flags, FOR_STATE) + && !QVA_ISSET(qva->qva_flags, FOR_DOCS) + && !QVA_ISSET(qva->qva_flags, FOR_CONFIG) + && !QVA_ISSET(qva->qva_flags, FOR_DUMPFILES) + ) { qva->qva_queryFormat = rpmExpand("%{?_query_all_fmt}\n", NULL); if (!(qva->qva_queryFormat != NULL && *qva->qva_queryFormat != '\0')) { qva->qva_queryFormat = _free(qva->qva_queryFormat); @@ -902,12 +932,22 @@ vsflags = (rpmVSFlags) rpmExpandNumeric("%{?_vsflags_query}"); vsflags = (rpmVSFlags) 0; /* XXX FIXME: ignore default disablers. */ - if (qva->qva_flags & VERIFY_DIGEST) - *((unsigned *)&vsflags) |= _RPMVSF_NODIGESTS; - if (qva->qva_flags & VERIFY_SIGNATURE) - *((unsigned *)&vsflags) |= _RPMVSF_NOSIGNATURES; - if (qva->qva_flags & VERIFY_HDRCHK) - *((unsigned *)&vsflags) |= RPMVSF_NOHDRCHK; + if (!QVA_ISSET(qva->qva_flags, DIGEST)) { + VSF_SET(vsflags, NOSHA1HEADER); + VSF_SET(vsflags, NOMD5HEADER); + VSF_SET(vsflags, NOSHA1); + VSF_SET(vsflags, NOMD5); + } + if (!QVA_ISSET(qva->qva_flags, SIGNATURE)) { + VSF_SET(vsflags, NODSAHEADER); + VSF_SET(vsflags, NORSAHEADER); + VSF_SET(vsflags, NODSA); + VSF_SET(vsflags, NORSA); + } + if (!QVA_ISSET(qva->qva_flags, HDRCHK)) { + VSF_SET(vsflags, NOHDRCHK); + } + VSF_CLR(vsflags, NEEDPAYLOAD); /* XXX needed? */ odepFlags = rpmtsSetDFlags(ts, depFlags); otransFlags = rpmtsSetFlags(ts, transFlags); @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpminstall.c ============================================================================ $ cvs diff -u -r1.229.2.4 -r1.229.2.5 rpminstall.c --- rpm/lib/rpminstall.c 15 Apr 2012 21:20:58 -0000 1.229.2.4 +++ rpm/lib/rpminstall.c 25 Apr 2012 18:28:19 -0000 1.229.2.5 @@ -37,9 +37,26 @@ /*@access rpmgi @*/ /* XXX gi->h */ /*@access fnpyKey @*/ /* XXX cast */ - #ifdef __cplusplus + +#define QVA_ISSET(_qvaflags, _FLAG) ((_qvaflags) & (VERIFY_##_FLAG)) + +#define VSF_ISSET(_vsflags, _FLAG) ((_vsflags) & (RPMVSF_##_FLAG)) +#define VSF_SET(_vsflags, _FLAG) \ + (*((unsigned *)&(_vsflags)) |= (RPMVSF_##_FLAG)) +#define VSF_CLR(_vsflags, _FLAG) \ + (*((unsigned *)&(_vsflags)) &= ~(RPMVSF_##_FLAG)) + GENfree(const void **) + +#else /* __cplusplus */ + +#define QVA_ISSET(_qvaflags, _FLAG) ((_qvaflags) & (VERIFY_##_FLAG)) + +#define VSF_ISSET(_vsflags, _FLAG) ((_vsflags) & (RPMVSF_##_FLAG)) +#define VSF_SET(_vsflags, _FLAG) (_vsflags) |= (RPMVSF_##_FLAG) +#define VSF_CLR(_vsflags, _FLAG) (_vsflags) &= ~(RPMVSF_##_FLAG) + #endif /* __cplusplus */ /*@unchecked@*/ @@ -548,13 +565,23 @@ else vsflags = (rpmVSFlags) rpmExpandNumeric("%{?_vsflags_install}"); vsflags = (rpmVSFlags) 0; /* XXX FIXME: ignore default disablers. */ - if (ia->qva_flags & VERIFY_DIGEST) - vsflags = (rpmVSFlags) (vsflags | _RPMVSF_NODIGESTS); - if (ia->qva_flags & VERIFY_SIGNATURE) - vsflags = (rpmVSFlags) (vsflags | _RPMVSF_NOSIGNATURES); - if (ia->qva_flags & VERIFY_HDRCHK) - vsflags = (rpmVSFlags) (vsflags | RPMVSF_NOHDRCHK); - ovsflags = rpmtsSetVSFlags(ts, (rpmVSFlags)(vsflags | RPMVSF_NEEDPAYLOAD)); + if (!QVA_ISSET(ia->qva_flags, DIGEST)) { + VSF_SET(vsflags, NOSHA1HEADER); + VSF_SET(vsflags, NOMD5HEADER); + VSF_SET(vsflags, NOSHA1); + VSF_SET(vsflags, NOMD5); + } + if (!QVA_ISSET(ia->qva_flags, SIGNATURE)) { + VSF_SET(vsflags, NODSAHEADER); + VSF_SET(vsflags, NORSAHEADER); + VSF_SET(vsflags, NODSA); + VSF_SET(vsflags, NORSA); + } + if (!QVA_ISSET(ia->qva_flags, HDRCHK)) { + VSF_SET(vsflags, NOHDRCHK); + } + VSF_SET(vsflags, NEEDPAYLOAD); + ovsflags = rpmtsSetVSFlags(ts, vsflags); { int notifyFlags; notifyFlags = ia->installInterfaceFlags | (rpmIsVerbose() ? INSTALL_LABEL : 0 ); @@ -752,12 +779,22 @@ vsflags = (rpmVSFlags) rpmExpandNumeric("%{?_vsflags_erase}"); vsflags = (rpmVSFlags) 0; /* XXX FIXME: ignore default disablers. */ - if (ia->qva_flags & VERIFY_DIGEST) - vsflags = (rpmVSFlags) (vsflags | _RPMVSF_NODIGESTS); - if (ia->qva_flags & VERIFY_SIGNATURE) - vsflags = (rpmVSFlags) (vsflags | _RPMVSF_NOSIGNATURES); - if (ia->qva_flags & VERIFY_HDRCHK) - vsflags = (rpmVSFlags) (vsflags | RPMVSF_NOHDRCHK); + if (!QVA_ISSET(ia->qva_flags, DIGEST)) { + VSF_SET(vsflags, NOSHA1HEADER); + VSF_SET(vsflags, NOMD5HEADER); + VSF_SET(vsflags, NOSHA1); + VSF_SET(vsflags, NOMD5); + } + if (!QVA_ISSET(ia->qva_flags, SIGNATURE)) { + VSF_SET(vsflags, NODSAHEADER); + VSF_SET(vsflags, NORSAHEADER); + VSF_SET(vsflags, NODSA); + VSF_SET(vsflags, NORSA); + } + if (!QVA_ISSET(ia->qva_flags, HDRCHK)) { + VSF_SET(vsflags, NOHDRCHK); + } + VSF_CLR(vsflags, NEEDPAYLOAD); /* XXX needed? */ ovsflags = rpmtsSetVSFlags(ts, vsflags); if (rpmExpandNumeric("%{?_repackage_all_erasures}")) @@ -855,9 +892,10 @@ fprintf(stdout, _("Installing %s\n"), arg); { - rpmVSFlags nvsflags = (rpmVSFlags) - (rpmtsVSFlags(ts) | RPMVSF_NEEDPAYLOAD); - rpmVSFlags ovsflags = rpmtsSetVSFlags(ts, nvsflags); + rpmVSFlags nvsflags, ovsflags; + nvsflags = rpmtsVSFlags(ts); + VSF_SET(nvsflags, NEEDPAYLOAD); + ovsflags = rpmtsSetVSFlags(ts, nvsflags); rc = rpmInstallSourcePackage(ts, fd, specFilePtr, cookie); ovsflags = rpmtsSetVSFlags(ts, ovsflags); } @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmrollback.c ============================================================================ $ cvs diff -u -r1.44.4.3 -r1.44.4.4 rpmrollback.c --- rpm/lib/rpmrollback.c 15 Apr 2012 21:20:58 -0000 1.44.4.3 +++ rpm/lib/rpmrollback.c 25 Apr 2012 18:28:19 -0000 1.44.4.4 @@ -36,8 +36,26 @@ /*@access IDT @*/ #ifdef __cplusplus + +#define QVA_ISSET(_qvaflags, _FLAG) ((_qvaflags) & (VERIFY_##_FLAG)) + +#define VSF_ISSET(_vsflags, _FLAG) ((_vsflags) & (RPMVSF_##_FLAG)) +#define VSF_SET(_vsflags, _FLAG) \ + (*((unsigned *)&(_vsflags)) |= (RPMVSF_##_FLAG)) +#define VSF_CLR(_vsflags, _FLAG) \ + (*((unsigned *)&(_vsflags)) &= ~(RPMVSF_##_FLAG)) + GENfree(IDTX) GENfree(IDT) + +#else /* __cplusplus */ + +#define QVA_ISSET(_qvaflags, _FLAG) ((_qvaflags) & (VERIFY_##_FLAG)) + +#define VSF_ISSET(_vsflags, _FLAG) ((_vsflags) & (RPMVSF_##_FLAG)) +#define VSF_SET(_vsflags, _FLAG) (_vsflags) |= (RPMVSF_##_FLAG) +#define VSF_CLR(_vsflags, _FLAG) (_vsflags) &= ~(RPMVSF_##_FLAG) + #endif /* __cplusplus */ /*@unchecked@*/ @@ -413,7 +431,7 @@ IDT ip; int niids = 0; int rc = 0; - int vsflags, ovsflags; + rpmVSFlags vsflags, ovsflags; int numAdded; int numRemoved; unsigned int _unsafe_rollbacks = 0; @@ -428,16 +446,25 @@ _unsafe_rollbacks = rpmExpandNumeric("%{?_unsafe_rollbacks}"); - vsflags = rpmExpandNumeric("%{?_vsflags_erase}"); - vsflags = 0; /* XXX FIXME: ignore default disablers. */ - if (ia->qva_flags & VERIFY_DIGEST) - vsflags |= _RPMVSF_NODIGESTS; - if (ia->qva_flags & VERIFY_SIGNATURE) - vsflags |= _RPMVSF_NOSIGNATURES; - if (ia->qva_flags & VERIFY_HDRCHK) - vsflags |= RPMVSF_NOHDRCHK; - vsflags |= RPMVSF_NEEDPAYLOAD; /* XXX no legacy signatures */ - ovsflags = rpmtsSetVSFlags(ts, (rpmVSFlags) vsflags); + vsflags = (rpmVSFlags) rpmExpandNumeric("%{?_vsflags_erase}"); + vsflags = (rpmVSFlags) 0; /* XXX FIXME: ignore default disablers. */ + if (!QVA_ISSET(ia->qva_flags, DIGEST)) { + VSF_SET(vsflags, NOSHA1HEADER); + VSF_SET(vsflags, NOMD5HEADER); + VSF_SET(vsflags, NOSHA1); + VSF_SET(vsflags, NOMD5); + } + if (!QVA_ISSET(ia->qva_flags, SIGNATURE)) { + VSF_SET(vsflags, NODSAHEADER); + VSF_SET(vsflags, NORSAHEADER); + VSF_SET(vsflags, NODSA); + VSF_SET(vsflags, NORSA); + } + if (!QVA_ISSET(ia->qva_flags, HDRCHK)) { + VSF_SET(vsflags, NOHDRCHK); + } + VSF_SET(vsflags, NEEDPAYLOAD); /* XXX needed? */ + ovsflags = rpmtsSetVSFlags(ts, vsflags); (void) rpmtsSetFlags(ts, transFlags); (void) rpmtsSetDFlags(ts, depFlags); @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org