-#ifdef IAM_RPMDB
- case MODE_INITDB:
- (void) rpmtsInitDB(ts, 0644);
- break;
-
- case MODE_REBUILDDB:
- { rpmVSFlags vsflags = rpmExpandNumeric("%{_vsflags_rebuilddb}");
- rpmVSFlags ovsflags = rpmtsSetVSFlags(ts, vsflags);
- ec = rpmtsRebuildDB(ts);
- vsflags = rpmtsSetVSFlags(ts, ovsflags);
- } break;
- case MODE_VERIFYDB:
- ec = rpmtsVerifyDB(ts);
- break;
-#endif /* IAM_RPMDB */
-
-#ifdef IAM_RPMBT
- case MODE_REBUILD:
- case MODE_RECOMPILE:
- { const char * pkg;
-
- while (!rpmIsVerbose())
- rpmIncreaseVerbosity();
-
- if (!poptPeekArg(optCon))
- argerror(_("no packages files given for rebuild"));
-
- ba->buildAmount =
- RPMBUILD_PREP | RPMBUILD_BUILD | RPMBUILD_INSTALL | RPMBUILD_CHECK;
- if (bigMode == MODE_REBUILD) {
- ba->buildAmount |= RPMBUILD_PACKAGEBINARY;
- ba->buildAmount |= RPMBUILD_RMSOURCE;
- ba->buildAmount |= RPMBUILD_RMSPEC;
- ba->buildAmount |= RPMBUILD_CLEAN;
- ba->buildAmount |= RPMBUILD_RMBUILD;
- }
-
- while ((pkg = poptGetArg(optCon))) {
- const char * specFile = NULL;
-
- ba->cookie = NULL;
- ec = rpmInstallSource(ts, pkg, &specFile, &ba->cookie);
- if (ec == 0) {
- ba->rootdir = rpmcliRootDir;
- ba->passPhrase = passPhrase;
- ec = build(ts, specFile, ba, rpmcliRcfile);
- }
- ba->cookie = _free(ba->cookie);
- specFile = _free(specFile);
-
- if (ec)
- /*@loopbreak@*/ break;
- }
-
- } break;
-
- case MODE_BUILD:
- case MODE_TARBUILD:
- { const char * pkg;
- while (!rpmIsVerbose())
- rpmIncreaseVerbosity();
-
- switch (ba->buildChar) {
- case 'a':
- ba->buildAmount |= RPMBUILD_PACKAGESOURCE;
- /*@fallthrough@*/
- case 'b':
- ba->buildAmount |= RPMBUILD_PACKAGEBINARY;
- ba->buildAmount |= RPMBUILD_CLEAN;
- /*@fallthrough@*/
- case 'i':
- ba->buildAmount |= RPMBUILD_INSTALL;
- ba->buildAmount |= RPMBUILD_CHECK;
- if ((ba->buildChar == 'i') && ba->shortCircuit)
- /*@innerbreak@*/ break;
- /*@fallthrough@*/
- case 'c':
- ba->buildAmount |= RPMBUILD_BUILD;
- if ((ba->buildChar == 'c') && ba->shortCircuit)
- /*@innerbreak@*/ break;
- /*@fallthrough@*/
- case 'p':
- ba->buildAmount |= RPMBUILD_PREP;
- /*@innerbreak@*/ break;
-
- case 'l':
- ba->buildAmount |= RPMBUILD_FILECHECK;
- /*@innerbreak@*/ break;
- case 's':
- ba->buildAmount |= RPMBUILD_PACKAGESOURCE;
- /*@innerbreak@*/ break;
- }
-
- if (!poptPeekArg(optCon)) {
- if (bigMode == MODE_BUILD)
- argerror(_("no spec files given for build"));
- else
- argerror(_("no tar files given for build"));
- }
-
- while ((pkg = poptGetArg(optCon))) {
- ba->rootdir = rpmcliRootDir;
- ba->passPhrase = passPhrase;
- ba->cookie = NULL;
- ec = build(ts, pkg, ba, rpmcliRcfile);
- if (ec)
- /*@loopbreak@*/ break;
- rpmFreeMacros(NULL);
- (void) rpmReadConfigFiles(rpmcliRcfile, NULL);
- }
- } break;
-#endif /* IAM_RPMBT */
-