[CVS] RPM: rpm/rpmdb/ header.c rpmdb.c rpmdb.h
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: 16-May-2009 01:48:48 Branch: HEAD Handle: 2009051523484800 Modified files: rpm/rpmdb header.c rpmdb.c rpmdb.h Log: - rpmdb: performance tweaks. Summary: RevisionChanges Path 1.179 +2 -2 rpm/rpmdb/header.c 1.298 +50 -72 rpm/rpmdb/rpmdb.c 1.90+0 -2 rpm/rpmdb/rpmdb.h patch -p0 <<'@@ .' Index: rpm/rpmdb/header.c $ cvs diff -u -r1.178 -r1.179 header.c --- rpm/rpmdb/header.c27 Mar 2009 17:42:00 - 1.178 +++ rpm/rpmdb/header.c15 May 2009 23:48:48 - 1.179 @@ -30,11 +30,11 @@ /* Compute tag data store size using offsets? */ /*...@unchecked@*/ -int _hdr_fastdatalength = 0; +int _hdr_fastdatalength = 1; /* Swab tag data only when accessed through headerGet()? */ /*...@unchecked@*/ -int _hdr_lazytagswab = 0; +int _hdr_lazytagswab = 1; /** \ingroup header */ @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/rpmdb.c $ cvs diff -u -r1.297 -r1.298 rpmdb.c --- rpm/rpmdb/rpmdb.c 15 May 2009 13:40:59 - 1.297 +++ rpm/rpmdb/rpmdb.c 15 May 2009 23:48:48 - 1.298 @@ -1432,16 +1432,18 @@ fileSystem, internalState @*/ /*...@requires maxSet(matches) >= 0 @*/ { -HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); +HE_t BN = memset(alloca(sizeof(*BN)), 0, sizeof(*BN)); +HE_t DN = memset(alloca(sizeof(*DN)), 0, sizeof(*DN)); +HE_t DI = memset(alloca(sizeof(*DI)), 0, sizeof(*DI)); const char * dirName; const char * baseName; fingerPrintCache fpc; fingerPrint fp1; dbiIndex dbi = NULL; -DBC * dbcursor; dbiIndexSet allMatches = NULL; -dbiIndexItem rec = NULL; -int i; +rpmmi mi = NULL; +unsigned int prevoff = 0; +Header h; int rc; int xx; @@ -1469,7 +1471,9 @@ dbi = dbiOpen(db, RPMTAG_BASENAMES, 0); if (dbi != NULL) { - dbcursor = NULL; + DBC * dbcursor = NULL; + int i; + xx = dbiCopen(dbi, dbi->dbi_txnid, &dbcursor, 0); /*...@-temptrans@*/ @@ -1496,7 +1500,6 @@ } xx = dbiCclose(dbi, dbcursor, 0); - dbcursor = NULL; } else rc = -2; @@ -1506,80 +1509,55 @@ return rc; } -*matches = xcalloc(1, sizeof(**matches)); -rec = dbiIndexNewItem(0, 0); -i = 0; -if (allMatches != NULL) -while (i < allMatches->count) { - const char ** baseNames; - const char ** dirNames; - rpmuint32_t * dirIndexes; - unsigned int offset = dbiIndexRecordOffset(allMatches, i); - unsigned int prevoff; - Header h; +/* Create an iterator for the matches. */ +mi = rpmmiInit(db, RPMDBI_PACKAGES, NULL, 0); +assert(allMatches != NULL); +mi->mi_set = allMatches; + +prevoff = 0; +BN->tag = RPMTAG_BASENAMES; +DN->tag = RPMTAG_DIRNAMES; +DI->tag = RPMTAG_DIRINDEXES; - { rpmmi mi; - mi = rpmmiInit(db, RPMDBI_PACKAGES, &offset, sizeof(offset)); - h = rpmmiNext(mi); - if (h) - h = headerLink(h); - mi = rpmmiFree(mi); - } - - if (h == NULL) { - i++; - continue; - } - - he->tag = RPMTAG_BASENAMES; - xx = headerGet(h, he, 0); - baseNames = he->p.argv; - he->tag = RPMTAG_DIRNAMES; - xx = headerGet(h, he, 0); - dirNames = he->p.argv; - he->tag = RPMTAG_DIRINDEXES; - xx = headerGet(h, he, 0); - dirIndexes = he->p.ui32p; - - do { - fingerPrint fp2; - int num = dbiIndexRecordFileNumber(allMatches, i); - - fp2 = fpLookup(fpc, dirNames[dirIndexes[num]], baseNames[num], 1); - /*...@-nullpass@*/ - if (FP_EQUAL(fp1, fp2)) { - /*...@=nullpass@*/ - rec->hdrNum = dbiIndexRecordOffset(allMatches, i); - rec->tagNum = dbiIndexRecordFileNumber(allMatches, i); - xx = dbiAppendSet(*matches, rec, 1, sizeof(*rec), 0); - } +/* Find the file(s) with the same fingerprint. */ +while ((h = rpmmiNext(mi)) != NULL) { + fingerPrint fp2; + int num; - prevoff = offset; - i++; - if (i < allMatches->count) - offset = dbiInde
[CVS] RPM: rpm/ CHANGES rpm/js/ rpmmi-js.c rpmts-js.c rpm/lib/ depends...
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: 15-May-2009 15:41:00 Branch: HEAD Handle: 2009051513405802 Modified files: rpm CHANGES rpm/js rpmmi-js.c rpmts-js.c rpm/lib depends.c psm.c rpmgi.c rpminstall.c rpmrollback.c rpmts.c tgi.c transaction.c rpm/python rpmmi-py.c rpmts-py.c rpm/rpmdb hdrfmt.c librpmdb.vers pkgio.c rpmdb.c rpmdb.h rpm/rubyrpmmi-rb.c rpm/tools rpmcache.c Log: - rpmmi: rename the other methods for the match iterator object. Summary: RevisionChanges Path 1.2989 +1 -0 rpm/CHANGES 1.20+3 -3 rpm/js/rpmmi-js.c 1.23+1 -1 rpm/js/rpmts-js.c 1.445 +8 -9 rpm/lib/depends.c 2.369 +16 -17 rpm/lib/psm.c 2.68+3 -3 rpm/lib/rpmgi.c 1.220 +3 -3 rpm/lib/rpminstall.c 1.44+2 -2 rpm/lib/rpmrollback.c 2.170 +2 -2 rpm/lib/rpmts.c 2.26+1 -1 rpm/lib/tgi.c 1.403 +6 -6 rpm/lib/transaction.c 1.25+3 -3 rpm/python/rpmmi-py.c 1.104 +3 -3 rpm/python/rpmts-py.c 1.138 +4 -4 rpm/rpmdb/hdrfmt.c 1.65+14 -14 rpm/rpmdb/librpmdb.vers 1.99+2 -2 rpm/rpmdb/pkgio.c 1.297 +17 -18 rpm/rpmdb/rpmdb.c 1.89+9 -9 rpm/rpmdb/rpmdb.h 1.7 +3 -3 rpm/ruby/rpmmi-rb.c 2.40+1 -1 rpm/tools/rpmcache.c patch -p0 <<'@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.2988 -r1.2989 CHANGES --- rpm/CHANGES 15 May 2009 12:28:44 - 1.2988 +++ rpm/CHANGES 15 May 2009 13:40:58 - 1.2989 @@ -1,5 +1,6 @@ 5.2b1 -> 5.3a1 +- jbj: rpmmi: rename the other methods for the match iterator object. - proyvind: make it possible to set macro files to load predefines from by defining PREMACROFILES at build time. - jbj: rpmmi: rename the typedef and rpmmi{Init,Next,Free} methods. @@ . patch -p0 <<'@@ .' Index: rpm/js/rpmmi-js.c $ cvs diff -u -r1.19 -r1.20 rpmmi-js.c --- rpm/js/rpmmi-js.c 14 May 2009 16:58:23 - 1.19 +++ rpm/js/rpmmi-js.c 15 May 2009 13:40:58 - 1.20 @@ -40,7 +40,7 @@ if (!(ok = JS_ConvertArguments(cx, argc, argv, "is", &tag, &pattern))) goto exit; -rpmdbSetIteratorRE(mi, tag, type, pattern); +rpmmiAddPattern(mi, tag, type, pattern); ok = JS_TRUE; *rval = BOOLEAN_TO_JSVAL(ok); @@ -89,10 +89,10 @@ break; case _LENGTH: case _COUNT: /* XXX is _LENGTH enuf? */ - *vp = INT_TO_JSVAL(rpmdbGetIteratorCount(mi)); + *vp = INT_TO_JSVAL(rpmmiCount(mi)); break; case _INSTANCE: - *vp = INT_TO_JSVAL(rpmdbGetIteratorOffset(mi)); + *vp = INT_TO_JSVAL(rpmmiInstance(mi)); break; default: { JSObject *o = (JSVAL_IS_OBJECT(id) ? JSVAL_TO_OBJECT(id) : NULL); @@ . patch -p0 <<'@@ .' Index: rpm/js/rpmts-js.c $ cvs diff -u -r1.22 -r1.23 rpmts-js.c --- rpm/js/rpmts-js.c 14 May 2009 16:58:23 - 1.22 +++ rpm/js/rpmts-js.c 15 May 2009 13:40:58 - 1.23 @@ -108,7 +108,7 @@ while ((h = rpmmiNext(mi)) != NULL) { xx = (upgrade >= 0) ? rpmtsAddInstallElement(ts, h, (fnpyKey)pkgN, upgrade, NULL) - : rpmtsAddEraseElement(ts, h, rpmdbGetIteratorOffset(mi)); + : rpmtsAddEraseElement(ts, h, rpmmiInstance(mi)); break; } mi = rpmmiFree(mi); @@ . patch -p0 <<'@@ .' Index: rpm/lib/depends.c $ cvs diff -u -r1.444 -r1.445 depends.c --- rpm/lib/depends.c 14 May 2009 16:58:24 - 1.444 +++ rpm/lib/depends.c 15 May 2009 13:40:58 - 1.445 @@ -285,7 +285,7 @@ /* Create an erasure element. */ lastx = -1; - xx = removePackage(ts, oh, rpmdbGetIteratorOffset(mi), &lastx, pkgKey); + xx = removePackage(ts, oh, rpmmiInstance(mi), &lastx, pkgKey); assert(lastx >= 0 && lastx < ts->orderCount); q = ts->order[lastx]; @@ -357,7 +357,7 @@ /* Count remaining members
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmrc.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Per Ãyvind Karlsen Root: /v/rpm/cvs Email: pkarl...@rpm5.org Module: rpm Date: 15-May-2009 14:28:45 Branch: HEAD Handle: 2009051512284400 Modified files: rpm CHANGES rpm/lib rpmrc.c Log: * make it possible to set macro files to load predefines from by defining PREMACROFILES at build time. * ditch rpmRereadMacros() Summary: RevisionChanges Path 1.2988 +2 -0 rpm/CHANGES 2.287 +9 -35 rpm/lib/rpmrc.c patch -p0 <<'@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.2987 -r1.2988 CHANGES --- rpm/CHANGES 14 May 2009 16:58:23 - 1.2987 +++ rpm/CHANGES 15 May 2009 12:28:44 - 1.2988 @@ -1,5 +1,7 @@ 5.2b1 -> 5.3a1 +- proyvind: make it possible to set macro files to load predefines from by + defining PREMACROFILES at build time. - jbj: rpmmi: rename the typedef and rpmmi{Init,Next,Free} methods. - jbj: rpmmi: split out a pool destructor (prior to using). - jbj: mire: handle items from _mirePool like all other pools. @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmrc.c $ cvs diff -u -r2.286 -r2.287 rpmrc.c --- rpm/lib/rpmrc.c 13 May 2009 15:32:54 - 2.286 +++ rpm/lib/rpmrc.c 15 May 2009 12:28:44 - 2.287 @@ -1062,8 +1062,8 @@ * Read macro configuration file(s). * @return 0 on success */ -static int rpmReadRC(void) - /*...@globals defaultsInitialized, rpmMacrofiles, +static int rpmReadRC(const char *macrofiles) + /*...@globals defaultsInitialized, rpmGlobalMacroContext, rpmCLIMacroContext, h_errno, fileSystem, internalState @*/ /*...@modifies defaultsInitialized, rpmGlobalMacroContext, @@ -1077,7 +1077,7 @@ } /* Read macro files. */ -{const char *mfpath = rpmExpand(rpmMacrofiles, NULL); +{const char *mfpath = rpmExpand(macrofiles, NULL); if (mfpath != NULL) { rpmInitMacros(NULL, mfpath); @@ -1088,40 +1088,17 @@ return rc; } -#if defined(WITH_CPUINFO) -/* Since %{_prefer_target_cpu} hasn't been read before rpmReadRC(), we need to - * reread platform specific macros again to be sure to get the right ones.. */ -static inline void rpmRereadTargetMacros(const char *cpu) { -if(strcmp(current[ARCH], cpu) != 0) { - ARGV_t macroArgv = NULL; - int i, n; - const char delim[] = ":"; - char *macrofiles = xcalloc(strlen(rpmMacrofiles), 1); - - (void) argvSplit(¯oArgv, rpmMacrofiles, delim); - for(i = 0, n = argvCount(macroArgv); i < n; i++) { - const char *macrofile = rpmExpand(macroArgv[i], NULL); - if(strcmp(macroArgv[i], macrofile) != 0 && strstr(macrofile, cpu) != NULL) { - if(strlen(macrofiles) > 0) - strncat(macrofiles, delim, strlen(delim)); - strncat(macrofiles, macrofile, strlen(macrofile)); - } - macrofile = _free(macrofile); - } - if(strlen(macrofiles) > 0) - rpmInitMacros(NULL, macrofiles); - macroArgv = argvFree(macroArgv); -} -} -#endif - int rpmReadConfigFiles(/*...@unused@*/ const char * file, const char * target) - /*...@globals configTarget @*/ + /*...@globals configTarget, rpmMacrofiles @*/ /*...@modifies configTarget @*/ { mode_t mode = 0022; +#ifdef PREMACROFILES +if (rpmReadRC(PREMACROFILES)) return -1; +#endif + /* Reset umask to its default umask(2) value. */ mode = umask(mode); @@ -1133,7 +1110,7 @@ /* Read the files */ /*...@-globs@*/ -if (rpmReadRC()) return -1; +if (rpmReadRC(rpmMacrofiles)) return -1; /*...@=globs@*/ /* Reset target macros */ @@ -1142,9 +1119,6 @@ /* Finally set target platform */ {const char *cpu = rpmExpand("%{_target_cpu}", NULL); -#if defined(WITH_CPUINFO) - rpmRereadTargetMacros(cpu); -#endif const char *os = rpmExpand("%{_target_os}", NULL); rpmSetMachine(cpu, os); @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm-5_2: rpm/ Makefile.am
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Per Ãyvind Karlsen Root: /v/rpm/cvs Email: pkarl...@rpm5.org Module: rpm Date: 15-May-2009 12:54:17 Branch: rpm-5_2 Handle: 2009051510541700 Modified files: (Branch: rpm-5_2) rpm Makefile.am Log: d'oh, also forgot js/src/*.msg Summary: RevisionChanges Path 2.236.2.3 +1 -1 rpm/Makefile.am patch -p0 <<'@@ .' Index: rpm/Makefile.am $ cvs diff -u -r2.236.2.2 -r2.236.2.3 Makefile.am --- rpm/Makefile.am 15 May 2009 10:52:50 - 2.236.2.2 +++ rpm/Makefile.am 15 May 2009 10:54:17 - 2.236.2.3 @@ -11,7 +11,7 @@ file/src/[A-Z]* file/src/*.[ch] file/python file/magic file/doc file/[A-Z]* file/acinclude.m4 file/aclocal.m4 \ file/autogen.sh file/config* file/depcomp file/install-sh file/ltmain.sh file/missing file/mkinstalldirs \ js/*.[ch] js/Makefile.in js/Makefile.am \ - js/src/*.[ch] js/src/*.mk js/src/*.js js/src/*.sed js/src/*.tbl js/src/Makefile.in js/src/Makefile.am \ + js/src/*.[ch] js/src/*.mk js/src/*.js js/src/*.sed js/src/*.tbl js/src/*.msg js/src/Makefile.in js/src/Makefile.am \ js/src/editline/*.[ch3] js/src/editline/Makefile.ref js/src/editline/README \ js/src/fdlibm/*.[ch] js/src/fdlibm/Makefile.in js/src/fdlibm/Makefile.ref \ js/src/fdlibm/*mak js/src/fdlibm/*mdp \ @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm-5_2: rpm/ Makefile.am
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Per Ãyvind Karlsen Root: /v/rpm/cvs Email: pkarl...@rpm5.org Module: rpm Date: 15-May-2009 12:52:50 Branch: rpm-5_2 Handle: 2009051510525000 Modified files: (Branch: rpm-5_2) rpm Makefile.am Log: oops, forgot to include js/src/*.tbl when creating tarball Summary: RevisionChanges Path 2.236.2.2 +1 -1 rpm/Makefile.am patch -p0 <<'@@ .' Index: rpm/Makefile.am $ cvs diff -u -r2.236.2.1 -r2.236.2.2 Makefile.am --- rpm/Makefile.am 14 May 2009 15:34:27 - 2.236.2.1 +++ rpm/Makefile.am 15 May 2009 10:52:50 - 2.236.2.2 @@ -11,7 +11,7 @@ file/src/[A-Z]* file/src/*.[ch] file/python file/magic file/doc file/[A-Z]* file/acinclude.m4 file/aclocal.m4 \ file/autogen.sh file/config* file/depcomp file/install-sh file/ltmain.sh file/missing file/mkinstalldirs \ js/*.[ch] js/Makefile.in js/Makefile.am \ - js/src/*.[ch] js/src/*.mk js/src/*.js js/src/*.sed js/src/Makefile.in js/src/Makefile.am \ + js/src/*.[ch] js/src/*.mk js/src/*.js js/src/*.sed js/src/*.tbl js/src/Makefile.in js/src/Makefile.am \ js/src/editline/*.[ch3] js/src/editline/Makefile.ref js/src/editline/README \ js/src/fdlibm/*.[ch] js/src/fdlibm/Makefile.in js/src/fdlibm/Makefile.ref \ js/src/fdlibm/*mak js/src/fdlibm/*mdp \ @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org