replace obsoleted "find -perm +NNN" syntax
[platform/upstream/rpm.git] / rpmbuild.c
index 6aac027..4fb4289 100644 (file)
@@ -53,6 +53,7 @@ static int noDeps = 0;                        /*!< from --nodeps */
 static int shortCircuit = 0;           /*!< from --short-circuit */
 static char buildMode = 0;             /*!< Build mode (one of "btBC") */
 static char buildChar = 0;             /*!< Build stage (one of "abcilps ") */
+static rpmBuildFlags nobuildAmount = 0;        /*!< Build stage disablers */
 static ARGV_t build_targets = NULL;    /*!< Target platform(s) */
 
 static void buildArgCallback( poptContext con,
@@ -182,6 +183,11 @@ static struct poptOption rpmBuildPoptTable[] = {
        N_("generate package header(s) compatible with (legacy) rpm v3 packaging"),
        NULL},
 
+ { "noclean", '\0', POPT_BIT_SET, &nobuildAmount, RPMBUILD_CLEAN,
+       N_("do not execute %clean stage of the build"), NULL },
+ { "nocheck", '\0', POPT_BIT_SET, &nobuildAmount, RPMBUILD_CHECK,
+       N_("do not execute %check stage of the build"), NULL },
+
  { "nolang", '\0', POPT_ARGFLAG_DOC_HIDDEN, 0, POPT_NOLANG,
        N_("do not accept i18N msgstr's from specfile"), NULL},
  { "rmsource", '\0', 0, 0, POPT_RMSOURCE,
@@ -367,10 +373,6 @@ static int buildForTarget(rpmts ts, const char * arg, BTA_t ba)
     int justRm = ((buildAmount & ~(RPMBUILD_RMSOURCE|RPMBUILD_RMSPEC)) == 0);
     rpmSpecFlags specFlags = spec_flags;
 
-#ifndef        DYING
-    rpmSetTables(RPM_MACHTABLE_BUILDARCH, RPM_MACHTABLE_BUILDOS);
-#endif
-
     if (ba->buildRootOverride)
        buildRootURL = rpmGenPath(NULL, ba->buildRootOverride, NULL);
 
@@ -511,7 +513,7 @@ static int build(rpmts ts, const char * arg, BTA_t ba, const char * rcfile)
     }
 
 exit:
-    vsflags = rpmtsSetVSFlags(ts, ovsflags);
+    rpmtsSetVSFlags(ts, ovsflags);
     /* Restore original configuration. */
     rpmFreeMacros(NULL);
     rpmFreeRpmrc();
@@ -567,6 +569,7 @@ int main(int argc, char *argv[])
            ba->buildAmount |= RPMBUILD_CLEAN;
            ba->buildAmount |= RPMBUILD_RMBUILD;
        }
+       ba->buildAmount &= ~(nobuildAmount);
 
        while ((pkg = poptGetArg(optCon))) {
            char * specFile = NULL;
@@ -614,6 +617,7 @@ int main(int argc, char *argv[])
            ba->buildAmount |= RPMBUILD_PACKAGESOURCE;
            break;
        }
+       ba->buildAmount &= ~(nobuildAmount);
 
        while ((pkg = poptGetArg(optCon))) {
            ba->rootdir = rpmcliRootDir;
@@ -628,7 +632,8 @@ int main(int argc, char *argv[])
     }
 
     rpmtsFree(ts);
-    finishPipe();
+    if (finishPipe())
+       ec = EXIT_FAILURE;
     free(ba->buildRootOverride);
     argvFree(build_targets);