Hello community,

here is the log from the commit of package libzypp for openSUSE:11.4
checked in at Tue Mar 13 14:03:05 CET 2012.



--------
--- old-versions/11.4/UPDATES/all/libzypp/libzypp.changes       2011-10-13 
13:18:13.000000000 +0200
+++ 11.4/libzypp/libzypp.changes        2012-03-02 11:02:02.000000000 +0100
@@ -1,0 +2,17 @@
+Thu Mar  1 18:31:03 CET 2012 - m...@suse.de
+
+- Apply soft locks by name and not per package (bnc#749418)
+- version 8.13.3 (10)
+
+-------------------------------------------------------------------
+Mon Jan 16 16:28:21 CET 2012 - m...@suse.de
+
+- CheckAccessDeleted: avoid duplicate entries for the same PID (bnc#716972)
+- version 8.13.2 (10)
+
+-------------------------------------------------------------------
+Tue Jan 10 18:41:02 CET 2012 - m...@suse.de
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------

calling whatdependson for 11.4-i586


Old:
----
  libzypp-8.13.1.tar.bz2

New:
----
  libzypp-8.13.3.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.mbRZ5t/_old  2012-03-13 14:02:05.000000000 +0100
+++ /var/tmp/diff_new_pack.mbRZ5t/_new  2012-03-13 14:02:05.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package libzypp
 #
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -23,7 +23,7 @@
 Group:          System/Packages
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Summary:        Package, Patch, Pattern, and Product Management
-Version:        8.13.1
+Version:        8.13.3
 Release:        0.<RELEASE2>
 Source:         %{name}-%{version}.tar.bz2
 Source1:        %{name}-rpmlintrc

++++++ libzypp-8.13.1.tar.bz2 -> libzypp-8.13.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.13.1/VERSION.cmake 
new/libzypp-8.13.3/VERSION.cmake
--- old/libzypp-8.13.1/VERSION.cmake    2011-10-13 13:10:00.000000000 +0200
+++ new/libzypp-8.13.3/VERSION.cmake    2012-03-02 09:26:25.000000000 +0100
@@ -45,24 +45,24 @@
 # ==================================================
 
 #=======
-# - Update version according to your changes,
-#   but based on 'LAST RELEASED:' below. I.e
-#   there's no need to increase LIBZYPP_MINOR
-#   if it already differs from 'LAST RELEASED:'.
-#
 # - MOST IMPORTANT:
-#   Before you submitt to autobuild, rmember the
-#   new version in 'LAST RELEASED:', and add a
-#   note in the changes file.
+#   - Before you submitt to git:
+#     - Remember the new version in 'LAST RELEASED:'
+#     - State the new version in the changes file by adding a line
+#       "- version MAJOR.MINOR.PATCH (COMPATMINOR)"
+#     - Commit changes and version files together in a separate
+#       commit using -m 'changes MAJOR.MINOR.PATCH (COMPATMINOR)'
+#     - Tag the above commit with 'MAJOR.MINOR.PATCH' using
+#       -m "tagging MAJOR.MINOR.PATCH".
 #
-# - Consider calling ./mkChangelog to edit the
-#   changes file. See './mkChangelog -h' for help.
+# - Consider calling ./mkChangelog to assist you.
+#   See './mkChangelog -h' for help.
 #
 SET(LIBZYPP_MAJOR "8")
 SET(LIBZYPP_COMPATMINOR "10")
 SET(LIBZYPP_MINOR "13")
-SET(LIBZYPP_PATCH "1")
+SET(LIBZYPP_PATCH "3")
 #
-# LAST RELEASED: 8.13.1 (10)
+# LAST RELEASED: 8.13.3 (10)
 # (The number in parenthesis is LIBZYPP_COMPATMINOR)
 #=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.13.1/mkChangelog 
new/libzypp-8.13.3/mkChangelog
--- old/libzypp-8.13.1/mkChangelog      2011-10-13 13:10:00.000000000 +0200
+++ new/libzypp-8.13.3/mkChangelog      2012-03-02 09:26:25.000000000 +0100
@@ -1,80 +1,42 @@
 #! /bin/bash
-#
+
+function Recho() { echo -e "\e[0;31m""$@""\e[0m"; }
+function Gecho() { echo -e "\e[0;32m""$@""\e[0m"; }
+function Becho() { echo -e "\e[0;34m""$@""\e[0m"; }
 
 function errexit() {
   exec >&2
-  echo "Error: $@"
+  Recho "Error: $@"
   exit 1
 }
 
-export LC_ALL=""
-EDITOR=${EDITOR:-vi}
-
-TDIR=$(dirname $0)
-test -n "$TDIR" && cd $TDIR
-
-CHANGESFILE=$(ls package/*.changes)
-test -f "$CHANGESFILE" || errexit "No changes file '$CHANGESFILE'"
-
-VERSIONFILE="VERSION.cmake"
-test -f "$VERSIONFILE" || errexit "No version file '$VERSIONFILE'"
-
-LANG="en"
-
-## Version.cmake tags in getversion() are still zypp specific.
-
 function usage() {
   exec >&2
-cat <<EOF
-
-Usage:   $(basename $0) [OPTIONS]
-Options: -h,-?,--help   This page.
-
-$(basename $0) will load the changes file '$CHANGESFILE'
-into your editor (\$EDITOR=$EDITOR), providing a new changes
-entry template:
+  cat <<EOF
+  Usage:
+       $(basename $0) [OPTIONS]
+
+  Options:
+       -h,-?,--help    This page.
+       -n              Dryrun.
+
+Prepare a new changes file entry preloaded with all commits since the last
+changes tag and load it into \$EDITOR (vi). If the version file was changed,
+optionally submitt and tag the new changes. Otherwise simply leave the changes
+in place.
 
-    -------------------------------------------------------------------
-    Wed Jul 30 18:20:06 CEST 2008 - m...@suse.de
-
-    -
-    #---delete-or-release---# LAST RELEASED: 5.3.2 (2) NEW RELEASE: 5.4.0 (4)
-
-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.
-(The number in parenthesis is _COMPATMINOR)
-
-
-- Delete the line if you don't want to submit the package to autobuild.
-
-- Leave the line in place if you want to submit the package.
-
-
-Closing the editor you are prompted:
-
-    #---delete-or-release---# LAST RELEASED: 5.3.2 (2) NEW RELEASE: 5.4.0 (4)
-    (a)bort, (c)ontinue, (e)dit :
-
-Choosing (c)ontinue will write the new changes file. The 
'#---delete-or-release---#'
-line is missing in case you deleted it. It's presence will remind you
-that it is going to be converted into:
-
-    - version 5.4.0
-
-and the '# LAST RELEASED:; tag in $VERSIONFILE will be updated accordingly.
-Now check the result, check in your changes, build the package and submit
-to autobuild.
-
-Released by accident? Don't mind. Nothing bad will happen. If you want to
-undo the change, restore the 'LAST RELEASED: ' entry in $VERSIONFILE and
-delete the '- version' line in $CHANGESFILE'.
+Don't forgett to push created tags as well: git push --tags
 
 EOF
   exit 1
 }
 
+DRYRUN=0
+
 case "$1" in
+  -[n]*)
+    DRYRUN=1
+    ;;
   -[hH?]*)
     usage
     ;;
@@ -83,6 +45,19 @@
     ;;
 esac
 
+
+export LC_ALL=""
+export LANG="en"
+EDITOR=${EDITOR:-vi}
+
+EMAIL="$(git config --get user.email)"
+
+CHANGESFILE=$(ls package/*.changes)
+test -f "$CHANGESFILE" || errexit "No changes file '$CHANGESFILE'"
+
+VERSIONFILE="VERSION.cmake"
+test -f "$VERSIONFILE" || errexit "No version file '$VERSIONFILE'"
+
 function getversion() {
   cat "$VERSIONFILE" \
   | awk '
@@ -94,66 +69,133 @@
   /^ *SET *\( *LIBZYPP_MINOR *"[0-9]+" *\)/       {getnum();minor=$0}
   /^ *SET *\( *LIBZYPP_PATCH *"[0-9]+" *\)/       {getnum();patch=$0}
   /^ *SET *\( *LIBZYPP_COMPATMINOR *"[0-9]+" *\)/ {getnum();compatminor=$0}
-  /^# LAST RELEASED:/                             {gsub("^.*RELEASED: 
*","");gsub(" +$","");gsub(" +\\("," (");lastrelease=$0}
+  /^# LAST RELEASED:/ {
+      gsub("^.*RELEASED: *","");
+      gsub(" +$","");
+      lastcompat=$0
+      gsub(".*\\(","",lastcompat)
+      gsub("\\).*","",lastcompat)
+      gsub(" +\\(.*","");
+      lastrelease=$0
+  }
   END {
     thisrelease = major"."minor"."patch" ("compatminor")"
-    if ( thisrelease == lastrelease )
-      print "#---delete-or-release---# LAST RELEASED: "lastrelease" UNCHANGED 
RELEASE: "thisrelease
-    else
-      print "#---delete-or-release---# LAST RELEASED: "lastrelease" NEW 
RELEASE: "thisrelease
+    printf "LAST_RELEASE='%s'\n", lastrelease
+    printf "LAST_COMPAT='%s'\n", lastcompat
+    printf "THIS_RELEASE='%s'\n", major"."minor"."patch
+    printf "THIS_COMPAT='%s'\n", compatminor
   }
   '
 }
 
-test -r /etc/sysconfig/mail && source /etc/sysconfig/mail
-EMAIL="${USER}@${FROM_HEADER:-$(hostname -f)}"
+function sameVersion() {
+  test "$LAST_RELEASE" == "$THIS_RELEASE" -a "$LAST_COMPAT" == "$THIS_COMPAT"
+}
+
+function getchanges() {
+  git log --no-merges --pretty=format:'- %s' "$LAST_RELEASE"..HEAD | grep -v 
'po.tar.bz2'
+}
+
+function newchangesentry() {
+  echo "-------------------------------------------------------------------"
+  echo "$(date) - $EMAIL"
+  echo ""
+  echo "$(getchanges)"
+  sameVersion || {
+    echo "- version $THIS_RELEASE ($THIS_COMPAT)"
+  }
+  echo ""
+}
+
+git status --porcelain | grep '^[^ ?]' | grep -v "$VERSIONFILE\|$CHANGESFILE" 
&& {
+  Becho "!!! Files other than version and changes are added to the index."
+  Becho "!!! Doing dryrun..."
+  DRYRUN=1
+}
+if [ "$DRYRUN" == "1" ]; then
+  eval $(getversion)
+  newchangesentry
+  sameVersion && {
+    Becho "!!! Version is unchanged at $LAST_RELEASE ($LAST_COMPAT)."
+  }
+  exit 0
+fi
 
-GOTVERSION="$(getversion)"
 
+# check version file
+#
+while true; do
+  # $LAST_RELEASE
+  # $LAST_COMPAT
+  # $THIS_RELEASE
+  # $THIS_COMPAT
+  eval $(getversion)
+  sameVersion && {
+    newchangesentry
+    Becho "!!! Version is unchanged at $LAST_RELEASE ($LAST_COMPAT)."
+    read -n 1 -p "$(Gecho "(a)bort, (c)ontinue, (e)dit version: ")" RES
+    echo
+    case "$RES" in
+      [eE]*)
+       $EDITOR $VERSIONFILE
+       continue
+       ;;
+      [cC])
+       Becho "!!! Leave $VERSIONFILE untouched"
+       break
+       ;;
+      *)
+       errexit "aborted"
+       ;;
+    esac
+  }
+  break
+done
+
+# prepare changes file
+#
 TMPFILE=$(mktemp)
-exec 3>&1-
-exec >$TMPFILE
-echo "-------------------------------------------------------------------"
-echo "$(date) - $EMAIL"
-echo ""
-echo "- "
-echo "$GOTVERSION"
-echo ""
-cat $CHANGESFILE
-exec >&3
+trap " [ -f \"$TMPFILE\" ] && /bin/rm -f -- \"$TMPFILE\" " 0 1 2 3 13 15
+{ newchangesentry; cat $CHANGESFILE; } >$TMPFILE
 
 RES=e
 while [ "$RES" == "e" ]; do
   $EDITOR $TMPFILE
   echo
-  NEWREL=$(grep '#---delete-or-release---#' $TMPFILE)
-  test -n "$NEWREL" && echo "$NEWREL"
-  read -n 1 -p "(a)bort, (c)ontinue, (e)dit : " RES
-  echo
+  awk '{print}/^----------/{n=n+1; if ( n == 2 ) exit 0; }' $TMPFILE
+  read -n 1 -p "$(Gecho "(a)bort, (c)ontinue, (s)ubmitt, (e)dit : ")" RES
   echo
   case "$RES" in
     [eE]*)
       RES=e
       ;;
-    [cC])
-      test -n "$NEWREL" && {
-        echo "Remember new release in $VERSIONFILE"
-        sed -i 's/^.*#---delete-or-release---#.*RELEASE:/- version/' $TMPFILE
-        NEWREL=$(sed 's/^.*#---delete-or-release---#.*RELEASE:/# LAST 
RELEASED:/' <<<"$NEWREL")
-        sed -i "s/^# LAST RELEASED:.*$/$NEWREL/" $VERSIONFILE
+    [cCsS])
+      Becho "!!! Store new $CHANGESFILE"
+      mv $TMPFILE $CHANGESFILE
+
+      test "$RES" == "s" && {
+       if [ "$LAST_RELEASE" == "$THIS_RELEASE" ]; then
+         git add "$CHANGESFILE" && git commit -m "changes"
+       else
+         Becho "!!! Remember new version $THIS_RELEASE in $VERSIONFILE"
+         sed -i "s/^# LAST RELEASED:.*$/# LAST RELEASED: $THIS_RELEASE 
($THIS_COMPAT)/" $VERSIONFILE
+         if git add "$CHANGESFILE" "$VERSIONFILE" \
+               && git commit -m "changes $THIS_RELEASE ($THIS_COMPAT)" \
+                 && git tag -m "tagging $THIS_RELEASE" "$THIS_RELEASE" HEAD; 
then
+           Becho "!!!"
+           Becho "!!! Do not forget to push the commit and the tag: $(Gecho 
git push --tags origin HEAD)"
+           Becho "!!!"
+         else
+           Recho "!!!"
+           Recho "!!! Commit failed. Check manually. (git reset HEAD~)"
+           Recho "!!!"
+           exit 9
+         fi
+       fi
       }
-
-      echo "Store new $CHANGESFILE"
-      cp $TMPFILE $CHANGESFILE
-
-      echo "$(sed 's/^.*#---delete-or-release---#.*RELEASE:/# CURRENT 
RELEASE:/' <<<"$GOTVERSION")"
-      awk '{print}/^----------/{n=n+1; if ( n == 2 ) exit 0; }' $CHANGESFILE
-
       ;;
     *)
-      echo "Leave $CHANGESFILE untouched"
+      Becho "!!! Leave $CHANGESFILE untouched"
       ;;
   esac
 done
-
-rm -f $TMPFILE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.13.1/package/libzypp.changes 
new/libzypp-8.13.3/package/libzypp.changes
--- old/libzypp-8.13.1/package/libzypp.changes  2011-10-13 13:10:00.000000000 
+0200
+++ new/libzypp-8.13.3/package/libzypp.changes  2012-03-02 09:26:25.000000000 
+0100
@@ -1,4 +1,21 @@
 -------------------------------------------------------------------
+Thu Mar  1 18:31:03 CET 2012 - m...@suse.de
+
+- Apply soft locks by name and not per package (bnc#749418)
+- version 8.13.3 (10)
+
+-------------------------------------------------------------------
+Mon Jan 16 16:28:21 CET 2012 - m...@suse.de
+
+- CheckAccessDeleted: avoid duplicate entries for the same PID (bnc#716972)
+- version 8.13.2 (10)
+
+-------------------------------------------------------------------
+Tue Jan 10 18:41:02 CET 2012 - m...@suse.de
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------
 Thu Oct 13 12:21:19 CEST 2011 - m...@suse.de
 
 - Must not differ between type nfs and nfs4 when checking the mount 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.13.1/zypp/misc/CheckAccessDeleted.cc 
new/libzypp-8.13.3/zypp/misc/CheckAccessDeleted.cc
--- old/libzypp-8.13.1/zypp/misc/CheckAccessDeleted.cc  2011-10-13 
13:10:00.000000000 +0200
+++ new/libzypp-8.13.3/zypp/misc/CheckAccessDeleted.cc  2012-03-02 
09:26:25.000000000 +0100
@@ -12,6 +12,7 @@
 #include <iostream>
 #include "zypp/base/LogTools.h"
 #include "zypp/base/String.h"
+#include "zypp/base/Tr1hash.h"
 #include "zypp/base/Exception.h"
 
 #include "zypp/PathInfo.h"
@@ -39,23 +40,27 @@
     // (ftkn).filedescriptor type linkcount filename
     //
     /////////////////////////////////////////////////////////////////
+
+    /** lsof output line + files extracted so far for this PID */
+    typedef std::pair<std::string,std::tr1::unordered_set<std::string> > 
CacheEntry;
+
     /** Add \c cache to \c data if the process is accessing deleted files.
      * \c pid string in \c cache is the proc line \c (pcuLR), \c iles
      * are lready in place. Always clear the \c cache.files!
     */
-    inline void addDataIf( std::vector<CheckAccessDeleted::ProcInfo> & data_r, 
CheckAccessDeleted::ProcInfo & cache_r )
+    inline void addDataIf( std::vector<CheckAccessDeleted::ProcInfo> & data_r, 
const CacheEntry & cache_r )
     {
-      if ( cache_r.files.empty() )
+      const std::tr1::unordered_set<std::string> & filelist( cache_r.second );
+
+      if ( filelist.empty() )
         return;
 
       // at least one file access so keep it:
       data_r.push_back( CheckAccessDeleted::ProcInfo() );
       CheckAccessDeleted::ProcInfo & pinfo( data_r.back() );
+      pinfo.files.insert( pinfo.files.begin(), filelist.begin(), 
filelist.end() );
 
-      std::string pline;
-      cache_r.pid.swap( pline );
-      cache_r.files.swap( pinfo.files ); // clears cache.files
-
+      const std::string & pline( cache_r.first );
       for_( ch, pline.begin(), pline.end() )
       {
         switch ( *ch )
@@ -87,16 +92,16 @@
         if ( ! command.empty() )
           pinfo.command = command.basename();
       }
-
       //MIL << " Take " << pinfo << endl;
     }
 
-    /** Add line to cache if it refers to a deleted executable or library file:
+
+    /** Add file to cache if it refers to a deleted executable or library file:
      * - Either the link count \c(k) is \c 0, or no link cout is present.
      * - The type \c (t) is set to \c REG or \c DEL
      * - The filedescriptor \c (f) is set to \c txt, \c mem or \c DEL
     */
-    inline void addCacheIf( CheckAccessDeleted::ProcInfo & cache_r, const 
std::string & line_r, bool verbose_r  )
+    inline void addCacheIf( CacheEntry & cache_r, const std::string & line_r, 
bool verbose_r  )
     {
       const char * f = 0;
       const char * t = 0;
@@ -159,12 +164,8 @@
             return;
         }
       }
-
-      if ( std::find( cache_r.files.begin(), cache_r.files.end(), n ) == 
cache_r.files.end() )
-      {
-        // Add if no duplicate
-        cache_r.files.push_back( n );
-      }
+      // Add if no duplicate
+      cache_r.second.insert( n );
     }
     /////////////////////////////////////////////////////////////////
   } // namespace
