[pacman-dev] [PATCH] squelch output of installed new optdeps

Allan McRae allan at archlinux.org
Sun Jul 15 20:17:03 EDT 2012


On 16/07/12 08:33, Clemens Buchacher wrote:
> If an upgraded package version contains new optdeps, the user is
> notified of that. If the new optdep is already installed, that
> information is redundant.
> 
> Instead, do not output new optdeps if they are already installed.
> 
> Signed-off-by: Clemens Buchacher <drizzd at aon.at>
> ---


FYI - there is a large patchset fo optdepends that needs tidied up with
includes this functionality:
https://github.com/moben/pacman/commit/bd6c1294

I would also like to see this filter out things that are about to be
installed...


>  src/pacman/util.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/src/pacman/util.c b/src/pacman/util.c
> index 7f7f6a7..e774fa8 100644
> --- a/src/pacman/util.c
> +++ b/src/pacman/util.c
> @@ -1192,6 +1192,20 @@ static int depend_cmp(const void *d1, const void *d2)
>  	return ret;
>  }
>  
> +static alpm_list_t *filter_out_installed(alpm_list_t *list)
> +{
> +	alpm_list_t *i, *not_installed = NULL;
> +	alpm_db_t *db_local = alpm_get_localdb(config->handle);
> +
> +	for(i = list; i; i = alpm_list_next(i)) {
> +		if(!alpm_db_get_pkg(db_local, i->data))
> +			not_installed = alpm_list_add(not_installed, i->data);
> +	}
> +	alpm_list_free(list);
> +
> +	return not_installed;
> +}
> +
>  void display_new_optdepends(alpm_pkg_t *oldpkg, alpm_pkg_t *newpkg)
>  {
>  	alpm_list_t *i, *old, *new, *optdeps, *optstrings = NULL;
> @@ -1206,6 +1220,8 @@ void display_new_optdepends(alpm_pkg_t *oldpkg, alpm_pkg_t *newpkg)
>  		optstrings = alpm_list_add(optstrings, alpm_dep_compute_string(optdep));
>  	}
>  
> +	optstrings = filter_out_installed(optstrings);
> +
>  	if(optstrings) {
>  		printf(_("New optional dependencies for %s\n"), alpm_pkg_get_name(newpkg));
>  		unsigned short cols = getcols(fileno(stdout));
> 




More information about the pacman-dev mailing list