Handle spec flags parse option figuring in popt callback already
authorPanu Matilainen <pmatilai@redhat.com>
Wed, 1 Sep 2010 15:18:10 +0000 (18:18 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Wed, 1 Sep 2010 15:18:10 +0000 (18:18 +0300)
build/poptBT.c
build/rpmbuild.h
rpmbuild.c

index 38451ba..67b7bd5 100644 (file)
@@ -80,7 +80,7 @@ static void buildArgCallback( poptContext con,
        break;
 
     case POPT_NOBUILD: rba->noBuild = 1; break;
-    case POPT_NOLANG: rba->noLang = 1; break;
+    case POPT_NOLANG: rba->specFlags |= RPMSPEC_NOLANG; break;
     case POPT_SHORTCIRCUIT: rba->shortCircuit = 1; break;
     case POPT_RMSOURCE: rba->buildAmount |= RPMBUILD_RMSOURCE; break;
     case POPT_RMSPEC: rba->buildAmount |= RPMBUILD_RMSPEC; break;
@@ -113,7 +113,7 @@ static void buildArgCallback( poptContext con,
        break;
 
     case RPMCLI_POPT_FORCE:
-       rba->force = 1;
+       rba->specFlags |= RPMSPEC_FORCE;
        break;
 
     }
@@ -183,7 +183,7 @@ struct poptOption rpmBuildPoptTable[] = {
        N_("remove build tree when done"), NULL},
  { "dirtokens", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_noDirTokens, 0,
        N_("generate headers compatible with rpm4 packaging"), NULL},
- { "force", '\0', POPT_ARGFLAG_DOC_HIDDEN, &rpmBTArgs.force, RPMCLI_POPT_FORCE,
+ { "force", '\0', POPT_ARGFLAG_DOC_HIDDEN, 0, RPMCLI_POPT_FORCE,
         N_("ignore ExcludeArch: directives from spec file"), NULL},
  { "fsmdebug", '\0', (POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN), &_fsm_debug, -1,
        N_("debug file state machine"), NULL},
index cf98153..f03f875 100644 (file)
@@ -38,14 +38,13 @@ typedef enum rpmBuildFlags_e {
  */
 struct rpmBuildArguments_s {
     rpmQueryFlags qva_flags;   /*!< Bit(s) to control verification. */
+    rpmSpecFlags specFlags;    /*!< Bit(s) to control spec parsing. */
     int buildAmount;           /*!< Bit(s) to control operation. */
     char * buildRootOverride;  /*!< from --buildroot */
     char * targets;            /*!< Target platform(s), comma separated. */
     char * cookie;             /*!< NULL for binary, ??? for source, rpm's */
-    int force;                 /*!< from --force */
     int noBuild;               /*!< from --nobuild */
     int noDeps;                        /*!< from --nodeps */
-    int noLang;                        /*!< from --nolang */
     int shortCircuit;          /*!< from --short-circuit */
     char buildMode;            /*!< Build mode (one of "btBC") */
     char buildChar;            /*!< Build stage (one of "abcilps ") */
index 61ade84..912c4b7 100644 (file)
@@ -202,7 +202,7 @@ static int buildForTarget(rpmts ts, const char * arg, BTA_t ba)
     rpmSpec spec = NULL;
     int rc = 1; /* assume failure */
     int justRm = ((buildAmount & ~(RPMBUILD_RMSOURCE|RPMBUILD_RMSPEC)) == 0);
-    rpmSpecFlags specFlags = RPMSPEC_NONE;
+    rpmSpecFlags specFlags = ba->specFlags;
 
 #ifndef        DYING
     rpmSetTables(RPM_MACHTABLE_BUILDARCH, RPM_MACHTABLE_BUILDOS);
@@ -277,8 +277,6 @@ static int buildForTarget(rpmts ts, const char * arg, BTA_t ba)
 (((_f)&(RPMBUILD_PREP|RPMBUILD_BUILD|RPMBUILD_INSTALL|RPMBUILD_PACKAGEBINARY)) == 0)
     if (_anyarch(buildAmount))
        specFlags |= RPMSPEC_ANYARCH;
-    if (ba->force)
-       specFlags |= RPMSPEC_FORCE;
 #undef _anyarch
     
     spec = rpmSpecParse(specFile, specFlags, buildRootURL);