Hello community, here is the log from the commit of package libzypp for openSUSE:Factory checked in at Fri Dec 11 13:39:38 CET 2009. -------- --- libzypp/libzypp.changes 2009-12-04 18:03:39.000000000 +0100 +++ /mounts/work_src_done/STABLE/libzypp/libzypp.changes 2009-12-08 20:05:05.000000000 +0100 @@ -1,0 +2,6 @@ +Tue Dec 8 19:41:17 CET 2009 - ma@suse.de + +- Fix transaction building in presence of multiversion installable items. +- version 6.27.1 (19) + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- libzypp-6.27.0.tar.bz2 New: ---- libzypp-6.27.1.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libzypp.spec ++++++ --- /var/tmp/diff_new_pack.mTROey/_old 2009-12-11 13:39:00.000000000 +0100 +++ /var/tmp/diff_new_pack.mTROey/_new 2009-12-11 13:39:00.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package libzypp (Version 6.27.0) +# spec file for package libzypp (Version 6.27.1) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -24,7 +24,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build AutoReqProv: on Summary: Package, Patch, Pattern, and Product Management -Version: 6.27.0 +Version: 6.27.1 Release: 1 Source: %{name}-%{version}.tar.bz2 Source1: %{name}-rpmlintrc ++++++ libzypp-6.27.0.tar.bz2 -> libzypp-6.27.1.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.27.0/package/libzypp.changes new/libzypp-6.27.1/package/libzypp.changes --- old/libzypp-6.27.0/package/libzypp.changes 2009-12-04 17:45:22.000000000 +0100 +++ new/libzypp-6.27.1/package/libzypp.changes 2009-12-08 19:43:43.000000000 +0100 @@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Tue Dec 8 19:41:17 CET 2009 - ma@suse.de + +- Fix transaction building in presence of multiversion installable items. +- version 6.27.1 (19) + +------------------------------------------------------------------- Fri Dec 4 17:19:58 CET 2009 - ma@suse.de - Improve multiversion status handling and installation. (fate #305311) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.27.0/VERSION.cmake new/libzypp-6.27.1/VERSION.cmake --- old/libzypp-6.27.0/VERSION.cmake 2009-12-04 17:45:22.000000000 +0100 +++ new/libzypp-6.27.1/VERSION.cmake 2009-12-08 19:43:41.000000000 +0100 @@ -61,8 +61,8 @@ SET(LIBZYPP_MAJOR "6") SET(LIBZYPP_COMPATMINOR "19") SET(LIBZYPP_MINOR "27") -SET(LIBZYPP_PATCH "0") +SET(LIBZYPP_PATCH "1") # -# LAST RELEASED: 6.27.0 (19) +# LAST RELEASED: 6.27.1 (19) # (The number in parenthesis is LIBZYPP_COMPATMINOR) #======= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.27.0/zypp/PoolItem.h new/libzypp-6.27.1/zypp/PoolItem.h --- old/libzypp-6.27.0/zypp/PoolItem.h 2009-12-04 17:45:22.000000000 +0100 +++ new/libzypp-6.27.1/zypp/PoolItem.h 2009-12-08 19:43:41.000000000 +0100 @@ -198,6 +198,18 @@ { return lhs.identical( rhs.satSolvable() ); } + /** \relates PoolItem Test for same name version release and arch. */ + inline bool sameNVRA( const PoolItem & lhs, const PoolItem & rhs ) + { return lhs == rhs || lhs.satSolvable().sameNVRA( rhs.satSolvable() ); } + + /** \relates PoolItem Test for same name version release and arch. */ + inline bool sameNVRA( const PoolItem & lhs, sat::Solvable rhs ) + { return lhs.satSolvable().sameNVRA( rhs ); } + + /** \relates PoolItem Test for same name version release and arch. */ + inline bool sameNVRA( sat::Solvable lhs, const PoolItem & rhs ) + { return lhs.sameNVRA( rhs.satSolvable() ); } + /** Solvable to PoolItem transform functor. * \relates PoolItem * \relates sat::SolvIterMixin diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.27.0/zypp/sat/Solvable.h new/libzypp-6.27.1/zypp/sat/Solvable.h --- old/libzypp-6.27.0/zypp/sat/Solvable.h 2009-12-04 17:45:22.000000000 +0100 +++ new/libzypp-6.27.1/zypp/sat/Solvable.h 2009-12-08 19:43:41.000000000 +0100 @@ -191,7 +191,11 @@ */ bool identical( Solvable rhs ) const; - public: + /** Test for same name-version-release.arch */ + bool sameNVRA( Solvable rhs ) const + { return( ident() == rhs.ident() && edition() == rhs.edition() && arch() == rhs.arch() ); } + + public: /** \name Access to the \ref Solvable dependencies. * @@ -308,6 +312,9 @@ inline bool identical( Solvable lhs, Solvable rhs ) { return lhs.identical( rhs ); } + /** \relates Solvable Test for same name version release and arch. */ + inline bool sameNVRA( Solvable lhs, Solvable rhs ) + { return lhs.sameNVRA( rhs ); } /////////////////////////////////////////////////////////////////// namespace detail diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.27.0/zypp/sat/WhatObsoletes.cc new/libzypp-6.27.1/zypp/sat/WhatObsoletes.cc --- old/libzypp-6.27.0/zypp/sat/WhatObsoletes.cc 2009-12-04 17:45:22.000000000 +0100 +++ new/libzypp-6.27.1/zypp/sat/WhatObsoletes.cc 2009-12-08 19:43:41.000000000 +0100 @@ -87,6 +87,9 @@ void WhatObsoletes::ctorAdd( Solvable item_r ) { + if ( item_r.multiversionInstall() ) + return; // multiversion (rpm -i) does not evaluate any obsoletes + if ( obsoleteUsesProvides ) { WhatProvides obsoleted( item_r.obsoletes() ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.27.0/zypp/solver/detail/SATResolver.cc new/libzypp-6.27.1/zypp/solver/detail/SATResolver.cc --- old/libzypp-6.27.0/zypp/solver/detail/SATResolver.cc 2009-12-04 17:45:22.000000000 +0100 +++ new/libzypp-6.27.1/zypp/solver/detail/SATResolver.cc 2009-12-08 19:43:41.000000000 +0100 @@ -368,19 +368,26 @@ { public: bool is_updated; + bool multiversion; + sat::Solvable _installed; - CheckIfUpdate() + CheckIfUpdate( sat::Solvable installed_r ) : is_updated( false ) + , multiversion( installed_r.multiversionInstall() ) + , _installed( installed_r ) {} - // check this item will be installed + // check this item will be updated bool operator()( PoolItem item ) { - if (item.status().isToBeInstalled()) - { - is_updated = true; - return false; + if ( item.status().isToBeInstalled() ) + { + if ( ! multiversion || sameNVRA( _installed, item ) ) + { + is_updated = true; + return false; + } } return true; } @@ -459,9 +466,9 @@ if (_solv->decisionmap[it->id()] > 0) continue; - PoolItem poolItem( *it ); // Check if this is an update - CheckIfUpdate info; + CheckIfUpdate info( *it ); + PoolItem poolItem( *it ); invokeOnEach( _pool.byIdentBegin( poolItem ), _pool.byIdentEnd( poolItem ), resfilter::ByUninstalled(), // ByUninstalled @@ -832,10 +839,10 @@ if (_solv->decisionmap[i] > 0) continue; - PoolItem poolItem = _pool.find (sat::Solvable(i)); + PoolItem poolItem( _pool.find( sat::Solvable(i) ) ); if (poolItem) { // Check if this is an update - CheckIfUpdate info; + CheckIfUpdate info( (sat::Solvable(i)) ); invokeOnEach( _pool.byIdentBegin( poolItem ), _pool.byIdentEnd( poolItem ), resfilter::ByUninstalled(), // ByUninstalled ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org