cbpv.requires = NULL;
cbpv.obsoletes = NULL;
cbpv.provides = NULL;
+ cbpv.conflicts = NULL;
cbpv.archive = packagesource();
currentSpec = NULL;
dependsNodeList = PackageDepends();
obsoletesNodeList = PackageDepends();
providesNodeList = PackageDepends();
+ conflictsNodeList = PackageDepends();
#if DEBUG
Log (LOG_BABBLE) << "Created package " << name << endLog;
#endif
cspv.requires = NULL;
cspv.obsoletes = NULL;
cspv.provides = NULL;
+ cspv.conflicts = NULL;
/* set archive path, size, mirror, hash */
cspv.archive = packagesource();
cbpv.provides = &providesNodeList;
}
+void
+IniDBBuilderPackage::buildBeginConflicts ()
+{
+#if DEBUG
+ Log (LOG_BABBLE) << "Beginning of a conflicts statement" << endLog;
+#endif
+ currentSpec = NULL;
+ conflictsNodeList = PackageDepends();
+ currentNodeList = &conflictsNodeList;
+ cbpv.conflicts = &conflictsNodeList;
+}
+
void
IniDBBuilderPackage::buildSourceName (const std::string& _name)
{
cbpv.archive = packagesource();
obsoletesNodeList = PackageDepends();
providesNodeList = PackageDepends();
+ conflictsNodeList = PackageDepends();
}
void buildBeginBuildDepends ();
void buildBeginObsoletes ();
void buildBeginProvides ();
+ void buildBeginConflicts ();
void buildMessage (const std::string&, const std::string&);
void buildSourceName (const std::string& );
void buildSourceNameVersion (const std::string& );
PackageDepends dependsNodeList;
PackageDepends obsoletesNodeList;
PackageDepends providesNodeList;
+ PackageDepends conflictsNodeList;
SolverPool::addPackageData cbpv;
std::set <std::string> replace_versions;
[dD]"epends2:" return DEPENDS;
[oO]"bsoletes:" return OBSOLETES;
[pP]"rovides:" return PROVIDES;
+[cC]"onflicts:" return CONFLICTS;
^{STR}":" ignore_line ();
%token DEPENDS
%token REQUIRES
%token PROVIDES
+%token CONFLICTS
%token T_PREV T_CURR T_TEST T_OTHER
%token MD5 SHA512
%token SOURCEPACKAGE
| BUILDDEPENDS { iniBuilder->buildBeginBuildDepends(); } versionedpackagelist NL
| OBSOLETES { iniBuilder->buildBeginObsoletes(); } versionedpackagelist NL
| PROVIDES { iniBuilder->buildBeginProvides(); } versionedpackagelist NL
+ | CONFLICTS { iniBuilder->buildBeginConflicts(); } versionedpackagelist NL
| REPLACE_VERSIONS versionlist NL
| MESSAGE STRING STRING NL { iniBuilder->buildMessage ($2, $3); }
solvable->requires = makedeps(repo, pkgdata.requires);
if (pkgdata.obsoletes)
solvable->obsoletes = makedeps(repo, pkgdata.obsoletes);
+ if (pkgdata.conflicts)
+ solvable->conflicts = makedeps(repo, pkgdata.conflicts);
/* a solvable can also store arbitrary attributes not needed for dependency
resolution, if we need them */
PackageDepends *requires;
PackageDepends *obsoletes;
PackageDepends *provides;
+ PackageDepends *conflicts;
};
SolvableVersion addPackage(const std::string& pkgname,
data.requires = NULL;
data.obsoletes = NULL;
data.provides = NULL;
+ data.conflicts = NULL;
data.sdesc = "";
data.ldesc = "";
data.stability = TRUST_UNKNOWN;
data.ldesc = "Ficitious package that requires all Base packages";
data.obsoletes = NULL;
data.provides = NULL;
+ data.conflicts = NULL;
data.stability = TRUST_CURR;
// data.spkg = PackageSpecification();
// data.spkg_id = packageversion();