[pacman-dev] [PATCH 5/5] pacman/sync.c : remove duplicated fallback on providers.

Nagy Gabor ngaba at bibl.u-szeged.hu
Sat Nov 17 09:04:04 EST 2007


Idézés Chantry Xavier <shiningxc at gmail.com>:

> The fallback on providers when a target is not found was already made in the
> backend :
> libalpm/sync.c , _alpm_sync_addtarget .
> So I removed it from the frontend.
> 
> The sync500 pactest proves this fallback still works correctly.
> 
> Signed-off-by: Chantry Xavier <shiningxc at gmail.com>
> ---
>  src/pacman/sync.c |   23 +++--------------------
>  1 files changed, 3 insertions(+), 20 deletions(-)
> 
> diff --git a/src/pacman/sync.c b/src/pacman/sync.c
> index 6f3c5d5..bb48cf9 100644
> --- a/src/pacman/sync.c
> +++ b/src/pacman/sync.c
> @@ -524,26 +524,9 @@ int sync_trans(alpm_list_t *targets, int sync_only)
>  					}
>  				}
>  				if(!found) {
> -					/* targ not found in sync db, searching for providers... */
> -					const char *pname = NULL;
> -					for(j = sync_dbs; j; j = alpm_list_next(j)) {
> -						pmdb_t *db = alpm_list_getdata(j);
> -						alpm_list_t *prov = alpm_db_whatprovides(db, targ);
> -						if(prov) {
> -							pmpkg_t *pkg = alpm_list_getdata(prov);
> -							pname = alpm_pkg_get_name(pkg);
> -							alpm_list_free(prov);
> -							break;
> -						}
> -					}
> -					if(pname != NULL) {
> -						/* targ is provided by pname */
> -						targets = alpm_list_add(targets, strdup(pname));
> -					} else {
> -						fprintf(stderr, _("error: '%s': not found in sync db\n"), targ);
> -						retval = 1;
> -						goto cleanup;
> -					}
> +					fprintf(stderr, _("error: '%s': not found in sync db\n"), targ);
> +					retval = 1;
> +					goto cleanup;
>  				}
>  			}
>  		}
> -- 
> 1.5.3.5

Hmm. Good catch.
However, personally I would clean-up libalpm instead of the front-end. The
front-end should know what he wants. In the future we may add -Sg -S'provision'
options and so on. In other words, the backend should be as much flexible as
possible.
Thus I'd prefer the following:
method 1.: add sync_addtargetpkg, sync_addtargetgrp and so on to libalpm
method 2.: keep the current method, but give an option to front-end (through
trans flags) to tell libalpm what he wants.
Bye


----------------------------------------------------
SZTE Egyetemi Könyvtár - http://www.bibl.u-szeged.hu
This mail sent through IMP: http://horde.org/imp/





More information about the pacman-dev mailing list