diff options
author | Ian Jackson <ian@chiark.chu.cam.ac.uk> | 1996-07-01 02:51:11 +0100 |
---|---|---|
committer | Ian Jackson <ian@chiark.chu.cam.ac.uk> | 1996-07-01 02:51:11 +0100 |
commit | 3a5b7e80afb07ffaebf804e72f4e232f935f60e1 (patch) | |
tree | a89b2cda50e4e248e29efd7be5eab315539f5057 /dselect | |
parent | b16210d877e072cf87cff3f8a84f677e8e1e59a8 (diff) | |
download | dpkg-3a5b7e80afb07ffaebf804e72f4e232f935f60e1.tar.gz |
dpkg (1.2.11); priority=MEDIUM
* dselect had dependency bug if installed package newer than avail.
* Added `replaces' to dselect's list of package relationship strings.
-- Ian Jackson <ian@chiark.chu.cam.ac.uk> Mon, 1 Jul 1996 02:51:11 +0100
Diffstat (limited to 'dselect')
-rw-r--r-- | dselect/pkgdepcon.cc | 14 | ||||
-rw-r--r-- | dselect/pkgdisplay.cc | 6 |
2 files changed, 11 insertions, 9 deletions
diff --git a/dselect/pkgdepcon.cc b/dselect/pkgdepcon.cc index bfe48c985..a6abb3094 100644 --- a/dselect/pkgdepcon.cc +++ b/dselect/pkgdepcon.cc @@ -39,7 +39,7 @@ int packagelist::useavailable(pkginfo *pkg) { pkg->clientdata->selected == pkginfo::want_install && informative(pkg,&pkg->available) && (pkg->status != pkginfo::stat_installed || - versioncompare(&pkg->available.version,&pkg->installed.version) > 1)) + versioncompare(&pkg->available.version,&pkg->installed.version) > 0)) return 1; else return 0; @@ -48,6 +48,8 @@ int packagelist::useavailable(pkginfo *pkg) { pkginfoperfile *packagelist::findinfo(pkginfo *pkg) { pkginfoperfile *r; r= useavailable(pkg) ? &pkg->available : &pkg->installed; + if (debug) + fprintf(debug,"packagelist[%p]::findinfo(%s) useavailable=%d\n",this,pkg->name,useavailable(pkg)); if (!r->valid) blankpackageperfile(r); return r; } @@ -350,17 +352,17 @@ int packagelist::deppossatisfied(deppossi *possi, perpackagestate **fixbyupgrade // the right version, and therefore OK, or a version must have // been specified, in which case we don't need to look at the rest // anyway. - if (want == pkginfo::want_hold) { + if (useavailable(possi->ed)) { + assert(want == pkginfo::want_install); + return versionsatisfied(&possi->ed->available,possi); + } else { if (versionsatisfied(&possi->ed->installed,possi)) return 1; - if (fixbyupgrade && !*fixbyupgrade && + if (want == pkginfo::want_hold && fixbyupgrade && !*fixbyupgrade && versionsatisfied(&possi->ed->available,possi) && versioncompare(&possi->ed->available.version, &possi->ed->installed.version) > 1) *fixbyupgrade= possi->ed->clientdata; return 0; - } else { - assert(want == pkginfo::want_install); - return versionsatisfied(&possi->ed->available,possi); } } if (possi->verrel != deppossi::dvr_none) return 0; diff --git a/dselect/pkgdisplay.cc b/dselect/pkgdisplay.cc index 89d0ee533..92c31a868 100644 --- a/dselect/pkgdisplay.cc +++ b/dselect/pkgdisplay.cc @@ -39,12 +39,12 @@ const char *const eflagstrings[]= { "", "REINSTALL", 0 }, *const statusstrings[]= { "not installed", "unpacked (not set up)", "failed config", "installed", "half installed", - "removed (configs remain)", 0 }, + "removed (configs remain)", 0 }, *const prioritystrings[]= { "Required", "Important", "Standard", "Recommended", "Optional", "Extra", "Contrib", - "!Bug!", "Unclassified", 0 }, + "!Bug!", "Unclassified", 0 }, *const relatestrings[]= { "suggests", "recommends", "depends on", "pre-depends on", - "conflicts with", "provides", 0 }, + "conflicts with", "provides", "replaces", 0 }, *const priorityabbrevs[]= { "Req", "Imp", "Std", "Rec", "Opt", "Xtr", "Ctb", "bUG", "?" }; |