Merge remote-tracking branch 'oe21/master' into vuplus-3.0
[vuplus_openvuplus_3.0] / meta-openvuplus / recipes-devtools / opkg / opkg / 0002-pkg_hash_fetch_conflicts-take-into-account-conflicts.patch
1 diff --git a/libopkg/pkg_depends.c b/libopkg/pkg_depends.c
2 index de105bf..0089463 100644
3 --- a/libopkg/pkg_depends.c
4 +++ b/libopkg/pkg_depends.c
5 @@ -435,6 +435,22 @@ static pkg_vec_t * __pkg_hash_fetch_conflicts(pkg_t * pkg, pkg_t * installed_con
6      }
7  }
8  
9 +static void __pkg_hash_fetch_conflictees(pkg_t *pkg, pkg_vec_t *installed_conflicts)
10 +{
11 +    int i;
12 +
13 +    pkg_vec_t *available_pkgs = pkg_vec_alloc();
14 +    pkg_hash_fetch_all_installed(available_pkgs);
15 +
16 +    for (i = 0; i < available_pkgs->len; i++) {
17 +        pkg_t *cpkg = available_pkgs->pkgs[i];
18 +        if (pkg_conflicts(cpkg, pkg) && !is_pkg_in_pkg_vec(installed_conflicts, cpkg))
19 +            pkg_vec_insert(installed_conflicts, cpkg);
20 +    }
21 +
22 +    pkg_vec_free(available_pkgs);
23 +}
24 +
25  pkg_vec_t * pkg_hash_fetch_conflicts(pkg_t * pkg)
26  {
27         pkg_vec_t * installed_conflicts;
28 @@ -452,6 +468,7 @@ pkg_vec_t * pkg_hash_fetch_conflicts(pkg_t * pkg)
29         installed_conflicts = pkg_vec_alloc();
30  
31         __pkg_hash_fetch_conflicts(pkg, installed_conflicts);
32 +       __pkg_hash_fetch_conflictees(pkg, installed_conflicts);
33  
34         if (installed_conflicts->len)
35                 return installed_conflicts;