@@ -173,7 +174,6 @@
   CheckAccessDeleted::size_type CheckAccessDeleted::check( bool verbose_r )
   {
     _data.clear();
-    std::vector<ProcInfo> data;
 
     static const char* argv[] =
     {
@@ -181,20 +181,22 @@
     };
     ExternalProgram prog( argv, ExternalProgram::Discard_Stderr );
 
-    CheckAccessDeleted::ProcInfo cache;
+    // cachemap: PID => (deleted files)
+    std::map<pid_t,CacheEntry> cachemap;
+    pid_t cachepid;
     for( std::string line = prog.receiveLine(); ! line.empty(); line = 
prog.receiveLine() )
     {
+      // NOTE: line contains '\0' separeated fields!
       if ( line[0] == 'p' )
       {
-        addDataIf( data, cache );
-        cache.pid = line; //
+       str::strtonum( line.c_str()+1, cachepid );      // line is 
"p<PID>\0...."
+       cachemap[cachepid].first.swap( line );
       }
       else
       {
-        addCacheIf( cache, line, verbose_r );
+       addCacheIf( cachemap[cachepid], line, verbose_r );
       }
     }
-    addDataIf( data, cache );
 
     int ret = prog.close();
     if ( ret != 0 )
@@ -204,6 +206,11 @@
       ZYPP_THROW( err );
     }
 
