summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/deb/dpkgpm.cc24
-rw-r--r--debian/changelog10
2 files changed, 34 insertions, 0 deletions
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
index 30f3b7d0f..b9f49365d 100644
--- a/apt-pkg/deb/dpkgpm.cc
+++ b/apt-pkg/deb/dpkgpm.cc
@@ -1322,6 +1322,13 @@ void pkgDPkgPM::WriteApportReport(const char *pkgpath, const char *errormsg)
return;
}
+ // do not report bugs regarding inaccessible local files
+ if(strstr(errormsg, strerror(ENOENT)) != NULL ||
+ strstr(errormsg, "Cannot access archive") != NULL) {
+ std::clog << _("No apport report written because the error message indicates an issue on the local system") << std::endl;
+ return;
+ }
+
// do not report dpkg I/O errors, this is a format string, so we compare
// the prefix and the suffix of the error with the dpkg error message
vector<string> io_errors;
@@ -1439,6 +1446,23 @@ void pkgDPkgPM::WriteApportReport(const char *pkgpath, const char *errormsg)
}
}
+ // attach history log it if we have it
+ string histfile_name = _config->FindFile("Dir::Log::History");
+ if (!histfile_name.empty())
+ {
+ FILE *log = NULL;
+ char buf[1024];
+
+ fprintf(report, "DpkgHistoryLog:\n");
+ log = fopen(histfile_name.c_str(),"r");
+ if(log != NULL)
+ {
+ while( fgets(buf, sizeof(buf), log) != NULL)
+ fprintf(report, " %s", buf);
+ fclose(log);
+ }
+ }
+
// log the ordering
const char *ops_str[] = {"Install", "Configure","Remove","Purge"};
fprintf(report, "AptOrdering:\n");
diff --git a/debian/changelog b/debian/changelog
index 3e21120cf..8cc9b53e1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+apt (0.8.14.1ubuntu6) UNRELEASEDoneiric; urgency=low
+
+ * apt-pkg/deb/dpkgpm.cc:
+ - prevent reporting of package installation failures due to inaccessible
+ local files (LP: #791102, #790040)
+ - include /var/log/apt/history.log in apport-package reports so we know
+ the context for the package management request
+
+ -- Brian Murray <brian@ubuntu.com> Wed, 01 Jun 2011 12:32:31 -0700
+
apt (0.8.14.1ubuntu5) oneiric; urgency=low
* apt-pkg/acquire-item.cc: