Fixed for new depends and overrides
This commit is contained in:
parent
bbca125400
commit
546551c965
|
@ -90,24 +90,29 @@ gm_mcp_negotiate_find_package(GmMcpNegotiate *package, gchar *name) {
|
|||
|
||||
void
|
||||
gm_mcp_negotiate_fix_overrides(GmMcpNegotiate *package) {
|
||||
GList *l, *item, *over;
|
||||
GList *l, *item;
|
||||
PackageInfo *pinfo, *pover;
|
||||
gchar *name;
|
||||
|
||||
gchar **over;
|
||||
|
||||
l = g_list_copy(package->priv->packages);
|
||||
|
||||
for (item = l; item; item = item->next) {
|
||||
pinfo = (PackageInfo *)(item->data);
|
||||
over = pinfo->klass->overrides;
|
||||
|
||||
for (over = pinfo->klass->overrides; over; over = over->next) {
|
||||
name = (gchar *)(over->data);
|
||||
|
||||
if ((pover = gm_mcp_negotiate_find_package(package, name))) {
|
||||
if (!over) {
|
||||
continue;
|
||||
}
|
||||
|
||||
while (*over) {
|
||||
if ((pover = gm_mcp_negotiate_find_package(package, *over))) {
|
||||
gm_debug_msg(DEBUG_MCP, "GmMcpNegotiate.FixOverrides: package %s "
|
||||
"overrides %s", pinfo->klass->name, pover->klass->name);
|
||||
package->priv->packages = g_list_remove(
|
||||
package->priv->packages, pover);
|
||||
}
|
||||
|
||||
++over;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -117,21 +122,25 @@ gm_mcp_negotiate_fix_overrides(GmMcpNegotiate *package) {
|
|||
void
|
||||
gm_mcp_negotiate_fix_depends(GmMcpNegotiate *package) {
|
||||
PackageInfo *pinfo, *pdep;
|
||||
GList *l, *item, *dep;
|
||||
gchar *name;
|
||||
GList *l, *item;
|
||||
gchar **dep;
|
||||
|
||||
l = g_list_copy(package->priv->packages);
|
||||
|
||||
for (item = l; item; item = item->next) {
|
||||
pinfo = (PackageInfo *)(item->data);
|
||||
|
||||
for (dep = pinfo->klass->depends; dep; dep = dep->next) {
|
||||
name = (gchar *)(dep->data);
|
||||
|
||||
if (!(pdep = gm_mcp_negotiate_find_package(package, name))) {
|
||||
|
||||
dep = pinfo->klass->depends;
|
||||
|
||||
if (!dep) {
|
||||
continue;
|
||||
}
|
||||
|
||||
while (*dep) {
|
||||
if (!(pdep = gm_mcp_negotiate_find_package(package, *dep))) {
|
||||
gm_debug_msg(DEBUG_MCP, "GmMcpNegotiate.FixDepends: package %s depends "
|
||||
"on %s, but %s is not supported", pinfo->klass->name,
|
||||
name, name);
|
||||
*dep, *dep);
|
||||
|
||||
// Remove package because depencendies are not met
|
||||
package->priv->packages = g_list_remove(
|
||||
|
@ -145,6 +154,8 @@ gm_mcp_negotiate_fix_depends(GmMcpNegotiate *package) {
|
|||
package->priv->packages,
|
||||
g_list_find(package->priv->packages, pinfo), pdep);
|
||||
}
|
||||
|
||||
++dep;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Reference in New Issue