diff -Nru qapt-1.3.1/debian/changelog qapt-1.3.1/debian/changelog --- qapt-1.3.1/debian/changelog 2012-04-01 16:26:29.000000000 +0000 +++ qapt-1.3.1/debian/changelog 2012-04-08 01:22:57.000000000 +0000 @@ -1,3 +1,16 @@ +qapt (1.3.1-0ubuntu2) precise; urgency=low + + * Cherry-pick several patches from the 1.3 branch: (LP: #976159) + - Add fix_misreported_marking_errors.diff to stop marking errors being + reported as lock errors. + - Add fix_worker_upgrade_marking.diff, which uses a more conservative + problem resolution method to fix marking issues that occur while + marking single packages for upgrade, as well as fixes an issue where + the worker would not clear errors caused by marking issues that had + been fixed manually. + + -- Jonathan Thomas Sat, 07 Apr 2012 19:48:44 -0400 + qapt (1.3.1-0ubuntu1) precise; urgency=low * New upstream bugfix release diff -Nru qapt-1.3.1/debian/patches/fix_misreported_marking_errors.diff qapt-1.3.1/debian/patches/fix_misreported_marking_errors.diff --- qapt-1.3.1/debian/patches/fix_misreported_marking_errors.diff 1970-01-01 00:00:00.000000000 +0000 +++ qapt-1.3.1/debian/patches/fix_misreported_marking_errors.diff 2012-04-07 23:45:33.000000000 +0000 @@ -0,0 +1,25 @@ +Index: qapt-1.3.1/src/worker/worker.cpp +=================================================================== +--- qapt-1.3.1.orig/src/worker/worker.cpp 2012-04-01 12:11:47.000000000 -0400 ++++ qapt-1.3.1/src/worker/worker.cpp 2012-04-07 19:44:47.059190088 -0400 +@@ -346,6 +346,20 @@ + + emit workerStarted(); + ++ if (_error->PendingError()) { ++ string message; ++ QVariantMap details; ++ ++ _error->PopMessage(message); ++ details[QLatin1String("FromWorker")] = true; ++ details[QLatin1String("ErrorText")] = QString::fromStdString(message); ++ ++ emit errorOccurred(QApt::InitError, details); ++ emit workerFinished(false); ++ m_timeout->start(); ++ return; ++ } ++ + // Lock the archive directory + FileFd Lock; + if (_config->FindB("Debug::NoLocking",false) == false) diff -Nru qapt-1.3.1/debian/patches/fix_worker_upgrade_marking.diff qapt-1.3.1/debian/patches/fix_worker_upgrade_marking.diff --- qapt-1.3.1/debian/patches/fix_worker_upgrade_marking.diff 1970-01-01 00:00:00.000000000 +0000 +++ qapt-1.3.1/debian/patches/fix_worker_upgrade_marking.diff 2012-04-07 23:48:31.000000000 +0000 @@ -0,0 +1,29 @@ +Index: qapt-1.3.1/src/worker/worker.cpp +=================================================================== +--- qapt-1.3.1.orig/src/worker/worker.cpp 2012-04-07 19:44:47.059190088 -0400 ++++ qapt-1.3.1/src/worker/worker.cpp 2012-04-07 19:47:44.052067746 -0400 +@@ -296,9 +296,8 @@ + m_cache->depCache()->MarkInstall(iter, true, 0, fromUser); + if (!State.Install() || m_cache->depCache()->BrokenCount() > 0) { + pkgProblemResolver Fix(m_cache->depCache()); +- Fix.Clear(iter); + Fix.Protect(iter); +- Fix.Resolve(true); ++ Fix.ResolveByKeep(); + } + break; + } +@@ -344,6 +343,13 @@ + mapIter++; + } + ++ if (_error->PendingError() && (m_cache->depCache()->BrokenCount() == 0)) ++ { ++ // We had dep errors, but fixed them ++ _error->Discard(); ++ qDebug() << "fixed errors"; ++ } ++ + emit workerStarted(); + + if (_error->PendingError()) { diff -Nru qapt-1.3.1/debian/patches/series qapt-1.3.1/debian/patches/series --- qapt-1.3.1/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ qapt-1.3.1/debian/patches/series 2012-04-07 23:46:03.000000000 +0000 @@ -0,0 +1,2 @@ +fix_misreported_marking_errors.diff +fix_worker_upgrade_marking.diff