Author: mlandres Date: Fri Apr 11 15:17:47 2008 New Revision: 46414 URL: http://svn.opensuse.org/viewcvs/yast?rev=46414&view=rev Log: - Fix TargetProducts to return the satisfies products. Is satisfied status is computed and updated on each solver run. So it does not reflect any changes made since the last solver run. (#368104) Modified: trunk/pkg-bindings/package/yast2-pkg-bindings-devel-doc.changes trunk/pkg-bindings/src/Target.cc Modified: trunk/pkg-bindings/package/yast2-pkg-bindings-devel-doc.changes URL: http://svn.opensuse.org/viewcvs/yast/trunk/pkg-bindings/package/yast2-pkg-bi... ============================================================================== --- trunk/pkg-bindings/package/yast2-pkg-bindings-devel-doc.changes (original) +++ trunk/pkg-bindings/package/yast2-pkg-bindings-devel-doc.changes Fri Apr 11 15:17:47 2008 @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Fri Apr 11 15:13:53 CEST 2008 - ma@suse.de + +- Fix TargetProducts to return the satisfies products. Is satisfied + status is computed and updated on each solver run. So it does not + reflect any changes made since the last solver run. (#368104) + +------------------------------------------------------------------- Thu Apr 3 13:41:41 CEST 2008 - ma@suse.de - use repo name as mediaset label. Modified: trunk/pkg-bindings/src/Target.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/pkg-bindings/src/Target.cc?rev=46... ============================================================================== --- trunk/pkg-bindings/src/Target.cc (original) +++ trunk/pkg-bindings/src/Target.cc Fri Apr 11 15:17:47 2008 @@ -32,6 +32,7 @@ #include <ycp/YCPList.h> #include <ycp/YCPMap.h> +#include <zypp/base/Easy.h> #include <zypp/Product.h> #include <zypp/target/rpm/RpmDb.h> @@ -179,64 +180,63 @@ try { - for (ResPool::const_iterator it = zypp_ptr()->pool().begin(); it != zypp_ptr()->pool().end(); ++it) + zypp::ResPool pool( zypp::ResPool::instance() ); // ResPool is a global singleton + + for_( it, pool.satisfiedProductsBegin(), pool.satisfiedProductsEnd() ) { - if ( isKindzypp::Product( it->resolvable() ) && it->status().isInstalled() ) + zypp::Product::constPtr product = asKindzypp::Product( it->resolvable() ); + + #warning TargetProducts does not return all keys + YCPMap prod; + // see also PkgFunctions::Descr2Map and Product.ycp::Product + // FIXME unify with code in Pkg::ResolvablePropertiesEx + prod->add( YCPString("name"), YCPString( product->name() ) ); + prod->add( YCPString("version"), YCPString( product->edition().version() ) ); + #warning "Product::category is deprecated, remove from map and ycp code" + prod->add(YCPString("type"), YCPString(product->type())); + prod->add(YCPString("category"), YCPString(product->type())); + prod->add(YCPString("vendor"), YCPString(product->vendor())); + prod->add(YCPString("relnotes_url"), YCPString(product->releaseNotesUrl().asString())); + std::string product_summary = product->summary(); + if (product_summary.size() > 0) + { + prod->add(YCPString("display_name"), YCPString(product_summary)); + } + std::string product_shortname = product->shortName(); + if (product_shortname.size() > 0) { - zypp::Product::constPtr product = asKindzypp::Product( it->resolvable() ); - - #warning TargetProducts does not return all keys - YCPMap prod; - // see also PkgFunctions::Descr2Map and Product.ycp::Product - // FIXME unify with code in Pkg::ResolvablePropertiesEx - prod->add( YCPString("name"), YCPString( product->name() ) ); - prod->add( YCPString("version"), YCPString( product->edition().version() ) ); - #warning "Product::category is deprecated, remove from map and ycp code" - prod->add(YCPString("type"), YCPString(product->type())); - prod->add(YCPString("category"), YCPString(product->type())); - prod->add(YCPString("vendor"), YCPString(product->vendor())); - prod->add(YCPString("relnotes_url"), YCPString(product->releaseNotesUrl().asString())); - std::string product_summary = product->summary(); - if (product_summary.size() > 0) - { - prod->add(YCPString("display_name"), YCPString(product_summary)); - } - std::string product_shortname = product->shortName(); - if (product_shortname.size() > 0) - { - prod->add(YCPString("short_name"), YCPString(product_shortname)); - } - // use summary for the short name if it's defined - else if (product_summary.size() > 0) - { - prod->add(YCPString("short_name"), YCPString(product_summary)); - } - prod->add(YCPString("description"), YCPString((*it)->description())); - - std::string resolvable_summary = (*it)->summary(); - if (resolvable_summary.size() > 0) - { - prod->add(YCPString("summary"), YCPString((*it)->summary())); - } - YCPList updateUrls; - std::listzypp::Url pupdateUrls = product->updateUrls(); - for (std::listzypp::Url::const_iterator it = pupdateUrls.begin(); it != pupdateUrls.end(); ++it) - { - updateUrls->add(YCPString(it->asString())); - } - prod->add(YCPString("update_urls"), updateUrls); - - YCPList flags; - std::liststd::string pflags = product->flags(); - for (std::liststd::string::const_iterator flag_it = pflags.begin(); - flag_it != pflags.end(); ++flag_it) - { - flags->add(YCPString(*flag_it)); - } - prod->add(YCPString("flags"), flags); - - products->add(prod); + prod->add(YCPString("short_name"), YCPString(product_shortname)); } + // use summary for the short name if it's defined + else if (product_summary.size() > 0) + { + prod->add(YCPString("short_name"), YCPString(product_summary)); + } + prod->add(YCPString("description"), YCPString((*it)->description())); + + std::string resolvable_summary = (*it)->summary(); + if (resolvable_summary.size() > 0) + { + prod->add(YCPString("summary"), YCPString((*it)->summary())); + } + YCPList updateUrls; + std::listzypp::Url pupdateUrls = product->updateUrls(); + for (std::listzypp::Url::const_iterator it = pupdateUrls.begin(); it != pupdateUrls.end(); ++it) + { + updateUrls->add(YCPString(it->asString())); + } + prod->add(YCPString("update_urls"), updateUrls); + + YCPList flags; + std::liststd::string pflags = product->flags(); + for (std::liststd::string::const_iterator flag_it = pflags.begin(); + flag_it != pflags.end(); ++flag_it) + { + flags->add(YCPString(*flag_it)); + } + prod->add(YCPString("flags"), flags); + + products->add(prod); } } catch(...) -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org