Mailinglist Archive: opensuse-commit (2092 mails)

< Previous Next >
commit libzypp
  • From: root@xxxxxxxxxxxxxxx (h_root)
  • Date: Thu, 30 Aug 2007 23:09:08 +0200
  • Message-id: <20070830210908.D4F2D678180@xxxxxxxxxxxxxxx>

Hello community,

here is the log from the commit of package libzypp
checked in at Thu Aug 30 23:09:08 CEST 2007.

--------
--- libzypp/libzypp.changes     2007-08-29 18:22:12.000000000 +0200
+++ /mounts/work_src_done/STABLE/libzypp/libzypp.changes        2007-08-30 18:18:24.124891000 +0200
@@ -1,0 +2,41 @@
+Thu Aug 30 18:22:32 CEST 2007 - ma@xxxxxxx
+
+- Filter readonly mount points in DiskUsageCounter (#297405)
+- revision 7030
+
+-------------------------------------------------------------------
+Thu Aug 30 17:25:14 CEST 2007 - ma@xxxxxxx
+
+- Safe fix for bug #299680.
+- version 3.20.1
+- revision 7026
+
+-------------------------------------------------------------------
+Thu Aug 30 17:31:33 CEST 2007 - jkupec@xxxxxxx
+
+- remember the cause of the RepoException when refreshing metadata
+  (#301022)
+- r7023
+
+-------------------------------------------------------------------
+Thu Aug 30 15:48:03 CEST 2007 - schubi@xxxxxxx
+
+- Bugfix: If a requirement has been fulfilled by more than one language
+  resolvables only thatone will be taken which fits to the selected
+  language.
+- r 7018
+
+-------------------------------------------------------------------
+Thu Aug 30 15:14:23 CEST 2007 - jkupec@xxxxxxx
+
+- correct error code for media errors in MediaCurl::doGetFileCopy()
+  affects only zypper error output, does not affect YaST
+- r7013
+
+-------------------------------------------------------------------
+Wed Aug 29 18:28:41 CEST 2007 - jkupec@xxxxxxx
+
+- reverted blocking of requestMedia from r6271 (#301710)
+- r6999
+
+-------------------------------------------------------------------

Old:
----
  libzypp-3.20.0.tar.bz2

New:
----
  libzypp-3.20.1.tar.bz2

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

Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.B16669/_old  2007-08-30 23:08:49.000000000 +0200
+++ /var/tmp/diff_new_pack.B16669/_new  2007-08-30 23:08:49.000000000 +0200
@@ -1,5 +1,5 @@
 #
-# spec file for package libzypp (Version 3.20.0)
+# spec file for package libzypp (Version 3.20.1)
 #
 # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
 # This file and all modifications and additions to the pristine
@@ -16,9 +16,9 @@
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Autoreqprov:    on
 Summary:        Package, Patch, Pattern, and Product Management
-Version:        3.20.0
+Version:        3.20.1
 Release:        1
-Source:         libzypp-3.20.0.tar.bz2
+Source:         libzypp-3.20.1.tar.bz2
 Source1:        libzypp-rpmlintrc
 Prefix:         /usr
 Provides:       yast2-packagemanager
@@ -44,7 +44,7 @@
     Ladislav Slezak <lslezak@xxxxxxx>
 
 %package devel
-Requires:       libzypp == 3.20.0
+Requires:       libzypp == 3.20.1
 Requires:       libxml2-devel curl-devel openssl-devel rpm-devel glibc-devel zlib-devel
 Requires:       bzip2 popt-devel dbus-1-devel glib2-devel hal-devel boost-devel libstdc++-devel
 Requires:       cmake
@@ -125,6 +125,29 @@
 %{_libdir}/pkgconfig/libzypp.pc
 
 %changelog
+* Thu Aug 30 2007 - ma@xxxxxxx
+- Filter readonly mount points in DiskUsageCounter (#297405)
+- revision 7030
+* Thu Aug 30 2007 - jkupec@xxxxxxx
+- remember the cause of the RepoException when refreshing metadata
+  (#301022)
+- r7023
+* Thu Aug 30 2007 - ma@xxxxxxx
+- Safe fix for bug #299680.
+- version 3.20.1
+- revision 7026
+* Thu Aug 30 2007 - schubi@xxxxxxx
+- Bugfix: If a requirement has been fulfilled by more than one language
+  resolvables only thatone will be taken which fits to the selected
+  language.
+- r 7018
+* Thu Aug 30 2007 - jkupec@xxxxxxx
+- correct error code for media errors in MediaCurl::doGetFileCopy()
+  affects only zypper error output, does not affect YaST
+- r7013
+* Wed Aug 29 2007 - jkupec@xxxxxxx
+- reverted blocking of requestMedia from r6271 (#301710)
+- r6999
 * Wed Aug 29 2007 - kkaempf@xxxxxxx
 - prevent progress report in destructor (#299680)
 - r6998

++++++ libzypp-3.20.0.tar.bz2 -> libzypp-3.20.1.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.20.0/devel/devel.ma/Parse.cc new/libzypp-3.20.1/devel/devel.ma/Parse.cc
--- old/libzypp-3.20.0/devel/devel.ma/Parse.cc  2007-08-29 18:20:39.000000000 +0200
+++ new/libzypp-3.20.1/devel/devel.ma/Parse.cc  2007-08-30 18:24:45.000000000 +0200
@@ -4,6 +4,7 @@
 #include <zypp/base/Exception.h>
 #include <zypp/base/LogTools.h>
 #include <zypp/base/ProvideNumericId.h>
+#include <zypp/AutoDispose.h>
 
 #include "zypp/ZYppFactory.h"
 #include "zypp/ResPoolProxy.h"
@@ -331,6 +332,19 @@
   //zypp::base::LogControl::instance().logfile( "log.restrict" );
   INT << "===[START]==========================================" << endl;
 
+  {
+    AutoDispose<int> fd( 0 );
+    SEC << fd << endl;
+    fd = ::open( "/tmp/foo", 1 );
+    SEC << fd << endl;
+
+    if ( fd == -1 )
+        ; // error report
+      else
+        fd.setDispose( ::close );
+  }
+  return 0;
+
   DigestReceive foo;
   KeyRingSignalsReceive baa;
 
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.20.0/package/libzypp.changes new/libzypp-3.20.1/package/libzypp.changes
--- old/libzypp-3.20.0/package/libzypp.changes  2007-08-29 18:20:39.000000000 +0200
+++ new/libzypp-3.20.1/package/libzypp.changes  2007-08-30 18:24:45.000000000 +0200
@@ -1,4 +1,45 @@
 -------------------------------------------------------------------
+Thu Aug 30 18:22:32 CEST 2007 - ma@xxxxxxx
+
+- Filter readonly mount points in DiskUsageCounter (#297405)
+- revision 7030
+
+-------------------------------------------------------------------
+Thu Aug 30 17:25:14 CEST 2007 - ma@xxxxxxx
+
+- Safe fix for bug #299680.
+- version 3.20.1
+- revision 7026
+
+-------------------------------------------------------------------
+Thu Aug 30 17:31:33 CEST 2007 - jkupec@xxxxxxx
+
+- remember the cause of the RepoException when refreshing metadata
+  (#301022)
+- r7023
+
+-------------------------------------------------------------------
+Thu Aug 30 15:48:03 CEST 2007 - schubi@xxxxxxx
+
+- Bugfix: If a requirement has been fulfilled by more than one language
+  resolvables only thatone will be taken which fits to the selected
+  language.
+- r 7018
+
+-------------------------------------------------------------------
+Thu Aug 30 15:14:23 CEST 2007 - jkupec@xxxxxxx
+
+- correct error code for media errors in MediaCurl::doGetFileCopy()
+  affects only zypper error output, does not affect YaST
+- r7013
+
+-------------------------------------------------------------------
+Wed Aug 29 18:28:41 CEST 2007 - jkupec@xxxxxxx
+
+- reverted blocking of requestMedia from r6271 (#301710)
+- r6999
+
+-------------------------------------------------------------------
 Wed Aug 29 18:09:29 CEST 2007 - kkaempf@xxxxxxx
 
 - prevent progress report in destructor (#299680)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.20.0/VERSION.cmake new/libzypp-3.20.1/VERSION.cmake
--- old/libzypp-3.20.0/VERSION.cmake    2007-08-29 18:20:39.000000000 +0200
+++ new/libzypp-3.20.1/VERSION.cmake    2007-08-30 18:24:45.000000000 +0200
@@ -47,4 +47,4 @@
 SET(LIBZYPP_MAJOR "3")
 SET(LIBZYPP_MINOR "20")
 SET(LIBZYPP_COMPATMINOR "19")
-SET(LIBZYPP_PATCH "0")
+SET(LIBZYPP_PATCH "1")
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.20.0/zypp/DiskUsageCounter.cc new/libzypp-3.20.1/zypp/DiskUsageCounter.cc
--- old/libzypp-3.20.0/zypp/DiskUsageCounter.cc 2007-08-29 18:20:40.000000000 +0200
+++ new/libzypp-3.20.1/zypp/DiskUsageCounter.cc 2007-08-30 18:24:46.000000000 +0200
@@ -277,6 +277,10 @@
                break;
              }
            }
+            if ( ro ) {
+             DBG << "Filter ro mount point : " << l << std::endl;
+             continue;
+           }
 
            //
            // statvfs (full path!) and get the data
@@ -304,6 +308,6 @@
     str << "dir:[" << obj.dir << "] [ bs: " << obj.block_size << " ts: " << obj.total_size << "]" << std::endl;
     return str;
   }
-  
+
 } // namespace zypp
 ///////////////////////////////////////////////////////////////////
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.20.0/zypp/media/MediaCurl.cc new/libzypp-3.20.1/zypp/media/MediaCurl.cc
--- old/libzypp-3.20.0/zypp/media/MediaCurl.cc  2007-08-29 18:20:40.000000000 +0200
+++ new/libzypp-3.20.1/zypp/media/MediaCurl.cc  2007-08-30 18:24:46.000000000 +0200
@@ -742,7 +742,7 @@
       else
       {
         DBG << "callback answer: cancel" << endl;
-        report->finish(url, zypp::media::DownloadProgressReport::ACCESS_DENIED, ex_r.msg());
+        report->finish(url, zypp::media::DownloadProgressReport::ACCESS_DENIED, ex_r.asUserString());
         ZYPP_RETHROW(ex_r);
       }
     }
@@ -751,7 +751,7 @@
     {
       // FIXME: this will not match the first URL
       // FIXME: error number fix
-      report->finish(url, zypp::media::DownloadProgressReport::NOT_FOUND, excpt_r.msg());
+      report->finish(url, zypp::media::DownloadProgressReport::ERROR, excpt_r.asUserString());
       ZYPP_RETHROW(excpt_r);
     }
   }
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.20.0/zypp/media/MediaException.cc new/libzypp-3.20.1/zypp/media/MediaException.cc
--- old/libzypp-3.20.0/zypp/media/MediaException.cc     2007-08-29 18:20:40.000000000 +0200
+++ new/libzypp-3.20.1/zypp/media/MediaException.cc     2007-08-30 18:24:46.000000000 +0200
@@ -27,140 +27,140 @@
     {
       str << "Failed to mount " << _source << " on " << _target;
       if( !_cmdout.empty())
-       str << ": " << _error << " (" << _cmdout << ")" << endl;
+       str << ": " << _error << " (" << _cmdout << ")";
       else
-       str << ": " << _error << endl;
+       str << ": " << _error;
       return str;
     }
 
     std::ostream & MediaUnmountException::dumpOn( std::ostream & str ) const
     {
       return str << "Failed to unmount " << _path
-       << " : " << _error << endl;
+       << " : " << _error;
     }
 
     std::ostream & MediaBadFilenameException::dumpOn( std::ostream & str ) const
     {
-      return str << "Bad file name " << _filename << endl;
+      return str << "Bad file name " << _filename;
     }
 
     std::ostream & MediaNotOpenException::dumpOn( std::ostream & str ) const
     {
-      return str << "Media not opened while performing action " << _action << endl;
+      return str << "Media not opened while performing action " << _action;
     }
 
     std::ostream & MediaFileNotFoundException::dumpOn( std::ostream & str) const
     {
       return str << "File " << _filename
-       << " not found on media: " << _url << endl;
+       << " not found on media: " << _url;
     }
 
     std::ostream & MediaWriteException::dumpOn( std::ostream & str) const
     {
-      return str << "Cannot write file " << _filename << endl;
+      return str << "Cannot write file " << _filename;
     }
 
     std::ostream & MediaNotAttachedException::dumpOn( std::ostream & str) const
     {
-      return str << "Media not attached: " << _url << endl;
+      return str << "Media not attached: " << _url;
     }
 
     std::ostream & MediaBadAttachPointException::dumpOn( std::ostream & str) const
     {
-      return str << "Bad media attach point: " << _url << endl;
+      return str << "Bad media attach point: " << _url;
     }
 
     std::ostream & MediaCurlInitException::dumpOn( std::ostream & str) const
     {
-      return str << "Curl init failed for: " << _url << endl;
+      return str << "Curl init failed for: " << _url;
     }
 
     std::ostream & MediaSystemException::dumpOn( std::ostream & str) const
     {
       return str << "System exception: " << _message
-       << " on media: " << _url << endl;
+       << " on media: " << _url;
     }
 
     std::ostream & MediaNotAFileException::dumpOn( std::ostream & str) const
     {
       return str << "Path " << _path
        << " on media: " << _url
-        << " is not a file." << endl;
+        << " is not a file.";
     }
 
     std::ostream & MediaNotADirException::dumpOn( std::ostream & str) const
     {
       return str << "Path " << _path
        << " on media: " << _url
-        << " is not a directory." << endl;
+        << " is not a directory.";
     }
 
     std::ostream & MediaBadUrlException::dumpOn( std::ostream & str) const
     {
       if( _msg.empty())
       {
-       return str << "Malformed URL: " << _url << endl;
+       return str << "Malformed URL: " << _url;
       }
       else
       {
-       return str << _msg << ": " << _url << endl;
+       return str << _msg << ": " << _url;
       }
     }
 
     std::ostream & MediaBadUrlEmptyHostException::dumpOn( std::ostream & str) const
     {
-      return str << "Empty host name in URL: " << _url << endl;
+      return str << "Empty host name in URL: " << _url;
     }
 
     std::ostream & MediaBadUrlEmptyFilesystemException::dumpOn( std::ostream & str) const
     {
-      return str << "Empty filesystem in URL: " << _url << endl;
+      return str << "Empty filesystem in URL: " << _url;
     }
 
     std::ostream & MediaBadUrlEmptyDestinationException::dumpOn( std::ostream & str) const
     {
-      return str << "Empty destination in URL: " << _url << endl;
+      return str << "Empty destination in URL: " << _url;
     }
 
     std::ostream & MediaUnsupportedUrlSchemeException::dumpOn( std::ostream & str) const
     {
-      return str << "Unsupported URL scheme in URL: " << _url << endl;
+      return str << "Unsupported URL scheme in URL: " << _url;
     }
 
     std::ostream & MediaNotSupportedException::dumpOn( std::ostream & str) const
     {
-      return str << "Operation not supported by media: " << _url << endl;
+      return str << "Operation not supported by media: " << _url;
     }
 
     std::ostream & MediaCurlException::dumpOn( std::ostream & str) const
     {
       return str << "Curl error for '" << _url << "':" << endl
         << "Error code: " << _err << endl
-        << "Error message: " << _msg << endl;
+        << "Error message: " << _msg;
     }
 
     std::ostream & MediaCurlSetOptException::dumpOn( std::ostream & str) const
     {
       return str << "Error occurred while setting CURL options for " << _url
-       << ": " << _msg << endl;
+       << ": " << _msg;
     }
 
     std::ostream & MediaNotDesiredException::dumpOn( std::ostream & str ) const
     {
-      return str << "Media source " << _url << " does not contain the desired media" << endl;
+      return str << "Media source " << _url << " does not contain the desired media";
     }
 
     std::ostream & MediaIsSharedException::dumpOn( std::ostream & str ) const
     {
-      return str << "Media " << _name << " is in use by another instance" << endl;
+      return str << "Media " << _name << " is in use by another instance";
     }
 
     std::ostream & MediaNotEjectedException::dumpOn( std::ostream & str ) const
     {
       if( _name.empty())
-       return str << "Can't eject any media" << endl;
+       return str << "Can't eject any media";
       else
-       return str << "Can't eject media " << _name << endl;
+       return str << "Can't eject media " << _name;
     }
 
     std::ostream & MediaUnauthorizedException::dumpOn( std::ostream & str ) const
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.20.0/zypp/MediaSetAccess.cc new/libzypp-3.20.1/zypp/MediaSetAccess.cc
--- old/libzypp-3.20.0/zypp/MediaSetAccess.cc   2007-08-29 18:20:40.000000000 +0200
+++ new/libzypp-3.20.1/zypp/MediaSetAccess.cc   2007-08-30 18:24:46.000000000 +0200
@@ -245,18 +245,13 @@
             reason = media::MediaChangeReport::WRONG;
           }
 
-          // request media change, if the media is changeable and this is
-          // not just a check, otherwise just abort
-          if (checkonly || !media_mgr.isChangeable(media))
-            user = media::MediaChangeReport::ABORT;
-          else
-            user =
-              report->requestMedia (
-                Repository::noRepository,
-                media_nr,
-                reason,
-                excp.asUserString()
-              );
+          user  = checkonly ? media::MediaChangeReport::ABORT :
+            report->requestMedia (
+              Repository::noRepository,
+              media_nr,
+              reason,
+              excp.asUserString()
+            );
 
           DBG << "ProvideFile exception caught, callback answer: " << user << endl;
 
@@ -386,18 +381,10 @@
             reason = media::MediaChangeReport::WRONG;
           }
 
-
-          // request media change, if the media is changeable, otherwise just abort
-          if (media_mgr.isChangeable(_media))
-            user =
-              report->requestMedia(
-                Repository::noRepository,
-                media_nr,
-                reason,
-                excp.asUserString()
-              );
-          else
-            user = media::MediaChangeReport::ABORT;
+          user = report->requestMedia(Repository::noRepository,
+                                      media_nr,
+                                      reason,
+                                      excp.asUserString());
 
           DBG << "ProvideFile exception caught, callback answer: " << user << endl;
 
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.20.0/zypp/repo/cached/RepoImpl.cc new/libzypp-3.20.1/zypp/repo/cached/RepoImpl.cc
--- old/libzypp-3.20.0/zypp/repo/cached/RepoImpl.cc     2007-08-29 18:20:40.000000000 +0200
+++ new/libzypp-3.20.1/zypp/repo/cached/RepoImpl.cc     2007-08-30 18:24:45.000000000 +0200
@@ -59,27 +59,20 @@
   , _rquery(opts.dbdir)
   , _options(opts)
 {
-
 }
 
 RepoImpl::~RepoImpl()
 {
-  _ticks.toMax();
   MIL << "Destroying repo '" << info().alias() << "'" << endl;
-  _ticks.noSend();
 }
 
-void read_capabilities( sqlite3_connection &con,
-                        map<data::RecordId, NVRAD> &nvras,
-                        ProgressData &progress );
-
 void RepoImpl::createResolvables()
 {
-  _ticks = ProgressData();
-  _ticks.sendTo(_options.readingResolvablesProgress);
-  _ticks.name(str::form(_( "Reading '%s' repository cache"), info().alias().c_str()));
-  CombinedProgressData subprogrcv(_ticks);
-  
+  ProgressData ticks;
+  ticks.sendTo(_options.readingResolvablesProgress);
+  ticks.name(str::form(_( "Reading '%s' repository cache"), info().alias().c_str()));
+  CombinedProgressData subprogrcv(ticks);
+
   debug::Measure m("create resolvables");
   CapFactory capfactory;
   try
@@ -100,7 +93,7 @@
     map<data::RecordId, pair<Resolvable::Kind, NVRAD> > nvras;
 
     sqlite3_reader reader = cmd.executereader();
-    
+
     while(reader.read())
     {
       long long id = reader.getint64(0);
@@ -115,11 +108,11 @@
 
     MIL << "Done reading resolvables nvra" << endl;
 
-    _ticks.tick();
+    ticks.tick();
 
-    read_capabilities( con, _options.repository_id, nvras );
+    read_capabilities( con, _options.repository_id, nvras, ticks );
 
-    _ticks.tick();
+    ticks.tick();
 
     for ( map<data::RecordId, pair<Resolvable::Kind, NVRAD> >::const_iterator it = nvras.begin(); it != nvras.end(); ++it )
     {
@@ -196,10 +189,10 @@
 
 void RepoImpl::createPatchAndDeltas()
 {
-  _ticks = ProgressData();
-  _ticks.sendTo(_options.readingPatchDeltasProgress );
-  _ticks.name(str::form(_( "Reading patch and delta rpms from '%s' repository cache"), info().alias().c_str()));
-  CombinedProgressData subprogrcv(_ticks);
+  ProgressData ticks;
+  ticks.sendTo(_options.readingPatchDeltasProgress );
+  ticks.name(str::form(_( "Reading patch and delta rpms from '%s' repository cache"), info().alias().c_str()));
+  CombinedProgressData subprogrcv(ticks);
   try
   {
     sqlite3_connection con((_options.dbdir + "zypp.db").asString().c_str());
@@ -316,7 +309,8 @@
 
 void RepoImpl::read_capabilities( sqlite3_connection &con,
                                   data::RecordId repo_id,
-                                  map<data::RecordId, pair<Resolvable::Kind, NVRAD> > &nvras )
+                                  map<data::RecordId, pair<Resolvable::Kind, NVRAD> > &nvras,
+                                  ProgressData &ticks )
 {
   CapFactory capfactory;
 
@@ -344,9 +338,9 @@
   sqlite3_command select_modalias_cmd( con, "select mc.refers_kind, mc.name, mc.pkgname, mc.value, mc.relation, mc.dependency_type, mc.resolvable_id from modalias_capabilities mc, resolvables res where mc.resolvable_id=res.id and res.repository_id=:repo_id;");
 
   sqlite3_command select_filesystem_cmd( con, "select v.refers_kind, n.name, v.dependency_type, v.resolvable_id from filesystem_capabilities v, names n, resolvables res where v.name_id=n.id and v.resolvable_id=res.id and res.repository_id=:repo_id;");
-  
+
   sqlite3_command select_split_cmd( con, "select v.refers_kind, n.name, dn.name, fn.name, v.dependency_type, v.resolvable_id from split_capabilities v, names n, resolvables res, files f, dir_names dn, file_names fn where v.name_id=n.id and v.resolvable_id=res.id and f.id=v.file_id and f.dir_name_id=dn.id and f.file_name_id=fn.id and res.repository_id=:repo_id;");
-  
+
   sqlite3_command select_other_cmd( con, "select oc.refers_kind, oc.value, oc.dependency_type, oc.resolvable_id from other_capabilities oc, resolvables res where oc.resolvable_id=res.id and res.repository_id=:repo_id;");
 
 
@@ -354,13 +348,13 @@
     debug::Measure mnc("read named capabilities");
     select_named_cmd.bind(":repo_id", repo_id);
     sqlite3_reader reader = select_named_cmd.executereader();
-    
+
     // FIXME Move this logic to tick()?
     Date start(Date::now());
     while  ( reader.read() )
     {
-      _ticks.tick();
-      
+      ticks.tick();
+
       Resolvable::Kind refer = _type_cache.kindFor(reader.getint(0));
       Rel rel = _type_cache.relationFor(reader.getint(5));
 
@@ -387,7 +381,7 @@
     sqlite3_reader reader = select_file_cmd.executereader();
     while  ( reader.read() )
     {
-      _ticks.tick();
+      ticks.tick();
       Resolvable::Kind refer = _type_cache.kindFor(reader.getint(0));
       capability::FileCap *fcap = new capability::FileCap( refer, reader.getstring(1) + "/" + reader.getstring(2) );
       zypp::Dep deptype = _type_cache.deptypeFor(reader.getint(3));
@@ -402,7 +396,7 @@
     sqlite3_reader reader = select_hal_cmd.executereader();
     while  ( reader.read() )
     {
-      _ticks.tick();
+      ticks.tick();
       //select hc.refers_kind, hc.name, hc.value, hc.relation, hc.dependency_type, hc.resolvable_id from hal_capabilities hc
 
       Resolvable::Kind refer = _type_cache.kindFor(reader.getint(0));
@@ -421,7 +415,7 @@
     sqlite3_reader reader = select_modalias_cmd.executereader();
     while  ( reader.read() )
     {
-      _ticks.tick();
+      ticks.tick();
       Resolvable::Kind refer = _type_cache.kindFor(reader.getint(0));
 
       Rel rel = _type_cache.relationFor(reader.getint(4));
@@ -432,14 +426,14 @@
       nvras[rid].second[deptype].insert( capfactory.fromImpl( capability::CapabilityImpl::Ptr(mcap) ) );
     }
   }
-  
+
   {
     debug::Measure mnf("read filesystem capabilities");
     select_filesystem_cmd.bind(":repo_id", repo_id);
     sqlite3_reader reader = select_filesystem_cmd.executereader();
     while  ( reader.read() )
     {
-      _ticks.tick();
+      ticks.tick();
       Resolvable::Kind refer = _type_cache.kindFor(reader.getint(0));
 
       capability::FilesystemCap *fscap = new capability::FilesystemCap( refer, reader.getstring(1) );
@@ -455,7 +449,7 @@
     sqlite3_reader reader = select_split_cmd.executereader();
     while  ( reader.read() )
     {
-      _ticks.tick();
+      ticks.tick();
       Resolvable::Kind refer = _type_cache.kindFor(reader.getint(0));
 
       capability::SplitCap *scap = new capability::SplitCap( refer, reader.getstring(1),
@@ -465,14 +459,14 @@
       nvras[rid].second[deptype].insert( capfactory.fromImpl( capability::CapabilityImpl::Ptr(scap) ) );
     }
   }
-  
+
   {
     debug::Measure mnf("read other capabilities");
     select_other_cmd.bind(":repo_id", repo_id);
     sqlite3_reader reader = select_other_cmd.executereader();
     while  ( reader.read() )
     {
-      _ticks.tick();
+      ticks.tick();
       //select oc.refers_kind, oc.value, oc.dependency_type, oc.resolvable_id from other_capabilities oc;
 
       Resolvable::Kind refer = _type_cache.kindFor(reader.getint(0));
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.20.0/zypp/repo/cached/RepoImpl.h new/libzypp-3.20.1/zypp/repo/cached/RepoImpl.h
--- old/libzypp-3.20.0/zypp/repo/cached/RepoImpl.h      2007-08-29 18:20:40.000000000 +0200
+++ new/libzypp-3.20.1/zypp/repo/cached/RepoImpl.h      2007-08-30 18:24:45.000000000 +0200
@@ -79,12 +79,11 @@
       private:
         void read_capabilities( sqlite3x::sqlite3_connection &con,
                                 data::RecordId repo_id,
-                                std::map<data::RecordId,
-                                std::pair<Resolvable::Kind, NVRAD> > &nvras );
+                                std::map<data::RecordId, std::pair<Resolvable::Kind, NVRAD> > &nvras,
+                                ProgressData &ticks );
         cache::CacheTypes _type_cache;
         cache::ResolvableQuery _rquery;
         RepoOptions _options;
-        ProgressData _ticks;
       public:
       };
       ///////////////////////////////////////////////////////////////////
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.20.0/zypp/RepoManager.cc new/libzypp-3.20.1/zypp/RepoManager.cc
--- old/libzypp-3.20.0/zypp/RepoManager.cc      2007-08-29 18:20:40.000000000 +0200
+++ new/libzypp-3.20.1/zypp/RepoManager.cc      2007-08-30 18:24:46.000000000 +0200
@@ -517,6 +517,9 @@
     assert_alias(info);
     assert_urls(info);
 
+    // we will throw this later if no URL checks out fine
+    RepoException rexception(_("Valid metadata not found at specified URL(s)"));
+
     // try urls one by one
     for ( RepoInfo::urls_const_iterator it = info.baseUrlsBegin(); it != info.baseUrlsEnd(); ++it )
     {
@@ -608,10 +611,16 @@
       {
         ZYPP_CAUGHT(e);
         ERR << "Trying another url..." << endl;
+        
+        // remember the exception caught for the *first URL*
+        // if all other URLs fail, the rexception will be thrown with the
+        // cause of the problem of the first URL remembered
+        if (it == info.baseUrlsBegin())
+          rexception.remember(e);
       }
     } // for every url
     ERR << "No more urls..." << endl;
-    ZYPP_THROW(RepoException(_("Valid metadata not found at specified URL(s)")));
+    ZYPP_THROW(rexception);
   }
 
   ////////////////////////////////////////////////////////////////////////////
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.20.0/zypp/solver/detail/QueueItemRequire.cc new/libzypp-3.20.1/zypp/solver/detail/QueueItemRequire.cc
--- old/libzypp-3.20.0/zypp/solver/detail/QueueItemRequire.cc   2007-08-29 18:20:40.000000000 +0200
+++ new/libzypp-3.20.1/zypp/solver/detail/QueueItemRequire.cc   2007-08-30 18:24:46.000000000 +0200
@@ -575,6 +575,7 @@
            ZYpp::Ptr z = zypp::getZYpp();
            ZYpp::LocaleSet requested_locales = z->getRequestedLocales();
            bool requested_locale_match = false;
+           PoolItem requested_locale_item;
            PoolItemSet hints;                  // those which supplement or enhance an installed or to-be-installed
 
            for (PoolItemList::iterator it = info.providers.begin(); it != info.providers.end(); ++it) {
@@ -585,27 +586,23 @@
                if (item.status().staysUninstalled()) {
                    uninstalled++;
                }
-               if (!requested_locale_match) {
-                   CapSet freshens( item->dep( Dep::FRESHENS ) );
+               CapSet freshens( item->dep( Dep::FRESHENS ) );
 
-                   // try to find a match of the locale freshens with one of the requested locales
-                   //   if we have a match, we're done.
+               // try to find a match of the locale freshens with one of the requested locales
 
-                   for (CapSet::const_iterator cit = freshens.begin(); cit != freshens.end(); ++cit) {
-                       if (cit->refers() == ResTraits<Language>::kind) {
-                           string loc = cit->index();
-                           MIL << "Look for language fallback " << loc << ":" << item << endl;
-                           if (requested_locales.find( Locale( loc ) ) != requested_locales.end()) {
-                               MIL << "Locale '" << loc << "' is requested, not looking further" << endl;
-                               requested_locale_match = true;
-                               break;
-                           }
-                           language_freshens[loc] = item;
+               for (CapSet::const_iterator cit = freshens.begin(); cit != freshens.end(); ++cit) {
+                   if (cit->refers() == ResTraits<Language>::kind) {
+                       string loc = cit->index();
+                       MIL << "Look for language fallback " << loc << ":" << item << endl;
+                       if (requested_locales.find( Locale( loc ) ) != requested_locales.end()) {
+                           MIL << "Locale '" << loc << "' is requested" << endl;
+                           requested_locale_match = true;
+                           requested_locale_item = item;
                        }
+                       language_freshens[loc] = item;
                    }
                }
 
-
                // now check if a provider supplements or enhances an installed or to-be-installed resolvable
 
                if (hint_match( item->dep( Dep::SUPPLEMENTS ), pool() )
@@ -658,8 +655,28 @@
            {
                MIL << "Have " << hints.size() << " hints" << endl;
                info.providers.clear();
-               for (PoolItemSet::const_iterator it = hints.begin(); it != hints.end(); ++it)
-                   info.providers.push_back( *it );
+               for (PoolItemSet::const_iterator it = hints.begin(); it != hints.end(); ++it) {
+                   if (*it == requested_locale_item) {
+                       // This is the requested language item
+                       info.providers.push_back( *it );
+                   } else {
+                       // go through the list of language items and check if they are exists
+                       std::map<std::string,PoolItem>::const_iterator itFr;
+                   
+                       for (itFr = language_freshens.begin(); itFr != language_freshens.end(); ++itFr) {
+                           if (*it == itFr->second) break;
+                       }
+                       if (itFr == language_freshens.end()) {
+                           // item was only in the supplements --> branch for it
+                           info.providers.push_back( *it );
+                       }
+                   }
+               }
+               if (info.providers.empty()) {
+                   // they are all language items which does not fit in the required language
+                   // So take the firstone to fulfill the requirement. Should never happens
+                   info.providers.push_back( *(hints.begin()) );
+               }
            }
            else { 
 
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.20.0/zypp/ZYppCallbacks.h new/libzypp-3.20.1/zypp/ZYppCallbacks.h
--- old/libzypp-3.20.0/zypp/ZYppCallbacks.h     2007-08-29 18:20:40.000000000 +0200
+++ new/libzypp-3.20.1/zypp/ZYppCallbacks.h     2007-08-30 18:24:46.000000000 +0200
@@ -316,7 +316,8 @@
           NO_ERROR,
           NOT_FOUND,   // the requested Url was not found
           IO,          // IO error
-          ACCESS_DENIED // user authent. failed while accessing restricted file
+          ACCESS_DENIED, // user authent. failed while accessing restricted file
+          ERROR // other error
         };
 
         virtual void start( const Url &/*file*/, Pathname /*localfile*/ ) {}



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



Remember to have fun...

---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >