summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorChantry Xavier <shiningxc@gmail.com>2007-11-16 15:34:04 +0100
committerDan McGee <dan@archlinux.org>2007-11-18 19:37:16 +0100
commit8f824e70bbaf9cb2b72103fe378d93e3ded8cdee (patch)
treedde228d521118ae8470d609c3ae10eef0f688b7a /lib
parente174865bdc154248b8b8fcf03eaa19da78e0f67b (diff)
downloadpacman-8f824e70bbaf9cb2b72103fe378d93e3ded8cdee.tar.gz
pacman-8f824e70bbaf9cb2b72103fe378d93e3ded8cdee.tar.xz
Remove the IgnorePkg handling from alpm_pkg_compare_version.
And check the IgnorePkg handling is done correctly in the other places. For example, -Qu and -Su will automatically skip the ignored packages (-Su will print a warning), but -S will install ignored packages anyway, because it was asked explicitly. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/libalpm/db.c6
-rw-r--r--lib/libalpm/package.c10
-rw-r--r--lib/libalpm/sync.c29
3 files changed, 16 insertions, 29 deletions
diff --git a/lib/libalpm/db.c b/lib/libalpm/db.c
index 1e2e6b24..2cff1df3 100644
--- a/lib/libalpm/db.c
+++ b/lib/libalpm/db.c
@@ -464,7 +464,7 @@ alpm_list_t SYMEXPORT *alpm_db_get_upgrades(void)
if(strcmp(k->data, alpm_pkg_get_name(lpkg)) == 0) {
_alpm_log(PM_LOG_DEBUG, "checking replacement '%s' for package '%s'\n",
(char *)k->data, alpm_pkg_get_name(spkg));
- if(_alpm_pkg_should_ignore(lpkg)) {
+ if(_alpm_pkg_should_ignore(spkg) || _alpm_pkg_should_ignore(lpkg)) {
_alpm_log(PM_LOG_WARNING, _("%s-%s: ignoring package upgrade (to be replaced by %s-%s)\n"),
alpm_pkg_get_name(lpkg), alpm_pkg_get_version(lpkg),
alpm_pkg_get_name(spkg), alpm_pkg_get_version(spkg));
@@ -545,6 +545,10 @@ alpm_list_t SYMEXPORT *alpm_db_get_upgrades(void)
syncpkg = _alpm_sync_find(syncpkgs, alpm_pkg_get_name(local));
if(!syncpkg) {
+ /* If package is in the ignorepkg list, skip it */
+ if(_alpm_pkg_should_ignore(spkg)) {
+ continue;
+ }
pmpkg_t *dummy = _alpm_pkg_new(alpm_pkg_get_name(local),
alpm_pkg_get_version(local));
if(dummy == NULL) {
diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c
index 18d04e00..24304e14 100644
--- a/lib/libalpm/package.c
+++ b/lib/libalpm/package.c
@@ -731,16 +731,6 @@ int alpm_pkg_compare_versions(pmpkg_t *local_pkg, pmpkg_t *pkg)
/* compare versions and see if we need to upgrade */
cmp = _alpm_versioncmp(alpm_pkg_get_version(pkg), alpm_pkg_get_version(local_pkg));
- if(_alpm_pkg_should_ignore(pkg)) {
- /* package should be ignored (IgnorePkg) */
- if(cmp > 0) {
- _alpm_log(PM_LOG_WARNING, _("%s-%s: ignoring package upgrade (%s)\n"),
- alpm_pkg_get_name(local_pkg), alpm_pkg_get_version(local_pkg),
- alpm_pkg_get_version(pkg));
- }
- return(0);
- }
-
if(cmp != 0 && pkg->force) {
cmp = 1;
_alpm_log(PM_LOG_WARNING, _("%s: forcing upgrade to version %s\n"),
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
index 44f06f14..3075100a 100644
--- a/lib/libalpm/sync.c
+++ b/lib/libalpm/sync.c
@@ -208,18 +208,16 @@ int _alpm_sync_sysupgrade(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_s
/* compare versions and see if we need to upgrade */
if(alpm_pkg_compare_versions(local, spkg)) {
- _alpm_log(PM_LOG_DEBUG, "%s-%s elected for upgrade (%s => %s)\n",
+ _alpm_log(PM_LOG_DEBUG, "%s elected for upgrade (%s => %s)\n",
alpm_pkg_get_name(local), alpm_pkg_get_version(local),
- alpm_pkg_get_name(spkg), alpm_pkg_get_version(spkg));
+ alpm_pkg_get_version(spkg));
if(!_alpm_sync_find(trans->packages, alpm_pkg_get_name(spkg))) {
- /* If package is in the ignorepkg list, ask before we add it to
- * the transaction */
- if(_alpm_pkg_should_ignore(local)) {
- int resp = 0;
- QUESTION(trans, PM_TRANS_CONV_INSTALL_IGNOREPKG, local, NULL, NULL, &resp);
- if(!resp) {
- continue;
- }
+ /* If package is in the ignorepkg list, skip it */
+ if(_alpm_pkg_should_ignore(spkg)) {
+ _alpm_log(PM_LOG_WARNING, _("%s: ignoring package upgrade (%s => %s)\n"),
+ alpm_pkg_get_name(local), alpm_pkg_get_version(local),
+ alpm_pkg_get_version(spkg));
+ continue;
}
pmpkg_t *tmp = _alpm_pkg_dup(local);
if(tmp == NULL) {
@@ -318,17 +316,12 @@ int _alpm_sync_addtarget(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sy
if(local) {
if(alpm_pkg_compare_versions(local, spkg) == 0) {
/* spkg is NOT an upgrade, get confirmation before adding */
- int resp = 0;
- if(_alpm_pkg_should_ignore(local)) {
- QUESTION(trans, PM_TRANS_CONV_INSTALL_IGNOREPKG, local, NULL, NULL, &resp);
- if(!resp) {
- return(0);
- }
- } else if(!(trans->flags & PM_TRANS_FLAG_PRINTURIS)) {
+ if(!(trans->flags & PM_TRANS_FLAG_PRINTURIS)) {
+ int resp = 0;
QUESTION(trans, PM_TRANS_CONV_LOCAL_UPTODATE, local, NULL, NULL, &resp);
if(!resp) {
_alpm_log(PM_LOG_WARNING, _("%s-%s is up to date -- skipping\n"),
- alpm_pkg_get_name(local), alpm_pkg_get_version(local));
+ alpm_pkg_get_name(local), alpm_pkg_get_version(local));
return(0);
}
}