+    std::vector<ProcInfo> data;
+    for_( it, cachemap.begin(), cachemap.end() )
+    {
+      addDataIf( data, (*it).second );
+    }
     _data.swap( data );
     return _data.size();
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.13.1/zypp/solver/detail/SATResolver.cc 
new/libzypp-8.13.3/zypp/solver/detail/SATResolver.cc
--- old/libzypp-8.13.1/zypp/solver/detail/SATResolver.cc        2011-10-13 
13:10:00.000000000 +0200
+++ new/libzypp-8.13.3/zypp/solver/detail/SATResolver.cc        2012-03-02 
09:26:25.000000000 +0100
@@ -623,7 +623,7 @@
     // Add rules for parallel installable resolvables with different versions
     for_( it, sat::Pool::instance().multiversionBegin(), 
sat::Pool::instance().multiversionEnd() )
     {
-      queue_push( &(_jobQueue), SOLVER_NOOBSOLETES | SOLVABLE_NAME );
+      queue_push( &(_jobQueue), SOLVER_NOOBSOLETES | SOLVER_SOLVABLE_NAME );
       queue_push( &(_jobQueue), it->id() );
     }
 
@@ -1385,7 +1385,7 @@
 
 void SATResolver::setLocks()
 {
-    for (PoolItemList::const_iterator iter = _items_to_lock.begin(); iter != 
_items_to_lock.end(); iter++) {
+    for (PoolItemList::const_iterator iter = _items_to_lock.begin(); iter != 
_items_to_lock.end(); ++iter) {
         sat::detail::SolvableIdType ident( (*iter)->satSolvable().id() );
        if (iter->status().isInstalled()) {
            MIL << "Lock installed item " << *iter << endl;
@@ -1398,16 +1398,20 @@
        }
     }
 
-    for (PoolItemList::const_iterator iter = _items_to_keep.begin(); iter != 
_items_to_keep.end(); iter++) {
-        sat::detail::SolvableIdType ident( (*iter)->satSolvable().id() );
+    std::set<IdString> unifiedByName;
+    for (PoolItemList::const_iterator iter = _items_to_keep.begin(); iter != 
_items_to_keep.end(); ++iter) {
        if (iter->status().isInstalled()) {
            MIL << "Keep installed item " << *iter << endl;
-           queue_push( &(_jobQueue), SOLVER_INSTALL_SOLVABLE | SOLVER_WEAK);
-           queue_push( &(_jobQueue), ident );
+           queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE | 
SOLVER_WEAK );
+           queue_push( &(_jobQueue), (*iter)->satSolvable().id() );
        } else {
-           MIL << "Keep NOT installed item " << *iter << ident << endl;
-           queue_push( &(_jobQueue), SOLVER_ERASE_SOLVABLE | SOLVER_WEAK | 
MAYBE_CLEANDEPS );
-           queue_push( &(_jobQueue), ident );
+           IdString ident( (*iter)->satSolvable().ident() );
+           MIL << "Keep NOT installed name " << ident << " (" << *iter << ")" 
<< endl;
+           if ( unifiedByName.insert( ident ).second )
+           {
+             queue_push( &(_jobQueue), SOLVER_ERASE | SOLVER_SOLVABLE_NAME | 
SOLVER_WEAK | MAYBE_CLEANDEPS );
+             queue_push( &(_jobQueue), ident.id() );
+           }
        }
     }
 }
@@ -1417,13 +1421,13 @@
     CapabilitySet system_requires = 
SystemCheck::instance().requiredSystemCap();
     CapabilitySet system_conflicts = 
SystemCheck::instance().conflictSystemCap();
 
-    for (CapabilitySet::const_iterator iter = system_requires.begin(); iter != 
system_requires.end(); iter++) {
+    for (CapabilitySet::const_iterator iter = system_requires.begin(); iter != 
system_requires.end(); ++iter) {
        queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE_PROVIDES );
        queue_push( &(_jobQueue), iter->id() );
        MIL << "SYSTEM Requires " << *iter << endl;
     }
 
-    for (CapabilitySet::const_iterator iter = system_conflicts.begin(); iter 
!= system_conflicts.end(); iter++) {
+    for (CapabilitySet::const_iterator iter = system_conflicts.begin(); iter 
!= system_conflicts.end(); ++iter) {
        queue_push( &(_jobQueue), SOLVER_ERASE | SOLVER_SOLVABLE_PROVIDES | 
MAYBE_CLEANDEPS );
        queue_push( &(_jobQueue), iter->id() );
        MIL << "SYSTEM Conflicts " << *iter << endl;
@@ -1440,7 +1444,7 @@
         if ( (*it)->isSystem() )
         {
           Capability archrule( (*it)->arch(), rpm.c_str(), Capability::PARSED 
);
-          queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVABLE_NAME | 
SOLVER_ESSENTIAL );
+          queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE_NAME | 
SOLVER_ESSENTIAL );
           queue_push( &(_jobQueue), archrule.id() );
 
         }

continue with "q"...



Remember to have fun...

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to