From 8f65a6bd9aed82d821d7545d379ce049a9efb875 Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Wed, 1 Sep 2010 18:18:10 +0300 Subject: [PATCH] Handle spec flags parse option figuring in popt callback already --- build/poptBT.c | 6 +++--- build/rpmbuild.h | 3 +-- rpmbuild.c | 4 +--- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/build/poptBT.c b/build/poptBT.c index 38451ba..67b7bd5 100644 --- a/build/poptBT.c +++ b/build/poptBT.c @@ -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}, diff --git a/build/rpmbuild.h b/build/rpmbuild.h index cf98153..f03f875 100644 --- a/build/rpmbuild.h +++ b/build/rpmbuild.h @@ -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 ") */ diff --git a/rpmbuild.c b/rpmbuild.c index 61ade84..912c4b7 100644 --- a/rpmbuild.c +++ b/rpmbuild.c @@ -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); -- 2.7.4