// TODO objects from the XML store
return _store;
}
+
+ Pathname TargetImpl::getRpmFile(Package::constPtr package)
+ {
+ callback::SendReport<source::DownloadResolvableReport> report;
+
+ // FIXME: error handling
+ // FIXME: Url
+ report->start( package, Url() );
+
+ Pathname file = package->getPlainRpm();
+
+ report->finish( package, source::DownloadResolvableReport::NO_ERROR, "" );
+
+ return file;
+ }
void TargetImpl::commit(ResPool pool_r)
{
Package::constPtr p = dynamic_pointer_cast<const Package>(it->resolvable());
if (it->status().isToBeInstalled())
{
+ Pathname localfile = getRpmFile(p);
+
#warning Exception handling
- // create a progress report proxy
+ // create a installation progress report proxy
RpmInstallPackageReceiver progress(it->resolvable());
progress.connect();
try {
progress.tryLevel( target::rpm::InstallResolvableReport::RPM );
- rpm().installPackage(p->getPlainRpm(),
+ rpm().installPackage(localfile,
p->installOnly() ? rpm::RpmDb::RPMINST_NOUPGRADE : 0);
}
catch (Exception & excpt_r) {
WAR << "Install failed, retrying with --nodeps" << endl;
try {
progress.tryLevel( target::rpm::InstallResolvableReport::RPM_NODEPS );
- rpm().installPackage(p->getPlainRpm(),
+ rpm().installPackage(localfile,
p->installOnly() ? rpm::RpmDb::RPMINST_NOUPGRADE : rpm::RpmDb::RPMINST_NODEPS);
}
catch (Exception & excpt_r) {
try {
progress.tryLevel( target::rpm::InstallResolvableReport::RPM_NODEPS_FORCE );
- rpm().installPackage(p->getPlainRpm(),
+ rpm().installPackage(localfile,
p->installOnly() ? rpm::RpmDb::RPMINST_NOUPGRADE : (rpm::RpmDb::RPMINST_NODEPS|rpm::RpmDb::RPMINST_FORCE));
}
catch (Exception & excpt_r) {