[pacman-dev] DRAFT: API changes for pacman-3.5

Xavier Chantry chantry.xavier at gmail.com
Sat Feb 19 08:43:48 EST 2011

On Mon, Feb 7, 2011 at 4:58 AM, Allan McRae <allan at archlinux.org> wrote:
> This is a draft for the README file update for pacman-3.5.
> I have flagged two areas that I am not particularly clear at what happened.
>  I would be great if the people involved in those changes could make the
> appropriate adjustments.

I am afraid that would be me.

> ## HELP!!!
> - these changes...
>    -int alpm_sync_target(char *target);
>    -int alpm_sync_dbtarget(char *db, char *target);
>    -int alpm_add_target(char *target);
>    -int alpm_remove_target(char *target);
>    +int alpm_add_pkg(pmpkg_t *pkg);
>    +int alpm_remove_pkg(pmpkg_t *pkg);

- the interface to add/remove targets was changed to take pmpkg_t
rather than char * which was ambiguous.

alpm_sync_target(char *target) and alpm_sync_dbtarget(char *db, char
*target) are replaced by alpm_add_pkg(pmpkg_t *pkg).
Packages can come from alpm_db_get_pkg (for normal targets),
alpm_find_dbs_satisfier (for versioned provisions) or
alpm_find_grp_pkgs (for groups).

alpm_add_target(char *target) is replaced by alpm_pkg_load + alpm_add_pkg.

alpm_remove_target is replaced by alpm_remove_pkg(pmpkg_t *pkg), with
packages coming from alpm_db_get_pkg(db_local, target) or
alpm_db_readgrp(db_local, target) + alpm_grp_get_pkgs(grp).

> ## HELP!!!
> - alpm_deptest() is replaced by the more flexibile alpm_find_satisfier()
>    -int alpm_depcmp(pmpkg_t *pkg, pmdepend_t *dep);
>     alpm_list_t *alpm_checkdeps(alpm_list_t *pkglist, int reversedeps,
>                    alpm_list_t *remove, alpm_list_t *upgrade);
>    -alpm_list_t *alpm_deptest(pmdb_t *db, alpm_list_t *targets);
>    +pmpkg_t *alpm_find_satisfier(alpm_list_t *pkgs, const char *depstring);
>    +pmpkg_t *alpm_find_dbs_satisfier(alpm_list_t *dbs, const char
> *depstring);

- alpm_deptest() is replaced by the more flexible alpm_find_satisfier()
- alpm_depcmp(pmpkg_t *pkg, pmdepend_t *dep) was removed because the
low levels function dealing with pmdepend_t (splitdep and depfree come
to mind) are not exposed, which makes depcmp useless to a frontend.

(I mentioned alpm_find_dbs_satisfier above in the target change)

More information about the pacman-dev mailing list