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@suse.de
+
+- Filter readonly mount points in DiskUsageCounter (#297405)
+- revision 7030
+
+-------------------------------------------------------------------
+Thu Aug 30 17:25:14 CEST 2007 - ma@suse.de
+
+- Safe fix for bug #299680.
+- version 3.20.1
+- revision 7026
+
+-------------------------------------------------------------------
+Thu Aug 30 17:31:33 CEST 2007 - jkupec@suse.cz
+
+- remember the cause of the RepoException when refreshing metadata
+ (#301022)
+- r7023
+
+-------------------------------------------------------------------
+Thu Aug 30 15:48:03 CEST 2007 - schubi@suse.de
+
+- 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@suse.cz
+
+- 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@suse.cz
+
+- 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
%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@suse.de
+- Filter readonly mount points in DiskUsageCounter (#297405)
+- revision 7030
+* Thu Aug 30 2007 - jkupec@suse.cz
+- remember the cause of the RepoException when refreshing metadata
+ (#301022)
+- r7023
+* Thu Aug 30 2007 - ma@suse.de
+- Safe fix for bug #299680.
+- version 3.20.1
+- revision 7026
+* Thu Aug 30 2007 - schubi@suse.de
+- 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@suse.cz
+- correct error code for media errors in MediaCurl::doGetFileCopy()
+ affects only zypper error output, does not affect YaST
+- r7013
+* Wed Aug 29 2007 - jkupec@suse.cz
+- reverted blocking of requestMedia from r6271 (#301710)
+- r6999
* Wed Aug 29 2007 - kkaempf@suse.de
- 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
#include
#include
+#include
#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@suse.de
+
+- Filter readonly mount points in DiskUsageCounter (#297405)
+- revision 7030
+
+-------------------------------------------------------------------
+Thu Aug 30 17:25:14 CEST 2007 - ma@suse.de
+
+- Safe fix for bug #299680.
+- version 3.20.1
+- revision 7026
+
+-------------------------------------------------------------------
+Thu Aug 30 17:31:33 CEST 2007 - jkupec@suse.cz
+
+- remember the cause of the RepoException when refreshing metadata
+ (#301022)
+- r7023
+
+-------------------------------------------------------------------
+Thu Aug 30 15:48:03 CEST 2007 - schubi@suse.de
+
+- 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@suse.cz
+
+- 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@suse.cz
+
+- reverted blocking of requestMedia from r6271 (#301710)
+- r6999
+
+-------------------------------------------------------------------
Wed Aug 29 18:09:29 CEST 2007 - kkaempf@suse.de
- 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 &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 > 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 >::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 > &nvras )
+ map > &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 > &nvras );
+ std::map > &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::mapstd::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@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org