QFile logfile(KLogFile);
logfile.remove();
- // clear files left from old versions
- QFile f1("/root/.fapman/dates.cache");
- f1.remove();
- QFile f2("/root/.fapman/lastupdate");
- f2.remove();
-
readRepositoryInfo();
}
if( iProcAptGetClean->state() != QProcess::NotRunning )
iProcAptGetClean->kill();
- delete iDataReadBuffer;
+ // qprocesses are automatically deleted by their parent
+
+ QHashIterator<QString, Package*> a( iPackagesAvailable );
+ while (a.hasNext())
+ {
+ a.next();
+ delete a.value();
+ }
+ iPackagesAvailable.clear();
+
+ QHashIterator<QString, Package*> i( iPackagesInstalled );
+ while (i.hasNext())
+ {
+ i.next();
+ delete i.value();
+ }
+ iPackagesInstalled.clear();
+
+ for(int x=0; x<iRepositories.count(); x++) {
+ if( iRepositories.at(x) )
+ delete iRepositories.at(x);
+ }
+ iRepositories.clear();
+
+ delete[] iDataReadBuffer;
+ iDataReadBuffer=0;
}
void AAptInterface::addQueuedOperation(interfaceMode mode_)
iProcessPackageVersions.clear();
}
-bool AAptInterface::running()
+bool AAptInterface::running() const
{
if( iMode == ModeNone )
return false;
iNeedDpkgRefresh = true;
iNeedDateRefresh = true;
+ iMainWindow->openNetworkConnection();
+
if( iUiDimmer ) {
iUiDimmer->setProgress(0);
iUiDimmer->updateText("Updating catalogs");
iProcAptGetInstallOutput.clear();
+ iMainWindow->openNetworkConnection();
+
qDebug() << "running apt-get install";
QString runBinary = "/usr/bin/apt-get";
} else if( output.contains("E: Broken packages") ) {
msg = "Your system has broken packages or you are trying to install conflicting packages. See the log for details.";
} else if( output.contains("E: Handler silently failed") ) {
- msg = "Handler silently failed - This can happen if you try to install from the forbidden user/hidden category";
+ msg = "Handler silently failed - This can happen if you try to install from the forbidden user/hidden category. Disabling OVI store repositories might help.";
} else if( iTerminated ) {
msg = "The operation was cancelled by user";
} else if( output.contains("Temporary failure resolving") || output.contains("Could not resolve host") ) {
msg = "Some of your packages have unmet dependencies which could not be fixed. See the log for details.";
} else if( output.contains("E: The method driver") ) {
msg = "Apt failed to find a suitable method driver. One or more of your repositories might have an invalid URL.";
+ } else if( output.contains("E: Invalid record in the preferences file") ) {
+ msg = "Invalid record in the apt preferences file.";
+ } else if( output.contains("E: Malformed line") && output.contains("in source list") ) {
+ msg = "Malformed line in sources list. Check your repository settings.";
}
return msg;
return;
QStringList lines = QString( data.trimmed() ).split('\n');
+ QString infoline;
for( int i=0; i<lines.count(); i++ )
{
if( lines.at(i).startsWith("Get:") || lines.at(i).startsWith("Hit ") )
- iCatalogCounter++;
+ {
+ iCatalogCounter++;
+ }
+ infoline = lines.at(i).trimmed();
}
+ //if( infoline.isEmpty() )
+ //infoline = "arstus";
+
//iUiDimmer->updateText( QString("Updating catalogs (%1)").arg(iCatalogCounter) );
//qDebug() << iCatalogCounter << iCatalogsTotal;
- iUiDimmer->setProgress( iCatalogCounter*100/iCatalogsTotal );
+
+ //iUiDimmer->updateText("Updating catalogs<br><font size=\"-1\">" + infoline + "</font>");
+
+ if( iCatalogsTotal > 0 )
+ iUiDimmer->setProgress( iCatalogCounter*100/iCatalogsTotal );
}
void AAptInterface::uiUpdaterAptGetInstall()
if( pkg!=0 ) {
iAptGetCurrentDownloadFileName = pkg->fileName();
iAptGetCurrentFileTotalSize = pkg->size()/1024;
- pkgname += QString(" (%1 kB)").arg(iAptGetCurrentFileTotalSize);
+ pkgname += QString(" (%L1 kB)").arg(iAptGetCurrentFileTotalSize);
}
iAptGetDownloadCount++;
oper += QString(" %1/%2").arg(iAptGetDownloadCount).arg(iAptGetInstallTotal);
//qDebug() << r->toListFileNames();
} else {
delete r;
+ r=0;
}
}
}
return;
}
- if( ownFound )
+ if( ownFound ) {
+ qDebug() << "own repo lists found";
return;
+ }
QFile ham( KHamRepoListFile );
if( ham.open(QIODevice::ReadOnly | QIODevice::Text ) )
Repository* r = new Repository();
if( r->setFromString(line) ) {
iRepositories.append(r);
+
+#ifdef Q_WS_MAEMO_5
+ // disable the ovi repository by default
+ if( line.contains("https://downloads.maemo.nokia.com/fremantle1.2/ovi/") ) {
+ r->setEnabled(false);
+ }
+#endif
} else {
delete r;
+ r=0;
}
}
ham.close();
+ qDebug() << "system repo list loaded";
}
+
}
bool AAptInterface::writeRepositories()
{
-#ifndef Q_WS_MAEMO_5 // for simulator
- return true;
-#endif
-
iNeedListRefresh = true;
QFile own( KOwnRepoFile );
bool AAptInterface::needRepoRefresh()
{
-#ifndef Q_WS_MAEMO_5 // for simulator
- return false;
-#endif
-
if( iNeedRepoRefresh || iSettings->qsettings()->value("need_repo_refresh", false).toBool() ) {
iNeedRepoRefresh = false;
iSettings->qsettings()->setValue("need_repo_refresh", false);
{
pkg->appendBreaks( line.mid(7).trimmed() );
}
+ else if( line.startsWith("Maintainer:") )
+ {
+ pkg->setMaintainer( line.mid(11).trimmed() );
+ }
else if( line.startsWith("Description:") )
{
return;
}
- QStringList newlist;
bool removed = false;
for( int i=0; i<iBlacklist.count(); i++ )
{
if( oldstate == BlacklistSelect::BlacklistAll )
{
- if( !(iBlacklist.at(i) == pkg->name()) ) {
- newlist << iBlacklist.at(i);
- } else removed = true;
+ if( iBlacklist.at(i) == pkg->name() ) {
+ iBlacklist.removeAt(i);
+ i--;
+ removed = true;
+ }
} else if( oldstate == BlacklistSelect::BlacklistThis ) {
- if( !(iBlacklist.at(i) == (pkg->name()+" "+pkg->version())) ) {
- newlist << iBlacklist.at(i);
- } else removed = true;
+ if( iBlacklist.at(i) == (pkg->name()+" "+pkg->version()) ) {
+ iBlacklist.removeAt(i);
+ i--;
+ removed = true;
+ }
}
}
else
qDebug() << "blacklist:" << pkg->name() << "not in saved list";
- iBlacklist = newlist;
}
QApplication::processEvents();
}
+ iMainWindow->openNetworkConnection();
+
QNetworkAccessManager* nam = new QNetworkAccessManager(this);
if( iSettings->qsettings()->value("use_proxies").toBool() && !iSettings->qsettings()->value("http_proxy").toString().isEmpty() )
i.next();
if( !i.value()->date().isValid() && i.value()->section().startsWith("user/") && !i.value()->isBlacklisted() )
{
- Repository* repo = 0;
+ const Repository* repo = 0;
for( int x=0; x<i.value()->repositories().count(); x++ ) {
if( i.value()->repositories().at(x) && i.value()->repositories().at(x)->url().startsWith("http://repository.maemo.org") )
{
if( !fe.value()->date().isValid() && fe.value()->section().startsWith("user/") && !fe.value()->isBlacklisted() )
{
QString url;
- Repository* repo = 0;
+ const Repository* repo = 0;
QString fullFilename = "unknown_filename";
for( int x=0; x<fe.value()->repositories().count(); x++ ) {
if( fe.value()->repositories().at(x) && fe.value()->repositories().at(x)->url().startsWith("http://repository.maemo.org") )
{
repo = fe.value()->repositories().at(x);
- if( fe.value()->fullFileNames().count()>x )
+ if( repo && fe.value()->fullFileNames().count()>x )
fullFilename = fe.value()->fullFileNames().at(x);
break;
}
QApplication::processEvents(QEventLoop::WaitForMoreEvents);
}
} else {
- while( iDateRequestsWaiting>50 ) {
+ while( iDateRequestsWaiting>5 ) {
QApplication::processEvents(QEventLoop::WaitForMoreEvents);
}
}
updProgress++;
}
delete nam;
+ nam=0;
if( iDateRequestsReceived>0 && iNetworkError != QNetworkReply::NoError &&
iNetworkError != QNetworkReply::QNetworkReply::ContentAccessDenied && iNetworkError != QNetworkReply::QNetworkReply::ContentNotFoundError )
{
iDateRequestsWaiting--;
iDateRequestsReceived++;
- //qDebug() << "reply" << reply->header(QNetworkRequest::LastModifiedHeader).toDateTime();
iNetworkError = reply->error();
+ QDateTime dateModified = reply->header(QNetworkRequest::LastModifiedHeader).toDateTime();
- if( reply->error() == QNetworkReply::NoError && reply->header(QNetworkRequest::LastModifiedHeader).toDateTime().isValid() )
+ if( reply->error() == QNetworkReply::NoError && dateModified.isValid() )
{
QString pkgname = reply->url().fragment();
//qDebug() << pkgname;
Package* pkg = iPackagesAvailable.value(pkgname, 0);
if( pkg ) {
- pkg->setDate( reply->header(QNetworkRequest::LastModifiedHeader).toDateTime() );
+ pkg->setDate( dateModified );
} else {
qDebug() << "warning: unknown packagename in reply:" << pkgname;
}
"remove such settings as they can result in unexpected behavior of Faster Application Manager.");
}
}
-
-bool AAptInterface::loadInstallFiles(QStringList files_)
-{
- qDebug() << files_;
-
- return false;
-}