From 4cb19c2c29837ad41c5efcb68296ca5061a8ee17 Mon Sep 17 00:00:00 2001 From: Stefan Schubert Date: Tue, 27 Dec 2005 15:23:12 +0000 Subject: [PATCH] taking information from resObject instead of Spec --- zypp/solver/detail/Channel.h | 2 +- zypp/solver/detail/Package.cc | 257 +++++++++++--------- zypp/solver/detail/Package.h | 4 + zypp/solver/detail/PackagePtr.h | 4 +- zypp/solver/detail/QueueItemConflict.cc | 4 +- zypp/solver/detail/QueueItemInstall.cc | 8 +- zypp/solver/detail/QueueItemRequire.cc | 4 +- zypp/solver/detail/QueueItemUninstall.cc | 4 +- zypp/solver/detail/ResItem.cc | 140 ++++++++--- zypp/solver/detail/ResItem.h | 42 ++-- zypp/solver/detail/ResItemPtr.h | 2 +- zypp/solver/detail/ResolverContext.cc | 16 +- zypp/solver/detail/ResolverInfoContainer.cc | 4 +- zypp/solver/detail/ResolverQueue.cc | 6 +- zypp/solver/detail/StoreWorld.cc | 10 +- zypp/solver/detail/World.cc | 6 +- zypp/solver/detail/XmlParser.cc | 266 +++++++++++---------- zypp/solver/detail/XmlParser.h | 16 +- .../deptestomatic/exercise-01simple-2-test.out | 4 +- .../deptestomatic/exercise-01simple-3-test.out | 4 +- .../deptestomatic/exercise-01simple-4-test.out | 2 +- .../deptestomatic/exercise-01simple-5-test.out | 2 +- .../deptestomatic/exercise-01simple-6-test.out | 2 +- .../deptestomatic/exercise-01simple-7-test.out | 2 +- .../deptestomatic/exercise-01simple-8-test.out | 4 +- .../deptestomatic/exercise-02conflict-02-test.out | 2 +- .../deptestomatic/exercise-02conflict-03-test.out | 4 +- .../deptestomatic/exercise-02conflict-04-test.out | 2 +- .../deptestomatic/exercise-02conflict-06-test.out | 4 +- .../deptestomatic/exercise-02conflict-07-test.out | 4 +- .../deptestomatic/exercise-02conflict-08-test.out | 2 +- .../deptestomatic/exercise-02conflict-09-test.out | 2 +- .../deptestomatic/exercise-02conflict-10-test.out | 4 +- .../deptestomatic/exercise-02conflict-11-test.out | 2 +- .../deptestomatic/exercise-04obsoletes-01-test.out | 2 +- .../deptestomatic/exercise-04obsoletes-02-test.out | 2 +- .../deptestomatic/exercise-04obsoletes-03-test.out | 2 +- .../deptestomatic/exercise-04obsoletes-04-test.out | 2 +- .../deptestomatic/exercise-04obsoletes-05-test.out | 2 +- .../deptestomatic/exercise-04obsoletes-06-test.out | 2 +- .../deptestomatic/exercise-04obsoletes-07-test.out | 4 +- .../deptestomatic/exercise-04obsoletes-08-test.out | 2 +- .../deptestomatic/exercise-04obsoletes-09-test.out | 2 +- .../deptestomatic/exercise-05reallive-1-test.out | 36 +-- .../deptestomatic/exercise-05reallive-2-test.out | 26 +- .../deptestomatic/exercise-05reallive-3-test.out | 2 +- .../deptestomatic/exercise-06upgrade-test.out | 10 +- .../deptestomatic/exercise-alternatives-1-test.out | 16 +- .../deptestomatic/exercise-alternatives-2-test.out | 2 +- .../deptestomatic/exercise-alternatives-3-test.out | 24 +- .../deptestomatic/exercise-alternatives-4-test.out | 2 +- .../deptestomatic/exercise-bug21829-1-test.out | 2 +- .../deptestomatic/exercise-bug21829-2-test.out | 2 +- .../deptestomatic/exercise-bug21829-3-test.out | 2 +- .../deptestomatic/exercise-bug21829-4-test.out | 4 +- .../deptestomatic/exercise-bug21829-5-test.out | 8 +- .../deptestomatic/exercise-corcircle-test.out | 2 +- .../deptestomatic/exercise-kdelibsobs-test.out | 4 +- .../exercise-obscureobsoletes-01-test.out | 4 +- .../exercise-obscureobsoletes-02-test.out | 4 +- .../exercise-obscureobsoletes-05-test.out | 2 +- .../exercise-obscureobsoletes-06-test.out | 2 +- .../exercise-obscureobsoletes-07-test.out | 2 +- .../exercise-obscureobsoletes-08-test.out | 6 +- .../exercise-obscureobsoletes-09-test.out | 6 +- .../exercise-obscureobsoletes-10-test.out | 2 +- .../exercise-obscureobsoletes-11-test.out | 6 +- .../exercise-phpalternatives-test.out | 2 +- .../deptestomatic/exercise-xfree-test.out | 4 +- 69 files changed, 583 insertions(+), 460 deletions(-) diff --git a/zypp/solver/detail/Channel.h b/zypp/solver/detail/Channel.h index b93b64f..be2e417 100644 --- a/zypp/solver/detail/Channel.h +++ b/zypp/solver/detail/Channel.h @@ -142,7 +142,7 @@ namespace zypp const char *legacyId (void) const { return _legacy_id.c_str(); } // Old ID for RCE servers void setLegacyId (const char *legacy_id) { _legacy_id = std::string (legacy_id); } - const char *name (void) const { return _name.c_str(); } + const char * name (void) const { return _name.c_str(); } void setName (const char *name) { _name = std::string (name); } const char *alias (void) const { return _alias.c_str(); } diff --git a/zypp/solver/detail/Package.cc b/zypp/solver/detail/Package.cc index ff68387..16d3ab5 100644 --- a/zypp/solver/detail/Package.cc +++ b/zypp/solver/detail/Package.cc @@ -21,6 +21,8 @@ #include #include +#include +#include #include #include #include @@ -38,7 +40,7 @@ namespace zypp using namespace std; - IMPL_DERIVED_POINTER(Package,Spec); + IMPL_DERIVED_POINTER(Package,ResItem); struct DepTable { CDependencyList requires; @@ -239,7 +241,7 @@ namespace zypp } //--------------------------------------------------------------------------- - + Package::Package (constChannelPtr channel) : ResItem (ResTraits::kind, "") , _section (NULL) @@ -254,7 +256,33 @@ namespace zypp { setChannel (channel); } - + + + Package::Package (constChannelPtr channel, + const string & name, + const Edition & edition, + const Arch arch) + + : ResItem (ResTraits::kind, "") + , _section (NULL) + , _pretty_name ("") + , _summary ("") + , _description ("") + , _package_filename ("") + , _signature_filename ("") + , _install_only (false) + , _package_set (false) + , _id ("") + { + + setChannel (channel); + + shared_ptr pkgImpl; + zypp::Package::Ptr pkg( zypp::detail::makeResolvableAndImpl( name, edition, arch, + pkgImpl ) ); + _resObject = pkg; + } + Package::Package (constXmlNodePtr node, constChannelPtr channel) : ResItem (ResTraits::kind, "") @@ -268,12 +296,17 @@ namespace zypp , _package_set (false) , _id ("") { + string name = ""; + int epoch = Edition::noepoch; + string version = ""; + string release = ""; + Arch arch = Arch_noarch; + if (!node->equals("package")) { - fprintf (stderr, "Package::Package() not a package node\n"); - exit (1); + fprintf (stderr, "Package::Package() not a package node\n"); + exit (1); } - const char *epoch = NULL, *version = NULL, *release = NULL; struct DepTable dep_table; setChannel (channel); @@ -281,75 +314,75 @@ namespace zypp constXmlNodePtr iter = node->children(); while (iter) { - bool extracted_deps = false; - - if (iter->equals("name")) { setName (iter->getContent()); - } else if (iter->equals("epoch")) { setEpoch (atoi (iter->getContent())); - } else if (iter->equals("version")) { setVersion (iter->getContent()); - } else if (iter->equals("release")) { setRelease (iter->getContent()); - } else if (iter->equals("summary")) { _summary = strdup (iter->getContent()); - } else if (iter->equals("description")) { _description = strdup (iter->getContent()); - } else if (iter->equals("section")) { _section = new Section (iter->getContent()); - } else if (iter->equals("arch")) { setArch (iter->getContent()); - } else if (iter->equals("filesize")) { - const char *tmp = iter->getContent(); - setFileSize (tmp && *tmp ? atoi (tmp) : 0); - free ((void *)tmp); - } else if (iter->equals("installedsize")) { - const char *tmp = iter->getContent(); - setInstalledSize (tmp && *tmp ? atoi (tmp) : 0); - free ((void *)tmp); - } else if (iter->equals("install_only")) { _install_only = true; - } else if (iter->equals("package_set")) { _package_set = true; - } else if (iter->equals("history")) { - constXmlNodePtr iter2; - - iter2 = iter->children(); - - while (iter2) { - if (!iter2->isElement()) { - iter2 = iter2->next(); - continue; - } - - PackageUpdatePtr update = new PackageUpdate (iter2, this); - addUpdate (update); - - iter2 = iter2->next(); - } - } else if (iter->equals("deps")) { - constXmlNodePtr iter2; - - for (iter2 = iter->children(); iter2; iter2 = iter2->next()) { - if (!iter2->isElement()) - continue; - - extract_dep_info (iter2, dep_table); - } - - extracted_deps = true; - } - else { - if (!extracted_deps) - extract_dep_info (iter, dep_table); - else { - /* FIXME: Bitch to the user here? */ - } - } - - iter = iter->next(); + bool extracted_deps = false; + + if (iter->equals("name")) { name = iter->getContent(); + } else if (iter->equals("epoch")) { epoch = atoi (iter->getContent()); + } else if (iter->equals("version")) { version = iter->getContent(); + } else if (iter->equals("release")) { release = iter->getContent(); + } else if (iter->equals("summary")) { _summary = strdup (iter->getContent()); + } else if (iter->equals("description")) { _description = strdup (iter->getContent()); + } else if (iter->equals("section")) { _section = new Section (iter->getContent()); + } else if (iter->equals("arch")) { arch = Arch(iter->getContent()); + } else if (iter->equals("filesize")) { + const char *tmp = iter->getContent(); + setFileSize (tmp && *tmp ? atoi (tmp) : 0); + free ((void *)tmp); + } else if (iter->equals("installedsize")) { + const char *tmp = iter->getContent(); + setInstalledSize (tmp && *tmp ? atoi (tmp) : 0); + free ((void *)tmp); + } else if (iter->equals("install_only")) { _install_only = true; + } else if (iter->equals("package_set")) { _package_set = true; + } else if (iter->equals("history")) { + constXmlNodePtr iter2; + + iter2 = iter->children(); + + while (iter2) { + if (!iter2->isElement()) { + iter2 = iter2->next(); + continue; + } + + PackageUpdatePtr update = new PackageUpdate (iter2, this); + addUpdate (update); + + iter2 = iter2->next(); + } + } else if (iter->equals("deps")) { + constXmlNodePtr iter2; + + for (iter2 = iter->children(); iter2; iter2 = iter2->next()) { + if (!iter2->isElement()) + continue; + + extract_dep_info (iter2, dep_table); + } + + extracted_deps = true; + } + else { + if (!extracted_deps) + extract_dep_info (iter, dep_table); + else { + /* FIXME: Bitch to the user here? */ + } + } + + iter = iter->next(); } if (!dep_table.children.empty()) { - // children are used in package sets - // treat them as normal requires - // - #warning Children are handled as requires - CDependencyList::const_iterator iter; - for (iter = dep_table.children.begin(); iter != dep_table.children.end(); iter++) - { - dep_table.requires.push_back (*iter); - } + // children are used in package sets + // treat them as normal requires + // +#warning Children are handled as requires + CDependencyList::const_iterator iter; + for (iter = dep_table.children.begin(); iter != dep_table.children.end(); iter++) + { + dep_table.requires.push_back (*iter); + } } @@ -359,15 +392,15 @@ namespace zypp CDependencyList::const_iterator piter; for (piter = dep_table.provides.begin(); piter != dep_table.provides.end(); piter++) { if ((*piter)->relation() == Rel::EQ - && ((*piter)->name() == name())) - { - break; - } + && ((*piter)->name() == name)) + { + break; + } } if (piter == dep_table.provides.end()) { // no self provide found, construct one - constDependencyPtr selfdep = new Dependency (name(), Rel::EQ, kind(), this->channel(), edition()); - if (getenv ("RC_SPEW")) fprintf (stderr, "Adding self-provide [%s]\n", selfdep->asString().c_str()); - dep_table.provides.push_front (selfdep); + constDependencyPtr selfdep = new Dependency (name, Rel::EQ, ResTraits::kind, this->channel(), Edition( version, release, zypp::str::numstring(epoch) )); + if (getenv ("RC_SPEW")) fprintf (stderr, "Adding self-provide [%s]\n", selfdep->asString().c_str()); + dep_table.provides.push_front (selfdep); } setRequires (dep_table.requires); @@ -377,53 +410,40 @@ namespace zypp setSuggests (dep_table.suggests); setRecommends (dep_table.recommends); - if (version) { - - setEpoch (epoch ? atoi (epoch) : Edition::noepoch); - setVersion (version); - setRelease (release); - - /* We set these to NULL so that they won't get freed when we - clean up before returning. */ - version = release = NULL; + if (!_history.empty()) { - } else if (!_history.empty()) { + /* If possible, we grab the version info from the most + recent update. */ - /* If possible, we grab the version info from the most - recent update. */ + PackageUpdatePtr update = _history.front(); - PackageUpdatePtr update = _history.front(); - - setEpoch (update->package()->epoch()); - setVersion (update->package()->version()); - setRelease (update->package()->release()); + epoch = update->package()->epoch(); + version = update->package()->version(); + release = update->package()->release(); } else { - /* Otherwise, try to find where the package provides itself, - and use that version info. */ + /* Otherwise, try to find where the package provides itself, + and use that version info. */ - if (!provides().empty()) - for (CDependencyList::const_iterator iter = provides().begin(); iter != provides().end(); iter++) { - if ((*iter)->relation() == Rel::EQ && - ((*iter)->name() == name())) - { - setEpoch ((*iter)->epoch()); - setVersion ((*iter)->version()); - setRelease ((*iter)->release()); - break; - } - } + if (!provides().empty()) + for (CDependencyList::const_iterator iter = provides().begin(); iter != provides().end(); iter++) { + if ((*iter)->relation() == Rel::EQ && + ((*iter)->name() == name)) + { + epoch = (*iter)->epoch(); + version = (*iter)->version(); + release = (*iter)->release(); + break; + } + } } - - /* clean-up */ - if (epoch) free ((void *)epoch); - if (version) free ((void *)version); - if (release) free ((void *)release); - -// /* Hack for no archs in the XML yet */ -// if (arch()->isUnknown()) -// setArch (Arch::System); + + Edition _edition( version, release, zypp::str::numstring(epoch) ); + shared_ptr pkgImpl; + zypp::Package::Ptr pkg( zypp::detail::makeResolvableAndImpl( name, _edition, arch, + pkgImpl ) ); + _resObject = pkg; } Package::~Package() @@ -495,6 +515,7 @@ namespace zypp } /* see if the required parent for this patch is installed */ + installed = world->findInstalledResItem (update->parent()); if (installed != NULL && diff --git a/zypp/solver/detail/Package.h b/zypp/solver/detail/Package.h index 95e410d..69c257d 100644 --- a/zypp/solver/detail/Package.h +++ b/zypp/solver/detail/Package.h @@ -83,6 +83,10 @@ class Package : public ResItem { public: Package(constChannelPtr channel); + Package(constChannelPtr channel, + const std::string & name = "", + const Edition & edition = Edition::noedition, + const Arch arch = Arch_noarch); Package(constXmlNodePtr node, constChannelPtr channel); //RCPackage *rc_xml_node_to_package (const xmlNode *node, const RCChannel *channel); virtual ~Package(); diff --git a/zypp/solver/detail/PackagePtr.h b/zypp/solver/detail/PackagePtr.h index dc56e0c..98fe587 100644 --- a/zypp/solver/detail/PackagePtr.h +++ b/zypp/solver/detail/PackagePtr.h @@ -22,7 +22,7 @@ #define _PackagePtr_h #include -#include +#include ///////////////////////////////////////////////////////////////////////// namespace zypp @@ -38,7 +38,7 @@ namespace zypp // CLASS NAME : PackagePtr // CLASS NAME : constPackagePtr /////////////////////////////////////////////////////////////////// - DEFINE_DERIVED_POINTER(Package,Spec); + DEFINE_DERIVED_POINTER(Package,ResItem); /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// diff --git a/zypp/solver/detail/QueueItemConflict.cc b/zypp/solver/detail/QueueItemConflict.cc index a6f09e1..0b125fa 100644 --- a/zypp/solver/detail/QueueItemConflict.cc +++ b/zypp/solver/detail/QueueItemConflict.cc @@ -150,7 +150,7 @@ namespace zypp ResolverInfoPtr log_info; if (getenv ("RC_SPEW")) fprintf (stderr, "conflict_process_cb (resolvable[%s], spec[%s], info [%s]\n", resItem->asString().c_str(), spec->asString().c_str(), info->conflicting_resItem->asString().c_str()); - if (getenv ("RC_SPEW")) fprintf (stderr, "conflict_process_cb (resolvable equals spec: %s, info->dep [%s]\n", resItem->equals(spec) ? "YES" : "NO", info->dep->asString().c_str()); + if (getenv ("RC_SPEW")) fprintf (stderr, "conflict_process_cb (resolvable equals spec: %s, info->dep [%s]\n", resItem->equals(spec->kind(), spec->name(), spec->edition()) ? "YES" : "NO", info->dep->asString().c_str()); /* We conflict with ourself. For the purpose of installing ourself, we * just ignore it, but it's Debian's way of saying that one and only one @@ -169,7 +169,7 @@ namespace zypp * now. */ if (info->actually_an_obsolete - && !(resItem->equals(spec))) + && !(resItem->equals(spec->kind(), spec->name(), spec->edition()))) { return true; } diff --git a/zypp/solver/detail/QueueItemInstall.cc b/zypp/solver/detail/QueueItemInstall.cc index 10f42f3..8afd074 100644 --- a/zypp/solver/detail/QueueItemInstall.cc +++ b/zypp/solver/detail/QueueItemInstall.cc @@ -106,7 +106,7 @@ namespace zypp constResItemPtr upgrades = world->findInstalledResItem (resItem); if (getenv("RC_SPEW")) fprintf (stderr, "QueueItemInstall::QueueItemInstall(%s) upgrades %s\n", resItem->asString().c_str(), upgrades!=NULL?upgrades->asString().c_str():"nothing"); if (upgrades - && ! (((constSpecPtr)upgrades)->equals (resItem))) { + && ! (upgrades->equals (resItem))) { setUpgrades(upgrades); } } @@ -155,7 +155,7 @@ namespace zypp red-carpet, but can come up with the installer & autopull. */ if (_upgrades - && ((constSpecPtr)_resItem)->equals (_upgrades)) { + && _resItem->equals (_upgrades)) { ResolverInfoPtr info; if (getenv ("RC_SPEW")) fprintf (stderr, "upgrades equal resItem, skipping\n"); @@ -301,7 +301,7 @@ namespace zypp * saying that one and only one resItem with this provide may * exist on the system at a time. */ - if (((constSpecPtr)conflicting_resItem)->equals (resItem)) { + if (conflicting_resItem->equals (resItem)) { continue; } @@ -345,7 +345,7 @@ namespace zypp if (cmp != 0) return cmp; constQueueItemInstallPtr install = item; - return Spec::compare (_resItem, install->_resItem); + return ResItem::compare (_resItem, install->_resItem); } //--------------------------------------------------------------------------- diff --git a/zypp/solver/detail/QueueItemRequire.cc b/zypp/solver/detail/QueueItemRequire.cc index 673750b..7d71711 100644 --- a/zypp/solver/detail/QueueItemRequire.cc +++ b/zypp/solver/detail/QueueItemRequire.cc @@ -124,7 +124,7 @@ namespace zypp //--------------------------------------------------------------------------- - typedef std::map UniqTable; + typedef std::map UniqTable; typedef struct { constResItemPtr resItem; @@ -155,7 +155,7 @@ namespace zypp if ((! resItem_status_is_to_be_uninstalled (status)) && ! info->context->isParallelInstall (resItem) - && info->uniq->find((constSpecPtr)resItem) == info->uniq->end() + && info->uniq->find(resItem) == info->uniq->end() && info->context->resItemIsPossible (resItem) && ! info->world->resItemIsLocked (resItem)) { diff --git a/zypp/solver/detail/QueueItemUninstall.cc b/zypp/solver/detail/QueueItemUninstall.cc index d7f78a2..1977511 100644 --- a/zypp/solver/detail/QueueItemUninstall.cc +++ b/zypp/solver/detail/QueueItemUninstall.cc @@ -192,7 +192,7 @@ namespace zypp ResItemStatus status; string pkg_str; - pkg_str = ((constSpecPtr)_resItem)->asString(); + pkg_str = _resItem->asString(); status = context->getStatus (_resItem); @@ -297,7 +297,7 @@ namespace zypp return cmp; constQueueItemUninstallPtr uninstall = item; - return Spec::compare (_resItem, uninstall->_resItem); + return ResItem::compare (_resItem, uninstall->_resItem); } diff --git a/zypp/solver/detail/ResItem.cc b/zypp/solver/detail/ResItem.cc index bb24e37..268a742 100644 --- a/zypp/solver/detail/ResItem.cc +++ b/zypp/solver/detail/ResItem.cc @@ -21,13 +21,21 @@ */ #include - +#include #include #include -#include -#include #include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include #include @@ -44,7 +52,7 @@ namespace zypp using namespace std; - IMPL_DERIVED_POINTER(ResItem,Spec); + IMPL_BASE_POINTER(ResItem); //--------------------------------------------------------------------------- @@ -59,8 +67,30 @@ namespace zypp ResItem::toString ( const ResItem & resItem, bool full ) { string res; + + if (full + || (resItem.kind() != "Package" + && resItem.kind() != "ResObject")) + { + res += resItem.kind().asString(); + res += ":"; + } - res += Spec::toString(resItem); + res += resItem.name(); + + string ed = resItem.edition().asString(); + if (!ed.empty() && + ed != "EDITION-UNSPEC") + { + res += "-"; + res += ed; + } + + if (resItem.arch() != Arch_noarch) { + res += "."; + res += resItem.arch().asString(); + } + if (!resItem.channel()->system()) { res += "["; res += (resItem.channel() == NULL) ? "(channel?)" : resItem.channel()->name(); @@ -139,8 +169,7 @@ namespace zypp //--------------------------------------------------------------------------- ResItem::ResItem (const Resolvable::Kind & kind, const string & name, int epoch, const string & version, const string & release, const Arch & arch) - :Spec (kind, name, epoch, version, release, arch) - , _channel (false) + : _channel (false) , _installed (false) , _local (false) , _locked (false) @@ -148,42 +177,59 @@ namespace zypp , _installed_size (0) { - zypp::Edition _edition( version, release, zypp::str::numstring(epoch) ); + Edition _edition( version, release, zypp::str::numstring(epoch) ); // create the ResObject - shared_ptr pkgImpl; - zypp::Package::Ptr pkg( zypp::detail::makeResolvableAndImpl( name, _edition, arch, - pkgImpl ) ); - _resObject = pkg; - -// shared_ptr resObjectImpl; -// ResObject::Ptr resObject( zypp::detail::makeResolvableAndImpl( _name, _edition, _arch, -// resObjectImpl ) ); -// -// _resObject = resObject; - + if (kind == "Package") + { + shared_ptr pkgImpl; + zypp::Package::Ptr pkg( zypp::detail::makeResolvableAndImpl( name, _edition, arch, + pkgImpl ) ); + _resObject = pkg; + } else if (kind == "Selection") + { + shared_ptr selImpl; + zypp::Selection::Ptr sel( zypp::detail::makeResolvableAndImpl( name, _edition, arch, + selImpl ) ); + _resObject = sel; + } else if (kind == "Product") + { +// shared_ptr proImpl; +// zypp::Product::Ptr pro( zypp::detail::makeResolvableAndImpl( name, _edition, arch, +// proImpl ) ); +// _resObject = pro; + } else if (kind == "Patch") + { + shared_ptr patchImpl; + zypp::Patch::Ptr patch( zypp::detail::makeResolvableAndImpl( name, _edition, arch, + patchImpl ) ); + _resObject = patch; + } else if (kind == "Script") + { + shared_ptr scriptImpl; + zypp::Script::Ptr script( zypp::detail::makeResolvableAndImpl( name, _edition, arch, + scriptImpl ) ); + _resObject = script; + } else if (kind == "Message") + { + shared_ptr messageImpl; + zypp::Message::Ptr message( zypp::detail::makeResolvableAndImpl( name, _edition, arch, + messageImpl ) ); + _resObject = message; + } } ResItem::ResItem(const ResObject::Ptr & resObject) - :Spec (ResTraits::kind, "") - ,_channel (false) + : _channel (false) , _installed (false) , _local (false) , _locked (false) , _file_size (0) , _installed_size (0) { + assert (resObject); _resObject = resObject; - if (_resObject != NULL) - { - setVersion(resObject->edition().version()); - setArch(resObject->arch().asString()); - setEpoch(resObject->edition().epoch()); - setRelease(resObject->edition().release()); - setKind(resObject->kind()); - setName(resObject->name()); - } } ResItem::~ResItem() @@ -201,6 +247,40 @@ namespace zypp } return false; } + + bool + ResItem::equals(constResItemPtr item) const { + return ((kind() == item->kind()) + && (name() == item->name()) + && Edition::compare( edition(), item->edition()) == 0); + } + + bool ResItem::equals(const Resolvable::Kind & compKind, + const string & compName, + const Edition & compEdition) const { + return ((compKind == kind()) + && (compName == name()) + && Edition::compare( compEdition, edition()) == 0); + } + + int ResItem::compare (constResItemPtr res1, constResItemPtr res2) { + int rc = 0; + + const string name1 = res1->name(); + const string name2 = res2->name(); + if (! (name1.empty() && name2.empty())) + { + rc = name1.compare (name2); + } + if (rc) return rc; + + rc = Edition::compare (res1->edition(), + res2->edition()); + + return rc; + } + + /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// diff --git a/zypp/solver/detail/ResItem.h b/zypp/solver/detail/ResItem.h index 95f7d44..fadd711 100644 --- a/zypp/solver/detail/ResItem.h +++ b/zypp/solver/detail/ResItem.h @@ -59,11 +59,10 @@ namespace zypp * **/ - class ResItem : public Spec { + class ResItem : public CountedRep { REP_BODY(ResItem); private: - ResObject::Ptr _resObject; constChannelPtr _channel; bool _installed; @@ -87,6 +86,7 @@ namespace zypp // ---------------------------------- accessors void setLocal (bool local) { _local = local; } + ResObject::Ptr _resObject; public: @@ -152,30 +152,20 @@ namespace zypp void setFreshens (const CDependencyList & freshens) { _freshens = freshens; } // Spec definitions -#if 0 - const std::string & version() const { return _edition->version(); } - void setVersion (const std::string & version) { _edition->setVersion (version); } - - const std::string & release() const { return _edition->release(); } - void setRelease (const std::string & release) { _edition->setRelease (release); } - - const int epoch() const { return _edition->epoch(); } - void setEpoch (int epoch) { _edition->setEpoch (epoch); } - bool hasEpoch() const { return _edition->hasEpoch(); } - - const Arch & arch() const { return _edition->arch(); } - void setArch (const zypp::Arch & arch) { _edition->setArch (arch); } - void setArch (const std::string & arch) { _edition->setArch (arch); } - - const Resolvable::Kind & kind() const { return _kind; } - void setKind (const Resolvable::Kind & kind) { _kind = kind; } - - const std::string name() const { return _name; } - void setName (const std::string & name) { _name = Name(name.c_str()); } - - const Edition & edition() const { return _edition; } - void setEdition (const Edition & edition) { _edition = edition } -#endif + + const Edition & edition() const { return _resObject->edition(); } + const std::string & version() const { return edition().version(); } + const std::string & release() const { return edition().release(); } + const int epoch() const { return edition().epoch(); } + bool hasEpoch() const { return edition().epoch() != Edition::noepoch; } + const Arch & arch() const { return _resObject->arch(); } + const Resolvable::Kind & kind() const { return _resObject->kind(); } + const std::string name() const { return _resObject->name(); } + bool equals(constResItemPtr item) const; + bool equals(const Resolvable::Kind & kind, const std::string & name, + const Edition & edition) const; + + static int compare (constResItemPtr res1, constResItemPtr res2); }; diff --git a/zypp/solver/detail/ResItemPtr.h b/zypp/solver/detail/ResItemPtr.h index f4bb47a..855b8ed 100644 --- a/zypp/solver/detail/ResItemPtr.h +++ b/zypp/solver/detail/ResItemPtr.h @@ -38,7 +38,7 @@ namespace zypp // CLASS NAME : ResItemPtr // CLASS NAME : constResItemPtr /////////////////////////////////////////////////////////////////// - DEFINE_DERIVED_POINTER(ResItem,Spec); + DEFINE_BASE_POINTER(ResItem); /////////////////////////////////////////////////////////////////// };// namespace detail diff --git a/zypp/solver/detail/ResolverContext.cc b/zypp/solver/detail/ResolverContext.cc index 10f7d51..527a313 100644 --- a/zypp/solver/detail/ResolverContext.cc +++ b/zypp/solver/detail/ResolverContext.cc @@ -228,7 +228,7 @@ namespace zypp if (resItem_status_is_to_be_uninstalled (status) && status != RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_UNLINK) { - msg = string ("Can't install ") + ((constSpecPtr)resItem)->asString() + " since it is already marked as needing to be uninstalled"; + msg = string ("Can't install ") + resItem->asString() + " since it is already marked as needing to be uninstalled"; addErrorString (resItem, msg); return false; @@ -239,7 +239,7 @@ namespace zypp } if (isParallelInstall (resItem)) { - msg = string ("Can't install ") + ((constSpecPtr)resItem)->asString() + ", since a resolvable of the same name is already marked as needing to be installed"; + msg = string ("Can't install ") + resItem->asString() + ", since a resolvable of the same name is already marked as needing to be installed"; addErrorString (resItem, msg); return false; } @@ -330,7 +330,7 @@ namespace zypp status = getStatus (resItem); if (status == RESOLVABLE_STATUS_TO_BE_INSTALLED) { - msg = ((constSpecPtr)resItem)->asString() + " is scheduled to be installed, but this is not possible because of dependency problems."; + msg = resItem->asString() + " is scheduled to be installed, but this is not possible because of dependency problems."; addErrorString (resItem, msg); return false; } @@ -342,7 +342,7 @@ namespace zypp if (status == RESOLVABLE_STATUS_UNINSTALLED || status == RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_UNLINK) { - msg = string ("Marking resolvable ") + ((constSpecPtr)resItem)->asString() + " as uninstallable"; + msg = string ("Marking resolvable ") + resItem->asString() + " as uninstallable"; addInfoString (resItem, RESOLVER_INFO_PRIORITY_VERBOSE, msg); } @@ -1022,7 +1022,7 @@ namespace zypp //--------------------------------------------------------------------------- typedef struct { - constSpecPtr spec; + constResItemPtr res; bool flag; } DupNameCheckInfo; @@ -1032,8 +1032,8 @@ namespace zypp DupNameCheckInfo *info = (DupNameCheckInfo *)data; if (! info->flag && resItem_status_is_to_be_installed (status) - && info->spec->name() == resItem->name() - && !info->spec->equals(resItem)) { + && info->res->name() == resItem->name() + && !resItem->equals(info->res)) { info->flag = true; } } @@ -1043,7 +1043,7 @@ namespace zypp { DupNameCheckInfo info; - info.spec = resItem; + info.res = resItem; info.flag = false; foreachMarkedResItem (dup_name_check_cb, (void *)&info); diff --git a/zypp/solver/detail/ResolverInfoContainer.cc b/zypp/solver/detail/ResolverInfoContainer.cc index b0a48dd..bc3f002 100644 --- a/zypp/solver/detail/ResolverInfoContainer.cc +++ b/zypp/solver/detail/ResolverInfoContainer.cc @@ -55,7 +55,7 @@ namespace zypp res += ResolverInfo::toString (container); for (CResItemList::const_iterator iter = container._resItem_list.begin(); iter != container._resItem_list.end(); iter++) { if (iter != container._resItem_list.begin()) res += ", "; - res += ((constSpecPtr)(*iter))->asString(); + res += (*iter)->asString(); } res += "'>"; @@ -157,7 +157,7 @@ namespace zypp if (iter != _resItem_list.begin()) res += ", "; - res += (names_only ? (*iter)->name() : ((constSpecPtr)(*iter))->asString()); + res += (names_only ? (*iter)->name() : (*iter)->asString()); } res += "]"; diff --git a/zypp/solver/detail/ResolverQueue.cc b/zypp/solver/detail/ResolverQueue.cc index e1969a4..1472351 100644 --- a/zypp/solver/detail/ResolverQueue.cc +++ b/zypp/solver/detail/ResolverQueue.cc @@ -107,7 +107,7 @@ namespace zypp QueueItemInstallPtr item; if (_context->resItemIsPresent (resItem)) { - printf ("%s is already installed", ((constSpecPtr)resItem)->asString().c_str()); + printf ("%s is already installed", resItem->asString().c_str()); return; } @@ -393,8 +393,8 @@ namespace zypp if (priority != priority2 && r->name() == r2->name()) { if (r->version() == r2->version() - || (priority < priority2 && Spec::compare (r, r2) < 0) - || (priority > priority2 && Spec::compare (r, r2) > 0)) { + || (priority < priority2 && ResItem::compare (r, r2) < 0) + || (priority > priority2 && ResItem::compare (r, r2) > 0)) { if (priority < priority2) to_defer[item] = item; diff --git a/zypp/solver/detail/StoreWorld.cc b/zypp/solver/detail/StoreWorld.cc index a89f682..287ed66 100644 --- a/zypp/solver/detail/StoreWorld.cc +++ b/zypp/solver/detail/StoreWorld.cc @@ -142,7 +142,7 @@ namespace zypp if (dup_res != NULL) { int cmp; - cmp = Spec::compare (resItem, dup_res); + cmp = ResItem::compare (resItem, dup_res); //fprintf (stderr, "res: %s, dup_res %s, cmp %d\n", resItem->asString().c_str(), dup_res->asString().c_str(), cmp); /* If the resItem we are trying to add has a lower @@ -367,7 +367,7 @@ namespace zypp ChannelPtr StoreWorld::guessResItemChannel (constResItemPtr resItem) const { - fprintf (stderr, "StoreWorld::guessResItemChannel(%s) not implemented\n", ((constSpecPtr)resItem)->asString().c_str()); + fprintf (stderr, "StoreWorld::guessResItemChannel(%s) not implemented\n", resItem->asString().c_str()); return 0; } @@ -438,7 +438,7 @@ namespace zypp for (ResItemTable::const_iterator iter = _resItems_by_name.lower_bound(name); iter != _resItems_by_name.upper_bound(name); iter++) { constResItemPtr resItem = iter->second; if (resItem->isInstalled()) { - const string str = ((constSpecPtr)resItem)->asString(); + const string str = resItem->asString(); installed.insert (ResItemTable::value_type(str,resItem)); } } @@ -447,7 +447,7 @@ namespace zypp constResItemPtr resItem = iter->second; if (channel->equals (resItem->channel())) { if (resItem->isInstalled() - || installed.find(((constSpecPtr)resItem)->asString()) == installed.end()) { + || installed.find(resItem->asString()) == installed.end()) { if (fn) { if (! fn(resItem, data)) { count = -1; @@ -476,7 +476,7 @@ namespace zypp //----------------------------------------------------------------------------- // iterater over resItems with dependency - typedef std::map InstalledTable; + typedef std::map InstalledTable; int StoreWorld::foreachProvidingResItem (constDependencyPtr dep, ResItemAndSpecFn fn, void *data) diff --git a/zypp/solver/detail/World.cc b/zypp/solver/detail/World.cc index 1741b28..b46849a 100644 --- a/zypp/solver/detail/World.cc +++ b/zypp/solver/detail/World.cc @@ -315,7 +315,7 @@ namespace zypp ForeachUpgradeInfo *info = (ForeachUpgradeInfo *)data; int cmp; - cmp = Spec::compare (info->original_resItem, resItem); + cmp = ResItem::compare (info->original_resItem, resItem); if (cmp >= 0) // original is already better return true; @@ -400,7 +400,7 @@ namespace zypp /* All the versions are equal, so picking the first is fine */ constResItemPtr best_up = info->best_upgrades.front(); - cmp = Spec::compare (best_up, upgrade); + cmp = ResItem::compare (best_up, upgrade); if (cmp <= 0) { /* We have a new best resItem... */ @@ -447,7 +447,7 @@ namespace zypp UniqueTable::const_iterator pos = unique_table->find (resItem->name()); if (pos != unique_table->end()) { - if (Spec::compare (resItem, pos->second) <= 0) + if (ResItem::compare (resItem, pos->second) <= 0) return true; } diff --git a/zypp/solver/detail/XmlParser.cc b/zypp/solver/detail/XmlParser.cc index b9ede3a..e737f5d 100644 --- a/zypp/solver/detail/XmlParser.cc +++ b/zypp/solver/detail/XmlParser.cc @@ -233,7 +233,7 @@ namespace zypp , _processing (false) , _xml_context (NULL) , _state (PARSER_TOPLEVEL) - , _current_package (NULL) + , _current_package_stored(true) , _current_update (NULL) , _toplevel_dep_list (NULL) , _current_dep_list (NULL) @@ -330,7 +330,7 @@ namespace zypp if (_xml_context) xmlFreeParserCtxt(_xml_context); - if (_current_package) { + if (!_current_package_stored) { fprintf (stderr, "Incomplete package lost\n"); } @@ -404,25 +404,38 @@ namespace zypp void XmlParser::toplevelStart(const char * name, const xmlChar **attrs) { - // if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::toplevelStart(%s)\n", name); + // if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::toplevelStart(%s)\n", name); if (!strcmp(name, "package")) { - assert(_current_package == NULL); - - _state = PARSER_PACKAGE; - - _current_package = new Package(_channel); - _current_requires.clear(); - _current_provides.clear(); - _current_conflicts.clear(); - _current_children.clear(); - _current_recommends.clear(); - _current_suggests.clear(); - _current_obsoletes.clear(); + + _state = PARSER_PACKAGE; + + _current_package_stored = false; + _current_package_name = ""; + _current_package_prettyName = ""; + _current_package_summary = ""; + _current_package_description = ""; + _current_package_section = ""; + _current_package_kind = ResTraits::kind; + _current_package_arch = Arch_noarch; + _current_package_edition = Edition::noedition; + _current_package_fileSize = 0; + _current_package_installedSize = 0; + _current_package_installOnly = false; + _current_package_packageSet = false; + _current_package_packageUpdateList.clear(); + + _current_requires.clear(); + _current_provides.clear(); + _current_conflicts.clear(); + _current_children.clear(); + _current_recommends.clear(); + _current_suggests.clear(); + _current_obsoletes.clear(); } else { - if (getenv ("RC_SPEW_XML")) rc_debug (RC_DEBUG_LEVEL_ALWAYS, "! Not handling %s at toplevel", (const char *)name); + if (getenv ("RC_SPEW_XML")) rc_debug (RC_DEBUG_LEVEL_ALWAYS, "! Not handling %s at toplevel", (const char *)name); } } @@ -432,8 +445,6 @@ namespace zypp { // if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageStart(%s)\n", name); - assert(_current_package != NULL); - /* Only care about the containers here */ if (!strcmp((const char *)name, "history")) { _state = PARSER_HISTORY; @@ -498,12 +509,10 @@ namespace zypp { // if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::historyStart(%s)\n", name); - assert(_current_package != NULL); - if (!strcmp(name, "update")) { assert(_current_update == NULL); - _current_update = new PackageUpdate(_current_package->name()); + _current_update = new PackageUpdate(_current_package_name); _state = PARSER_UPDATE; } @@ -544,93 +553,102 @@ namespace zypp void XmlParser::packageEnd(const char *name) { - // if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageEnd(%s)\n", name); - - assert(_current_package != NULL); + // if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageEnd(%s)\n", name); if (!strcmp(name, "package")) { - PackageUpdatePtr update; - - /* If possible, grab the version info from the most recent update. - * Otherwise, try to find where the package provides itself and use - * that version info. - */ - update = _current_package->getLatestUpdate(); - - if (update) { - _current_package->setName (update->name()); - _current_package->setKind (update->kind()); - _current_package->setEdition (update->edition()); - _current_package->setFileSize (update->packageSize()); - _current_package->setInstalledSize (update->installedSize()); - } - else { - for (CDependencyList::const_iterator iter = _current_provides.begin(); iter != _current_provides.end(); iter++) { - if ((*iter)->relation() == Rel::EQ - && ((*iter)->name() == _current_package->name())) - { - _current_package->setKind ((*iter)->kind()); - _current_package->setEdition ((*iter)->edition()); - break; - } - } - } + PackageUpdatePtr update = NULL; + + /* If possible, grab the version info from the most recent update. + * Otherwise, try to find where the package provides itself and use + * that version info. + */ + if (!_current_package_packageUpdateList.empty()) + update = _current_package_packageUpdateList.back(); + + if (update) { + _current_package_name = update->name(); + _current_package_kind = update->kind(); + _current_package_edition = update->edition(); + _current_package_fileSize = update->packageSize(); + _current_package_installedSize = update->installedSize(); + } + else { + for (CDependencyList::const_iterator iter = _current_provides.begin(); iter != _current_provides.end(); iter++) { + if ((*iter)->relation() == Rel::EQ + && ((*iter)->name() == _current_package_name)) + { + _current_package_kind = (*iter)->kind(); + _current_package_edition = (*iter)->edition(); + break; + } + } + } -#if 0 - /* Hack for the old XML */ - if (_current_package->arch()->isUnknown()) { - _current_package->setArch (Arch::System); - } -#endif + // check if we provide ourselfs properly + + CDependencyList::const_iterator piter; + for (piter = _current_provides.begin(); piter != _current_provides.end(); piter++) { + if ((*piter)->relation() == Rel::EQ + && ((*piter)->name() == _current_package_name)) + { + break; + } + } + + if (piter == _current_provides.end()) { // no self provide found, construct one + constDependencyPtr selfdep = new Dependency (_current_package_name, Rel::EQ, _current_package_kind, _channel, _current_package_edition); + //if (getenv ("RC_SPEW")) fprintf (stderr, "Adding self-provide [%s]\n", selfdep->asString().c_str()); + _current_provides.push_front (selfdep); + } - - // check if we provide ourselfs properly - - CDependencyList::const_iterator piter; - for (piter = _current_provides.begin(); piter != _current_provides.end(); piter++) { - if ((*piter)->relation() == Rel::EQ - && ((*piter)->name() == _current_package->name())) - { - break; - } - } - - if (piter == _current_provides.end()) { // no self provide found, construct one - constDependencyPtr selfdep = new Dependency (_current_package->name(), Rel::EQ, _current_package->kind(), _current_package->channel(), _current_package->edition()); - //if (getenv ("RC_SPEW")) fprintf (stderr, "Adding self-provide [%s]\n", selfdep->asString().c_str()); - _current_provides.push_front (selfdep); - } - - _current_package->setRequires (_current_requires); - _current_package->setProvides (_current_provides); - _current_package->setConflicts (_current_conflicts); - _current_package->setObsoletes (_current_obsoletes); - _current_package->setSuggests (_current_suggests); - _current_package->setRecommends (_current_recommends); - - _all_packages.push_back (_current_package); + PackagePtr package = new Package ( _channel, + _current_package_name, + _current_package_edition, + _current_package_arch); + package->setRequires (_current_requires); + package->setProvides (_current_provides); + package->setConflicts (_current_conflicts); + package->setObsoletes (_current_obsoletes); + package->setSuggests (_current_suggests); + package->setRecommends (_current_recommends); + package->setPrettyName (_current_package_prettyName); + package->setSummary (_current_package_summary); + package->setDescription (_current_package_description); + package->setSection (new Section(_current_package_section.c_str())); + package->setFileSize (_current_package_fileSize); + package->setInstalledSize (_current_package_installedSize); + package->setInstallOnly (_current_package_installOnly); + package->setPackageSet (_current_package_packageSet); + for (PackageUpdateList::iterator iter = _current_package_packageUpdateList.begin(); + iter != _current_package_packageUpdateList.end(); + iter++) { + PackageUpdatePtr update = *iter; + update->setPackage (package); + package->addUpdate (update); + } + _all_packages.push_back (package); - if (getenv ("RC_SPEW")) fprintf (stderr, "%s\n", _current_package->asString(true).c_str()); - if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageEnd done: '%s'\n", _current_package->asString(true).c_str()); - // if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageEnd now %ld packages\n", _all_packages.size()); - _current_package = NULL; - _state = PARSER_TOPLEVEL; - } - else if (!strcmp(name, "name")) { _current_package->setName (strstrip (_text_buffer)); - } else if (!strcmp(name, "pretty_name")) { _current_package->setPrettyName (strstrip (_text_buffer)); - } else if (!strcmp(name, "summary")) { _current_package->setSummary (strstrip (_text_buffer)); - } else if (!strcmp(name, "description")) { _current_package->setDescription (strstrip (_text_buffer)); - } else if (!strcmp(name, "section")) { _current_package->setSection (new Section(strstrip (_text_buffer))); - } else if (!strcmp(name, "arch")) { _current_package->setArch (strstrip (_text_buffer)); - } else if (!strcmp(name, "filesize")) { _current_package->setFileSize (atoi(_text_buffer)); - } else if (!strcmp(name, "installedsize")) { _current_package->setInstalledSize (atoi(_text_buffer)); - } else if (!strcmp(name, "install_only")) { _current_package->setInstallOnly (true); - } else if (!strcmp(name, "package_set")) { _current_package->setPackageSet (true); + if (getenv ("RC_SPEW")) fprintf (stderr, "%s\n", package->asString(true).c_str()); + if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageEnd done: '%s'\n", package->asString(true).c_str()); + // if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageEnd now %ld packages\n", _all_packages.size()); + _current_package_stored = true; + _state = PARSER_TOPLEVEL; + } + else if (!strcmp(name, "name")) { _current_package_name = strstrip (_text_buffer); + } else if (!strcmp(name, "pretty_name")) { _current_package_prettyName = strstrip (_text_buffer); + } else if (!strcmp(name, "summary")) { _current_package_summary = strstrip (_text_buffer); + } else if (!strcmp(name, "description")) { _current_package_description = strstrip (_text_buffer); + } else if (!strcmp(name, "section")) { _current_package_section = strstrip (_text_buffer); + } else if (!strcmp(name, "arch")) { _current_package_arch = Arch(strstrip (_text_buffer)); + } else if (!strcmp(name, "filesize")) { _current_package_fileSize = atoi(_text_buffer); + } else if (!strcmp(name, "installedsize")) { _current_package_installedSize = atoi(_text_buffer); + } else if (!strcmp(name, "install_only")) { _current_package_installOnly = true; + } else if (!strcmp(name, "package_set")) { _current_package_packageSet = true; } else { - if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageEnd(%s) unknown\n", name); + if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageEnd(%s) unknown\n", name); } - // if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageEnd(%s) done\n", name); + // if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageEnd(%s) done\n", name); releaseBuffer(); } @@ -640,7 +658,6 @@ namespace zypp XmlParser::historyEnd(const char *name) { // if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::historyEnd(%s)\n", name); - assert(_current_package != NULL); if (!strcmp(name, "history")) { assert(_current_update == NULL); @@ -653,48 +670,45 @@ namespace zypp void XmlParser::updateEnd(const char *name) { - // if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::updateEnd(%s)\n", name); + // if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::updateEnd(%s)\n", name); constChannelPtr channel; const char *url_prefix = NULL; - assert(_current_package != NULL); assert(_current_update != NULL); - channel = _current_package->channel(); - - if (channel != NULL) { - url_prefix = channel->filePath (); + if (_channel != NULL) { + url_prefix = _channel->filePath (); } if (!strcmp(name, "update")) { - _current_package->addUpdate(_current_update); + _current_package_packageUpdateList.push_back(_current_update); - _current_update = NULL; - _state = PARSER_HISTORY; + _current_update = NULL; + _state = PARSER_HISTORY; } else if (!strcmp(name, "epoch")) { _current_update->setEpoch (atoi(_text_buffer)); } else if (!strcmp(name, "version")) { _current_update->setVersion (strstrip (_text_buffer)); } else if (!strcmp(name, "release")) { _current_update->setRelease (strstrip (_text_buffer)); } else if (!strcmp(name, "arch")) { _current_update->setArch (strstrip (_text_buffer)); } else if (!strcmp(name, "filename")) { - strstrip (_text_buffer); - if (url_prefix) { - _current_update->setPackageUrl (maybe_merge_paths(url_prefix, _text_buffer)); - } - else { - _current_update->setPackageUrl (_text_buffer); - } + strstrip (_text_buffer); + if (url_prefix) { + _current_update->setPackageUrl (maybe_merge_paths(url_prefix, _text_buffer)); + } + else { + _current_update->setPackageUrl (_text_buffer); + } } else if (!strcmp(name, "filesize")) { _current_update->setPackageSize (atoi(_text_buffer)); } else if (!strcmp(name, "installedsize")) { _current_update->setInstalledSize (atoi (_text_buffer)); } else if (!strcmp(name, "signaturename")) { - strstrip (_text_buffer); - if (url_prefix) { - _current_update->setSignatureUrl (maybe_merge_paths(url_prefix, _text_buffer)); - } - else { - _current_update->setSignatureUrl (_text_buffer); - } + strstrip (_text_buffer); + if (url_prefix) { + _current_update->setSignatureUrl (maybe_merge_paths(url_prefix, _text_buffer)); + } + else { + _current_update->setSignatureUrl (_text_buffer); + } } else if (!strcmp(name, "signaturesize")) { _current_update->setSignatureSize (atoi (_text_buffer)); } else if (!strcmp(name, "md5sum")) { _current_update->setMd5sum (strstrip (_text_buffer)); } else if (!strcmp(name, "importance")) { _current_update->setImportance (new Importance (strstrip (_text_buffer))); @@ -702,10 +716,10 @@ namespace zypp } else if (!strcmp(name, "hid")) { _current_update->setHid (atoi(_text_buffer)); } else if (!strcmp (name, "license")) { _current_update->setLicense (strstrip (_text_buffer)); } else { - fprintf (stderr, "XmlParser::updateEnd(%s) unknown\n", name); + fprintf (stderr, "XmlParser::updateEnd(%s) unknown\n", name); } - // if (_current_update != NULL && getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::updateEnd(%s) => '%s'\n", name, _current_update->asString().c_str()); + // if (_current_update != NULL && getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::updateEnd(%s) => '%s'\n", name, _current_update->asString().c_str()); releaseBuffer(); diff --git a/zypp/solver/detail/XmlParser.h b/zypp/solver/detail/XmlParser.h index 4a41052..b866376 100644 --- a/zypp/solver/detail/XmlParser.h +++ b/zypp/solver/detail/XmlParser.h @@ -68,7 +68,21 @@ namespace zypp PackageList _all_packages; /* Temporary state */ - PackagePtr _current_package; + bool _current_package_stored; + std::string _current_package_name; + std::string _current_package_prettyName; + std::string _current_package_summary; + std::string _current_package_description; + std::string _current_package_section; + Arch _current_package_arch; + Resolvable::Kind _current_package_kind; + Edition _current_package_edition; + int _current_package_fileSize; + int _current_package_installedSize; + bool _current_package_installOnly; + bool _current_package_packageSet; + PackageUpdateList _current_package_packageUpdateList; + CDependencyList _current_requires; CDependencyList _current_provides; CDependencyList _current_conflicts; diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.out index 97e42e8..7b867c9 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.out @@ -24,8 +24,8 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing amd-upl102-11[test] -libgdbm-1.17-1[test]: needed by [amd-upl102-11] +libgdbm-1.17-1[test]: needed by [amd-upl102-11[test]] Installing libgdbm-1.17-1[test] -libc6-2.0.7-1[test]: needed by [libgdbm-1.17-1] +libc6-2.0.7-1[test]: needed by [libgdbm-1.17-1[test]] Upgrading libc6-2.0.5-1 => libc6-2.0.7-1[test] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.out index 97bf0e5..eb24298 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.out @@ -14,7 +14,7 @@ Download Size: 246, Install Size: 456, Total Priority: 0, Min Priority: 800, Max - - - - - - - - - - Installing foo1-1.0-1[test] There are no installable providers of bar1 for foo1-1.0-1[test] -libc6-2.0.7-1[test]: needed by [foo1-1.0-1] +libc6-2.0.7-1[test]: needed by [foo1-1.0-1[test]] Upgrading libc6-2.0.5-1 => libc6-2.0.7-1[test] -[ERROR] foo1-1.0-1 is scheduled to be installed, but this is not possible because of dependency problems. +[ERROR] foo1-1.0-1[test] is scheduled to be installed, but this is not possible because of dependency problems. [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.out index f01a2fa..bfdd50d 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.out @@ -14,5 +14,5 @@ Download Size: 123, Install Size: 456, Total Priority: 0, Min Priority: 800, Max - - - - - - - - - - Installing foo2-1.0-1[test] There are no installable providers of bar2 >= 1.0 for foo2-1.0-1[test] -[ERROR] foo2-1.0-1 is scheduled to be installed, but this is not possible because of dependency problems. +[ERROR] foo2-1.0-1[test] is scheduled to be installed, but this is not possible because of dependency problems. [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.out index ba9f3ef..f686e13 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.out @@ -21,5 +21,5 @@ There are no installable providers of bar2 > 1.0 for foo2c-1.0-1[test] There are no installable providers of bar2 <= 1.1 for foo2b-1.0-1[test] There are no installable providers of bar3 == 2.0 for foo2a-1.0-1[test] There are no installable providers of bar2 >= 1.0 for foo2a-1.0-1[test] -[ERROR] foo2a-1.0-1 is scheduled to be installed, but this is not possible because of dependency problems. +[ERROR] foo2a-1.0-1[test] is scheduled to be installed, but this is not possible because of dependency problems. [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.out index c166bfd..fb54731 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.out @@ -17,5 +17,5 @@ Installing foo2d-1.0-1[test] Installing foo2e-1.0-1[test] There are no installable providers of bar2 <= 1.0 for foo2e-1.0-1[test] There are no installable providers of bar2 > 2.0 for foo2d-1.0-1[test] -[ERROR] foo2d-1.0-1 is scheduled to be installed, but this is not possible because of dependency problems. +[ERROR] foo2d-1.0-1[test] is scheduled to be installed, but this is not possible because of dependency problems. [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.out index 5e1ac17..44502d5 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.out @@ -23,6 +23,6 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing foo3-1.0-1[test] -bash-2.0.2-1[test]: needed by [foo3-1.0-1] +bash-2.0.2-1[test]: needed by [foo3-1.0-1[test]] Installing bash-2.0.2-1[test] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.out index 605e7db..476e4f1 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.out @@ -24,8 +24,8 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing foo4-1.0-1[test] -foo3-1.0-1[test]: needed by [foo4-1.0-1] +foo3-1.0-1[test]: needed by [foo4-1.0-1[test]] Installing foo3-1.0-1[test] -bash-2.0.2-1[test]: needed by [foo3-1.0-1] +bash-2.0.2-1[test]: needed by [foo3-1.0-1[test]] Installing bash-2.0.2-1[test] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.out index e727470..ab9c1ca 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.out @@ -23,5 +23,5 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing sendmail-2.0-1[test] -smail-1.0-1: conflicts with [sendmail-2.0-1] +smail-1.0-1: conflicts with [sendmail-2.0-1[test]] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.out index 786a657..7be879a 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.out @@ -24,6 +24,6 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing bar-2.0-1[test] -Marking foo-2.0-1[test] as uninstallable due to conflicts over foo (foo-2.0-1) from bar-2.0-1[test] [bar-2.0-1, foo-2.0-1] -foo-1.0-1: conflicts with [bar-2.0-1] +Marking foo-2.0-1[test] as uninstallable due to conflicts over foo (foo-2.0-1) from bar-2.0-1[test] [bar-2.0-1[test], foo-2.0-1[test]] +foo-1.0-1: conflicts with [bar-2.0-1[test]] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.out index ddd02d5..21860ae 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.out @@ -23,6 +23,6 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing libident-dev-2.0-1[test] -libident-2.0-1[test]: needed by [libident-dev-2.0-1] +libident-2.0-1[test]: needed by [libident-dev-2.0-1[test]]P Upgrading libident-1.9-1 => libident-2.0-1[test] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.out index 7e02a8b..f285031 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.out @@ -25,8 +25,8 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing test3-1.0-1[test] -Marking test4-1.0-1[test] as uninstallable due to conflicts over test2 (test2) from test3-1.0-1[test] [test3-1.0-1, test4-1.0-1] -test2-1.0-1: conflicts with [test3-1.0-1] +Marking test4-1.0-1[test] as uninstallable due to conflicts over test2 (test2) from test3-1.0-1[test] [test3-1.0-1[test], test4-1.0-1[test]] +test2-1.0-1: conflicts with [test3-1.0-1[test]] There are no installable providers of test2 for test1-1.0-1 test2 provides test2-1.0-1, but is scheduled to be uninstalled. test4 provides test2, but is scheduled to be uninstalled. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.out index 061a784..0652516 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.out @@ -24,6 +24,6 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing test4-1.0-1[test] -Marking resolvable test3-1.0-1 as uninstallable -test2-1.0-1: conflicts with [test4-1.0-1] +Marking resolvable test3-1.0-1[test] as uninstallable +test2-1.0-1: conflicts with [test4-1.0-1[test]] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.out index 05aea48..6b8c277 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.out @@ -23,5 +23,5 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing baz-1.0-1[test] -foo-1.0-1: conflicts with [baz-1.0-1] +foo-1.0-1: conflicts with [baz-1.0-1[test]] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.out index d2bcb2e..48823e3 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.out @@ -23,5 +23,5 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing baz2-1.0-1[test] -foo2-1.0-1: conflicts with [baz2-1.0-1] +foo2-1.0-1: conflicts with [baz2-1.0-1[test]] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.out index 3f6140c..aed4c80 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.out @@ -24,6 +24,6 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing baz3-1.0-1[test] -foo3-1.0-1: conflicts with [baz3-1.0-1] -Marking resolvable foo3-2.0-1 as uninstallable +foo3-1.0-1: conflicts with [baz3-1.0-1[test]] +Marking resolvable foo3-2.0-1[test] as uninstallable diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.out index dcbec33..3e12901 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.out @@ -24,5 +24,5 @@ other penalties=0 - - - - - - - - - - Upgrading required-1.0-1 => required-2.0-1[test] Upgrading requirerer-1.0-1 => requirerer-2.0-1[test] -requirerer-2.0-1[test]: needed by [required-2.0-1] +requirerer-2.0-1[test]: needed by [required-2.0-1[test]] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.out index ebbedce..0206e5a 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.out @@ -26,5 +26,5 @@ other penalties=0 - - - - - - - - - - Installing foonew-2.0-1[test] Installing fooc-1.0-1[test] -foo-1.0-1: conflicts with [fooc-1.0-1] +foo-1.0-1: conflicts with [fooc-1.0-1[test]] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.out index b13f2d2..413c7c9 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.out @@ -15,5 +15,5 @@ Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max - - - - - - - - - - Installing barnew-2.0-1[test] Installing barc-1.0-1[test] -[ERROR] A conflict over bar (bar) requires the removal of the to-be-installed resolvable barnew-2.0-1[test] [barc-1.0-1] +[ERROR] A conflict over bar (bar) requires the removal of the to-be-installed resolvable barnew-2.0-1[test] [barc-1.0-1[test]] [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-03-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-03-test.out index 9e420d4..a9f0659 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-03-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-03-test.out @@ -15,5 +15,5 @@ Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max - - - - - - - - - - Installing baznew-2.0-1[test] Installing bazc-1.0-1[test] -[ERROR] A conflict over <= baz-1.2 (baz) requires the removal of the to-be-installed resolvable baznew-2.0-1[test] [bazc-1.0-1] +[ERROR] A conflict over <= baz-1.2 (baz) requires the removal of the to-be-installed resolvable baznew-2.0-1[test] [bazc-1.0-1[test]] [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.out index 5ca409d..38b8ce7 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.out @@ -24,7 +24,7 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing libfoo2-2.0-1[test] -libfoo-1.2-1: replaced by [libfoo2-2.0-1] +libfoo-1.2-1: replaced by [libfoo2-2.0-1[test]] There are no installable providers of libfoo for something-1.0-1 libfoo provides libfoo-1.2-1, but is scheduled to be uninstalled. something-1.0-1: depended on [libfoo-1.2-1] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.out index 359b551..94a1c32 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.out @@ -23,5 +23,5 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing libbar2-2.0-1[test] -libbar-1.2-1: replaced by [libbar2-2.0-1] +libbar-1.2-1: replaced by [libbar2-2.0-1[test]] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.out index 5352620..dc797e0 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.out @@ -24,7 +24,7 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing libbaz2-2.0-1[test] -libbaz-1.2-1: replaced by [libbaz2-2.0-1] +libbaz-1.2-1: replaced by [libbaz2-2.0-1[test]] There are no installable providers of libbaz for somemore-1.0-1 libbaz provides libbaz-1.2-1, but is scheduled to be uninstalled. somemore-1.0-1: depended on [libbaz-1.2-1] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.out index 2d7db5e..59b3868 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.out @@ -15,6 +15,6 @@ Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max - - - - - - - - - - Installing A-1.0-1[test] Installing B-1.0-1[test] -Marking C-1.0-1[test] as uninstallable due to conflicts over C (C-1.0-1) from B-1.0-1[test] [B-1.0-1, C-1.0-1] -[ERROR] A conflict over A (A-1.0-1) requires the removal of the to-be-installed resolvable A-1.0-1[test] [B-1.0-1] +Marking C-1.0-1[test] as uninstallable due to conflicts over C (C-1.0-1) from B-1.0-1[test] [B-1.0-1[test], C-1.0-1[test]] +[ERROR] A conflict over A (A-1.0-1) requires the removal of the to-be-installed resolvable A-1.0-1[test] [B-1.0-1[test]] [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.out index 29ce8db..3b41b7f 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.out @@ -15,5 +15,5 @@ Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max - - - - - - - - - - Installing B-1.0-1[test] Installing C-1.0-1[test] -[ERROR] A conflict over C (C-1.0-1) requires the removal of the to-be-installed resolvable C-1.0-1[test] [B-1.0-1] +[ERROR] A conflict over C (C-1.0-1) requires the removal of the to-be-installed resolvable C-1.0-1[test] [B-1.0-1[test]] [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.out index db954c9..8d5bb66 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.out @@ -23,5 +23,5 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing G-1.0-1[test] -Marking D-1.0-1[test] as uninstallable due to conflicts over D (D-1.0-1) from G-1.0-1[test] [G-1.0-1, D-1.0-1] +Marking D-1.0-1[test] as uninstallable due to conflicts over D (D-1.0-1) from G-1.0-1[test] [G-1.0-1[test], D-1.0-1[test]] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.out b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.out index 63c67bb..d5df6b4 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.out @@ -40,28 +40,28 @@ Installing dviutils-1.0-8[test] Installing fetchmail-5.0.4-0[test] Installing freeciv-1.8.0-1[test] Installing ghostscript-5.10-2[test] -XFree86-libs-3.3.5-1[test]: needed by [dosemu-0.98.5-3] +XFree86-libs-3.3.5-1[test]: needed by [dosemu-0.98.5-3[test]] Installing XFree86-libs-3.3.5-1[test] -XFree86-libs-3.3.5-1[test]: needed by [dosemu-0.98.5-3] -teTeX-1.0.5-1[test]: needed by [dviutils-1.0-8] +XFree86-libs-3.3.5-1[test]: needed by [dosemu-0.98.5-3[test]] +teTeX-1.0.5-1[test]: needed by [dviutils-1.0-8[test]] Installing teTeX-1.0.5-1[test] -tcsh-6.08.00-2[test]: needed by [dviutils-1.0-8] +tcsh-6.08.00-2[test]: needed by [dviutils-1.0-8[test]] Upgrading tcsh-6.08.00-1 => tcsh-6.08.00-2[test] -XFree86-libs-3.3.5-1[test]: needed by [freeciv-1.8.0-1] -XFree86-libs-3.3.5-1[test]: needed by [freeciv-1.8.0-1] -XFree86-libs-3.3.5-1[test]: needed by [freeciv-1.8.0-1] -Xaw3d-1.5-2[test]: needed by [freeciv-1.8.0-1] +XFree86-libs-3.3.5-1[test]: needed by [freeciv-1.8.0-1[test]] +XFree86-libs-3.3.5-1[test]: needed by [freeciv-1.8.0-1[test]] +XFree86-libs-3.3.5-1[test]: needed by [freeciv-1.8.0-1[test]] +Xaw3d-1.5-2[test]: needed by [freeciv-1.8.0-1[test]] Installing Xaw3d-1.5-2[test] -XFree86-libs-3.3.5-1[test]: needed by [freeciv-1.8.0-1] -XFree86-libs-3.3.5-1[test]: needed by [freeciv-1.8.0-1] -xpm-4.11-1[test]: needed by [freeciv-1.8.0-1] +XFree86-libs-3.3.5-1[test]: needed by [freeciv-1.8.0-1[test]] +XFree86-libs-3.3.5-1[test]: needed by [freeciv-1.8.0-1[test]] +xpm-4.11-1[test]: needed by [freeciv-1.8.0-1[test]] Installing xpm-4.11-1[test] -XFree86-libs-3.3.5-1[test]: needed by [freeciv-1.8.0-1] -XFree86-libs-3.3.5-1[test]: needed by [ghostscript-5.10-2] -XFree86-libs-3.3.5-1[test]: needed by [ghostscript-5.10-2] -XFree86-libs-3.3.5-1[test]: needed by [ghostscript-5.10-2] -XFree86-libs-3.3.5-1[test]: needed by [ghostscript-5.10-2] -XFree86-libs-3.3.5-1[test]: needed by [ghostscript-5.10-2] -sed-3.02-1[test]: needed by [teTeX-1.0.5-1] +XFree86-libs-3.3.5-1[test]: needed by [freeciv-1.8.0-1[test]] +XFree86-libs-3.3.5-1[test]: needed by [ghostscript-5.10-2[test]] +XFree86-libs-3.3.5-1[test]: needed by [ghostscript-5.10-2[test]] +XFree86-libs-3.3.5-1[test]: needed by [ghostscript-5.10-2[test]] +XFree86-libs-3.3.5-1[test]: needed by [ghostscript-5.10-2[test]] +XFree86-libs-3.3.5-1[test]: needed by [ghostscript-5.10-2[test]] +sed-3.02-1[test]: needed by [teTeX-1.0.5-1[test]] Installing sed-3.02-1[test] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.out b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.out index 8c1f505..da77fc6 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.out @@ -31,20 +31,20 @@ other penalties=0 Installing inn-2.2.1-2[test] Installing isdn4k-utils-3.0beta2-4[test] Installing kdbg-1.0beta1-1[test] -XFree86-libs-3.3.5-1[test]: needed by [isdn4k-utils-3.0beta2-4] +XFree86-libs-3.3.5-1[test]: needed by [isdn4k-utils-3.0beta2-4[test]] Installing XFree86-libs-3.3.5-1[test] -XFree86-libs-3.3.5-1[test]: needed by [isdn4k-utils-3.0beta2-4] -XFree86-libs-3.3.5-1[test]: needed by [isdn4k-utils-3.0beta2-4] -XFree86-libs-3.3.5-1[test]: needed by [isdn4k-utils-3.0beta2-4] -XFree86-libs-3.3.5-1[test]: needed by [isdn4k-utils-3.0beta2-4] -XFree86-libs-3.3.5-1[test]: needed by [isdn4k-utils-3.0beta2-4] -gdbm-1.8.0-3[test]: needed by [isdn4k-utils-3.0beta2-4] +XFree86-libs-3.3.5-1[test]: needed by [isdn4k-utils-3.0beta2-4[test]] +XFree86-libs-3.3.5-1[test]: needed by [isdn4k-utils-3.0beta2-4[test]] +XFree86-libs-3.3.5-1[test]: needed by [isdn4k-utils-3.0beta2-4[test]] +XFree86-libs-3.3.5-1[test]: needed by [isdn4k-utils-3.0beta2-4[test]] +XFree86-libs-3.3.5-1[test]: needed by [isdn4k-utils-3.0beta2-4[test]] +gdbm-1.8.0-3[test]: needed by [isdn4k-utils-3.0beta2-4[test]] Installing gdbm-1.8.0-3[test] -XFree86-libs-3.3.5-1[test]: needed by [kdbg-1.0beta1-1] -XFree86-libs-3.3.5-1[test]: needed by [kdbg-1.0beta1-1] -kdelibs-1.1.2-1[test]: needed by [kdbg-1.0beta1-1] +XFree86-libs-3.3.5-1[test]: needed by [kdbg-1.0beta1-1[test]] +XFree86-libs-3.3.5-1[test]: needed by [kdbg-1.0beta1-1[test]] +kdelibs-1.1.2-1[test]: needed by [kdbg-1.0beta1-1[test]] Installing kdelibs-1.1.2-1[test] -kdelibs-1.1.2-1[test]: needed by [kdbg-1.0beta1-1] -kdelibs-1.1.2-1[test]: needed by [kdbg-1.0beta1-1] -kdelibs-1.1.2-1[test]: needed by [kdbg-1.0beta1-1] +kdelibs-1.1.2-1[test]: needed by [kdbg-1.0beta1-1[test]] +kdelibs-1.1.2-1[test]: needed by [kdbg-1.0beta1-1[test]] +kdelibs-1.1.2-1[test]: needed by [kdbg-1.0beta1-1[test]] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.out b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.out index b2ba606..cdcec83 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.out @@ -15,5 +15,5 @@ Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max - - - - - - - - - - Installing jdk-shared-1.0.2-8[test] Installing jdk-static-1.0.2-8[test] -[ERROR] jdk-shared-1.0.2-8 is scheduled to be installed, but this is not possible because of dependency problems. +[ERROR] jdk-shared-1.0.2-8[test] is scheduled to be installed, but this is not possible because of dependency probleĀ€ [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.out b/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.out index d4d7d9a..c6f9a9a 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.out @@ -33,17 +33,17 @@ Upgrading p6-1.0-1 => p6-2.0-1[test] Upgrading p8-1.0-1 => p8-2.0-1[test] Upgrading p8a-1.0-1 => p8a-2.0-1[test] Upgrading p9-1.0-1 => p9-2.0-1[test] -Marking resolvable p6b-2.0-1 as uninstallable -p3a-2.0-1[test]: needed by [p3-2.0-1] +Marking resolvable p6b-2.0-1[test] as uninstallable +p3a-2.0-1[test]: needed by [p3-2.0-1[test]] Installing p3a-2.0-1[test] -p9a-2.0-1[test]: needed by [p9-2.0-1] +p9a-2.0-1[test]: needed by [p9-2.0-1[test]] Installing p9a-2.0-1[test] -p5a-1.0-1: conflicts with [p5-2.0-1] +p5a-1.0-1: conflicts with [p5-2.0-1[test]] There are no installable providers of p5a for p5b-1.0-1 p5a provides p5a-1.0-1, but is scheduled to be uninstalled. There are no installable providers of p9c for p9a-2.0-1[test] p9c provides p9c-2.0-1, but it is uninstallable. Try installing it on its own for more details. There are no installable providers of p9b for p9a-2.0-1[test] p9b provides p9b-2.0-1, but it is uninstallable. Try installing it on its own for more details. -[ERROR] p9a-2.0-1 is scheduled to be installed, but this is not possible because of dependency problems. +[ERROR] p9a-2.0-1[test] is scheduled to be installed, but this is not possible because of dependency problems. [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.out b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.out index 36574da..31562cd 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.out @@ -23,9 +23,9 @@ download size=0.4k, install size=1.3k total priority=0, min priority=800, max priority=800 other penalties=-1600 - - - - - - - - - - -WindowMaker-1.0-1[test]: needed by [alt-1.0-1] +WindowMaker-1.0-1[test]: needed by [alt-1.0-1[test]] Installing WindowMaker-1.0-1[test] -sendmail-1.0-1[test]: needed by [alt-1.0-1] +sendmail-1.0-1[test]: needed by [alt-1.0-1[test]] Installing sendmail-1.0-1[test] Installing alt-1.0-1[test] @@ -41,9 +41,9 @@ download size=0.4k, install size=1.3k total priority=0, min priority=800, max priority=800 other penalties=-1600 - - - - - - - - - - -icewm-1.0-1[test]: needed by [alt-1.0-1] +icewm-1.0-1[test]: needed by [alt-1.0-1[test]] Installing icewm-1.0-1[test] -postfix-1.0-1[test]: needed by [alt-1.0-1] +postfix-1.0-1[test]: needed by [alt-1.0-1[test]] Installing postfix-1.0-1[test] Installing alt-1.0-1[test] >!> Solution #3: @@ -56,9 +56,9 @@ download size=0.4k, install size=1.3k total priority=0, min priority=800, max priority=800 other penalties=-1600 - - - - - - - - - - -WindowMaker-1.0-1[test]: needed by [alt-1.0-1] +WindowMaker-1.0-1[test]: needed by [alt-1.0-1[test]] Installing WindowMaker-1.0-1[test] -postfix-1.0-1[test]: needed by [alt-1.0-1] +postfix-1.0-1[test]: needed by [alt-1.0-1[test]] Installing postfix-1.0-1[test] Installing alt-1.0-1[test] >!> Solution #4: @@ -71,9 +71,9 @@ download size=0.4k, install size=1.3k total priority=0, min priority=800, max priority=800 other penalties=-1600 - - - - - - - - - - -icewm-1.0-1[test]: needed by [alt-1.0-1] +icewm-1.0-1[test]: needed by [alt-1.0-1[test]] Installing icewm-1.0-1[test] -sendmail-1.0-1[test]: needed by [alt-1.0-1] +sendmail-1.0-1[test]: needed by [alt-1.0-1[test]] Installing sendmail-1.0-1[test] Installing alt-1.0-1[test] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.out b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.out index 860a810..737c701 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.out @@ -14,5 +14,5 @@ Download Size: 123, Install Size: 456, Total Priority: 0, Min Priority: 800, Max - - - - - - - - - - Installing alt-unresolvable-1.0-1[test] There are no installable providers of something == 4.0-1 for alt-unresolvable-1.0-1[test] -[ERROR] alt-unresolvable-1.0-1 is scheduled to be installed, but this is not possible because of dependency problems. +[ERROR] alt-unresolvable-1.0-1[test] is scheduled to be installed, but this is not possible because of dependency problems. [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.out b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.out index 4e5fa31..59a4b46 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.out @@ -24,12 +24,12 @@ download size=0.4k, install size=1.3k total priority=0, min priority=800, max priority=800 other penalties=-1600 - - - - - - - - - - -postfix-1.0-1[test]: needed by [alt-conflict-1.0-1] +postfix-1.0-1[test]: needed by [alt-conflict-1.0-1[test]] Installing postfix-1.0-1[test] -icewm-1.0-1[test]: needed by [alt-conflict-1.0-1] +icewm-1.0-1[test]: needed by [alt-conflict-1.0-1[test]] Installing icewm-1.0-1[test] Installing alt-conflict-1.0-1[test] -foo-1.0-1: conflicts with [alt-conflict-1.0-1] +foo-1.0-1: conflicts with [alt-conflict-1.0-1[test]] Other Valid Solutions: @@ -44,12 +44,12 @@ download size=0.4k, install size=1.3k total priority=0, min priority=800, max priority=800 other penalties=-1600 - - - - - - - - - - -sendmail-1.0-1[test]: needed by [alt-conflict-1.0-1] +sendmail-1.0-1[test]: needed by [alt-conflict-1.0-1[test]] Installing sendmail-1.0-1[test] -WindowMaker-1.0-1[test]: needed by [alt-conflict-1.0-1] +WindowMaker-1.0-1[test]: needed by [alt-conflict-1.0-1[test]] Installing WindowMaker-1.0-1[test] Installing alt-conflict-1.0-1[test] -foo-1.0-1: conflicts with [alt-conflict-1.0-1] +foo-1.0-1: conflicts with [alt-conflict-1.0-1[test]] >!> Solution #3: Checksum = c852b21c >!> install WindowMaker-1.0-1[test] @@ -61,12 +61,12 @@ download size=0.4k, install size=1.3k total priority=0, min priority=800, max priority=800 other penalties=-1600 - - - - - - - - - - -postfix-1.0-1[test]: needed by [alt-conflict-1.0-1] +postfix-1.0-1[test]: needed by [alt-conflict-1.0-1[test]] Installing postfix-1.0-1[test] -WindowMaker-1.0-1[test]: needed by [alt-conflict-1.0-1] +WindowMaker-1.0-1[test]: needed by [alt-conflict-1.0-1[test]] Installing WindowMaker-1.0-1[test] Installing alt-conflict-1.0-1[test] -foo-1.0-1: conflicts with [alt-conflict-1.0-1] +foo-1.0-1: conflicts with [alt-conflict-1.0-1[test]] >!> Solution #4: Checksum = 3215b7c9 >!> install alt-conflict-1.0-1[test] @@ -78,10 +78,10 @@ download size=0.4k, install size=1.3k total priority=0, min priority=800, max priority=800 other penalties=-1600 - - - - - - - - - - -sendmail-1.0-1[test]: needed by [alt-conflict-1.0-1] +sendmail-1.0-1[test]: needed by [alt-conflict-1.0-1[test]] Installing sendmail-1.0-1[test] -icewm-1.0-1[test]: needed by [alt-conflict-1.0-1] +icewm-1.0-1[test]: needed by [alt-conflict-1.0-1[test]] Installing icewm-1.0-1[test] Installing alt-conflict-1.0-1[test] -foo-1.0-1: conflicts with [alt-conflict-1.0-1] +foo-1.0-1: conflicts with [alt-conflict-1.0-1[test]] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.out b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.out index 3025409..6a90a89 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.out @@ -14,5 +14,5 @@ Download Size: 123, Install Size: 456, Total Priority: 0, Min Priority: 800, Max - - - - - - - - - - Installing alt-conflict-unresolvable-1.0-1[test] There are no installable providers of something == 4.0-1 for alt-conflict-unresolvable-1.0-1[test] -[ERROR] alt-conflict-unresolvable-1.0-1 is scheduled to be installed, but this is not possible because of dependency problems. +[ERROR] alt-conflict-unresolvable-1.0-1[test] is scheduled to be installed, but this is not possible because of dependency problems. [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.out b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.out index b50d9a0..dc49591 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.out @@ -17,5 +17,5 @@ Download Size: 369, Install Size: 1368, Total Priority: 0, Min Priority: 800, Ma Installing lsb-1.0-1[test] Installing lprng-1.0-1[test] Installing cups-client-1.0-1[test] -[ERROR] lprng-1.0-1 is scheduled to be installed, but this is not possible because of dependency problems. +[ERROR] lprng-1.0-1[test] is scheduled to be installed, but this is not possible because of dependency problems. [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.out b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.out index 60e7231..5552c53 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.out @@ -26,5 +26,5 @@ other penalties=0 - - - - - - - - - - Installing lsb-1.0-1[test] Installing cups-client-1.0-1[test] -Marking resolvable lprng-1.0-1 as uninstallable +Marking resolvable lprng-1.0-1[test] as uninstallable diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.out b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.out index 8d8182d..6123206 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.out @@ -26,5 +26,5 @@ other penalties=0 - - - - - - - - - - Installing lsb-1.0-1[test] Installing lprng-1.0-1[test] -Marking resolvable cups-client-1.0-1 as uninstallable +Marking resolvable cups-client-1.0-1[test] as uninstallable diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.out b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.out index 36dab56..ee56993 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.out @@ -27,7 +27,7 @@ other penalties=0 - - - - - - - - - - Installing lsb-1.0-1[test] Installing cups-1.0-1[test] -cups-client-1.0-1[test]: needed by [cups-1.0-1] +cups-client-1.0-1[test]: needed by [cups-1.0-1[test]] Installing cups-client-1.0-1[test] -Marking resolvable lprng-1.0-1 as uninstallable +Marking resolvable lprng-1.0-1[test] as uninstallable diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.out b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.out index 433797b..dc9e0b9 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.out @@ -23,9 +23,9 @@ download size=0.2k, install size=0.9k total priority=0, min priority=800, max priority=800 other penalties=-800 - - - - - - - - - - -lprng-1.0-1[test]: needed by [lsb-1.0-1] +lprng-1.0-1[test]: needed by [lsb-1.0-1[test]] Installing lprng-1.0-1[test] -Marking resolvable cups-client-1.0-1 as uninstallable +Marking resolvable cups-client-1.0-1[test] as uninstallable Installing lsb-1.0-1[test] Other Valid Solutions: @@ -40,8 +40,8 @@ download size=0.2k, install size=0.9k total priority=0, min priority=800, max priority=800 other penalties=-800 - - - - - - - - - - -cups-client-1.0-1[test]: needed by [lsb-1.0-1] +cups-client-1.0-1[test]: needed by [lsb-1.0-1[test]] Installing cups-client-1.0-1[test] -Marking resolvable lprng-1.0-1 as uninstallable +Marking resolvable lprng-1.0-1[test] as uninstallable Installing lsb-1.0-1[test] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.out b/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.out index 48bd990..56c8f4f 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.out @@ -26,5 +26,5 @@ other penalties=0 - - - - - - - - - - Installing B-1.0-1[test] Installing C-1.0-1[test] -A-1.0-1: replaced by [C-1.0-1] +A-1.0-1: replaced by [C-1.0-1[test]] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.out b/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.out index 69e6d45..cab4662 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.out @@ -28,8 +28,8 @@ other penalties=0 - - - - - - - - - - Installing kdelibs3-devel-3.1-73[test] Installing kdelibs3-3.1-73[test] -kdesupport-2.0.1-5: replaced by [kdelibs3-3.1-73] -kdesupport-devel-2.0.1-5: replaced by [kdelibs3-devel-3.1-73] +kdesupport-2.0.1-5: replaced by [kdelibs3-3.1-73[test]] +kdesupport-devel-2.0.1-5: replaced by [kdelibs3-devel-3.1-73[test]] There are no installable providers of kdesupport-devel for kdelibs-devel-2.0.1-4 kdesupport-devel provides kdesupport-devel-2.0.1-5, but is scheduled to be uninstalled. There are no installable providers of kdesupport for kdesupport-devel-2.0.1-5 diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.out index 9def845..913c257 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.out @@ -24,6 +24,6 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing foo2-2.0-1[test] -foo-devel-1.1-1: replaced by [foo2-2.0-1] -foo-1.0-1: replaced by [foo2-2.0-1] +foo-devel-1.1-1: replaced by [foo2-2.0-1[test]] +foo-1.0-1: replaced by [foo2-2.0-1[test]] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-02-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-02-test.out index 9def845..913c257 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-02-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-02-test.out @@ -24,6 +24,6 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing foo2-2.0-1[test] -foo-devel-1.1-1: replaced by [foo2-2.0-1] -foo-1.0-1: replaced by [foo2-2.0-1] +foo-devel-1.1-1: replaced by [foo2-2.0-1[test]] +foo-1.0-1: replaced by [foo2-2.0-1[test]] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.out index f862038..e5cba15 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.out @@ -24,7 +24,7 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing barold2-4.0-1[test] -bar2-1.0-1: replaced by [barold2-4.0-1] +bar2-1.0-1: replaced by [barold2-4.0-1[test]] There are no installable providers of bar2 == 1.0-1 for bar2-devel-1.1-1 bar2 provides bar2-1.0-1, but is scheduled to be uninstalled. bar2-devel-1.1-1: depended on [bar2-1.0-1] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-06-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-06-test.out index f862038..e5cba15 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-06-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-06-test.out @@ -24,7 +24,7 @@ total priority=0, min priority=800, max priority=800 other penalties=0 - - - - - - - - - - Installing barold2-4.0-1[test] -bar2-1.0-1: replaced by [barold2-4.0-1] +bar2-1.0-1: replaced by [barold2-4.0-1[test]] There are no installable providers of bar2 == 1.0-1 for bar2-devel-1.1-1 bar2 provides bar2-1.0-1, but is scheduled to be uninstalled. bar2-devel-1.1-1: depended on [bar2-1.0-1] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.out index 56c9629..6077c7d 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.out @@ -15,5 +15,5 @@ Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max - - - - - - - - - - Installing aaa-1.0-1[test] Installing bbb-2.0-1[test] -[ERROR] A conflict over bbb (bbb-2.0-1) requires the removal of the to-be-installed resolvable bbb-2.0-1[test] [aaa-1.0-1] +[ERROR] A conflict over bbb (bbb-2.0-1) requires the removal of the to-be-installed resolvable bbb-2.0-1[test] [aaa-1.0-1[test]] [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.out index 3126bc1..eca19b6 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.out @@ -15,7 +15,7 @@ Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max - - - - - - - - - - Installing aaa-1.0-1[test] Installing ccc-1.0-1[test] -Marking bbb-2.0-1[test] as uninstallable due to conflicts over bbb (bbb-2.0-1) from aaa-1.0-1[test] [aaa-1.0-1, bbb-2.0-1] -[ERROR] Can't install bbb-2.0-1 since it is already marked as needing to be uninstalled +Marking bbb-2.0-1[test] as uninstallable due to conflicts over bbb (bbb-2.0-1) from aaa-1.0-1[test] [aaa-1.0-1[test], bbb-2.0-1[test]] +[ERROR] Can't install bbb-2.0-1[test] since it is already marked as needing to be uninstalled [ERROR] Marking this resolution attempt as invalid. -bbb-2.0-1[test]: needed by [ccc-1.0-1] +bbb-2.0-1[test]: needed by [ccc-1.0-1[test]] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.out index fb56527..c76d2e7 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.out @@ -15,9 +15,9 @@ Download Size: 492, Install Size: 1824, Total Priority: 0, Min Priority: 800, Ma - - - - - - - - - - Installing ddd-1.0-1[test] Installing ccc-1.0-1[test] -aaa-1.0-1[test]: needed by [ddd-1.0-1] +aaa-1.0-1[test]: needed by [ddd-1.0-1[test]] Installing aaa-1.0-1[test] -bbb-2.0-1[test]: needed by [ccc-1.0-1] +bbb-2.0-1[test]: needed by [ccc-1.0-1[test]] Installing bbb-2.0-1[test] -[ERROR] A conflict over bbb (bbb-2.0-1) requires the removal of the to-be-installed resolvable bbb-2.0-1[test] [aaa-1.0-1] +[ERROR] A conflict over bbb (bbb-2.0-1) requires the removal of the to-be-installed resolvable bbb-2.0-1[test] [aaa-1.0-1[test]] [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.out index e3fb67f..1720bc8 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.out @@ -15,5 +15,5 @@ Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max - - - - - - - - - - Installing eee-1.0-1[test] Installing fff-1.0-1[test] -[ERROR] A conflict over eee (eee-1.0-1) requires the removal of the to-be-installed resolvable eee-1.0-1[test] [fff-1.0-1] +[ERROR] A conflict over eee (eee-1.0-1) requires the removal of the to-be-installed resolvable eee-1.0-1[test] [fff-1.0-1[test]] [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.out index dc404ef..bb84019 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.out @@ -15,9 +15,9 @@ Download Size: 492, Install Size: 1824, Total Priority: 0, Min Priority: 800, Ma - - - - - - - - - - Installing ggg-1.0-1[test] Installing hhh-1.0-1[test] -fff-1.0-1[test]: needed by [ggg-1.0-1] +fff-1.0-1[test]: needed by [ggg-1.0-1[test]] Installing fff-1.0-1[test] -eee-1.0-1[test]: needed by [hhh-1.0-1] +eee-1.0-1[test]: needed by [hhh-1.0-1[test]] Installing eee-1.0-1[test] -[ERROR] A conflict over eee (eee-1.0-1) requires the removal of the to-be-installed resolvable eee-1.0-1[test] [fff-1.0-1] +[ERROR] A conflict over eee (eee-1.0-1) requires the removal of the to-be-installed resolvable eee-1.0-1[test] [fff-1.0-1[test]] [ERROR] Marking this resolution attempt as invalid. diff --git a/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.out b/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.out index 9ee1a50..5105bd7 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.out @@ -26,6 +26,6 @@ other penalties=0 - - - - - - - - - - Installing horde-1.0-1[test] Upgrading mod_php4-4.2.2-82 => mod_php4-4.3.4-43.4[test] -apache-mod_php4-4.3.4-43.4[test]: needed by [mod_php4-4.3.4-43.4] +apache-mod_php4-4.3.4-43.4[test]: needed by [mod_php4-4.3.4-43.4[test]] Installing apache-mod_php4-4.3.4-43.4[test] diff --git a/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.out b/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.out index 90a4f65..a079a70 100644 --- a/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.out +++ b/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.out @@ -27,8 +27,8 @@ other penalties=0 - - - - - - - - - - Installing XFree86-4.3.0-1[test] Installing XFree86-libs-4.3.0-1[test] -xshared-4.2.0-176: replaced by [XFree86-libs-4.3.0-1] -xf86-4.2.0-176: replaced by [XFree86-4.3.0-1] +xshared-4.2.0-176: replaced by [XFree86-libs-4.3.0-1[test]] +xf86-4.2.0-176: replaced by [XFree86-4.3.0-1[test]] There are no installable providers of libXrandr.so.1 for xf86-4.2.0-176 xshared provides libXrandr.so.1, but is scheduled to be uninstalled. -- 2.7.4