pass location to makePackageFromHeader() in order to support local .rpm files
authorKlaus Kaempf <kkaempf@suse.de>
Mon, 27 Feb 2006 09:40:30 +0000 (09:40 +0000)
committerKlaus Kaempf <kkaempf@suse.de>
Mon, 27 Feb 2006 09:40:30 +0000 (09:40 +0000)
zypp/target/rpm/RpmDb.cc
zypp/target/rpm/RpmDb.h

index c6ec3aa..74f64dd 100644 (file)
@@ -1000,7 +1000,7 @@ const std::list<Package::Ptr> & RpmDb::getPackages()
 // return NULL on error
 //
 
-Package::Ptr RpmDb::makePackageFromHeader( const RpmHeader::constPtr header, std::set<std::string> * filerequires )
+Package::Ptr RpmDb::makePackageFromHeader( const RpmHeader::constPtr header, std::set<std::string> * filerequires, const Pathname & location )
 {
     Package::Ptr pptr;
 
@@ -1009,6 +1009,9 @@ Package::Ptr RpmDb::makePackageFromHeader( const RpmHeader::constPtr header, std
     // create dataprovider
     detail::ResImplTraits<RPMPackageImpl>::Ptr impl( new RPMPackageImpl( header ) );
 
+    if (!location.empty())
+       impl->setLocation( location );
+
     Edition edition;
     Arch arch;
 
@@ -1121,6 +1124,8 @@ const std::list<Package::Ptr> & RpmDb::doGetPackages(callback::SendReport<ScanDB
   DBG << "Expecting " << expect << " packages" << endl;
 
   CapFactory _f;
+  Pathname location;
+
   for ( iter.findAll(); *iter; ++iter, ++current, report->progress( (100*current)/expect)) {
 
     string name = iter->tag_name();
@@ -1143,7 +1148,7 @@ This prevented from having packages multiple times
     }
 #endif
 
-    Package::Ptr pptr = makePackageFromHeader( *iter, &_filerequires );
+    Package::Ptr pptr = makePackageFromHeader( *iter, &_filerequires, location );
 
     _packages._list.push_back( pptr );
   }
index 5ac9c0f..bf74e68 100644 (file)
@@ -325,7 +325,7 @@ namespace zypp {
           * return NULL on error
           **/
 
-         static Package::Ptr makePackageFromHeader( const RpmHeader::constPtr header, std::set<std::string> * filerequires = NULL );
+         static Package::Ptr makePackageFromHeader( const RpmHeader::constPtr header, std::set<std::string> * filerequires, const Pathname & location );
 
          ///////////////////////////////////////////////////////////////////
          //