[PATCH,opkg-lede] opkg_remove: avoid remove pkg repeatly with option --force-removal-of-dependent-packages

Etienne Champetier champetier.etienne at gmail.com
Sun Sep 12 15:31:04 PDT 2021


+ @Jo-Philipp Wich

Tested using mvebu target removing librt

Le mar. 7 sept. 2021 à 18:42, Etienne Champetier
<champetier.etienne at gmail.com> a écrit :
>
> From: Hongxu Jia <hongxu.jia at windriver.com>
>
> While remove pkg with '--force-removal-of-dependent-packages',
> pkg may be added to pkgs remove list multiple times, add status
> check to make sure pkg only be removed once.
>
> Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
> Signed-off-by: Paul Barker <paul at paulbarker.me.uk>
> (Cherry picked from https://git.yoctoproject.org/cgit/cgit.cgi/opkg/commit/?id=e8996180833aa35d101fbeadec3d787ce0bbda5c)
> (Fixes https://dev.archive.openwrt.org/ticket/18320 and openwrt/packages CI)
> ---
>  libopkg/opkg_remove.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/libopkg/opkg_remove.c b/libopkg/opkg_remove.c
> index 96ca558..c2abf81 100644
> --- a/libopkg/opkg_remove.c
> +++ b/libopkg/opkg_remove.c
> @@ -249,6 +249,14 @@ int opkg_remove_pkg(pkg_t * pkg, int from_upgrade)
>         if ((parent_pkg = pkg->parent) == NULL)
>                 return 0;
>
> +       /* While remove pkg with '--force-removal-of-dependent-packages',
> +          pkg may be added to remove list multiple times, add status
> +          check to make sure pkg only be removed once. */
> +       if (conf->force_removal_of_dependent_packages &&
> +               pkg->state_flag & SF_FILELIST_CHANGED &&
> +               pkg->state_status == SS_NOT_INSTALLED)
> +               return 0;
> +
>         /* only attempt to remove dependent installed packages if
>          * force_depends is not specified or the package is being
>          * replaced.
> --
> 2.31.1
>



More information about the openwrt-devel mailing list