Merge branch 'master' of ssh://git@git.opensuse.org/projects/zypp/libzypp
authorJán Kupec <jkupec@suse.cz>
Thu, 22 Jan 2009 15:28:39 +0000 (16:28 +0100)
committerJán Kupec <jkupec@suse.cz>
Thu, 22 Jan 2009 15:28:39 +0000 (16:28 +0100)
mkChangelog
package/libzypp.changes
zypp/sat/detail/PoolImpl.cc

index 30cf432..19e16c4 100755 (executable)
@@ -36,12 +36,8 @@ entry template:
     Wed Jul 30 18:20:06 CEST 2008 - ma@suse.de
 
     -
-    - revision 10702
     #---delete-or-release---# LAST RELEASED: 5.3.2 (2) NEW RELEASE: 5.4.0 (4)
 
-The revision number is a guess and assumes you will check in to
-SVN shortly after editing (current server revision + 1).
-
 The line '#---delete-or-release---#...' shows the last version submitted
 to autobuild ('# LAST RELEASED:; tag in $VERSIONFILE). And also the current
 version, asuming you already updated the $VERSIONFILE according to your changes.
@@ -107,12 +103,6 @@ function getversion() {
   '
 }
 
-function nextrevision() {
-  svn status -u CMakeLists.txt \
-  | awk '/^Status against revision:/{print $4+1}'
-}
-
-
 test -r /etc/sysconfig/mail && source /etc/sysconfig/mail
 EMAIL="${USER}@${FROM_HEADER:-$(hostname -f)}"
 
@@ -125,7 +115,6 @@ echo "-------------------------------------------------------------------"
 echo "$(date) - $EMAIL"
 echo ""
 echo "- "
-echo "- revision $(nextrevision)"
 echo "$GOTVERSION"
 echo ""
 cat $CHANGESFILE
index 9d6f7da..2a05cf7 100644 (file)
@@ -1,4 +1,9 @@
 -------------------------------------------------------------------
+Thu Jan 22 10:41:27 CET 2009 - ma@suse.de
+
+- Tell satsolver about product buddies (bnc #466565)
+
+-------------------------------------------------------------------
 Fri Jan  9 17:01:10 CET 2009 - jkupec@suse.cz
 
 - handle HTTP 503 reponses as temporary errors (bnc #462545)
index 4bb9e22..7dc7d81 100644 (file)
@@ -26,6 +26,7 @@
 #include "zypp/sat/Pool.h"
 #include "zypp/Capability.h"
 #include "zypp/Locale.h"
+#include "zypp/PoolItem.h"
 
 #include "zypp/target/modalias/Modalias.h"
 
@@ -94,41 +95,49 @@ namespace zypp
         switch ( lhs )
         {
           case NAMESPACE_LANGUAGE:
+          {
+            static IdString en( "en" );
+            const std::tr1::unordered_set<IdString> & locale2Solver( reinterpret_cast<PoolImpl*>(data)->_locale2Solver );
+            if ( locale2Solver.empty() )
             {
-              static IdString en( "en" );
-              const std::tr1::unordered_set<IdString> & locale2Solver( reinterpret_cast<PoolImpl*>(data)->_locale2Solver );
-              if ( locale2Solver.empty() )
-              {
-                return rhs == en.id() ? RET_systemProperty : RET_unsupported;
-              }
-              return locale2Solver.find( IdString(rhs) ) != locale2Solver.end() ? RET_systemProperty : RET_unsupported;
+              return rhs == en.id() ? RET_systemProperty : RET_unsupported;
             }
-            break;
+            return locale2Solver.find( IdString(rhs) ) != locale2Solver.end() ? RET_systemProperty : RET_unsupported;
+          }
+          break;
 
           case NAMESPACE_MODALIAS:
-            {
-              // modalias strings in capability may be hexencoded because rpm does not allow
-              // ',', ' ' or other special chars.
-              return target::Modalias::instance().query( str::hexdecode( IdString(rhs).c_str() ) )
-                     ? RET_systemProperty
-                     : RET_unsupported;
-            }
-            break;
+          {
+            // modalias strings in capability may be hexencoded because rpm does not allow
+            // ',', ' ' or other special chars.
+            return target::Modalias::instance().query( str::hexdecode( IdString(rhs).c_str() ) )
+                ? RET_systemProperty
+              : RET_unsupported;
+          }
+          break;
 
           case NAMESPACE_FILESYSTEM:
+          {
+            static const Pathname sysconfigStoragePath( "/etc/sysconfig/storage" );
+            static WatchFile      sysconfigFile( sysconfigStoragePath, WatchFile::NO_INIT );
+            static std::set<std::string> requiredFilesystems;
+            if ( sysconfigFile.hasChanged() )
             {
-              static const Pathname sysconfigStoragePath( "/etc/sysconfig/storage" );
-              static WatchFile      sysconfigFile( sysconfigStoragePath, WatchFile::NO_INIT );
-              static std::set<std::string> requiredFilesystems;
-              if ( sysconfigFile.hasChanged() )
-              {
-                requiredFilesystems.clear();
-                str::split( base::sysconfig::read( sysconfigStoragePath )["USED_FS_LIST"],
-                            std::inserter( requiredFilesystems, requiredFilesystems.end() ) );
-              }
-              return requiredFilesystems.find( IdString(rhs).asString() ) != requiredFilesystems.end() ? RET_systemProperty : RET_unsupported;
+              requiredFilesystems.clear();
+              str::split( base::sysconfig::read( sysconfigStoragePath )["USED_FS_LIST"],
+                          std::inserter( requiredFilesystems, requiredFilesystems.end() ) );
             }
-            break;
+            return requiredFilesystems.find( IdString(rhs).asString() ) != requiredFilesystems.end() ? RET_systemProperty : RET_unsupported;
+          }
+          break;
+
+          case NAMESPACE_PRODUCTBUDDY:
+          {
+            PoolItem pi( (Solvable(rhs)) );
+            return( pi ? pi.buddy().id() : noId );
+          }
+
+          break;
         }
 
         INT << "Unhandled " << Capability( lhs ) << " vs. " << Capability( rhs ) << endl;