diff options
author | Nathan Jones <nathanj@insightbb.com> | 2007-12-15 11:01:52 -0500 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2007-12-21 11:09:24 -0600 |
commit | 7fdb2ee48a3b252427405ee304af46b211fd2b84 (patch) | |
tree | d42157ff8a7c4962986cc6640199c38f96dc8935 | |
parent | b43301428e50d006c9b94d1ced74f1f0775a04dc (diff) |
Check ignored packages in _alpm_sync_addtarget().
This will allow someone to install a group but ignore individual
packages inside the group.
Signed-off-by: Nathan Jones <nathanj@insightbb.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | lib/libalpm/sync.c | 8 | ||||
-rw-r--r-- | src/pacman/sync.c | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index 8c213aae..76618665 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -344,6 +344,14 @@ int _alpm_sync_addtarget(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sy RET_ERR(PM_ERR_PKG_NOT_FOUND, -1); } + if(_alpm_pkg_should_ignore(spkg)) { + int resp; + QUESTION(trans, PM_TRANS_CONV_INSTALL_IGNOREPKG, spkg, NULL, NULL, &resp); + if (!resp) { + return(0); + } + } + local = _alpm_db_get_pkgfromcache(db_local, alpm_pkg_get_name(spkg)); if(local) { if(alpm_pkg_compare_versions(local, spkg) == 0) { diff --git a/src/pacman/sync.c b/src/pacman/sync.c index 5c539b85..00e8935f 100644 --- a/src/pacman/sync.c +++ b/src/pacman/sync.c @@ -584,7 +584,7 @@ static int sync_trans(alpm_list_t *targets, int sync_only) alpm_list_t *k; found++; - printf(_(":: group %s:\n"), targ); + printf(_(":: group %s (including ignored packages):\n"), targ); /* remove dupe entries in case a package exists in multiple repos */ const alpm_list_t *grppkgs = alpm_grp_get_pkgs(grp); alpm_list_t *pkgs = alpm_list_remove_dupes(grppkgs); |