summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Jones <nathanj@insightbb.com>2007-12-15 11:01:52 -0500
committerDan McGee <dan@archlinux.org>2007-12-21 11:09:24 -0600
commit7fdb2ee48a3b252427405ee304af46b211fd2b84 (patch)
treed42157ff8a7c4962986cc6640199c38f96dc8935
parentb43301428e50d006c9b94d1ced74f1f0775a04dc (diff)
downloadpacman-7fdb2ee48a3b252427405ee304af46b211fd2b84.tar.xz
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.c8
-rw-r--r--src/pacman/sync.c2
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);