pacman/sync: rewrite target handling
commitf2fcf7eeb10dafec06d5d7d853b681f2e9fde45a
authorXavier Chantry <chantry.xavier@gmail.com>
Sat, 16 Oct 2010 23:08:34 +0000 (17 01:08 +0200)
committerXavier Chantry <chantry.xavier@gmail.com>
Sat, 29 Jan 2011 18:33:16 +0000 (29 19:33 +0100)
treed1e1003b81bb458fdfd3ca5fed1178d1ff1fae64
parent1767a569c65ad1067eac7dcd1d9665e55767e50e
pacman/sync: rewrite target handling

This uses the new public functions to handle targets from the frontend,
like it used to be :
1) alpm_find_dbs_satisfier to find (optionally versioned) package or
provision
2) alpm_find_grp_pkgs to find members for a groups
3) alpm_add_pkg to finally add the pmpkg_t from 1 or 2

Of course, this adds more code to the frontend, but it completely
deprecates sync_target and sync_dbtarget interfaces.

This all-in-one interfaces felt wrong and left no control to the
frontend. A good frontend should just use alpm_add_pkg, with pkg coming
from alpm_db_get_pkg (for normal targets), alpm_find_dbs_satisfier (for
versioned provisions) or alpm_find_grp_pkgs (for groups).

This also opens the way to provide a better group handling in pacman
without constraint from libalpm and callbacks.

In ignore006, only the retcode changes, because no package was found to
satisfy the target (the only possible package is ignored).

Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com>
src/pacman/sync.c
test/pacman/tests/ignore006.py