diff options
-rw-r--r-- | apt-pkg/deb/dpkgpm.cc | 24 | ||||
-rw-r--r-- | debian/changelog | 10 |
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: |