From 8f824e70bbaf9cb2b72103fe378d93e3ded8cdee Mon Sep 17 00:00:00 2001 From: Chantry Xavier Date: Fri, 16 Nov 2007 15:34:04 +0100 Subject: 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 --- lib/libalpm/db.c | 6 +++++- lib/libalpm/package.c | 10 ---------- lib/libalpm/sync.c | 29 +++++++++++------------------ 3 files changed, 16 insertions(+), 29 deletions(-) (limited to 'lib') 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); } } -- cgit v1.2.3-24-g4f1b