Author: dmacvicar Date: Tue Jun 19 17:56:06 2007 New Revision: 5793 URL: http://svn.opensuse.org/viewcvs/zypp?rev=5793&view=rev Log: new commit. enabled if cmake -DZYPP_REFACTORING=1 Modified: trunk/libzypp/zypp/CMakeLists.txt trunk/libzypp/zypp/repo/RepoProvideFile.cc trunk/libzypp/zypp/target/TargetImpl.cc Modified: trunk/libzypp/zypp/CMakeLists.txt URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/CMakeLists.txt?rev=5793&r1=5792&r2=5793&view=diff ============================================================================== --- trunk/libzypp/zypp/CMakeLists.txt (original) +++ trunk/libzypp/zypp/CMakeLists.txt Tue Jun 19 17:56:06 2007 @@ -3,6 +3,11 @@ #################################################################### ADD_DEFINITIONS(-DLOCALEDIR=\\\"/usr/share/libzypp\\\" -DTEXTDOMAIN=\\\"zypp\\\" ) + +IF(ZYPP_REFACTORING) + ADD_DEFINITIONS(-DZYPP_REFACTORING) +ENDIF(ZYPP_REFACTORING) + ADD_EXECUTABLE(mkarray ${CMAKE_SOURCE_DIR}/zypp/cache/schema/mkarray.c ) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) #FILE(WRITE filename "message to write"... ) Modified: trunk/libzypp/zypp/repo/RepoProvideFile.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/repo/RepoProvideFile.cc?rev=5793&r1=5792&r2=5793&view=diff ============================================================================== --- trunk/libzypp/zypp/repo/RepoProvideFile.cc (original) +++ trunk/libzypp/zypp/repo/RepoProvideFile.cc Tue Jun 19 17:56:06 2007 @@ -12,6 +12,7 @@ #include <iostream> #include <fstream> #include <sstream> +#include <set> #include "zypp/base/Logger.h" #include "zypp/repo/RepoProvideFile.h" @@ -19,6 +20,7 @@ #include "zypp/MediaSetAccess.h" using std::endl; +using std::set; /////////////////////////////////////////////////////////////////// namespace zypp @@ -91,29 +93,35 @@ Url url; RepoInfo info = repo_r.info(); - // FIXME we only support the first url for now. - if ( info.baseUrls().empty() ) + set<Url> urls = info.baseUrls(); + if ( urls.empty() ) ZYPP_THROW(Exception("No url in repository.")); - else - url = * info.baseUrls().begin(); - MediaSetAccess access(url); - - ManagedFile ret( access.provideFile(loc_r), - RepoReleaseFile( repo_r, loc_r.filename(), loc_r.medianr() ) ); - - if ( loc_r.checksum().empty() ) - { - // no checksum in metadata - WAR << "No checksum in metadata " << loc_r << endl; - } - else + for ( RepoInfo::urls_const_iterator it = urls.begin(); + it != urls.end(); + ++it ) + { + url = *it; + try { - std::ifstream input( ret->asString().c_str() ); - CheckSum retChecksum( loc_r.checksum().type(), input ); - input.close(); - - if ( loc_r.checksum() != retChecksum ) + + MediaSetAccess access(url); + + ManagedFile ret( access.provideFile(loc_r), + RepoReleaseFile( repo_r, loc_r.filename(), loc_r.medianr() ) ); + + if ( loc_r.checksum().empty() ) + { + // no checksum in metadata + WAR << "No checksum in metadata " << loc_r << endl; + } + else + { + std::ifstream input( ret->asString().c_str() ); + CheckSum retChecksum( loc_r.checksum().type(), input ); + input.close(); + + if ( loc_r.checksum() != retChecksum ) { // failed integity check std::ostringstream err; @@ -129,10 +137,17 @@ else WAR << "NO failOnChecksumError: " << err.str() << endl; } + } + + MIL << "sourceProvideFile at " << ret << endl; + return ret; } - - MIL << "sourceProvideFile at " << ret << endl; - return ret; + catch ( const Exception &e ) + { + ERR << "Trying next url" << endl; + continue; + } + } // iteration over urls } ///////////////////////////////////////////////////////////////// Modified: trunk/libzypp/zypp/target/TargetImpl.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/target/TargetImpl.cc?rev=5793&r1=5792&r2=5793&view=diff ============================================================================== --- trunk/libzypp/zypp/target/TargetImpl.cc (original) +++ trunk/libzypp/zypp/target/TargetImpl.cc Tue Jun 19 17:56:06 2007 @@ -40,7 +40,13 @@ #include "zypp/pool/GetResolvablesToInsDel.h" #include "zypp/solver/detail/Helper.h" + +#ifdef ZYPP_REFACTORING +#include "zypp/repo/DeltaCandidates.h" +#include "zypp/repo/PackageProvider.h" +#else #include "zypp/source/PackageProvider.h" +#endif using namespace std; using namespace zypp; @@ -224,11 +230,22 @@ { // Redirect PackageProvider queries for installed editions // (in case of patch/delta rpm processing) to rpmDb. +#ifdef ZYPP_REFACTORING + repo::PackageProviderPolicy packageProviderPolicy; +#else source::PackageProviderPolicy packageProviderPolicy; +#endif packageProviderPolicy.queryInstalledCB( QueryInstalledEditionHelper() ); Package::constPtr p = asKind<Package>(pi.resolvable()); +#ifdef ZYPP_REFACTORING + // FIXME no repo list + std::set<Repository> repos; + repo::DeltaCandidates deltas(repos); + repo::PackageProvider pkgProvider( p, deltas, packageProviderPolicy ); +#else source::PackageProvider pkgProvider( p, packageProviderPolicy ); +#endif return pkgProvider.providePackage(); } -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org