[OE-core] [PATCH 1/1] opkg: fix remove pkg with --force-removal-of-dependent-packages failed
Hongxu Jia
hongxu.jia at windriver.com
Sat Oct 11 10:33:21 UTC 2014
On 10/11/2014 06:27 PM, Paul Barker wrote:
> On 11 October 2014 11:17, Hongxu Jia <hongxu.jia at windriver.com> wrote:
>> On 10/11/2014 05:31 PM, Paul Barker wrote:
>>> Your solution looks fine but I'd prefer it to be solved a different
>>> way upstream.
>>>
>>> It should be possible to ensure that duplicates don't enter the
>>> removal queue in the first place by checking the return of
>>> pkg_vec_contains(dependent_pkgs, dep_pkg) before calling
>>> pkg_vec_insert(dependent_pkgs, dep_pkg) in opkg_remove_dependent_pkgs.
>>> This would keep the logic in opkg_remove_pkg clean.
>>
>> The pkg_vec_contains(dependent_pkgs, dep_pkg) could not work here.
>> Because 'dependent_pkgs' is not global which contains all removed pkgs.
>>
>> The checking will filter duplicated pkg.
>>
> I've attached a patch which should apply to opkg v0.2.2 to show what I intended.
>
> Thanks,
>
Here is my patch, and it could not work, I think we are doing
the same thing:
--- a/libopkg/opkg_remove.c
+++ b/libopkg/opkg_remove.c
@@ -118,8 +118,11 @@ opkg_remove_dependent_pkgs(pkg_t *pkg,
abstract_pkg_t **dependents)
for (a = 0; a < dep_ab_pkg->pkgs->len; a++) {
pkg_t *dep_pkg = dep_ab_pkg->pkgs->pkgs[a];
if (dep_pkg->state_status == SS_INSTALLED) {
- pkg_vec_insert(dependent_pkgs, dep_pkg);
- count++;
+ if (!pkg_vec_contains(dependent_pkgs, dep_pkg))
+ {
+ pkg_vec_insert(dependent_pkgs, dep_pkg);
+ count++;
+ }
//Hongxu
More information about the Openembedded-core
mailing list