Author: lslezak Date: Tue Apr 21 19:27:23 2009 New Revision: 56900 URL: http://svn.opensuse.org/viewcvs/yast?rev=56900&view=rev Log: - Pkg::ResolvableDependencies() - also return raw (unresolved) dependencies in the result (key "deps"), remove duplicated dependencies in the result (bnc#479575) Modified: trunk/pkg-bindings/package/yast2-pkg-bindings.changes trunk/pkg-bindings/src/Resolvable_Properties.cc Modified: trunk/pkg-bindings/package/yast2-pkg-bindings.changes URL: http://svn.opensuse.org/viewcvs/yast/trunk/pkg-bindings/package/yast2-pkg-bindings.changes?rev=56900&r1=56899&r2=56900&view=diff ============================================================================== --- trunk/pkg-bindings/package/yast2-pkg-bindings.changes (original) +++ trunk/pkg-bindings/package/yast2-pkg-bindings.changes Tue Apr 21 19:27:23 2009 @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Tue Apr 21 19:18:16 CEST 2009 - lslezak@suse.cz + +- Pkg::ResolvableDependencies() - also return raw (unresolved) + dependencies in the result (key "deps"), remove duplicated + dependencies in the result (bnc#479575) + +------------------------------------------------------------------- Mon Mar 30 16:24:58 CEST 2009 - lslezak@suse.cz - return "is_update_repo" flag in Pkg::SourceGeneralData() call Modified: trunk/pkg-bindings/src/Resolvable_Properties.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/pkg-bindings/src/Resolvable_Properties.cc?rev=56900&r1=56899&r2=56900&view=diff ============================================================================== --- trunk/pkg-bindings/src/Resolvable_Properties.cc (original) +++ trunk/pkg-bindings/src/Resolvable_Properties.cc Tue Apr 21 19:27:23 2009 @@ -407,6 +407,7 @@ _kinds.insert("enhances"); _kinds.insert("supplements"); YCPList ycpdeps; + YCPList rawdeps; for (std::setstd::string::const_iterator kind_it = _kinds.begin(); kind_it != _kinds.end(); ++kind_it) { @@ -414,21 +415,50 @@ zypp::Dep depkind(*kind_it); zypp::Capabilities deps = item.resolvable()->dep(depkind); + // add raw dependencies + for_(it, deps.begin(), deps.end()) + { + YCPMap rawdep; + rawdep->add(YCPString(*kind_it), YCPString(it->asString())); + rawdeps->add(rawdep); + } + zypp::sat::WhatProvides prv(deps); + // resolve dependencies for (zypp::sat::WhatProvides::const_iterator d = prv.begin(); d != prv.end(); ++d) { - YCPMap ycpdep; - ycpdep->add (YCPString ("res_kind"), YCPString (d->kind().asString())); - ycpdep->add (YCPString ("name"), YCPString (d->name())); - ycpdep->add (YCPString ("dep_kind"), YCPString (*kind_it)); - ycpdeps->add (ycpdep); + if (d->kind().asString().empty() || d->name().empty()) + { + y2debug("Empty kind or name: kind: %s, name: %s", d->kind().asString().c_str(), d->name().c_str()); + } + else + { + YCPMap ycpdep; + ycpdep->add (YCPString ("res_kind"), YCPString (d->kind().asString())); + ycpdep->add (YCPString ("name"), YCPString (d->name())); + ycpdep->add (YCPString ("dep_kind"), YCPString (*kind_it)); + + if (!ycpdeps.contains(ycpdep)) + { + ycpdeps->add (ycpdep); + } + } } } catch (...) {} } - info->add (YCPString ("dependencies"), ycpdeps); + + if (ycpdeps.size() > 0) + { + info->add (YCPString ("dependencies"), ycpdeps); + } + + if (rawdeps.size() > 0) + { + info->add (YCPString ("deps"), rawdeps); + } } return info; -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org