← Back to team overview

apport-hackers team mailing list archive

[Merge] ~seb128/apport:subiquity-desktop-details into apport:main

 

Sebastien Bacher has proposed merging ~seb128/apport:subiquity-desktop-details into apport:main.

Requested reviews:
  Apport upstream developers (apport-hackers)

For more details, see:
https://code.launchpad.net/~seb128/apport/+git/apport/+merge/440268

The new desktop installer use subiquity as a backend so let's collect also the frontend log if available, record the revision of the snap in use and tag in a way that let us filter the desktop reports
-- 
The attached diff has been truncated due to its size.
Your team Apport upstream developers is requested to review the proposed merge of ~seb128/apport:subiquity-desktop-details into apport:main.
diff --git a/.gitignore b/.gitignore
index c2e6ac9..cf3ae93 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@ MANIFEST
 __pycache__
 apport/packaging_impl.py
 build
+debhelper/dh_apport.1
 dist
 doc/*.aux
 doc/*.log
diff --git a/debian/apport-autoreport.path b/debian/apport-autoreport.path
new file mode 100644
index 0000000..5217ba7
--- /dev/null
+++ b/debian/apport-autoreport.path
@@ -0,0 +1,9 @@
+[Unit]
+Description=Process error reports when automatic reporting is enabled (file watch)
+ConditionPathExists=/var/lib/apport/autoreport
+
+[Path]
+PathChanged=/var/crash
+
+[Install]
+WantedBy=paths.target
diff --git a/debian/apport-autoreport.service b/debian/apport-autoreport.service
new file mode 100644
index 0000000..215d06f
--- /dev/null
+++ b/debian/apport-autoreport.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Process error reports when automatic reporting is enabled
+ConditionPathExists=/var/lib/apport/autoreport
+Wants=whoopsie.path
+After=whoopsie.path
+
+[Service]
+Type=oneshot
+ExecStart=/usr/share/apport/whoopsie-upload-all --timeout 20
diff --git a/debian/apport-autoreport.timer b/debian/apport-autoreport.timer
new file mode 100644
index 0000000..de7257a
--- /dev/null
+++ b/debian/apport-autoreport.timer
@@ -0,0 +1,10 @@
+[Unit]
+Description=Process error reports when automatic reporting is enabled (timer based)
+ConditionPathExists=/var/lib/apport/autoreport
+
+[Timer]
+OnStartupSec=1h
+OnUnitActiveSec=3h
+
+[Install]
+WantedBy=timers.target
diff --git a/debian/apport-gtk.install b/debian/apport-gtk.install
new file mode 100644
index 0000000..ff0900b
--- /dev/null
+++ b/debian/apport-gtk.install
@@ -0,0 +1,2 @@
+usr/share/applications/*gtk*
+usr/share/apport/*gtk*
diff --git a/debian/apport-kde.install b/debian/apport-kde.install
new file mode 100644
index 0000000..76a1057
--- /dev/null
+++ b/debian/apport-kde.install
@@ -0,0 +1,10 @@
+usr/share/applications/apport-kde-mime.desktop
+usr/share/applications/apport-kde-mimelnk.desktop usr/share/mimelnk/text
+usr/share/applications/apport-kde.desktop
+usr/share/apport/*kde*
+usr/share/apport/bugreport.ui
+usr/share/apport/choices.ui
+usr/share/apport/error.ui
+usr/share/apport/progress.ui
+usr/share/apport/spinner.gif
+usr/share/apport/userpass.ui
diff --git a/debian/apport-noui.dirs b/debian/apport-noui.dirs
new file mode 100644
index 0000000..4686121
--- /dev/null
+++ b/debian/apport-noui.dirs
@@ -0,0 +1 @@
+/var/lib/apport
diff --git a/debian/apport-noui.postinst b/debian/apport-noui.postinst
new file mode 100644
index 0000000..a8dbe6a
--- /dev/null
+++ b/debian/apport-noui.postinst
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+set -e
+
+touch /var/lib/apport/autoreport
+
+# start the autoreport service on installation
+if [ -x "/usr/bin/deb-systemd-helper" ]; then
+        deb-systemd-invoke start 'apport-autoreport.path' >/dev/null || true
+fi
+
+#DEBHELPER#
diff --git a/debian/apport-noui.prerm b/debian/apport-noui.prerm
new file mode 100644
index 0000000..9f3d895
--- /dev/null
+++ b/debian/apport-noui.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+set -e
+
+if [ "$1" = remove ]; then
+	rm -f /var/lib/apport/autoreport
+fi
+
+# Transition the units to apport package itself
+if [ -x "/usr/bin/deb-systemd-helper" ]; then
+       deb-systemd-invoke stop 'apport-noui.path' 'apport-noui.service' >/dev/null || true
+       deb-systemd-helper purge 'apport-noui.path' >/dev/null || true
+       deb-systemd-helper unmask 'apport-noui.path' >/dev/null || true
+       deb-systemd-invoke stop 'apport-autoreport.path' >/dev/null || true
+fi
+
+#DEBHELPER#
diff --git a/debian/apport-retrace.install b/debian/apport-retrace.install
new file mode 100644
index 0000000..6b27380
--- /dev/null
+++ b/debian/apport-retrace.install
@@ -0,0 +1,5 @@
+usr/bin/apport-retrace
+usr/bin/crash-digger
+usr/bin/dupdb-admin
+usr/share/man/man1/apport-retrace.1
+usr/share/man/man1/dupdb-admin.1
diff --git a/debian/apport-valgrind.install b/debian/apport-valgrind.install
new file mode 100644
index 0000000..448e695
--- /dev/null
+++ b/debian/apport-valgrind.install
@@ -0,0 +1,2 @@
+usr/bin/apport-valgrind
+usr/share/man/man1/apport-valgrind.1
diff --git a/debian/apport.init b/debian/apport.init
new file mode 120000
index 0000000..4c697d9
--- /dev/null
+++ b/debian/apport.init
@@ -0,0 +1 @@
+../etc/init.d/apport
\ No newline at end of file
diff --git a/debian/apport.install b/debian/apport.install
new file mode 100644
index 0000000..8f991dc
--- /dev/null
+++ b/debian/apport.install
@@ -0,0 +1,41 @@
+../../java/testsuite/crash.class usr/share/apport/testsuite/
+../../java/testsuite/crash.jar usr/share/apport/testsuite/
+debian/apport-autoreport.path /lib/systemd/system
+debian/apport-autoreport.service /lib/systemd/system
+debian/apport-autoreport.timer /lib/systemd/system
+debian/tmp/etc
+lib/systemd/
+lib/udev/
+usr/bin/apport-bug
+usr/bin/apport-cli
+usr/bin/apport-collect
+usr/bin/apport-unpack
+usr/bin/oem-getlogs
+usr/lib/pm-utils
+usr/lib/tmpfiles.d/
+usr/share/apport/apport
+usr/share/apport/apport-checkreports
+usr/share/apport/apportcheckresume
+usr/share/apport/dump_acpi_tables.py
+usr/share/apport/gcc_ice_hook
+usr/share/apport/general-hooks
+usr/share/apport/is-enabled
+usr/share/apport/iwlwifi_error_dump
+usr/share/apport/java_uncaught_exception
+usr/share/apport/kernel_crashdump
+usr/share/apport/kernel_oops
+usr/share/apport/package-hooks
+usr/share/apport/package_hook
+usr/share/apport/recoverable_problem
+usr/share/apport/root_info_wrapper
+usr/share/apport/unkillable_shutdown
+usr/share/apport/whoopsie-upload-all
+usr/share/bash-completion/completions
+usr/share/doc/apport
+usr/share/icons
+usr/share/java/apport.jar usr/share/apport/
+usr/share/locale
+usr/share/man/man1/apport-bug.1
+usr/share/man/man1/apport-cli.1
+usr/share/man/man1/apport-unpack.1
+usr/share/polkit-1
diff --git a/debian/apport.links b/debian/apport.links
new file mode 100644
index 0000000..8fda9f3
--- /dev/null
+++ b/debian/apport.links
@@ -0,0 +1,14 @@
+/usr/bin/apport-bug /usr/bin/ubuntu-bug
+/usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-firmware.py
+/usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-meta-oem-osp1.py
+/usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-meta-oem.py
+/usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-meta-raspi.py
+/usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-meta.py
+/usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-oem-osp1.py
+/usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-oem.py
+/usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-signed-oem-osp1.py
+/usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-signed-oem.py
+/usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-signed.py
+/usr/share/bash-completion/completions/apport-bug /usr/share/bash-completion/completions/ubuntu-bug
+/usr/share/man/man1/apport-bug.1.gz /usr/share/man/man1/apport-collect.1.gz
+/usr/share/man/man1/apport-bug.1.gz /usr/share/man/man1/ubuntu-bug.1.gz
diff --git a/debian/apport.logrotate b/debian/apport.logrotate
new file mode 100644
index 0000000..e255fea
--- /dev/null
+++ b/debian/apport.logrotate
@@ -0,0 +1,9 @@
+/var/log/apport.log {
+       daily
+       rotate 7
+       delaycompress
+       compress
+       notifempty
+       missingok
+}
+
diff --git a/debian/apport.maintscript b/debian/apport.maintscript
new file mode 100644
index 0000000..c07bba4
--- /dev/null
+++ b/debian/apport.maintscript
@@ -0,0 +1,4 @@
+rm_conffile /etc/apport/blacklist.d/README.blacklist 2.25.0
+rm_conffile /etc/apport/blacklist.d/apport 2.25.0
+rm_conffile /etc/apport/native-origins.d/lts-q-backports 2.5.1-0ubuntu8~
+rm_conffile /etc/init/apport.conf 2.20.6-0ubuntu5~
diff --git a/debian/apport.postinst b/debian/apport.postinst
new file mode 100644
index 0000000..3e98058
--- /dev/null
+++ b/debian/apport.postinst
@@ -0,0 +1,10 @@
+#!/bin/sh
+set -e
+
+if [ "$1" = configure ]; then
+    # directory is required for package failures even if apport is disabled and
+    # thus the upstart job does not run
+    mkdir -p -m 1777 /var/crash
+fi
+
+#DEBHELPER#
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..a6626df
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,10748 @@
+apport (2.26.0-0ubuntu2) lunar; urgency=medium
+
+  * fix: Mock query to Github in integration test
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Fri, 24 Feb 2023 16:17:43 +0100
+
+apport (2.26.0-0ubuntu1) lunar; urgency=medium
+
+  * New upstream release.
+  * Depend on python3-requests for GitHub crash DB backend
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Fri, 24 Feb 2023 01:50:21 +0100
+
+apport (2.25.0-0ubuntu1) lunar; urgency=medium
+
+  * New upstream release.
+    - Add general hook image.py for collecting cloud build info
+      (LP: #1724623)
+    - Catch UnicodeDecodeError on a malformed problem report (LP: #1996040)
+    - Fix TypeError in error(): not enough arguments for format string
+      (LP: #1562477)
+    - whoopsie-upload-all: Use NoninteractiveHookUI for add_hooks_info
+      (LP: #2003098)
+    - Use inclusive names. This includes renaming the directory
+      /etc/apport/blacklist.d to /etc/apport/report-ignore and
+      /etc/apport/whitelist.d to /etc/apport/report-only
+  * Drop wine-preloader from Apports report-ignore list
+  * Drop unneeded dependency on transitional lsb-base
+  * Replace transitional policykit-1 by pkexec and polkitd
+  * Bump Standards-Version to 4.6.2
+  * Install apport-kde.desktop into apport-kde
+  * Use dh_missing --fail-missing
+  * Replace lsb_release call by platform.freedesktop_os_release and drop
+    lsb-release dependency
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Thu, 16 Feb 2023 12:03:57 +0100
+
+apport (2.24.0-0ubuntu2) lunar; urgency=medium
+
+  * Fix test failures with Python 3.11 (PR #57)
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Tue, 10 Jan 2023 17:34:18 +0100
+
+apport (2.24.0-0ubuntu1) lunar; urgency=medium
+
+  * New upstream bug-fix release.
+    - Catch malformed problem reports (LP: #1996040)
+    - Catch ValueError: not enough values to unpack (LP: #1995100)
+    - Catch FileNotFoundError for missing desktop files (LP: #1997753)
+    - Catch binascii.Error: Incorrect padding (LP: #1997912)
+    - Catch AttributeError: NoneType object has no attribute origins
+      (LP: #1997973)
+  * Drop cherry-picked upstream patches
+  * oem-getlogs: Use colon instead of a dot for chown command
+  * Remove redundant section from apport-noui
+  * Clarify that apport-noui is empty
+  * Run black, isort, pydocstyle, pylint during package build
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Thu, 08 Dec 2022 01:37:20 +0100
+
+apport (2.23.1-0ubuntu5) lunar; urgency=medium
+
+  * Declare python3-apport breaking older apport/apport-gtk/apport-kde
+    (LP: #1997759)
+  * build: Bump source/target Java version to 7
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Mon, 05 Dec 2022 13:22:03 +0100
+
+apport (2.23.1-0ubuntu4) lunar; urgency=medium
+
+  * etc/apport/crashdb.conf: Enable Launchpad crash reports for lunar
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Tue, 15 Nov 2022 16:31:53 +0100
+
+apport (2.23.1-0ubuntu3) kinetic; urgency=medium
+
+  * etc/apport/crashdb.conf: Disable Launchpad crash reports for 22.10
+    release.
+
+ -- Utkarsh Gupta <utkarsh@xxxxxxxxxx>  Thu, 13 Oct 2022 10:39:02 +0530
+
+apport (2.23.1-0ubuntu2) kinetic; urgency=medium
+
+  * tests: Determine source package dynamically in test_run_crash_kernel
+    (LP: #1992172)
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Fri, 07 Oct 2022 18:24:45 +0200
+
+apport (2.23.1-0ubuntu1) kinetic; urgency=medium
+
+  * New upstream bug-fix release.
+    - Disable debuginfod when collecting a report (LP: #1989803)
+    - apport-cli: Fix AttributeError: 'bytes' object has no attribute 'fileno'
+      (LP: #1991200)
+    - apport-bug: Add `/snap/bin` to `PATH` for Firefox snap on Lubuntu
+      (LP: #1973470)
+  * Drop cherry-picked upstream patches
+  * tests: Fix path for installed apport-cli
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Wed, 05 Oct 2022 16:25:48 +0200
+
+apport (2.23.0-0ubuntu2) kinetic; urgency=medium
+
+  * tests: Wait for test process to be started (LP: #1989365)
+  * tests: Fix psutil.NoSuchProcess in wait_for_gdb_child_process
+    (LP: #1989371)
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Thu, 15 Sep 2022 14:04:42 +0200
+
+apport (2.23.0-0ubuntu1) kinetic; urgency=medium
+
+  * New upstream release:
+    - apport-gtk:
+      - Gracefully handle import failure of gi (LP: #1980561)
+      - Catch AssertionError when importing Gdk (LP: #1980238)
+    - data/apport:
+      - Fix PermissionError for setuid programs inside container (LP: #1982487)
+      - Fix reading from stdin inside containers (LP: #1982555)
+    - apport-kde:
+      - Fix inverse order of choices (LP: #1967965)
+      - Import apport before usage (LP: #1980553)
+      - Drop old workaround for bug in SIP destructor (LP: #1980553)
+    - apport-unpack: Fix ValueError: ['separator'] has no binary content
+      (LP: #1889443)
+    - Fix _run_hook getting called with ui=None (LP: #1983481)
+  * Refresh patches and drop backported patches
+  * Fix pydocstyle and pylint complains in patches
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Mon, 22 Aug 2022 22:31:55 +0200
+
+apport (2.22.0-0ubuntu4) kinetic; urgency=medium
+
+  * tests: Use sleep instead of yes for tests
+  * apport: Initialize error log as first step
+  * Depend on python3-systemd for autopkgtest system-tests
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Thu, 07 Jul 2022 20:44:02 +0200
+
+apport (2.22.0-0ubuntu3) kinetic; urgency=medium
+
+  * tests: Fix killing test executable too early (LP: #1980390)
+  * tests: Fix test_add_gdb_info_script on armhf
+  * autopkgtest: Depend on Ubuntu keyring packages for system tests
+  * tests: Fix wrong Ubuntu archive URI on ports
+  * tests: Fix KeyError in test_install_packages_unversioned
+  * Fix trying to find debug packages for non-existing version
+  * tests: Upgrade APT tests to use Ubuntu 22.04 (jammy)
+  * tests: Fix IndexError in test_crash_setuid_drop
+  * tests: Print Apport log if no report is found
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Wed, 06 Jul 2022 16:56:52 +0200
+
+apport (2.22.0-0ubuntu2) kinetic; urgency=medium
+
+  * apport-gtk: Fix importing the wrong Gdk version
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Tue, 28 Jun 2022 13:41:05 +0200
+
+apport (2.22.0-0ubuntu1) kinetic; urgency=medium
+
+  * New upstream release:
+    - Replace `ProblemReport.get_date` by `ProblemReport.get_timestamp`, fixes
+      regression in 2.21.0 (LP: #1978487)
+    - apport-gtk: Exclude trailing dot from URL links (LP: #1978301)
+    - Fix `AttributeError`: 'NoneType' object has no attribute 'write', fixes
+      regression in 2.21.0 (LP: #1979211)
+    - apport_python_hook: Properly handle missing modules (LP: #1774843)
+    - apport_python_hook: Fix FileNotFoundError if the current directory was
+      deleted (LP: #1979637)
+    - apport_python_hook: Fix crash if os.getcwd() fails (LP: #1977954)
+    - Replace deprecated 'imp' module (LP: #1947425)
+    - whoopsie-upload-all: Fix 'EOFError' object has no attribute 'errno',
+      fixes regression in 2.21.0 (LP: #1979681)
+  * Fix KeyError: 'CasperMD5json'
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Mon, 27 Jun 2022 12:03:00 +0200
+
+apport (2.21.0-0ubuntu2) kinetic; urgency=medium
+
+  * tests: Use unlimited core ulimit for SIGQUIT test
+  * data/apport: Fix log file writing if chown/chmod fails
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Fri, 10 Jun 2022 15:39:32 +0200
+
+apport (2.21.0-0ubuntu1) kinetic; urgency=medium
+
+  * New upstream release.
+    - data/apport: Limit memory and duration of gdbus call. (CVE-2022-28654,
+      CVE-2022-28656)
+    - data/apport, apport/fileutils.py, test/test_fileutils.py: Validate
+      D-Bus socket location. (CVE-2022-28655)
+    - apport/fileutils.py, test/test_fileutils.py: Turn off interpolation
+      in get_config() to prevent DoS attacks. (CVE-2022-28652)
+    - Switch from chroot to container to validating socket owner.
+      (CVE-2022-1242, CVE-2022-28657)
+    - data/apport, etc/init.d/apport: Switch to using non-positional
+      arguments. Get real UID and GID from the kernel and make sure they
+      match the process. Also fix executable name space handling in
+      argument parsing. (CVE-2022-28658, CVE-2021-3899)
+    - Grab a slice of JournalErrors around the crash time (LP: #1962454)
+  * Switch to dpkg-source format 3.0 (quilt)
+  * Run unit and integration tests during package build
+  * Update autopkgtest (unit/integration and systems tests)
+  * Switch to debhelper 13
+  * Let apport depend on sensible-utils for sensible-pager
+  * Drop ancient X-Python3-Version
+  * Drop support for pre-cosmic upgrades
+  * Bump Standards-Version to 4.6.1
+  * Update debian/copyright
+  * Point Vcs-* URIs to git
+  * crashdb.conf: Enable Launchpad crash reports for kinetic
+  * Add upstream metadata
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Fri, 10 Jun 2022 11:37:56 +0200
+
+apport (2.20.11-0ubuntu82) jammy; urgency=medium
+
+  * whoopsie-upload-all:
+    - Catch zlib.error when decoding CoreDump from crash file (LP: #1947800)
+    - Catch FileNotFoundError during process_report (LP: #1867204)
+
+ -- Benjamin Drung <bdrung@xxxxxxxxxx>  Wed, 13 Apr 2022 22:20:41 +0200
+
+apport (2.20.11-0ubuntu81) jammy; urgency=medium
+
+  * etc/apport/crashdb.conf: Disable Launchpad crash reports for 22.04
+    release.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 12 Apr 2022 09:58:15 -0700
+
+apport (2.20.11-0ubuntu80) jammy; urgency=medium
+
+  * kde/apport-kde: Ensure we are passing integers to setGeometry
+    (LP: #1965830)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 28 Mar 2022 12:34:10 -0700
+
+apport (2.20.11-0ubuntu79) jammy; urgency=medium
+
+  * kde/apport-kde: when displaying a progress dialog ensure that we are using
+    an integer. (LP: #1964405)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 11 Mar 2022 10:41:47 -0800
+
+apport (2.20.11-0ubuntu78) jammy; urgency=medium
+
+  [ Olivier Gayot ]
+  * Expect whoopsie to be started using path-based activation.
+  * Pass timeout option to apport-autoreport so that whoopsie has time to
+    upload all reports.
+  * Use timer-based activation for apport-autoreport in addition to path-based
+    activation (on modification of /var/crash).
+  * Some code cleanup in data/whoopsie-upload-all.
+  * Use unbuffered logging in data/whoopsie-upload-all.
+  * Touch the /var/crash directory in data/whoopsie-upload-all so that
+    whoopsie activates when needed.
+  * Stop removing .crash files after they are successfully uploaded by
+    whoopsie.
+
+  [ Brian Murray ]
+  * When collecting information about a snap gather some additional details,
+    thanks to Olivier Tilloy for the idea. (LP: #1960964)
+  * Update the recommended version of whoopsie for apport-noui.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 22 Feb 2022 17:13:48 -0800
+
+apport (2.20.11-0ubuntu77) jammy; urgency=medium
+
+  * apport/ui.py: Error out when -w option is used on wayland (LP: #1952947).
+
+ -- Nick Rosbrook <nick.rosbrook@xxxxxxxxxxxxx>  Tue, 15 Feb 2022 10:10:59 -0500
+
+apport (2.20.11-0ubuntu76) jammy; urgency=medium
+
+  * data/package-hooks/ubuntu-desktop-installer.py: Add in a new package hook
+    which allows one to report bugs about the ubuntu-desktop-installer to the
+    appropriate project. Thanks to Sebastien Bacher for this hook.
+  * test/test_crashdb.py: convert the number to an integer before the truncate
+    call.
+  * test/test_backend_apt_dpkg.py: switch to using apt-helper instead of
+    apt-key to import the ddebs and ports.ubuntu.com keys.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 25 Jan 2022 09:58:45 -0800
+
+apport (2.20.11-0ubuntu75) jammy; urgency=medium
+
+  * bin/apport-retrace: For releases which gdb doesn't search in the
+    debug-file-directory for .gnu_debugaltlink create a symlink from the
+    host's .dwz to the machine specific one to work around the issue.
+    (LP: #1818918)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 13 Dec 2021 20:17:57 -0800
+
+apport (2.20.11-0ubuntu74) jammy; urgency=medium
+
+  [ Sebastien Bacher ]
+  * apport/ui.py: preserve XDG_DATA_DIRS for system reports, it's necessary
+    to be able to find a webbrowser installed from a snap like firefox.
+    (LP: #1951214)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 01 Dec 2021 14:12:32 -0800
+
+apport (2.20.11-0ubuntu73) jammy; urgency=medium
+
+  * test/test_report.py: the abort tests are failing again as the backtrace
+    didn't have a program counter value in frame 1 or 2 so also check frame 3.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 01 Nov 2021 11:13:17 -0700
+
+apport (2.20.11-0ubuntu72) jammy; urgency=medium
+
+  * etc/apport/crashdb.conf: Enable Launchpad crash reports for jammy.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 27 Oct 2021 05:35:34 -0700
+
+apport (2.20.11-0ubuntu71) impish-security; urgency=medium
+
+  * SECURITY UPDATE: Privilege escalation via core files
+    - refactor privilege dropping and create core files in a well-known
+      directory in apport/fileutils.py, apport/report.py, data/apport,
+      test/test_fileutils.py, test/test_report.py,
+      test/test_signal_crashes.py, test/test_ui.py.
+    - use systemd-tmpfiles to create and manage the well-known core file
+      directory in setup.py, data/systemd/apport.conf,
+      debian/apport.install.
+
+ -- Marc Deslauriers <marc.deslauriers@xxxxxxxxxx>  Mon, 18 Oct 2021 07:48:31 -0400
+
+apport (2.20.11-0ubuntu70) impish; urgency=medium
+
+  * etc/apport/crashdb.conf: Disable Launchpad crash reports for 21.10
+    release.
+  * debian/tests/upstream-system: Set /proc/sys/kernel/core_uses_pid to 0 as
+    that's the easiest way to fix tests that expect the core file to be named
+    core and not core.PID
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 05 Oct 2021 19:47:24 -0700
+
+apport (2.20.11-0ubuntu69) impish; urgency=medium
+
+  * SECURITY UPDATE: Arbitrary file read (LP: #1934308)
+    - data/general-hooks/ubuntu.py: don't attempt to include emacs
+      byte-compilation logs, they haven't been generated by the emacs
+      packages in a long time.
+    - CVE-2021-3709
+  * SECURITY UPDATE: Info disclosure via path traversal (LP: #1933832)
+    - apport/hookutils.py, test/test_hookutils.py: detect path traversal
+      attacks, and directory symlinks.
+    - CVE-2021-3710
+
+ -- Marc Deslauriers <marc.deslauriers@xxxxxxxxxx>  Thu, 26 Aug 2021 10:55:40 -0400
+
+apport (2.20.11-0ubuntu68) impish; urgency=medium
+
+  * data/package-hooks/source_ubiquity.py: confirm that the key exists in the
+    report before trying to manipulate it. (LP: #1929292)
+  * backends/packaging-apt-dpkg.py: check to see if there is a different
+    package which provides the dependency.
+  * test/test_report.py: with glibc 2.34 abort tests started failing as the
+    backtrace didn't have a program counter value in frame 1 so check frame 1
+    or frame 2.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 19 Aug 2021 16:32:29 -0700
+
+apport (2.20.11-0ubuntu67) impish; urgency=medium
+
+  * SECURITY UPDATE: Multiple arbitrary file reads (LP: #1917904)
+    - apport/hookutils.py: don't follow symlinks and make sure the file
+      isn't a FIFO in read_file().
+    - test/test_hookutils.py: added symlink tests.
+    - CVE-2021-32547, CVE-2021-32548, CVE-2021-32549, CVE-2021-32550,
+      CVE-2021-32551, CVE-2021-32552, CVE-2021-32553, CVE-2021-32554,
+      CVE-2021-32555
+  * SECURITY UPDATE: info disclosure via modified config files spoofing
+    (LP: #1917904)
+    - backends/packaging-apt-dpkg.py: properly terminate arguments in
+      get_modified_conffiles.
+    - CVE-2021-32556
+  * SECURITY UPDATE: arbitrary file write (LP: #1917904)
+    - data/whoopsie-upload-all: don't follow symlinks and make sure the
+      file isn't a FIFO in process_report().
+    - CVE-2021-32557
+
+ -- Marc Deslauriers <marc.deslauriers@xxxxxxxxxx>  Tue, 18 May 2021 09:15:10 -0400
+
+apport (2.20.11-0ubuntu66) impish; urgency=medium
+
+  * etc/apport/crashdb.conf: Enable Launchpad crash reports for impish.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 07 May 2021 15:39:35 -0700
+
+apport (2.20.11-0ubuntu65) hirsute; urgency=medium
+
+  * test/test_backend_apt_dpkg.py: libc6 recommends packages, some of which
+    are not installed on buildds now, so switch to testing libc-bin which only
+    has dependencies and is what the test is supposed to test.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 14 Apr 2021 13:52:22 -0700
+
+apport (2.20.11-0ubuntu64) hirsute; urgency=medium
+
+  * apport/hookutils.py: Do not crash when deleting CasperMD5json from the
+    report. (LP: #1923541)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 13 Apr 2021 07:25:43 -0700
+
+apport (2.20.11-0ubuntu63) hirsute; urgency=medium
+
+  * etc/apport/crashdb.conf: Disable Launchpad crash reports for 21.04
+    release.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 12 Apr 2021 10:34:56 -0700
+
+apport (2.20.11-0ubuntu62) hirsute; urgency=medium
+
+  * apport/hookutils.py: spawn pkttyagent so that log files can be gathered as
+    root in a non-graphical environment (LP: #1821415). Thanks to Iain Lane
+    for the patch.
+  * apport/hookutils.py: root access is needed to read the
+    casper-md5check.json file so switch to using that. (LP: #1922937)
+  * data/general-hooks/ubuntu.py: improving tagging of bugs from images we
+    create so that they are tagged $arch-image and better identify Raspberry
+    Pi devices (LP: #1920837). Thanks to Dave Jones for the patch.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 07 Apr 2021 13:14:04 -0700
+
+apport (2.20.11-0ubuntu61) hirsute; urgency=medium
+
+  * apport/hookutils.py: when creating KernLog with MAC information use
+    root_command_output with dmesg. Missed when fixing LP #1896095.
+  * data/general-hooks/ubuntu.py: tag bugs from Raspberry Pi images and RISCV
+    images appropriately. (LP: #1920837)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 24 Mar 2021 08:07:43 -0700
+
+apport (2.20.11-0ubuntu60) hirsute; urgency=medium
+
+  * Drop dh-systemd build dependency.
+
+ -- Matthias Klose <doko@xxxxxxxxxx>  Wed, 10 Mar 2021 16:45:45 +0100
+
+apport (2.20.11-0ubuntu59) hirsute; urgency=medium
+
+  * No change rebuild with fixed ownership.
+
+ -- Dimitri John Ledkov <xnox@xxxxxxxxxx>  Tue, 16 Feb 2021 15:09:46 +0000
+
+apport (2.20.11-0ubuntu58) hirsute; urgency=medium
+
+  [ Shivaram Lingamneni ]
+  * Remove dependency on python3-requests thereby reducing memory usage of
+    apport.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 15 Feb 2021 09:39:13 -0800
+
+apport (2.20.11-0ubuntu57) hirsute; urgency=medium
+
+  * SECURITY UPDATE: multiple security issues (LP: #1912326)
+    - CVE-2021-25682: error parsing /proc/pid/status
+    - CVE-2021-25683: error parsing /proc/pid/stat
+    - CVE-2021-25684: stuck reading fifo
+    - data/apport: make sure existing report is a regular file.
+    - apport/fileutils.py: move some logic here to skip over manipulated
+      process names and filenames.
+    - test/test_fileutils.py: added some parsing tests.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 02 Feb 2021 12:42:44 -0800
+
+apport (2.20.11-0ubuntu56) hirsute; urgency=medium
+
+  * test/test_backend_apt_dpkg.py: switch to using packages from the
+    apport-hackers PPA which are less likely to be deleted by random house
+    keeping.
+  * apport/hookutils.py: change the default value of CasperMD5CheckResult to
+    unknown as that more accurately reflects the case where the file does not
+    exist. Thanks to Walter Lapchynski for the fix.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 27 Jan 2021 15:34:23 -0800
+
+apport (2.20.11-0ubuntu55) hirsute; urgency=medium
+
+  * data/apport: only drop supplemental groups if the user is root.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 02 Dec 2020 14:40:29 -0800
+
+apport (2.20.11-0ubuntu54) hirsute; urgency=medium
+
+  * Fix for Python 3.9.
+
+ -- Matthias Klose <doko@xxxxxxxxxx>  Mon, 30 Nov 2020 17:18:23 +0100
+
+apport (2.20.11-0ubuntu53) hirsute; urgency=medium
+
+  * Various security hardening fixes (LP: #1903332)
+    - apport/fileutils.py: drop privileges in the correct order, limit
+      settings file size.
+    - apport/apport/report.py: properly drop privileges, limit ignore file
+      size.
+    - data/apport: drop supplemental groups.
+
+ -- Marc Deslauriers <marc.deslauriers@xxxxxxxxxx>  Thu, 12 Nov 2020 09:41:34 -0500
+
+apport (2.20.11-0ubuntu52) hirsute; urgency=medium
+
+  * apport/report.py, test/test_report.py, test/test_ui.py,
+    test/test_ui_gtk.py: handle the fact that gdb now returns a different
+    error message for truncated core files and patch out add_gdb_info from a
+    bunch of tests which don't need to run it.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 10 Nov 2020 12:46:41 -0800
+
+apport (2.20.11-0ubuntu51) hirsute; urgency=medium
+
+  * data/apport: Modify the check for whether or not a process is running in
+    the same namespace so that crashes from processes running protected in the
+    system.slice are considered as being from the same namespace. (LP: #1870060)
+  * etc/apport/crashdb.conf: Enable Launchpad crash reports for 21.04.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 04 Nov 2020 13:40:41 -0800
+
+apport (2.20.11-0ubuntu50) groovy; urgency=medium
+
+  * etc/apport/crashdb.conf: Disable Launchpad crash reports for 20.10
+    release.
+  * data/apport: In the event that the crashing executable does not exist on
+    disk any more the path name of the executable (passed by core) is appended
+    with '(deleted)' because apport is currently using sys.argv for argument
+    parsing there end up being too many arguments and apport crashes. This is
+    fixed by adding handling for six arguments. (LP: #1899195)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 12 Oct 2020 13:44:05 -0700
+
+apport (2.20.11-0ubuntu49) groovy; urgency=medium
+
+  * data/whoopsie-upload-all: Handle the case where the .crash file is newer
+    than the .uploaded file by removing the .uploaded and .upload files
+    thereby causing the crash to get submitted. (LP: #1891657)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 01 Oct 2020 15:41:28 -0700
+
+apport (2.20.11-0ubuntu48) groovy; urgency=medium
+
+  * data/whoopsie-upload-all: When processing reports if a .crash file already
+    has a corresponding .uploaded file which is newer than the .crash file
+    remove the .crash file. This reduces the number of times the
+    apport-autoreport.service runs. (LP: #1891657)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 25 Sep 2020 14:49:27 -0700
+
+apport (2.20.11-0ubuntu47) groovy; urgency=medium
+
+  [ Tiago Stürmer Daitx ]
+  * apport/ui.py: improve message when origin check fails as it can be
+    caused by empty apt list - candidate is limited to dpkg and we can't
+    tell where it came from. (LP: #1775219)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 21 Sep 2020 15:02:17 -0700
+
+apport (2.20.11-0ubuntu46) groovy; urgency=medium
+
+  [ Brian Murray ]
+  * apport/hookutils.py: call dump_acpi_tables.py with root_command_output
+    thereby avoiding a PermissionError.
+  * data/dump_acpi_tables.py: If the user cannot read the acpi tables don't
+    try and print them. (LP: #1895865)
+  * apport/hookutils.py: use root_command_output to gather dmesg rather than
+    failing to include it. (LP: #1896095)
+
+  [ YC Cheng ]
+  * bin/oem-getlogs: add ucm2 directory. Per Hui Wang, ucm3 also
+    use ucm2 directory.  (LP: #1893899)
+  * apport/hookutils.py: add new pa-info command in pulseaudio
+    pre requested by Hui Wang. (LP: #1893899)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 21 Sep 2020 10:19:02 -0700
+
+apport (2.20.11-0ubuntu45) groovy; urgency=medium
+
+  [ YC Cheng ]
+  * apport/hookutils.py: add acpidump using built-in dump_acpi_tables.py.
+    (LP: #1888352)
+  * bin/oem-getlogs: add "-E" in the usage, since we'd like to talk to
+    pulseaudio session and that need environment infomation. Also remove
+    acpidump since we will use the one from hook.
+
+  [ Brian Murray ]
+  * data/general-hooks/ubuntu.py: Check for /var/run/reboot-required.pkgs and
+    add it to the report as RebootRequiredPkgs.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 26 Aug 2020 15:57:02 -0700
+
+apport (2.20.11-0ubuntu44) groovy; urgency=medium
+
+  * SECURITY UPDATE: information disclosure issue (LP: #1885633)
+    - data/apport: also drop gid when checking if user session is closing.
+    - CVE-2020-11936
+  * SECURITY UPDATE: crash via malformed ignore file (LP: #1877023)
+    - apport/report.py: don't crash on malformed mtime values.
+    - CVE-2020-15701
+  * SECURITY UPDATE: TOCTOU in core file location
+    - data/apport: make sure the process hasn't been replaced after Apport
+      has started.
+    - CVE-2020-15702
+  * apport/ui.py, test/test_ui.py: make sure a PID is specified when using
+    --hanging (LP: #1876659)
+
+ -- Marc Deslauriers <marc.deslauriers@xxxxxxxxxx>  Fri, 31 Jul 2020 09:10:30 -0400
+
+apport (2.20.11-0ubuntu43) groovy; urgency=medium
+
+  * d/control: Offer real package alternatives along with x-terminal-server
+    for apport-gtk and apport-kde (LP: #1881976).
+
+ -- Dariusz Gadomski <dgadomski@xxxxxxxxxx>  Thu, 23 Jul 2020 08:52:46 +0200
+
+apport (2.20.11-0ubuntu42) groovy; urgency=medium
+
+  * Fix pep8 errors regarding ambiguous variables.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 24 Jun 2020 09:15:51 -0700
+
+apport (2.20.11-0ubuntu41) groovy; urgency=medium
+
+  [ Daniel Watkins ]
+  * apport/crashdb_impl/launchpad.py: ensure that project will always be set
+    in get_comment_url. (LP: #1884221)
+
+  [ Brian Murray ]
+  * data/dump_acpi_tables.py: update the output thanks to Alex Hung for the
+    patch. (LP: #1883027)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 23 Jun 2020 16:02:46 -0700
+
+apport (2.20.11-0ubuntu40) groovy; urgency=medium
+
+  * Build-depend on python3-requests-unixsocket.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 10 Jun 2020 12:30:43 -0700
+
+apport (2.20.11-0ubuntu39) groovy; urgency=medium
+
+  * Add functionality to apport so that ubuntu-bug can be used to report a bug
+    about a snap using information from the snap's contact field. Thanks to
+    Lukas Märdian for the patch. (LP: #1861082)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 10 Jun 2020 11:25:22 -0700
+
+apport (2.20.11-0ubuntu38) groovy; urgency=medium
+
+  * apport/report.py: If the user is not a part of any system groups then
+    set UserGroups to 'N/A'. (LP: #1427600)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 03 Jun 2020 15:32:17 -0700
+
+apport (2.20.11-0ubuntu37) groovy; urgency=medium
+
+  * apport/report.py: If the user is not a part of any system groups then
+    set UserGroups to an empty string. (LP: #1427600)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 02 Jun 2020 10:19:45 -0700
+
+apport (2.20.11-0ubuntu36) groovy; urgency=medium
+
+  * Build-depend on pyflakes3, not obsolete pyflakes.
+
+ -- Steve Langasek <steve.langasek@xxxxxxxxxx>  Wed, 20 May 2020 08:18:11 -0700
+
+apport (2.20.11-0ubuntu35) groovy; urgency=medium
+
+  * kde/apport-kde: Stop showing 'text' instead of a useful string. Thanks to
+    Launchpad user Niklas Sombert for the patch. (LP: #1879150)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 18 May 2020 10:28:25 -0700
+
+apport (2.20.11-0ubuntu34) groovy; urgency=medium
+
+  * apport_python_hook.py: if python apt modules are not built for the python
+    version then do capture the crash. (LP: #1774843)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 13 May 2020 16:17:11 -0700
+
+apport (2.20.11-0ubuntu33) groovy; urgency=medium
+
+  [ Olivier Tilloy ]
+  * gtk/apport-gtk: upgrade regular expression used to match URLs in free text
+    (LP: #1871185)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 07 May 2020 14:54:20 -0700
+
+apport (2.20.11-0ubuntu32) groovy; urgency=medium
+
+  * debian/apport.install: Add in a source package hook for linux-meta-raspi
+    which provides linux-raspi and linux-raspi2. (LP: #1876952)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 05 May 2020 09:29:28 -0700
+
+apport (2.20.11-0ubuntu31) groovy; urgency=medium
+
+  * data/general-hooks/ubuntu.py: collect ImageMediaBuild information which
+    exists on preinstalled RPi images. (LP: #1876945)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 05 May 2020 08:37:39 -0700
+
+apport (2.20.11-0ubuntu30) groovy; urgency=medium
+
+  * Add in a source package hook symlink for linux-firmware. (LP: #1872059)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 05 May 2020 08:11:39 -0700
+
+apport (2.20.11-0ubuntu29) groovy; urgency=medium
+
+  * debian/apport.install: remove linux 5.4 versioned package hooks.
+  * debian/apport.install: add linux-raspi, linux-raspi2 package hooks.
+  * etc/apport/crashdb.conf: Enable Launchpad crash reports for 20.10
+    release.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 04 May 2020 16:25:15 -0700
+
+apport (2.20.11-0ubuntu28) groovy; urgency=medium
+
+  * Point Vcs-Bzr to groovy branch
+  * debian/tests/control: Depend on python3-twisted, not python-twisted-core
+
+ -- Julian Andres Klode <juliank@xxxxxxxxxx>  Sun, 26 Apr 2020 14:02:39 +0200
+
+apport (2.20.11-0ubuntu27) focal; urgency=medium
+
+  * backends/packaging-apt-dpkg.py, apport/sandboxutils.py: Add modifications
+    to the retracing process to resolve failures to retrace due to user merge
+    changes.
+  * etc/apport/crashdb.conf: Disable Launchpad crash reports for 20.04
+    release.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 15 Apr 2020 17:01:49 -0700
+
+apport (2.20.11-0ubuntu26) focal; urgency=medium
+
+  * apport/hookutils.py, data/general-hooks/ubuntu.py: Add in a hook which
+    will add the results of the casper-md5check to all bug reports.
+    (LP: #1870408)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 08 Apr 2020 15:46:56 -0700
+
+apport (2.20.11-0ubuntu25) focal; urgency=medium
+
+  [ Brian Murray ]
+  * apport/hookutils.py: Add in "lspci -vt" output for the HWE team.
+
+  [ Dimitri John Ledkov ]
+  * data/general-hooks/powerpc.py: Hande reports without a package, such
+    as against subiquity snap, otherwise the hook crashes subiquity, which
+    is trying to generate a crash report. LP: #1871434
+  * data/package-hooks/subiquity.py: Fix typpo in subiquity hook, readline
+    from fp, not from filename.
+
+ -- Dimitri John Ledkov <xnox@xxxxxxxxxx>  Tue, 07 Apr 2020 20:04:10 +0100
+
+apport (2.20.11-0ubuntu24) focal; urgency=medium
+
+  * bin/apport-unpack: Handle gzip'ed files, thanks to Yuan-Chen Cheng for the
+    patch. (LP: #1859581)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 03 Apr 2020 10:38:06 -0700
+
+apport (2.20.11-0ubuntu23) focal; urgency=medium
+
+  * With Michael Hudson-Doyle add a package hook to allow subiquity problems
+    to be reported from the installed system and about the subuquity project.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 03 Apr 2020 09:33:54 -0700
+
+apport (2.20.11-0ubuntu22) focal; urgency=medium
+
+  * SECURITY UPDATE: World writable root owned lock file created in user
+    controllable location (LP: #1862348)
+    - data/apport: Change location of lock file to be directly under
+      /var/run so that regular users can not directly access it or perform
+      symlink attacks.
+    - CVE-2020-8831
+  * SECURITY UPDATE: Race condition between report creation and ownership
+    (LP: #1862933)
+    - data/apport: When setting owner of report file use a file-descriptor
+      to the report file instead of its path name to ensure that users can
+      not cause Apport to change the ownership of other files via a
+      symlink attack.
+    - CVE-2020-8833
+ -- Alex Murray <alex.murray@xxxxxxxxxxxxx>  Wed, 25 Mar 2020 11:28:58 +1030
+
+apport (2.20.11-0ubuntu21) focal; urgency=medium
+
+  [ Brian Murray ]
+  * backends/packaging-apt-dpkg.py: allow mirrors which are accessed via https
+    in sources.list. Thanks to Launchpad user Esokrates for the fix.
+    (LP: #1866996)
+  * backends/packaging-apt-dpkg.py: when downloading packages from Launchpad
+    do not require them to be authenticated.
+  * test/test_backend_apt_dpkg.py: Fix check for connectivity and modify
+    install from PPA test for a change in the PPA being tested.
+
+  [ Matthieu Clemenceau ]
+  * test/test_ui.py: Removed linux package version to fix autopkgtest with
+    focal. Changed linux-5.4 and linux-signed-5.4 to linux and linux-signed
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 12 Mar 2020 15:46:30 -0700
+
+apport (2.20.11-0ubuntu20) focal; urgency=medium
+
+  * test/test_report.py: resolve test failure with new glibc output.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 10 Mar 2020 08:41:28 -0700
+
+apport (2.20.11-0ubuntu19) focal; urgency=medium
+
+  * apport/report.py: do not return a duplicate signature when we are unable
+    to access ProcMaps as that is necessary to create one. (LP: #1866347)
+  * apport/ui.py: Always allow users to use ubuntu-bug or apport-collect
+    regardless of the Problem Reporting setting as they are manually invoked
+    and not automatically generated like a crash report. (LP: #1814611)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 09 Mar 2020 15:18:42 -0700
+
+apport (2.20.11-0ubuntu18) focal; urgency=medium
+
+  * data/whoopsie-upload-all: append to the crash report using fdopen and open
+    from os to cope with protected_regular being set to 1. (LP: #1848064)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Sat, 22 Feb 2020 06:56:37 -0800
+
+apport (2.20.11-0ubuntu17) focal; urgency=medium
+
+  [ Brian Murray ]
+  * Add in a source package hook symlinks for linux-signed-5.4,
+    linux-signed-oem-5.4, linux-oem-5.4, and linux-5.4. (LP: #1861446)
+  * Remove obsolete package hook for Nexus 7 devices.
+
+  [ Tiago Stürmer Daitx ]
+  * Fix Python 2/3 support. (LP: #1853383)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 21 Feb 2020 13:16:54 -0800
+
+apport (2.20.11-0ubuntu16) focal; urgency=medium
+
+  * SECURITY REGRESSION: 'module' object has no attribute 'O_PATH'
+    (LP: #1851806)
+    - apport/report.py, apport/ui.py: use file descriptors for /proc/pid
+      directory access only when running under python 3; prevent reading /proc
+      maps under python 2 as it does not provide a secure way to do so; use
+      io.open for better compatibility between python 2 and 3.
+  * data/apport: fix number of arguments passed through socks into a container.
+  * test/test_report.py: test login session with both pid and proc_pid_fd.
+
+ -- Tiago Stürmer Daitx <tiago.daitx@xxxxxxxxxx>  Mon, 06 Jan 2020 13:28:40 +0000
+
+apport (2.20.11-0ubuntu15) focal; urgency=medium
+
+  * etc/apport/crashdb.conf: Enable Launchpad crash reports for focal.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 20 Dec 2019 10:35:17 -0800
+
+apport (2.20.11-0ubuntu14) focal; urgency=medium
+
+  * apport/report.py, test/test_report.py: handle the fact that gdb now
+    returns a different error message for truncated core files in some cases.
+  * bin/oem-getlogs: add in script for getting hardware enablement related
+    logs. Thanks to Yuan-Chen Cheng for the code. (LP: #1841157)
+  * apport/hookutils.py: also gather lsusb -v and lsusb -t. Thanks to
+    Yuan-Chen Cheng for the patch.
+  * bin/oem-getlogs: Various pep8 / pyflakes fixes.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 13 Dec 2019 08:41:58 -0800
+
+apport (2.20.11-0ubuntu13) focal; urgency=medium
+
+  [ Brian Murray ]
+  * Create additional symlinks to the source_linux.py apport package hook for
+    many OEM kernels. Thanks to You-Sheng Yang for the patch. (LP: #1847967)
+
+  [ Michael Hudson-Doyle ]
+  * Fix autopkgtest failures since recent security update: (LP: #1854237)
+    - Fix regression in creating report for crashing setuid process by getting
+      kernel to tell us the executable path rather than reading
+      /proc/[pid]/exe.
+    - Fix deletion of partially written core files.
+    - Fix test_get_logind_session to use new API.
+    - Restore add_proc_info raising ValueError for a dead process.
+    - Delete test_lock_symlink, no longer applicable now that the lock is
+      created in a directory only root can write to.
+
+ -- Michael Hudson-Doyle <michael.hudson@xxxxxxxxxx>  Fri, 06 Dec 2019 08:57:09 +1300
+
+apport (2.20.11-0ubuntu12) focal; urgency=medium
+
+  [ Steve Langasek ]
+  * Drop python2 bindings.
+
+  [ Tiago Stürmer Daitx ]
+  * debian/control: point VCS to focal repository.
+
+ -- Steve Langasek <steve.langasek@xxxxxxxxxx>  Tue, 03 Dec 2019 10:46:40 -0800
+
+apport (2.20.11-0ubuntu11) focal; urgency=medium
+
+  * SECURITY REGRESSION: missing argument in Report.add_proc_environ
+    call (LP: #1850929)
+    - apport/report.py: call add_proc_environ using named arguments
+      and move proc_pid_dir keyword to last to keep api compatibility.
+
+ -- Tiago Stürmer Daitx <tiago.daitx@xxxxxxxxxx>  Tue, 05 Nov 2019 02:49:27 +0000
+
+apport (2.20.11-0ubuntu10) focal; urgency=medium
+
+  * SECURITY UPDATE: apport reads arbitrary files if ~/.config/apport/settings
+    is a symlink (LP: #1830862)
+    - apport/fileutils.py: drop permissions before reading user settings file.
+    - CVE-2019-11481
+  * SECURITY UPDATE: TOCTTOU race conditions and following symbolic
+    links when creating a core file (LP: #1839413)
+    - data/apport: use file descriptor to reference to cwd instead
+      of strings.
+    - CVE-2019-11482
+  * SECURITY UPDATE: fully user controllable lock file due to lock file
+    being located in world-writable directory (LP: #1839415)
+    - data/apport: create and use lock file from /var/lock/apport.
+    - CVE-2019-11485
+  * SECURITY UPDATE: per-process user controllable Apport socket file
+    (LP: #1839420)
+    - data/apport: forward crashes only under a valid uid and gid,
+      thanks Stéphane Graber for the patch.
+    - CVE-2019-11483
+  * SECURITY UPDATE: PID recycling enables an unprivileged user to
+    generate and read a crash report for a privileged process (LP: #1839795)
+    - data/apport: drop permissions before adding proc info (special thanks
+      to Kevin Backhouse for the patch)
+    - data/apport, apport/report.py, apport/ui.py: only access or open
+      /proc/[pid] through a file descriptor for that directory.
+    - CVE-2019-15790
+
+ -- Tiago Stürmer Daitx <tiago.daitx@xxxxxxxxxx>  Tue, 29 Oct 2019 05:23:08 +0000
+
+apport (2.20.11-0ubuntu9) focal; urgency=medium
+
+  * Use an SRU-safe substring when checking for the available version of
+    aspell-doc in xenial, since aspell *did* have an SRU.
+
+ -- Steve Langasek <steve.langasek@xxxxxxxxxx>  Tue, 22 Oct 2019 14:07:14 -0700
+
+apport (2.20.11-0ubuntu8) eoan; urgency=medium
+
+  * Removed general hook which would gather information about click packages.
+  * data/package-hooks/source_ubiquity: pass on a KeyError when adding
+    installation logs.
+  * etc/apport/crashdb.conf: Disable Launchpad crash reports for 19.04
+    release.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 09 Oct 2019 14:23:27 -0700
+
+apport (2.20.11-0ubuntu7) eoan; urgency=medium
+
+  * Resolve pycodestyle issues.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 22 Jul 2019 14:23:42 -0700
+
+apport (2.20.11-0ubuntu6) eoan; urgency=medium
+
+  * apport/ui.py: When saving a report for later processing if the filename
+    to save it to ends with .gz then gzip the report file. Thanks to Yuan-Chen
+    Cheng for the patch. (LP: #1837174)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 22 Jul 2019 12:20:34 -0700
+
+apport (2.20.11-0ubuntu5) eoan; urgency=medium
+
+  * SECURITY UPDATE: TOCTOU issue allows local user to read arbitrary
+    files (LP: #1830858)
+    - apport/report.py: Avoid TOCTOU issue on users ignore file by
+      dropping privileges and then opening the file both test for access and
+      open the file in a single operation, instead of using access() before
+      reading the file which could be abused by a symlink to cause Apport to
+      read and embed an arbitrary file in the resulting crash dump.
+    - CVE-2019-7307
+  * data/general-hooks/ubuntu.py: system-image-cli is no longer included in
+    Ubuntu and we do not need SystemImageInfo any more.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 09 Jul 2019 12:33:44 -0700
+
+apport (2.20.11-0ubuntu3) eoan; urgency=medium
+
+  * test/test_backend_apt_dpkg.py: Now that there are per architecture cache
+    files we need to make all of them outdated rather than just the first one.
+    (LP: #1832120)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 10 Jun 2019 16:02:32 -0700
+
+apport (2.20.11-0ubuntu2) eoan; urgency=medium
+
+  * test/test_backend_apt_dpkg.py: as of r3211 an error is not raised if the
+    binary is not found. Cherry picked from upstream r3248.
+  * backends/packaging-apt-dpkg.py: writing the contents mapping pickle file
+    can Traceback on systems with little memory so don't write it. Cherry
+    picked from upstream r3250.
+  * test/test_apport_valgrind.py: skip test_sandbox_cache_options if system
+    has little memory.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 20 May 2019 18:39:46 -0700
+
+apport (2.20.11-0ubuntu1) eoan; urgency=medium
+
+  * New upstream release:
+    - problem_report.py: Decrease zlib compression level from 9 to 6.  After a
+      crash, this reduces the time Apport spends compressing the core dump by
+      an order of magnitude. Thanks to Anders Kaseorg for the analysis and
+      initial patch. (LP: #1537635)
+    - backends/packaging-apt-dpkg.py: utilize a global mapping of files to
+      packages instead of searching a Contents.gz file multiple times,
+      additionally write this mapping to disk so subsequent lookups and
+      retraces are quicker. (LP: #1370230)
+    - test/test_report.py: add some tests for additional errors with core
+      files.
+  * debian/control: move python3-launchpadlib from a Suggests to a Depends as
+    python3-launchpadlib which was missed some time ago. (LP: #1824002)
+  * debian/control: Update VCS attribute.
+  * etc/apport/crashdb.conf: Enable Launchpad crash reports for eoan.
+  * Incorporate unreleased changes from upstream apport version 2.20.12:
+    - backends/packaging-apt-dpkg.py: Utilize a release and architecture
+      specific contents mapping.
+    - test/test_backend_apt_dpkg.py: Update the test as we are using a
+      contents mapping.
+    - test/test_report.py: remove unused import of gzip.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 17 May 2019 10:51:14 -0700
+
+apport (2.20.10-0ubuntu27) disco; urgency=medium
+
+  * data/whoopsie-upload-all: confirm the exception has an errno before using
+    it in a comparison. (LP: #1824152)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 11 Apr 2019 09:52:07 -0700
+
+apport (2.20.10-0ubuntu26) disco; urgency=medium
+
+  * etc/apport/crashdb.conf: Disable Launchpad crash reports for 19.04
+    release.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 08 Apr 2019 14:59:46 -0700
+
+apport (2.20.10-0ubuntu25) disco; urgency=medium
+
+  * test/test_report.py: update test_add_proc_info for function raising a
+    ValueError.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 04 Apr 2019 10:18:25 -0700
+
+apport (2.20.10-0ubuntu24) disco; urgency=medium
+
+  * debian/control: apport-gtk should depend on whoopsie-preferences as that
+    is needed to store preferences for reporting crashes. (LP: #1809247)
+  * apport/report.py, apport/ui.py: raise ValueError if the pid is not
+    accessible, display an error message for that or an invalid pid. (LP: #1396160)
+  * switch from pyflakes to pyflakes3, drop some python2 code
+  * apport/report.py: Have add_gdb_info return a FileNotFoundError if gdb or
+    the crashing executable are not found and modify whoopsie-upload-all to
+    upload crashes in that situation. (LP: #1820132)
+  * debian/control, apport/hookutils.py: pkexec does not work in non-graphical
+    environments yet (LP #1821415) and its providing package should only be
+    a suggests because gathering of information as root isn't entirely
+    necessary for a bug report.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 01 Apr 2019 16:05:25 -0700
+
+apport (2.20.10-0ubuntu23) disco; urgency=medium
+
+  * Fix python coding style issue introduced in previous upload.
+
+ -- Julian Andres Klode <juliank@xxxxxxxxxx>  Tue, 05 Mar 2019 10:35:17 +0100
+
+apport (2.20.10-0ubuntu22) disco; urgency=medium
+
+  * Introduce support for non-positional arguments (LP: #1732962)
+
+ -- Julian Andres Klode <juliank@xxxxxxxxxx>  Mon, 04 Mar 2019 17:48:00 +0100
+
+apport (2.20.10-0ubuntu21) disco; urgency=medium
+
+  [ Matthias Klose ]
+  * Avoid deprecation warnings.
+  * Fix VCS attribute in the control file.
+
+  [ Steve Langasek ]
+  * End our gdb batch script with a separator, to accomodate new exit codes
+    from gdb 8.2.50.
+
+ -- Steve Langasek <steve.langasek@xxxxxxxxxx>  Thu, 14 Feb 2019 21:26:00 -0800
+
+apport (2.20.10-0ubuntu20) disco; urgency=medium
+
+  * apport/ui.py: if report.get_timestamp() returns None don't try and use it
+    in a comparison. (LP: #1658188)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 04 Feb 2019 14:35:36 -0800
+
+apport (2.20.10-0ubuntu19) disco; urgency=medium
+
+  * debian/apport-autoreport.service: Since this calls whoopsie-upload-all
+    which fails if whoopsie isn't running, it should have a relationship with
+    whoopsie.service. (LP: #1787729)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 16 Jan 2019 10:23:09 -0800
+
+apport (2.20.10-0ubuntu18) disco; urgency=medium
+
+  * test/test_apport_valgrind.py: specify the location for true.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 07 Jan 2019 16:02:14 -0800
+
+apport (2.20.10-0ubuntu17) disco; urgency=medium
+
+  * backends/packaging-apt-dpkg.py: switch to using python3-launchpadlib to
+    communicate with Launchpad thereby gaining retry capabilities and using
+    its cache.
+  * backends/packaging-apt-dpkg.py: strip /usr from binary names so the .list
+    file will match.
+  * Re-enable Launchpad crash reports for disco.
+  * test/*: switch from using deprecated imp to importlib, modify binary
+    locations for merged-usr changes.
+  * apport/report.py: reorder directories check for binaries so /usr is
+    checked first.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 21 Dec 2018 08:36:40 -0800
+
+apport (2.20.10-0ubuntu14) disco; urgency=medium
+
+  * apport/ui.py: when using ubuntu-bug properly handle executables which
+    start with /snap/bin. (LP: #1760220)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 01 Nov 2018 09:30:11 -0700
+
+apport (2.20.10-0ubuntu13) cosmic; urgency=medium
+
+  * Fix PEP8 605 warnings and ignore 503,504 ones.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 11 Oct 2018 14:35:11 -0700
+
+apport (2.20.10-0ubuntu12) cosmic; urgency=medium
+
+  * etc/apport/crashdb.conf: Disable Launchpad crash reports for 18.10
+    release.
+  * data/general-hooks/ubuntu.py: include apport conffiles so we know if
+    people have manually turned on crash reporting to Launchpad or if
+    something is wrong with apport.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 11 Oct 2018 11:54:22 -0700
+
+apport (2.20.10-0ubuntu11) cosmic; urgency=medium
+
+  * Drop build/test dependency on obsolete libnih-dev.
+
+ -- Steve Langasek <steve.langasek@xxxxxxxxxx>  Wed, 12 Sep 2018 20:28:31 -0700
+
+apport (2.20.10-0ubuntu10) cosmic; urgency=medium
+
+  * Handle old reports generated pre-apport with "remember" option.
+    If the option isn't there, consider as false. (LP: #1791324)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Mon, 10 Sep 2018 18:17:09 +0200
+
+apport (2.20.10-0ubuntu9) cosmic; urgency=medium
+
+  * Revert the accidental bad changes introduced by the previous upload.
+    Sorry!
+
+ -- Simon Quigley <tsimonq2@xxxxxxxxxx>  Wed, 22 Aug 2018 17:01:05 -0700
+
+apport (2.20.10-0ubuntu8) cosmic; urgency=medium
+
+  * Add an alternative Recommends on lxqt-notificationd for the apport-kde
+    package so kubuntu-notification-helper isn't pulled in on Lubuntu.
+
+ -- Simon Quigley <tsimonq2@xxxxxxxxxx>  Tue, 21 Aug 2018 00:51:40 -0500
+
+apport (2.20.10-0ubuntu7) cosmic; urgency=medium
+
+  * tests/test_ui_gtk.py: Increase the timeout so that when the autopkgtest
+    infrastructure is busy the tests should not fail. (LP: #1780767)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 24 Jul 2018 08:03:49 -0700
+
+apport (2.20.10-0ubuntu6) cosmic; urgency=medium
+
+  * Start apport-autoreport after installing apport-noui.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 17 Jul 2018 13:27:49 -0700
+
+apport (2.20.10-0ubuntu5) cosmic; urgency=medium
+
+  *  Assume if no whoopsie that crash reporting is enabled:
+     As the old configuration that was a whoopsie configuration file that was
+     that was never updated by the whoopsie API, we assume that no
+     whoopsie installed (not the default) == manual send report is allowed.
+     If people want to disable crash reporting:
+     - get whoopsie installed and disable crash reporting in g-c-c
+     - uninstall apport
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Mon, 02 Jul 2018 10:59:22 +0200
+
+apport (2.20.10-0ubuntu4) cosmic; urgency=medium
+
+  * Add a remember option to whoopsie so that users can diminish
+    crash interactions (LP: #1778497)
+  * Move apport autoreport service files to apport binary package.
+    Having them in apport-noui was creating a bug where autoreport
+    wasn't working on desktop. As we check in the launched script
+    for whoopsie and autoreport file, we don't autoreport by default.
+    (LP: #1778694)
+    apport-noui still touches the file to enable autoreport on install.
+  * Remove upstart service and watershed dependency.
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Fri, 29 Jun 2018 15:35:52 +0200
+
+apport (2.20.10-0ubuntu3) cosmic; urgency=medium
+
+  * data/apport: Properly handle crashes originating from a PID namespace.
+    (LP: #1746668)
+    - CVE-2018-6552
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 30 May 2018 12:01:46 -0700
+
+apport (2.20.10-0ubuntu2) cosmic; urgency=medium
+
+   * etc/apport/crashdb.conf: Enable Launchpad crash reports for cosmic.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 11 May 2018 09:51:37 -0700
+
+apport (2.20.10-0ubuntu1) cosmic; urgency=medium
+
+  * New upstream release:
+    - backends/packaging-apt-dpkg.py: when using a permanent sandbox better
+      check for the package being already available thereby reducing quantity
+      of downloads.
+    - apport/report.py: Use timeout parameter in subprocess to limit how long
+      we'll wait for gdb to return information as gdb can hang with some core
+      files.
+    - data/apport: Fix PEP8 issues
+    - apport/ui.py: Include ProblemType in reports which are updated as
+      package hooks may expect the report to have a ProblemType. (LP: #1766794)
+    - test/test_ui.py: modify run_crash_kernel test to account for the fact
+      that linux-image-$kvers-$flavor is now built from the linux-signed
+      source package on amd64 and ppc64el. (LP: #1766740)
+  * data/general-hooks/ubuntu.py: Fix UnicodeDecodeError when processing
+    DpkgTerminalLog. (LP: #1766337)
+  * data/general-hooks/ubuntu.py: Don't display a messy error if python or
+    python3 is not installed. (LP: #1769262)
+  * debian/apport.links: source_linux-signed.py -> source_linux.py package
+    hook (LP: #1766740)
+  * data/package-hooks/source_linux.py: Redirect bugs filed about the
+    linux-signed source package to linux. (LP: #1766740)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 10 May 2018 09:31:34 -0700
+
+apport (2.20.9-0ubuntu6) bionic; urgency=medium
+
+  * etc/apport/crashdb.conf: Disable Launchpad crash reports for 18.04
+    release.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 20 Apr 2018 14:53:33 -0700
+
+apport (2.20.9-0ubuntu5) bionic; urgency=medium
+
+  * apport/hookutils.py: When gathering dmi information use read_file() which
+    handles UTF-8. (LP: #1762438)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 13 Apr 2018 11:19:31 -0700
+
+apport (2.20.9-0ubuntu4) bionic; urgency=medium
+
+  * apport/hookutils.py: When gathering gsettings schema changes redact
+    information regarding command-history and favorite-apps from gnome-shell.
+    (LP: #1739531)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 05 Apr 2018 10:51:59 -0700
+
+apport (2.20.9-0ubuntu3) bionic; urgency=medium
+
+  * Help people who are trying to report bugs against snaps (LP: #1729491)
+
+ -- Julian Andres Klode <juliank@xxxxxxxxxx>  Wed, 04 Apr 2018 18:08:52 +0200
+
+apport (2.20.9-0ubuntu2) bionic; urgency=medium
+
+  * data/general-hooks/generic.py: Have JournalErrors include warnings but
+    only for apport-crash reports which are private by default. (LP: #1738581)
+  * setup.py: update version with javac
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 28 Mar 2018 11:45:29 -0700
+
+apport (2.20.9-0ubuntu1) bionic; urgency=medium
+
+  * New upstream release:
+    - apport/sandboxutils.py: when installing extra packages do not install
+      the debug versions of them as this was installing gdb-dbg. If debug
+      versions of a package are specifically required they can be passed as
+      an extra-package.
+    - backends/packaging-apt-dpkg.py: when reusing a sandbox do not remove
+      conflicting packages when they conflict with themselves, or when they
+      conflict with but also provide a virtual package.
+    - bin/apport-retrace: add a --no-stracktrace-source option that does not
+      do the work of creating a StacktraceSource field in the retraced report
+      thereby decreasing the time to retrace.
+    - data/apport: wait for lock, with 30s timeout (LP: #1746874)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 14 Feb 2018 10:21:20 -0800
+
+apport (2.20.8-0ubuntu10) bionic; urgency=medium
+
+  * bin/apport-bug,bin/apport-cli: Now that we depend on python3 we should
+    switch to using python3. (LP: #1748621)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 13 Feb 2018 08:51:11 -0800
+
+apport (2.20.8-0ubuntu9) bionic; urgency=medium
+
+  * data/general-hooks/generic.py: change JournalErrors to contain errors not
+    warnings. (LP: #1738581)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 12 Feb 2018 16:42:28 -0800
+
+apport (2.20.8-0ubuntu8) bionic; urgency=medium
+
+  * apport/report.py: gdb's version 8.0.90 output changed from Warning to
+    warning however to support using gdb in sandbox we need to support either
+    case so check for both.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 01 Feb 2018 10:43:23 -0800
+
+apport (2.20.8-0ubuntu7) bionic; urgency=medium
+
+  * bin/apport-bug: recommend python3-apport not python-apport.
+    (LP: #1729879)
+  * data/package-hooks/source_ubiquity.py: Convert the content of syslog from
+    bytes to string so comparison and regex matches in the hook work. Thanks
+    to Jean-Baptiste Lallement for the improved patch.  (LP: #1582950)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 30 Jan 2018 08:24:53 -0800
+
+apport (2.20.8-0ubuntu6) bionic; urgency=medium
+
+  * data/apport: return True when the name space can not be found.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 02 Jan 2018 14:10:35 -0800
+
+apport (2.20.8-0ubuntu5) bionic; urgency=medium
+
+  * data/apport: add an exception handler in case either name space can not be
+    found.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 15 Dec 2017 14:50:47 -0800
+
+apport (2.20.8-0ubuntu4) bionic; urgency=medium
+
+  * data/apport: add a second os.path.exists check to ensure we do not
+    receive a Traceback in is_container_id(). (LP: #1733366)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 13 Dec 2017 10:30:23 -0800
+
+apport (2.20.8-0ubuntu3) bionic; urgency=medium
+
+  * apport-retrace: Use Python3. LP: #1153671.
+
+ -- Matthias Klose <doko@xxxxxxxxxx>  Tue, 05 Dec 2017 15:39:46 +0100
+
+apport (2.20.8-0ubuntu2) bionic; urgency=medium
+
+  [ Stéphane Graber ]
+  * REGRESSION UPDATE: Fix regression in previous upload by re-enabling
+    container support. (LP: #1732518)
+  * Add code preventing a user from confusing apport by using
+    a manually crafted filesystem inside a combination of a user and mount
+    namespace.
+  * Add a check in apport receiver for the number of arguments so that
+    should another argument be added later, the receiver will simply ignore
+    the crash until it itself gets updated.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 20 Nov 2017 08:46:52 -0800
+
+apport (2.20.8-0ubuntu1) bionic; urgency=medium
+
+   * New upstream release:
+     - SECURITY UPDATE: Denial of service via resource exhaustion and
+       privilege escalation when handling crashes of tainted processes.
+     - When /proc/sys/fs/suid_dumpable is set to 2, do not assume that
+       the user and group owning the /proc/<PID>/stat file is the same
+       owner and group that started the process. Rather check the dump
+       mode of the crashed process and do not write a core file if its
+       value is 2. Thanks to Sander Bos for discovering this issue!
+       (CVE-2017-14177, LP: #1726372)
+     - SECURITY UPDATE: Denial of service via resource exhaustion,
+       privilege escalation, and possible container escape when handling
+       crashes of processes inside PID namespaces.
+     - Change the method for determining if a crash is from a container
+       so that there are no false positives from software using PID
+       namespaces. Additionally, disable container crash forwarding by
+       ignoring crashes that occur in a PID namespace. This functionality
+       may be re-enabled in a future update. Thanks to Sander Bos for
+       discovering this issue!
+       (CVE-2017-14180, LP: #1726372)
+   * apport/hookutils.py: modify package_versions to return an empty string if
+     packages is empty. (LP: #1723822)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 15 Nov 2017 12:44:24 -0800
+
+apport (2.20.7-0ubuntu4) bionic; urgency=medium
+
+  * etc/apport/crashdb.conf: Enable Launchpad crash reports for bionic.
+  * bin/apport-cli: read until <enter> instead of a single character when # of
+    apport options is non-unique with a single character. Thanks to Chad Smith
+    for the patch. (LP: #1722564)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 08 Nov 2017 12:18:04 -0800
+
+apport (2.20.7-0ubuntu3.1) artful; urgency=medium
+
+  * etc/apport/crashdb.conf: Disable Launchpad crash reports for 17.10
+    release. (LP: #1726647)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 24 Oct 2017 08:22:21 -0700
+
+apport (2.20.7-0ubuntu3) artful; urgency=medium
+
+  * Make debian/apport.init a symlink to etc/init.d/apport so that
+    dh_installinit creates a good postinst. (LP: #1722801)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 11 Oct 2017 14:26:50 -0700
+
+apport (2.20.7-0ubuntu2) artful; urgency=medium
+
+  * data/package-hooks/source_ubiquity.py: Convert the content of syslog from
+    bytes to string so comparison and regex matches in the hook work.
+    (LP: #1582950)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 27 Sep 2017 14:44:40 -0700
+
+apport (2.20.7-0ubuntu1) artful; urgency=medium
+
+  * New upstream release:
+    - backends/packaging-apt-dpkg.py: Don't install the version mentioned in a
+      versioned dep, rather install the latest version of that dep.
+    - backends/packaging-apt-dpkg.py: search -proposed last so we prefer
+      packages from other pockets.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 29 Aug 2017 16:45:01 -0700
+
+apport (2.20.6-0ubuntu7) artful; urgency=medium
+
+  * data/general-hooks/ubuntu.py: When gathering python version information
+    also try to determine package and version of the binary.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 23 Aug 2017 12:34:23 -0700
+
+apport (2.20.6-0ubuntu6) artful; urgency=medium
+
+  * data/general-hooks/ubuntu.py: Gather information about the python versions
+    installed on the system as versions not from the Ubuntu archive can cause
+    issues. (LP: #1681528)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 18 Aug 2017 11:13:14 -0700
+
+apport (2.20.6-0ubuntu5) artful; urgency=medium
+
+  * Remove upstart system job.
+
+ -- Dimitri John Ledkov <xnox@xxxxxxxxxx>  Mon, 07 Aug 2017 17:18:13 -0400
+
+apport (2.20.6-0ubuntu4) artful; urgency=medium
+
+  * apport/REThread.py: A bare except needs to be used so that we can catch
+    the dialog being closed.
+  * test/test_report.py: Be a little patient and give some time for the core
+    file to show up.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 21 Jul 2017 10:42:33 -0700
+
+apport (2.20.6-0ubuntu3) artful; urgency=medium
+
+  * debian/control: Add dependencies on python3-httplib2 / python-httplib2.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 19 Jul 2017 11:06:24 -0700
+
+apport (2.20.6-0ubuntu2) artful; urgency=medium
+
+  * Fix new pep8 failures in artful - E722 do not use bare except.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 18 Jul 2017 13:25:50 -0700
+
+apport (2.20.6-0ubuntu1) artful; urgency=medium
+
+  * New upstream release:
+    - SECURITY FIX: Fix path traversal vulnerability with hooks execution.
+      Ensure that ExecutablePath: fields loaded from reports do not contain
+      directories. Until now, an attacker could trick a user into opening a
+      malicious .crash file containing
+
+        ExecutablePath: /opt/../../../../some/dir/foo
+
+      which would execute /some/dir/foo.py with arbitrary code.  Thanks to Felix
+      Wilhelm for discovering this!
+      (CVE-2017-10708, LP: #1700573)
+    - Stop installing a MIME handler for crash files as it ends up causing more
+      trouble than it is worth.
+    - bin/crash-digger: Set self.lp if the crashdb is Launchpad.
+    - test/test_backend_apt_dpkg.py: cache directories contain the
+      architecture in the path if if is not the native arch.
+    - apport/crashdb_impl/launchpad.py: Don't make a contentless change to a bug,
+      it just generates more bug mail.
+    - apport/crashdb_impl/launchpad.py: Handle FailedToDecompressContent httplib2
+      error when downloading a broken attachment.
+    - Convert regular expressions to raw strings to avoid deprecation warnings
+      with Python version 3.6. Thanks to Michael Hudson-Doyle for the patch!
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 18 Jul 2017 13:02:29 -0700
+
+apport (2.20.5-0ubuntu5) artful; urgency=medium
+
+  * Cherry picked from upstream's unreleased 2.20.6 - Convert regular
+    expressions to raw strings to avoid deprecation warnings with Python
+    version 3.6. Thanks to Michael Hudson-Doyle for the patch!
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 19 Jun 2017 13:24:57 -0700
+
+apport (2.20.5-0ubuntu4) artful; urgency=medium
+
+  * data/general-hooks/ubuntu.py: Modify how a duplicate signature is created
+    for package installation failures. (LP: #1692127)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 22 May 2017 16:37:50 -0700
+
+apport (2.20.5-0ubuntu3) artful; urgency=medium
+
+  * Revert change to test/test_crash_digger.py to use the source's
+    crash-digger.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 15 May 2017 16:00:06 -0700
+
+apport (2.20.5-0ubuntu2) artful; urgency=medium
+
+  * Resolve test failures:
+    - bin/crash-digger: Set self.lp if the crashdb is Launchpad.
+    - test/test_crash_digger.py: use the source's crash-digger not the
+      installed one.
+    - test/test_backend_apt_dpkg.py: cache directories contain the
+      architecture in the patch if if is not the native arch.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 15 May 2017 13:13:36 -0700
+
+apport (2.20.5-0ubuntu1) artful; urgency=medium
+
+  * New upstream release:
+    - bin/apport-retrace: Comment on bug reports when an invalid core file is
+      encountered. (LP: #1647635)
+    - Switch to using HxW directory names for app icons instead of just one
+      number. Thanks to Jeremy Bicha for the patch.
+    - apport/ui.py: Ensure the Date field exists in a report before using it in a
+      comparison. (LP: #1658188)
+    - bin/apport-retrace: Add in a --gdb-sandbox switch which creates or utilizes
+      a sandbox with the report's distribution release and the host system's
+      architecture for installing and running gdb. (LP: #1517257)
+    - apport/hookutils.py: Don't crash if .xsession-errors is not readable by the
+      user. (LP: #1675928)
+    - bin/apport-retrace: Be specific about which required field is missing from a
+      report and not retracing it.
+  * debian/control: Adjust Vcs-Bzr: for artful branch.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 12 May 2017 15:11:38 -0700
+
+apport (2.20.4-0ubuntu7) artful; urgency=medium
+
+  * data/general/ubuntu-gnome.py: The GNOME3 PPAs are no longer supported for
+    14.04 or 16.04 so set an UnreportableReason in those reports.
+    (LP: #1689093)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 10 May 2017 14:53:46 -0700
+
+apport (2.20.4-0ubuntu6) artful; urgency=medium
+
+  * Disable report.test_add_gdb_info_abort_glib test case for now, as the
+    glib assertion message is broken under current Ubuntu (LP: #1689344)
+  * etc/apport/crashdb.conf: Enable Launchpad crash reports for artful.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 08 May 2017 11:10:34 -0700
+
+apport (2.20.4-0ubuntu5) artful; urgency=medium
+
+  * Resolve autopkgtest failures in test_backend_apt_dpkg.py due to issues
+    with apt key ring. Thanks to Dimitri John Ledkov for the patch.
+    (LP: #1651623)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 05 May 2017 10:05:18 -0700
+
+apport (2.20.4-0ubuntu4) zesty; urgency=medium
+
+  * etc/apport/crashdb.conf: Disable Launchpad crash reports for 17.04
+    release.
+
+ -- Iain Lane <iain.lane@xxxxxxxxxxxxx>  Mon, 10 Apr 2017 13:16:34 +0100
+
+apport (2.20.4-0ubuntu3) zesty; urgency=medium
+
+  * data/general/ubuntu.py: Collect a minimal version of /proc/cpuinfo in
+    every report. (LP: #1673557)
+  * debian/control: remove build dep on libglib2.0-0-dbg since the gdb helpers
+    moved to libglib2.0-dev.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 29 Mar 2017 11:16:33 -0700
+
+apport (2.20.4-0ubuntu2) zesty; urgency=medium
+
+  * Enable Launchpad crash upload for Ubuntu 17.04.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 03 Feb 2017 09:47:31 -0800
+
+apport (2.20.4-0ubuntu1) zesty; urgency=medium
+
+  * New upstream release:
+    - SECURITY FIX: Restrict a report's CrashDB field to literals.
+      Use ast.literal_eval() instead of the generic eval(), to prevent
+      arbitrary code execution from malicious .crash files. A user could be
+      tricked into opening a crash file whose CrashDB field contains an
+      exec(), open(), or similar commands; this is fairly easy as we install a
+      MIME handler for these. Thanks to Donncha O'Cearbhaill for discovering
+      this!  (CVE-2016-9949, LP: #1648806)
+    - SECURITY FIX: Fix path traversal vulnerability with hooks execution.
+      Ensure that Package: and SourcePackage: fields loaded from reports do
+      not contain directories. Until now, an attacker could trick a user into
+      opening a malicious .crash file containing "Package:
+      ../../../../some/dir/foo" which would execute /some/dir/foo.py with
+      arbitrary code. Thanks to Donncha O'Cearbhaill for discovering this!
+      (CVE-2016-9950, LP: #1648806)
+    - SECURITY FIX: apport-{gtk,kde}: Only offer "Relaunch" for recent
+      /var/crash crashes.
+      It only makes sense to offer relaunching for crashes that just happened
+      and the apport UI got triggered on those. When opening a .crash file
+      copied from somewhere else or after the crash happened, this is even
+      actively dangerous as a malicious crash file can specify any arbitrary
+      command to run. Thanks to Donncha O'Cearbhaill for discovering this!
+      (CVE-2016-9951, LP: #1648806)
+    - backends/packaging-apt-dpkg.py: provide a fallback method if using zgrep
+      to search for a file in Contents.gz fails due to a lack of memory.
+      Thanks Brian Murray.
+    - bin/apport-retrace: When --core-file is used instead of loading the core
+      file and adding it to the apport report just pass the file reference to
+      gdb.
+  * debian/control: Adjust Vcs-Bzr: for zesty branch.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 14 Dec 2016 21:28:57 +0100
+
+apport (2.20.3-0ubuntu8) yakkety; urgency=medium
+
+  * Prefer pycodestyle build dependency over pep8.
+  * debian/tests/upstream-system: Create and export $GNUPGHOME, to work with
+    gnupg2.
+  * apport-gtk: Specify module version with GI imports to avoid warnings.
+    Thanks Anatoly Techtonik. (LP: #1502173)
+  * Disable Launchpad crash upload for final Ubuntu 16.10.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 10 Oct 2016 14:28:17 +0200
+
+apport (2.20.3-0ubuntu7) yakkety; urgency=medium
+
+  * Merge from trunk:
+    - test/test_report.py: Slightly relax stack trace checks to also work with
+      glibc 2.24.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 15 Aug 2016 08:37:34 +0200
+
+apport (2.20.3-0ubuntu6) yakkety; urgency=medium
+
+  * packaging-apt-dpkg.py: Change the proxy settings to use DIRECT instead
+    of direct. The latter never really worked, but APT did not complain
+    about it.
+
+ -- Julian Andres Klode <juliank@xxxxxxxxxx>  Fri, 12 Aug 2016 19:22:23 +0000
+
+apport (2.20.3-0ubuntu5) yakkety; urgency=medium
+
+  * packaging-apt-dpkg.py: Explicitly set Dir::State::Status to the host
+    dpkg status file for get_source_tree() to work with apt 1.3~pre4
+
+ -- Julian Andres Klode <juliank@xxxxxxxxxx>  Fri, 05 Aug 2016 10:47:11 +0000
+
+apport (2.20.3-0ubuntu4) yakkety; urgency=medium
+
+  * test_backend_apt_dpkg.py: Expect trusted.gpg.d in armhf config dir
+
+ -- Julian Andres Klode <juliank@xxxxxxxxxx>  Thu, 04 Aug 2016 08:15:07 +0000
+
+apport (2.20.3-0ubuntu3) yakkety; urgency=medium
+
+  * test_backend_apt_dpkg.py: Adjust for new error message on missing
+    repositories, it now says "does not have a Release file"
+  * test_backend_apt_dpkg.py: Create a symlink for trusted.gpg.d in the
+    armhf config dir, as the backend looks for trusted.gpg.d relative to
+    the sources.list location in the config dir
+
+ -- Julian Andres Klode <juliank@xxxxxxxxxx>  Wed, 03 Aug 2016 23:22:54 +0000
+
+apport (2.20.3-0ubuntu2) yakkety; urgency=medium
+
+  * test_backend_apt_dpkg.py: Move tests from Ubuntu 15.10 "wily" (which is
+    EOL now) to 16.04 LTS "xenial". (Cherry-picked from trunk)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sun, 31 Jul 2016 23:04:45 +0200
+
+apport (2.20.3-0ubuntu1) yakkety; urgency=medium
+
+  [ Hans Joachim Desserud ]
+  * Fix typo (cehcking -> checking) (LP: #1603463).
+
+  [ Martin Pitt ]
+  * New upstream release:
+    - problem_report.py: Fail with proper exception when trying to assign a
+      list to a report key, or when trying to assing a tuple with more than 4
+      entries.  (LP: #1596713)
+    - test_backend_apt_dpkg.py: Install GPG key for ddebs.ubuntu.com to avoid
+      apt authentication errors.
+  * Bump Standards-Version to 3.9.8 (no changes necessary).
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 28 Jul 2016 14:10:46 +0200
+
+apport (2.20.2-0ubuntu1) yakkety; urgency=medium
+
+  [ Brian Murray ]
+  * data/general-hooks/ubuntu.py: tag bug reports 'apport-hook-error' if they
+    have an attachment from an apport hook which crashed.
+
+  [ Martin Pitt ]
+  * New upstream release. Changes since our previous snapshot:
+    - Don't ignore OSError in Report.add_gdb_info(), as we do want to fail with an
+      useful error message if gdb cannot be called in apport-retrace. Move the
+      catching to the UI as not having gdb installed is still fine for reporting
+      clients. (LP: #1579949)
+    - Show gdb error messages in Report.add_gdb_info() OSError exception when gdb
+      fails. (LP: #1579897)
+    - hookutils, attach_root_command_outputs(): Return str again, like before
+      2.15.2. (LP: #1370259)
+    - Stop issuing "set architecture" gdb commands on ARM and Power; these only
+      applied to 32 bit platforms and are apparently not needed any more with
+      recent gdb versions. (LP: #1585702)
+    - Disable report.test_add_gdb_info_abort_libnih test case for now, as libnih
+      is broken under current Ubuntu (LP: #1580601)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sun, 19 Jun 2016 22:17:35 +0200
+
+apport (2.20.1-0ubuntu4) yakkety; urgency=medium
+
+  * data/general-hooks/ubuntu.py: Fix stacktrace when parsing
+    DpkgTerminalLog.txt. (LP: #1548421)
+  * data/general-hooks/ubuntu.py: Restore starting package problem duplicate
+    signatures with the word package, the package name, and its version.
+    (LP: #1581682)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 16 May 2016 14:16:15 -0700
+
+apport (2.20.1-0ubuntu3) yakkety; urgency=medium
+
+  * debian/control: Adjust Vcs-Bzr: for yakkety branch.
+  * Re-enable Launchpad crash reports for yakkety.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 02 May 2016 12:10:15 -0500
+
+apport (2.20.1-0ubuntu2) xenial; urgency=medium
+
+   * Merge fixes from trunk:
+     - problem_report.py: Make assertion of invalid key names more verbose.
+     - hookutils.py: Fix generation of valid report key names from arbitrary
+       paths in attach_file() and related functions. This will now replace all
+       invalid characters with dots, not just a few known invalid ones.
+       (LP: #1566975)
+     - problem_report.py: Instead of AssertionError, raise a ValueError for
+       invalid key names and TypeError for invalid kinds of values. Thanks
+       Barry Warsaw.
+  * Disable Launchpad crash upload for final Ubuntu 16.04.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 13 Apr 2016 23:53:46 +0200
+
+apport (2.20.1-0ubuntu1) xenial; urgency=medium
+
+  * New upstream release. Changes since our previous snapshot:
+    - crash-digger: Untag bugs which cannot be retraced instead of stopping
+      crash-digger. This led to too many pointless manual restarts on broken bug
+      reports.
+    * Disambiguate overly generic Python exceptions in duplicate signature
+      computation: dbus-glib's DBusException wraps a "real" server-side
+      exception, so add the class of that to disambiguate different crashes;
+      for OSError that is not a known subclass like FileNotFoundError, add the
+      errno. (LP: #989819)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 31 Mar 2016 16:16:37 +0200
+
+apport (2.20-0ubuntu3) xenial; urgency=medium
+
+  * Relax report.test_add_gdb_info gdb warning check, as this changed with gdb
+    7.10.90.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 16 Feb 2016 08:41:10 +0100
+
+apport (2.20-0ubuntu2) xenial; urgency=medium
+
+  * Fix signal_crashes.test_modify_after_start test when running as root.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 15 Feb 2016 11:49:56 +0100
+
+apport (2.20-0ubuntu1) xenial; urgency=medium
+
+  * New upstream release.
+    - Reimplement forwarding crashes into a container, via activating the new
+      apport-forward.socket in the container and handing over the core dump
+      fd.  This is a much safer way than the original implementation with
+      nsexec.  Thanks Stéphane Graber! (LP: #1445064)
+  * Drop long-obsolete sysv-rc dependency.
+  * Add python3-systemd recommendation to apport, to make crash report
+    generation work in containers.
+  * Install new systemd units into apport package.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sun, 14 Feb 2016 13:41:36 +0100
+
+apport (2.19.4-0ubuntu2) xenial; urgency=medium
+
+  * debian/apport.upstart: Call systemd-detect-virt instead of the
+    Ubuntu specific running-in-container wrapper. (LP: #1539016)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 28 Jan 2016 14:58:06 +0100
+
+apport (2.19.4-0ubuntu1) xenial; urgency=medium
+
+  * New upstream bug fix release:
+    - Fix fileutils.test_find_package_desktopfile test for symlinks and other
+      unowned files in /usr/share/applications/.
+    - Fix ui.test_run_crash_anonymity test case to not fail if the base64
+      encoded core dump happens to contain the user name, as that's just by
+      chance.  - Fix test_hooks.py for unreleased gcc versions which have a
+      different --version format.
+    - hookutils.py, attach_hardware(): Stop attaching /var/log/udev. This was
+      an upstart-ism, mostly redundant with the udev db and is not being
+      written under systemd. (LP: #1537211)
+  * etc/apport/crashdb.conf: Enable crash reports on Launchpad for xenial.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 26 Jan 2016 15:37:44 +0100
+
+apport (2.19.3-0ubuntu3) xenial; urgency=medium
+
+  * data/general-hooks/powerpc.py: Add support to collect more data on
+    PowerNV. (LP: #1499226) Thanks to Kamalesh Babulal for the patch.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 12 Jan 2016 17:06:29 -0800
+
+apport (2.19.3-0ubuntu2) xenial; urgency=medium
+
+  * Fix fileutils.test_find_package_desktopfile test for symlinks and other
+    unowned files in /usr/share/applications/. (Cherry-picked from trunk.)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 10 Dec 2015 10:31:19 +0100
+
+apport (2.19.3-0ubuntu1) xenial; urgency=medium
+
+  * New upstream microrelease:
+    - apt/dpkg: Fix source record lookup in install_packages. Thanks Brian
+      Murray!
+    - hookutils.py, attach_gsettings_schema(): Don't replace the schema
+      variable; fixes attaching relocatable schemas. Thanks Sébastien Bacher!
+    - generic hook: Limit JournalErrors to the 1.000 last lines. This avoids
+      long report load times when processes cause massive log spew.
+      (LP: #1516947)
+    - Add key filtering to ProblemReport.load().
+    - Don't read the entire report when determining the CrashCounter. This
+      avoids long delays for existing large reports.
+    - test_python_crashes.py: Be less sensitive to the precise names of
+      gvfs-metadata D-Bus service files.
+    - Move backend_apt_dpkg -dbgsym test cases to Ubuntu 15.10.
+    - Tests: Move to unittest's builtin "mock" module.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 08 Dec 2015 09:49:00 +0100
+
+apport (2.19.2-0ubuntu9) xenial; urgency=medium
+
+  * If trimming the DpkgTerminalLog file fails, keep the whole log file in the
+    report. (LP: #1522849)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 07 Dec 2015 09:19:37 -0800
+
+apport (2.19.2-0ubuntu8) xenial; urgency=medium
+
+  * No-change rebuild against fixed debhelper.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 25 Nov 2015 06:21:22 +0100
+
+apport (2.19.2-0ubuntu7) xenial; urgency=medium
+
+  * data/general-hooks/ubuntu.py: resolve Traceback when parsing
+    DpkgTerminalError and using python2.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 24 Nov 2015 11:35:10 -0800
+
+apport (2.19.2-0ubuntu6) xenial; urgency=medium
+
+  * Add Conflicts/Replaces/Provides: core-dump-handler, to ensure mutual
+    uninstallability with systemd-coredump and corekeeper.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 13 Nov 2015 11:20:31 +0100
+
+apport (2.19.2-0ubuntu5) xenial; urgency=medium
+
+  * data/general-hooks/ubuntu.py: ensure that dpkg_log_without_error is a
+    string.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 09 Nov 2015 09:12:03 -0800
+
+apport (2.19.2-0ubuntu4) xenial; urgency=medium
+
+  * data/general-hooks/ubuntu.py: For package installation failures, build a
+    DuplicateSignature from the dpkg terminal log as using the package,
+    version, and dpkg ErrorMessage ended up being too generic.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 06 Nov 2015 09:14:29 -0800
+
+apport (2.19.2-0ubuntu3) xenial; urgency=medium
+
+  * apport: Fix comparison against SIGQUIT to work for current Python
+    versions. (Cherry-picked from upstream).
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 04 Nov 2015 14:06:22 -0600
+
+apport (2.19.2-0ubuntu2) xenial; urgency=medium
+
+  * apport/ui.py: set "_MarkForUpload" field to False for cases where the
+    apport report is damaged, about a not installed package, or when an
+    error occurred processing the report. (LP: #1512902)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 03 Nov 2015 15:44:18 -0800
+
+apport (2.19.2-0ubuntu1) xenial; urgency=medium
+
+  * New upstream release. Changes since previous snapshot:
+    - SECURITY FIX: When determining the path of a Python module for a program
+      like "python -m module_name", avoid actually importing and running the
+      module; this could lead to local root privilege escalation. Thanks to
+      Gabriel Campana for discovering this and the fix!
+      (CVE-2015-1341, LP: #1507480)
+    - test_backend_apt_dpkg.py: Reset internal apt caches between tests.
+      Avoids random test failures due to leaking paths from previous test
+      cases.
+  * debian/control: Adjust Vcs-Bzr: for xenial branch.
+  * debian/control: Drop obsolete XS-Testsuite: header.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 27 Oct 2015 14:33:28 +0100
+
+apport (2.19.1-0ubuntu3) wily; urgency=medium
+
+  * Disable Launchpad crash upload for final Ubuntu 15.10.
+  * Fix backend_apt_dpkg.test_install_packages_system for recent "Fall back to
+    direct Launchpad ddeb download" fix. coreutils-dbgsym should now always be
+    available independent of whether the local system has ddeb apt sources.
+    (Cherry-picked from trunk).
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 19 Oct 2015 08:48:25 +0200
+
+apport (2.19.1-0ubuntu2) wily; urgency=medium
+
+  * apt/dpkg: Don't mark packages downloaded from Launchpad for installation
+    by apt. Thanks Brian Murray. (Cherry-picked from trunk.)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 08 Oct 2015 08:04:12 +0200
+
+apport (2.19.1-0ubuntu1) wily; urgency=medium
+
+  [ Martin Pitt ]
+  * New upstream release:
+    - Consistently intercept "report file already exists" errors in all writers
+      of report files (package_hook, kernel_crashdump, and similar) to avoid
+      unhandled exceptions on those. (LP: #1500450)
+    - apt/dpkg: Fall back to direct Launchpad ddeb download if we can't find it
+      in the apt cache. Thanks Brian Murray! (LP: #1500557)
+    - doc/data-format.tex: Clarify that key names are being treated as case
+      sensitive (unlike RFC822).
+
+  [ Brian Murray ]
+  * data/iwlwifi_error_dump: fix add_package call. (LP: #1496268)
+
+  [ Sebastien Bacher ]
+  * data/package-hooks/sources_ubiquity.py: Don't try decode() a str
+    (LP: #1501773).
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 07 Oct 2015 10:58:13 +0200
+
+apport (2.19-0ubuntu1) wily; urgency=medium
+
+  * New upstream release:
+    - apport: Drop re-nicing. This might decrease the time a user has to wait
+      for apport to finish the core dump for a crashed/hanging foreground
+      process.  (See LP #1278780)
+    - kernel_crashdump: Enforce that the log/dmesg files are not a symlink.
+      This prevents normal users from pre-creating a symlink to the
+      predictable .crash file, and thus triggering a "fill up disk" DoS attack
+      when the .crash report tries to include itself. Thanks to halfdog for
+      discovering this!  (CVE-2015-1338, part of LP #1492570)
+    - SECURITY FIX: Fix all writers of report files (package_hook,
+      kernel_crashdump, and similar) to open the report file exclusively,
+      i. e.  fail if they already exist. This prevents privilege escalation
+      through symlink attacks. Note that this will also prevent overwriting
+      previous reports with the same same. Thanks to halfdog for discovering
+      this!  (CVE-2015-1338, LP: #1492570)
+    - apport: Ignore process restarts from systemd's watchdog. Their traces
+      are usually useless as they don't have any information about the actual
+      reasaon why processes hang (like VM suspends or kernel lockups with bad
+      hardware) (LP: #1433320)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 24 Sep 2015 14:41:54 +0200
+
+apport (2.18.1-0ubuntu1) wily; urgency=medium
+
+  * New upstream bug fix release. Changes since our previous snapshot:
+    - packaging.py: Only consider first word in /etc/os-release's NAME value.
+      This works around Debian's inconsistent value. (LP: #1408245)
+    - Unify and simplify Package: field generation in kernel_crashdump,
+      kernel_oops, and package_hook by using the new Report.add_package()
+      method.  (LP: #1485787)
+    - sandboxutils.py, make_sandbox(): Make "Cannot find package which ships
+      Executable/InterpreterPath" fatal, to save some unnecessary package
+      unpack cycles. (LP: #1487174)
+  * etc/apport/crashdb.conf: Enable crash reports on Launchpad for wily.
+    Really late, sorry about that!
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 10 Sep 2015 11:48:46 +0200
+
+apport (2.18-0ubuntu9) wily; urgency=medium
+
+  * Revert changes to data/package_hook to include the package version. This
+    just hides the problem that somewhere during whoopsie add_package_info()
+    is not called. (See LP #1485787)
+  * packaging-apt-dpkg.py, is_distro_package(): If there is no origin and
+    /etc/system-image/channel.ini exists, assume the package is from a
+    read-only system image and accept it as distro package. With this we don't
+    need /var/lib/apt/lists/ indexes any more just to confirm the origin.
+    (LP: #1489410)
+  * Merge fixes from trunk:
+    - whoopsie-upload-all: Intercept OSError too (e. g. "No space left on
+      device"). (LP: #1476258)
+    - apport-retrace: Only consider the file name of a source file, not its
+      path; the latter often contains parts like "../" or directories which are
+      specific to a build machine. This fixes most broken StacktraceSource
+      results.  (LP: #1462491)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 31 Aug 2015 11:35:54 +0200
+
+apport (2.18-0ubuntu8) wily; urgency=medium
+
+  * data/package-hooks/source_ubiquity.py: resolve tracebacks parsing syslog
+    and adding the debug log file.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 28 Aug 2015 10:03:59 -0700
+
+apport (2.18-0ubuntu7) wily; urgency=medium
+
+  * data/package_hook: When creating a Package problem write the version of
+    the package to the report. (LP: #1485787)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 17 Aug 2015 15:40:39 -0700
+
+apport (2.18-0ubuntu6) wily; urgency=medium
+
+  * Drop apport-noui from test dependencies, as whoopsie interferes with the
+    test crashes while the test suite runs. (LP: #1478115)
+  * Restore whoopsie dependency of apport-noui.
+  * apport-noui.service: Add missing Type=oneshot, to fix restart limits with
+    crashes happening in rapid succession.
+  * Merge test fixes from trunk.
+  * data/package-hooks/source_linux.py: Fix PEP-8 error.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 10 Aug 2015 11:25:07 +0200
+
+apport (2.18-0ubuntu5) wily; urgency=medium
+
+  * apport-noui: Remove the dependency on whoopsie as it causes test failures.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 24 Jul 2015 13:23:03 -0700
+
+apport (2.18-0ubuntu4) wily; urgency=medium
+
+  * whoopsie-upload-all: restore import of apport.fileutils which seems to
+    resolve some test failures.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 23 Jul 2015 12:17:01 -0700
+
+apport (2.18-0ubuntu3) wily; urgency=medium
+
+  * apport-noui: Depend on watershed and whoopsie since whoopsie-upload-all
+    requires whoopsie to upload crashes.
+  * apport-noui.upstart: Utilize watershed to only launch one instance of
+    whoopsie-upload-all.
+  * apport-noui.paths: When monitoring /var/crash switch to PathExistsGlob
+    since PathChanged will cause whoopsie-upload-all to run more often e.g.
+    when .upload and .uploaded files are created.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 20 Jul 2015 14:09:23 -0700
+
+apport (2.18-0ubuntu2) wily; urgency=medium
+
+  * Fix PEP-8 error in test/test_backend_apt_dpkg.py.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 17 Jul 2015 11:43:37 +0200
+
+apport (2.18-0ubuntu1) wily; urgency=medium
+
+  * New upstream release. Changes since our last merge from trunk:
+    - apport-gtk: Use GtkWidget::valign property instead of GtkMisc::yalign
+      which is deprecated in GTK 3.16. Thanks Iain Lane.
+    - sandboxutils, make_sandbox(): Don't exit with 0 (success) if the
+      ExecutablePath does not exist. (LP: #1462469)
+    - sandboxutils, make_sandbox(): Fix second round of package installs to go
+      into permanent root dir as well.
+    - apt/dpkg install_packages(): If a requested package version is not
+      available from apt in the given archive, try to download it from
+      Launchpad. Thanks to Brian Murray!
+    - kerneloops: Fix crash when determining the version of a custom kernel.
+      Thanks Brian Murray. (LP: #1468154)
+    - apt/dpkg install_packages(): Ignore -dbg packages whose descriptions
+      contain "transitional". (LP: #1469635)
+    - Keep "[origin: ...]" information in Package: and Dependencies: fields
+      for native-origins.d/ origins, so that it's possible to retrace them.
+      Thanks Brian Murray! (LP: #1470572)
+    - Add support for retracing with discovering and enabling foreign
+      Launchpad PPA origins, as specified in reports' Package:/Dependencies:
+      fields. Thanks Brian Murray!
+    - hookutils.attach_wifi(): Shorten value of CRDA if iw isn't available on
+      the system. Thanks Brian Murray.
+    - Fix wrong assertion in crashdb.test_check_duplicate() which surfaces
+      under Python 3.5. (LP: #1474539)
+  * test/test_backend_apt_dpkg.py: Disable new test assertion for
+    unity-services-dbgsym, which doesn't currently work in the autopkgtest
+    (but works fine in trunk and on the retracers). To be investigated.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 17 Jul 2015 11:03:21 +0200
+
+apport (2.17.3-0ubuntu4) wily; urgency=medium
+
+  * apport-gtk.ui: Use "valign" to align the icon on the crash dialog.
+    "yalign" is deprecated with GTK 3.16 and the consequent warning causes a
+    testsuite failure. Cherry-pick from upstream MP.
+
+ -- Iain Lane <iain@xxxxxxxxxxxxxxxxxxx>  Fri, 05 Jun 2015 11:52:04 +0100
+
+apport (2.17.3-0ubuntu3) wily; urgency=medium
+
+  * Merge from trunk:
+    - Fix backend_apt_dpkg.test_install_packages_permanent_sandbox test to
+      restore proxy settings at the right time.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 28 May 2015 16:01:34 +0200
+
+apport (2.17.3-0ubuntu2) wily; urgency=medium
+
+  * Merge from trunk:
+    - Fix backend_apt_dpkg.test_install_packages_permanent_sandbox test to
+      more carefully restore the environment and apt config.
+    - Enable suid_dumpable in the init.d script to also get Apport reports
+      about suid, unreadable, and otherwise protected binaries. These will be
+      "system reports" owned and readable by root only.
+    - init.d script: Fix tab usage inconsistencies.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 28 May 2015 10:05:40 +0200
+
+apport (2.17.3-0ubuntu1) wily; urgency=medium
+
+  * New upstream release:
+    - SECURITY UPDATE: When /proc/sys/fs/suid_dumpable is enabled, crashing a
+      program that is suid root or not readable for the user would create
+      root-owned core files in the current directory of that program. Creating
+      specially crafted core files in /etc/logrotate.d or similar could then
+      lead to arbitrary code execution with root privileges.
+      Now core files do not get written for these kinds of programs, in
+      accordance with the intention of core(5).
+      Thanks to Sander Bos for discovering this issue!
+      (CVE-2015-1324, LP: #1452239)
+    - SECURITY UPDATE: When writing a core dump file for a crashed packaged
+      program, don't close and reopen the .crash report file but just rewind
+      and re-read it. This prevents the user from modifying the .crash report
+      file while "apport" is running to inject data and creating crafted core
+      dump files. In conjunction with the above vulnerability of writing core
+      dump files to arbitrary directories this could be exploited to gain root
+      privileges.
+      Thanks to Philip Pettersson for discovering this issue!
+      (CVE-2015-1325, LP: #1453900)
+    - apportcheckresume: Fix "occured" typo, thanks Matthew Paul Thomas.
+      (LP: #1448636)
+    - signal_crashes test: Fix test_crash_setuid_* to look at whether
+      suid_dumpable was enabled.
+    - test/run: Run UI tests under dbus-launch, newer GTK versions require this
+      now.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 20 May 2015 16:58:35 +0200
+
+apport (2.17.2-0ubuntu2) wily; urgency=medium
+
+  [ Brian Murray ]
+  * Update Vcs information in debian/control.
+  * general-hooks/ubuntu.py: update checks for corrupt packages.
+
+  [ Martin Pitt ]
+  * Disable KDE tests for the time being. apport-kde consistently crashes
+    in PyQT5 since vivid (LP #1442512), don't block package migration on this.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 18 May 2015 08:36:07 +0200
+
+apport (2.17.2-0ubuntu1) vivid; urgency=medium
+
+  * New upstream bug fix release:
+    - SECURITY UPDATE: Disable crash forwarding to containers. The previous
+      fix in 2.17.1 was not sufficient against all attack scenarios. By
+      binding to specially crafted sockes, a normal user program could forge
+      arbitrary entries in /proc/net/unix. We cannot currently rely on a
+      kernel-side solution for this; this feature will be re-enabled once it
+      gets re-done to be secure. (LP: #1444518)
+    - apport-kde: Fix crash when showing byte array values. Thanks Jonathan
+      Riddell. (LP: #1443659)
+    - Really create a better duplicate signature for recoverable problems,
+      using ExecutablePath. Thanks Brian Murray. (LP: #1316763)
+  * Disable Launchpad crash upload for final Ubuntu 15.04.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 16 Apr 2015 17:51:18 -0500
+
+apport (2.17.1-0ubuntu2) vivid; urgency=medium
+
+  * Fix crash in kde frontend LP: #1443659
+
+ -- Jonathan Riddell <jriddell@xxxxxxxxxx>  Wed, 15 Apr 2015 13:29:04 +0200
+
+apport (2.17.1-0ubuntu1) vivid; urgency=medium
+
+  * New upstream bug fix release:
+    - SECURITY UPDATE: Fix root privilege escalation through crash forwarding
+      to containers.
+      Version 2.13 introduced forwarding a crash to a container's apport. By
+      crafting a specific file system structure, entering it as a namespace
+      ("container"), and crashing something in it, a local user could access
+      arbitrary files on the host system with root privileges.
+      Thanks to Stéphane Graber for discovering and fixing this!
+      (CVE-2015-1318, LP: #1438758)
+    - apport-kde tests: Fix imports to make tests work again.
+    - Fix UnicodeDecodeError on parsing non-ASCII environment variables.
+    - apport: use the proper pid when calling apport in another PID namespace.
+      Thanks Brian Murray. (LP: #1300235)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 14 Apr 2015 09:10:17 -0500
+
+apport (2.17-0ubuntu2) vivid; urgency=medium
+
+  * Update apport-kde runtime dependencies. It requires pyqt5 not
+    pykde4 LP: #1439784
+
+ -- Harald Sitter <sitter@xxxxxxx>  Fri, 10 Apr 2015 10:52:34 +0200
+
+apport (2.17-0ubuntu1) vivid; urgency=medium
+
+  * New upstream release. Changes since our last snapshot:
+    - general-hooks/generic.py: Add systemd journal warnings and errors to the
+      new "JournalErrors" field.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 31 Mar 2015 09:25:40 +0200
+
+apport (2.16.2-0ubuntu5) vivid; urgency=medium
+
+  * KDE: Port Apport to Qt 5 LP: #1436328
+
+ -- Jonathan Riddell <jriddell@xxxxxxxxxx>  Fri, 27 Mar 2015 15:09:19 +0100
+
+apport (2.16.2-0ubuntu4) vivid; urgency=medium
+
+  * general-hooks/ubuntu.py: for reports where the ProblemType is Package
+    always include information about the apt and dpkg versions.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 20 Mar 2015 13:23:45 -0700
+
+apport (2.16.2-0ubuntu3) vivid; urgency=medium
+
+  * package-hooks/source_linux.py: Don't check BootDmesg for staging drivers
+    anymore since it is no longer included in the crash report. (LP: #1430168)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 11 Mar 2015 12:57:05 -0700
+
+apport (2.16.2-0ubuntu2) vivid; urgency=medium
+
+  * Merge from trunk:
+    - Adjust signal_crashes.test_crash_setuid_{keep,drop} for systemd.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 09 Mar 2015 11:32:18 +0100
+
+apport (2.16.2-0ubuntu1) vivid; urgency=medium
+
+  * New upstream bug fix release:
+    - ProblemReport: Set a timestamp of 0 in gzip compressed fields; they are
+      meaningless and cause unnecessary jitter in the output.
+    - launchpad backend: Fix unclosed file in upload().
+    - launchpad backend: Fix wrong use of filter() with Python 3.
+    - launchpad backend download(): Try to convert textual values from byte
+      arrays into into strings.
+    - ui.py, collect_info(): Fix crash on bug pattern checking with broken
+      gzipped values. (LP: #1345653)
+    - hookutils, attach_drm_info(): Avoid UnicodeDecodeErrors in Python 3 when
+      reading binary files. Thanks Chad Miller. (LP: #1425254)
+    - apport-gtk: Update legacy icon names to modern GTK ones, to fix icons
+      under GNOME. Thanks Scott Sanbar. (LP: #1422176)
+    - Move backend_apt_dpkg testsuite to use Ubuntu 14.04 LTS.
+    - hookutils, attach_dmesg(): Only attach dmesg as CurrentDmesg, drop
+      BootDmesg as /var/log/dmesg is upstart specific and thus not reliably
+      correct any more.
+    - hookutils, recent_syslog(): Read system logs from the journal when
+      running under systemd, and fall back to /var/log/syslog if not.
+    - hookutils, attach_mac_events(): Read kernel violation messages from
+      dmesg instead of /var/log/kern.log, as that's specific to rsyslog and
+      its configuration.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 02 Mar 2015 11:37:32 +0100
+
+apport (2.16.1-0ubuntu2) vivid; urgency=medium
+
+  * Merge from trunk:
+    - hookutils.in_session_of_problem(): Check $XDG_SESSION_ID and
+      /run/systemd/sessions instead of the cgroup, as the latter does not work
+      under cgmanager.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 10 Feb 2015 12:52:00 +0100
+
+apport (2.16.1-0ubuntu1) vivid; urgency=medium
+
+  * New upstream release:
+    - Set gettext translation domain in setup.cfg, so that tools like
+      dh_translations pick it up and show correct polkit translations.
+      Thanks to Aron Xu! (LP: #1306857)
+    - Report.get_logind_session(): Check $XDG_SESSION_ID and
+      /run/systemd/sessions instead of the cgroup, as the latter does not work
+      under cgmanager.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 10 Feb 2015 11:39:05 +0100
+
+apport (2.16-0ubuntu1) vivid; urgency=medium
+
+  * New upstream release:
+    - Add a new method ProblemReport.extract_keys() which writes binary keys
+      (which can be very large) directly to files without loading them all
+      into memory first. Use that in apport-unpack. Thanks Louis Bouchard!
+      (LP: #1307413)
+    - launchpad backend: Work with Python 3, now that launchpadlib exists for
+      Python 3. (LP: #1153671)
+    - apport-bug, apport-gtk: Also check for $WAYLAND_SESSION, to use
+      apport-gtk instead of apport-cli under Wayland. Thanks Tim Lunn.
+      (LP: #1418766)
+    - apport-gtk: When running under Wayland, avoid Gdk/Wnck operation for
+      setting crash window modal to the PID of the crashed window; these only
+      work under X11.
+    - Don't install the test suite any more, to save 1 MB of installed space.
+      It can be run out of trunk easily enough, and distributions can install
+      it from tests/ if they desire.
+    - hookutils, attach_root_command_outputs(): Fix UnicodeDecodeError crash
+      for non-textual values. (LP: #1370259)
+    - ui.py: Only provide a UI to hooks if the crash db will accept the
+      report. This avoids asking questions if the report is merely sent to
+      whoopsie for Ubuntu stable releases. Thanks Brian Murrary.
+      (LP: #1084979)
+    - whoopsie-upload-all: Add package information to the report before
+      calling package hooks. Thanks Brian Murray.
+    - Fix check for available terminal when checking whether to display the
+      "Examine locally" button.
+  * Add general hook for detecting Wayland sessions and tagging them with
+    "wayland-session". Thanks Timm Lunn! (LP: #1418262)
+  * debian/tests/upstream-system: Copy tests from source tree, as
+    /usr/share/apport/testsuite/ does not exist any more.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 06 Feb 2015 10:11:30 +0100
+
+apport (2.15.1-0ubuntu4) vivid; urgency=medium
+
+  * data/whoopsie-upload-all: need to add package information to the report
+    before we can add package specific information to it.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 26 Jan 2015 10:06:06 -0800
+
+apport (2.15.1-0ubuntu3) vivid; urgency=medium
+
+  * etc/apport/crashdb.conf: Enable crash reports on Launchpad for vivid.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 26 Jan 2015 17:57:03 +0100
+
+apport (2.15.1-0ubuntu2) vivid; urgency=medium
+
+  * Add systemd units for apport-noui.
+  * Merge from trunk:
+    - hookutils, attach_root_command_outputs(): Fix UnicodeDecodeError crash
+      for non-textual values. (LP: #1370259)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 08 Jan 2015 17:33:12 +0100
+
+apport (2.15.1-0ubuntu1) vivid; urgency=medium
+
+  * New upstream release. Changes since last snapshot:
+    - apt/dpkg _search_contents(): Check HTTP last-modified header to avoid
+      re-downloading Contents.gz every day unless it actually changed. Thanks
+      Brian Murray!
+    - apport-gtk: Drop properties which are deprecated in GTK 3.14.
+  * debian/tests/control: Wrap dependencies.
+  * debian/tests/control: Add gnome-icon-theme; fixes running tests with GTK
+    3.14.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 19 Dec 2014 07:45:30 +0100
+
+apport (2.15-0ubuntu3) vivid; urgency=medium
+
+  * Merge further test robustification and translation updates from trunk.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 16 Dec 2014 11:01:20 +0100
+
+apport (2.15-0ubuntu2) vivid; urgency=medium
+
+  * Merge from trunk:
+    - Robustify report.test_get_timestamp test.
+    - Robustify signal_crashes.test_limit_size test.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 04 Dec 2014 09:19:29 +0100
+
+apport (2.15-0ubuntu1) vivid; urgency=medium
+
+  * New upstream release. Changes since our snapshot:
+    - recoverable_problem: Handle the parent process going away while we're
+      attempting to read from proc.
+    - apport-retrace: Stop considering a package download error as transient; it
+      can too easily lead to unnoticed eternal retry loops.
+    - whoopsie-upload-all: Refactor to behave more reliably in case of overlapping
+      crash processing. Thanks Steve Langasek and Brian Murray. (LP: #1354318)
+    - whoopsie-upload-all: Remove crash reports that have a core dump which is
+      broken and cannot be processed by gdb. Thanks Brian Murray. (LP: #1376374)
+    - When core size exceeds the limit (3/4 of available memory) and thus the core
+      dump is skipped, log this to /var/log/apport.log. (LP: #1387835)
+    - apport-gtk: Fix jump-to-top on first click of the details treeview. Thanks
+      Marius Gedminas. (LP: #1387328)
+    - apport-retrace: Fix location of cached Contents.gz when using --sandbox-dir.
+      (LP: #1394798)
+    - Fix backend_apt_dpkg.test_install_packages_permanent_sandbox test case with
+      proxy env variables with latest apt.
+  * Update Vcs-Bzr: for vivid branch.
+  * debian/tests: Drop obsolete workarounds, use allow-stderr.
+  * Bump Standards-Version to 3.9.6 (no changes necessary).
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 02 Dec 2014 14:51:59 +0100
+
+apport (2.14.7-0ubuntu10) vivid; urgency=medium
+
+  * data/whoopsie-upload-all: confirm that the crash file exists before trying
+    to remove it. (LP: #1384358)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 03 Nov 2014 17:01:55 -0800
+
+apport (2.14.7-0ubuntu9) vivid; urgency=medium
+
+  * data/general_hooks/clickinfo.py: Created a hook to determine package
+    and version information for executables that are from click packages.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 31 Oct 2014 14:41:14 -0700
+
+apport (2.14.7-0ubuntu8) utopic; urgency=medium
+
+  * etc/init.d/apport: Stop setting $PATH in the init.d script. It breaks
+    assumptions from /lib/lsb/init-functions.d/ which might call other tools
+    which are not in /bin; also, we generally shouldn't meddle with $PATH in
+    individual scripts.  (LP: #1372665)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 20 Oct 2014 14:51:41 -0400
+
+apport (2.14.7-0ubuntu7) utopic; urgency=medium
+
+  * Disable Launchpad crash upload for final Ubuntu 14.10.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 15 Oct 2014 15:37:02 +0200
+
+apport (2.14.7-0ubuntu6) utopic; urgency=medium
+
+  * data/recoverable_problem: Fix a Traceback with how the ValueError was
+    matched. (LP: #1345569)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 13 Oct 2014 10:02:21 -0700
+
+apport (2.14.7-0ubuntu5) utopic; urgency=medium
+
+  [ Evan Dandrea]
+  * data/recoverable_problem: Handle the parent process going away while
+    we're attempting to read from proc. (LP: #1345569)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 07 Oct 2014 15:26:30 -0700
+
+apport (2.14.7-0ubuntu4) utopic; urgency=medium
+
+  * data/whoopsie-upload-all: remove crash reports that have a core dump
+    which is broken and cannot be processed by gdb. (LP: #1376374)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 07 Oct 2014 14:48:28 -0700
+
+apport (2.14.7-0ubuntu3) utopic; urgency=medium
+
+  [ Steve Langasek ]
+  * Refactor apport-noui/whoopsie-upload-all to behave more reliably in
+    case of overlapping crash processing (LP: #1354318):
+    - debian/apport-noui.upstart: refactor to make this an 'instance' job
+      for each incoming .crash file, and drop the racy handling of non-root
+      .crash files (as well as the unnecessary 'env MATCH' line).
+    - data/whoopsie-upload-all: refactor report processing to ensure that
+      whoopsie-upload-all can be called multiple times in parallel without
+      causing any .crash file to be processed more than once.
+    - data/whoopsie-upload-all: handle setting ownership of files in
+      process_report() instead of relying on this script being called by a
+      particular user.
+    - data/whoopsie-upload-all: don't spin in wait_uploaded() watching for
+      .uploaded files if the corresponding .upload file has been removed out
+      from under us.
+    - data/whoopsie-upload-all: by default, return immediately instead of
+      waiting to see if whoopsie processes all of the crashes.
+
+  [ Brian Murray ]
+  * data/whoopsie-upload-all: indicate that all reports have been uploaded
+    even those that were marked for upload earlier.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 02 Oct 2014 08:33:49 -0700
+
+apport (2.14.7-0ubuntu2) utopic; urgency=medium
+
+  [ Brian Murray ]
+  * data/general-hooks/ubuntu.py: check to see if system-image-cli is
+    available rather than if /etc/system-image/client.ini exists.
+
+  [ Martin Pitt ]
+  * ui.py: Robustify check if apport-retrace is installed. This brings back
+    the "Examine locally" UI option. (LP: #1358734) (Cherry-picked from
+    trunk).
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 04 Sep 2014 12:30:27 +0200
+
+apport (2.14.7-0ubuntu1) utopic; urgency=medium
+
+  * New upstream release:
+    - Fix interpretation of core dump ulimits: they are in bytes, not KiB.
+      (LP: #1346497)
+    - apport-retrace: Don't require specifying an operation; default to
+      updating the given .crash file. (LP: #1361242)
+    - Write report even on UnreportableReasons, so that whoopsie can still
+      upload them. (LP: #1360417)
+    - apt/dpkg install_packages(): Write a "packages.txt" into sandbox root
+      directory to keep track of installed packages and their versions.
+      Prerequisite for LP #1352591.
+    - apt/dpkg install_packages(): Avoid re-downloading/installing packages
+      which are already installed into a permanent sandbox. Prerequisite for
+      LP #1352591.
+    - sandboxutils.py, make_sandbox(): Drop check for already existing files
+      when dynamically resolving libraries and ExecutablePaths; with that,
+      these packages would never get updated in a permanent sandbox. The new
+      version tracking from above now takes care of that. (LP: #1352591)
+    - Fix report.test_add_proc_info test to stop assuming that pid 1 is named
+      "init", as one can specify a different one on the kernel command line.
+    - report.py, add_gdb_info(): Check for truncated core dumps, and set
+      UnreportableReason and raise an IOError on them. Handle this in
+      apport-retrace and whoopsie-upload-all to fail properly instead of
+      silently producing broken Stacktraces. (LP: #1354571)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 29 Aug 2014 12:38:54 +0200
+
+apport (2.14.6-0ubuntu2) utopic; urgency=medium
+
+  * Cherry-pick from trunk: Adjust backend_apt_dpkg.test_get_file_package()
+    test: newer util-linux versions do not provide /etc/blkid.tab any more.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 19 Aug 2014 10:38:44 +0200
+
+apport (2.14.6-0ubuntu1) utopic; urgency=medium
+
+  * New upstream bug fix release:
+    - general-hooks/generic.py: Fix hook crash if there are non-distro
+      libraries and no user interface.
+    - collect_info(): Don't assume that reports have a ProblemType. Fixes
+      crashes with apport-collect. (LP: #1325729)
+    - apport-retrace: Declare -s/-g/-o as mutually exclusive, to get proper
+      error messages instead of silent misbehaviour. (LP: #1352450)
+    - apport-gtk: Drop usage of deprecated GTK stock items. (LP: #1348116)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 18 Aug 2014 07:57:16 +0200
+
+apport (2.14.5-0ubuntu4) utopic; urgency=medium
+
+  [ Steve Langasek ]
+  * Fix invalid shebang lines for apport-noui maintainer scripts which I
+    somehow overlooked.
+
+  [ Martin Pitt ]
+  * Add data/general-hooks/powerpc.py: Collect some PowerPC[64] information.
+    Thanks to Thierry FAUCK! (LP: #1336462)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 08 Aug 2014 15:13:16 +0200
+
+apport (2.14.5-0ubuntu3) utopic; urgency=medium
+
+  * apport-noui: make the package installation automatically enable
+    autosubmission, which doesn't currently work on the phone without it;
+    and update the package description accordingly.  LP: #1351137.
+
+ -- Steve Langasek <steve.langasek@xxxxxxxxxx>  Fri, 01 Aug 2014 15:06:49 -0700
+
+apport (2.14.5-0ubuntu2) utopic; urgency=medium
+
+  * data/general-hooks/ubuntu.py: Check for /etc/system-image/client.ini
+    instead of /var/log/system-image/client.log since the latter is only
+    readable by root.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 29 Jul 2014 13:20:54 -0700
+
+apport (2.14.5-0ubuntu1) utopic; urgency=medium
+
+  * New upstream bug fix release. Changes since last snapshot:
+    - apt/dpkg get_file_package(): If checking for uninstalled packages, don't
+      use package information from the host system, but always look it up in
+      the correct indexes. Otherwise this returns wrong results when files
+      move to a different package between releases. Thanks Brian Murray!
+      (LP: #1336062)
+    - apt/dpkg install_packages(): Disable fetching apt translation indexes,
+      to save some bandwidth.
+    - whoopsie-upload-all: Ignore crash reports with incomplete core dumps
+      instead of crashing on them. Thanks Brian Murray. (LP: #1329520)
+    - etc/default/apport: Fix comment to use "service" instead of calling the
+      init.d script directly.
+    - whoopsie-upload-all: Collect hooks information to gather ApportVersion,
+      NonfreeKernelModules, and SystemImageInfo. Do this before collecting
+      package data to minimize hook run time. (LP: #1349579)
+    - Adjust report.test_get_logind_session test to work with systemd >= 205.
+    - Fix report.test_check_interpreted_twistd test to skip instead of fail if
+      twisted is not installed.
+
+  * Drop automatix.py general hook. Automatix is long gone.
+  * etc/apport/blacklist.d/apport: Drop long obsolete npviewer/npplayer
+    entries.
+  * Drop unnecessary python-gi build dependency.
+  * Drop python-twisted-core build dependency. It's just used for one test,
+    and will still run in autopkgtest. (Avoids current twisted
+    uninstallability in main)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 29 Jul 2014 12:26:23 +0200
+
+apport (2.14.4-0ubuntu3) utopic; urgency=medium
+
+  * In apport-kde recommend gdb-minimal before gdb
+    LP: #1347565 "apport recommends gdb"
+
+ -- Jonathan Riddell <jriddell@xxxxxxxxxx>  Wed, 23 Jul 2014 12:35:16 +0200
+
+apport (2.14.4-0ubuntu2) utopic; urgency=medium
+
+  * Merge from trunk:
+    - apport-bug: Stop checking the autoreport flag and calling
+      whoopsie-upload-all; these two are different tasks, and that breaks bug
+      reporting. (LP: #1339663)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 10 Jul 2014 17:18:33 +0200
+
+apport (2.14.4-0ubuntu1) utopic; urgency=medium
+
+  * New upstream bug fix release:
+    - Adjust code to match latest pep8 checker.
+    - Report.crash_signature_addresses(): Drop kernel architecture from
+      StacktraceAddressSignature field. It isn't useful there (at most the ELF
+      architecture, but we don't really need that either). This makes it
+      easier to regenerate broken signatures from existing reports on
+      different architectures. (LP: #1336565)
+  * Fix PEP-8 errors in Ubuntu hooks.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 03 Jul 2014 06:50:06 +0200
+
+apport (2.14.3-0ubuntu2) utopic; urgency=medium
+
+  * Turn on Launchpad crash submission for the devel series.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 18 Jun 2014 15:40:26 +0200
+
+apport (2.14.3-0ubuntu1) utopic; urgency=medium
+
+  * New upstream bug fix release:
+    - Add kernel package version to the various kernel-related hooks. Thanks
+      Brian Murray. (LP: #1316845)
+    - Use package name in duplicate signature for recoverable problems. Thanks
+      Brian Murray. (LP: #1316763)
+    - Have whoopsie-upload-all upload recoverable problems. Thanks Brian
+      Murray.  (LP: #1319099)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 30 May 2014 15:35:53 +0200
+
+apport (2.14.2-0ubuntu4) utopic; urgency=medium
+
+  * data/package-hooks/source_linux.py: create a duplicate signature for
+    suspend resume failures. (LP: #1316841)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 16 May 2014 09:46:51 -0700
+
+apport (2.14.2-0ubuntu3) utopic; urgency=medium
+
+  * debian/apport-noui.upstart: remove early exit (LP: #1235436)
+  * debian/apport-noui.dirs: create /var/lib/apport (LP: #1235436)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 14 May 2014 12:26:39 -0700
+
+apport (2.14.2-0ubuntu2) utopic; urgency=medium
+
+  * Merge "backend_apt_dpkg.test_install_packages_versioned: Fix namespacing
+    of ver" fix from trunk, to better debug the autopkgtest failure on i386.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 02 May 2014 17:30:39 +0200
+
+apport (2.14.2-0ubuntu1) utopic; urgency=medium
+
+  * New upstream release:
+    - Move error handling for invalid .crash files into collect_info(), so
+      that it also applies when using the "Show Details..." button in the UI.
+      Otherwise the UI just hangs eternally at this point when encountering
+      broken core dumps. (LP: #1282349)
+    - apt/dpkg install_packages(): Try to install the requested package
+      version instead of always picking the most recent one. This should
+      improve retracing results for older crash reports. Thanks to Brian
+      Murray for inspiring this.
+    - sandboxutils.py, make_sandbox(): When determining packages to install
+      from ProcMaps, look up and use the package versions from the reporter,
+      to improve retracing results. Thanks Brian Murray for the initial patch!
+    - iwlwifi_error_dump: Make reports private, and subscribe
+      canonical-kernel-team.  Thanks Seth Forshee. (LP: #1313818)
+    - signal_crashes test: Time out after 5 seconds if the test process does
+      not terminate on the specified signal, to avoid eternal hangs.
+    - signal_crashes test: Ensure that we don't inherit an ignored SIGQUIT
+      from the caller.
+  * Switch Vcs-* to utopic branch.
+  * Add build-essential test dependency, some tests call gcc.
+  * Install iwl_wifi_error_dump and corresponding udev rules. (Second part of
+    LP: #1313818)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 30 Apr 2014 14:07:17 +0200
+
+apport (2.14.1-0ubuntu3) trusty; urgency=medium
+
+  * Cherry-pick from trunk: Delay the import of the glob and re modules in the
+    python apport hook, and only import them when needed. Speeds up
+    interpreter startup time by 50%. (LP: #1307684)
+
+ -- Matthias Klose <doko@xxxxxxxxxx>  Tue, 15 Apr 2014 08:42:00 +0200
+
+apport (2.14.1-0ubuntu2) trusty; urgency=medium
+
+  * etc/apport/crashdb.conf: Disable Launchpad crash/kernel reports for
+    the final release. Only report to http://errors.ubuntu.com from now on.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 10 Apr 2014 14:26:24 -0700
+
+apport (2.14.1-0ubuntu1) trusty; urgency=medium
+
+  * New upstream bug fix release:
+    - Fix FileNotFoundError from temporary launchpadlib cache dir cleanup.
+      (LP: #1300474)
+    - ui.py, open_url(): Skip any Python cleanup/atexit handlers in the forked
+      xdg-open child, to avoid calling them twice. (Side issue of LP #1300474
+      and #1282713)
+    - apport-kde: Work around crash in sip by skipping the destructors of SIP
+      objects. Thanks Rohan Garg! (LP: #1282713)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 04 Apr 2014 15:34:06 +0100
+
+apport (2.14-0ubuntu1) trusty; urgency=medium
+
+  * New upstream release:
+    - Add KernelCrash reports when iwlwifi encounters a firmware error (via
+      the "error_dump" uevent and the new iwlwifi_error_dump helper). Thanks
+      Seth Forshee!
+    - launchpad: Really use a temporary launchpadlib cache dir by default.
+      This avoids piling up gigabytes of useless cached data over time, which
+      also tends to break every now and then.
+    - Fix crash in logind session detection. Thanks Dimitri Ledkov!
+      (LP: #1296026)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 31 Mar 2014 11:47:19 +0200
+
+apport (2.13.3-0ubuntu1) trusty; urgency=medium
+
+  [ Martin Pitt ]
+  * New upstream release:
+    - etc/cron.daily/apport: Cleanup .drkonqi files after 7 days. Thanks Harald
+      Sitter.
+    - ui.py: Try to grab session D-BUS address from user's session when being
+      called through pkexec. (LP: #1287460)
+
+  [ Brian Murray ]
+  * data/package-hooks/source_linux.py: ensure dupe_sig1 and dupe_sig2 are
+    None if they are not found
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 07 Mar 2014 16:34:45 +0100
+
+apport (2.13.2-0ubuntu5) trusty; urgency=medium
+
+  * data/package-hooks/source_linux.py: remove line feed from
+    DuplicateSignature as it causes issues on the error tracker
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 18 Feb 2014 13:36:50 -0800
+
+apport (2.13.2-0ubuntu4) trusty; urgency=medium
+
+  * data/kernel_oops: include the package version in addition to the name
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 14 Feb 2014 14:09:39 -0800
+
+apport (2.13.2-0ubuntu3) trusty; urgency=medium
+
+  * package-hooks/source_linux.py: create a DuplicateSignature for kernel
+    oops reports thereby allowing them to be bucketed and consolidated in
+    the Ubuntu error tracker
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 13 Feb 2014 14:33:07 -0800
+
+apport (2.13.2-0ubuntu2) trusty; urgency=medium
+
+  * Merge from trunk:
+    -  Fix backend_apt_dpkg.test_get_file_package_uninstalled test that got
+       broken in the previous release.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 27 Jan 2014 15:21:06 +0100
+
+apport (2.13.2-0ubuntu1) trusty; urgency=medium
+
+  * New upstream bug fix release:
+    - Fix crash if systemd cgroup is unreadable in /sys, such as in
+      containers.  (LP: #1270783)
+    - apt/dpkg: Also consider Contents.gz from updates/security/proposed
+      pockets, so that e. g. apport-retrace works for crash reports with files
+      that are new in those. Thanks to Brian Murray for the initial patch.
+      (LP: #1271258)
+    - Only drop internal/private keys (starting with '_') from uploading to
+      the crash DB and from the UI report views, but not already when updating
+      the report. (LP: #1272505)
+    - data/apport: Fix stdout/stderr initialization of the error log, don't
+      close the original fd after dup2'ing as it is usually already fd 1. This
+      makes Apport work with Python 3.4. (LP: #1272355)
+    - Adjust report tests to work with Python 3.4 (LP: #1272355)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 27 Jan 2014 11:33:51 +0100
+
+apport (2.13.1-0ubuntu2) trusty; urgency=medium
+
+  * debian/apport.upstart: Use running-in-container instead of checking init's
+    environment.
+  * Re-enable Launchpad crash reports for Trusty. (LP: #1271887)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 24 Jan 2014 17:34:56 +0100
+
+apport (2.13.1-0ubuntu1) trusty; urgency=medium
+
+  * New upstream release:
+    - Fix report.test_get_timestamp test for running in other time zones.
+    - Fix erroneous "gdb-multiarch not installed" warnings in ui tests.
+    - Fix ui.test_run_crash_older_session test for running as root.
+    - Fix ui.test_run_crash_older_session for different file system file
+      orders.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 10 Jan 2014 10:58:54 +0100
+
+apport (2.13-0ubuntu1) trusty; urgency=medium
+
+  * New upstream release. Changes since our previous merge:
+    - Do not report keys starting with '_' to the crash database. This can be
+      used for keeping private keys in .crash files between crash and report
+      time, or to store data between hooks etc., without cluttering reports.
+    - UI: In "run all pending crashes" mode, skip reports that happened during
+      logout in a desktop (specifically, logind) session; they are
+      uninteresting and confusing to see at the next login. (LP: #1033932)
+      They can still be reported manually with running the .crash file
+      directly, but this sufficiently reduces the need to explicitly flag
+      whether the report concerns a logout crash. (LP: #1067646)
+    - Add support for PID namespaces (Linux containers): Crashes originating
+      from a container on a system running a >= 3.12 kernel will be
+      automatically redirected to apport inside the container, or ignored if
+      apport is not installed in the container. Thanks to Stéphane Graber!
+    - Print a warning when trying to retrace a report from a foreign
+      architecture and gdb-multiarch is not installed. (LP: #1239395)
+    - etc/init.d/apport: Don't change core_pattern when running in a
+      container, as this influences the host and other containers, too.
+  * apport/ui.py: Rename "MarkForUpload" whoopsie hack field to
+    "_MarkForUpload" and remove delta from launchpad.py. Fields starting with
+    '_' are now considered private.
+  * debian/apport.upstart: Add "%P" macro to core_pattern, to enable Linux
+    container handling with upstart.
+  * debian/apport.upstart: Don't change core_pattern when running in a
+    container, as this influences the host and other containers, too.
+    (LP: #1267728)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 10 Jan 2014 09:07:07 +0100
+
+apport (2.12.7-0ubuntu6) trusty; urgency=medium
+
+  * Merge from trunk:
+    - setup.py: Make updating of hashbangs work when building without Java,
+      and also apply it on bin/.
+  * Bump Standards-Version to 3.9.5, no changes necessary.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 07 Jan 2014 18:41:12 +0100
+
+apport (2.12.7-0ubuntu5) trusty; urgency=low
+
+  * Modify the location of apport/autoreport from /etc to /var/lib to be more
+    compatible with phablet images.  Remove instance from apport-noui upstart
+    job. (LP: #1235436)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 06 Jan 2014 13:00:41 -0800
+
+apport (2.12.7-0ubuntu4) trusty; urgency=medium
+
+  * In python3 (unlike python2) file object does not have "splitlines()"
+    method, instead one iterate over the lines in the file directly. (LP:
+    #1265735)
+
+ -- Dimitri John Ledkov <xnox@xxxxxxxxxx>  Fri, 03 Jan 2014 08:36:55 +0000
+
+apport (2.12.7-0ubuntu3) trusty; urgency=medium
+
+  * Merge from trunk:
+    - test_signal_crashes: Clean up unexpected reports after every test, to
+      avoid breaking all subsequent tests.
+    - test_signal_crashes: Stop checking that gdb prints nothing on stderr, as
+      latest gdb 7.6.50 now almost always prints some about missing source
+      files.
+  * During package build, only run subset of tests that work on buildds, and
+    make any failure fail the build. The full test suite  is run as
+    autopkgtest.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 19 Dec 2013 08:29:02 +0100
+
+apport (2.12.7-0ubuntu2) trusty; urgency=low
+
+  * data/package-hooks/source_ubiquity.py: only warn people about passwords in
+    the debug log file if they are running in debug mode (LP: #1257159)
+  * data/general-hooks/ubuntu.py: gather more information for dpkg already
+    installed and configured package install failures
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 09 Dec 2013 14:20:12 -0800
+
+apport (2.12.7-0ubuntu1) trusty; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream release:
+    - Properly fall back to lsb_release if /etc/os-release is invalid.
+    - report.py, add_proc_info(): Add "CurrentDesktop" field with the value of
+      $XDG_CURRENT_DESKTOP, if present. (LP: #1247904)
+    - fileutils.py, get_all_system_reports(): Filter out "guest..." users,
+      they might have a system UID. (LP: #1250679)
+    - apt/dpkg: Don't call dpkg-divert with full path, it moved in Ubuntu
+      14.04. (LP: #1252305)
+  * launchpad.py: Ignore "MarkForUpload" field, it's just for internal
+    communication with whoopsie.
+
+  [ Andy Whitcroft ]
+  * package-hooks/source_linux.py: pull forward fix to generify linux-meta
+    to linux mapping.  (LP: #1229611)
+  * package-hooks/source_linux.py: pull forward kernel tagging for
+    linux-lts- family kernels.  (LP: #1229611)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 19 Nov 2013 09:11:53 +0100
+
+apport (2.12.6-0ubuntu1) trusty; urgency=low
+
+  * New upstream security/bug fix release:
+    - SECURITY FIX: For setuid programs which drop their privileges after
+      startup, make the report and core dumps owned by root, to avoid possible
+      data disclosure. Also, change core dump files to permissions "0600".
+      Thanks to Martin Carpenter for discovering this!
+      (CVE-2013-1067, LP: #1242435)
+    - sandboxutils.needed_runtime_packages(): Create cache directory for
+      Contents.gz if missing. (LP: #933199)
+    - apt/dpkg: Recognize options in apt sources.list. (LP: #1238620)
+  * Move Vcs-Bzr to trusty branch.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 25 Oct 2013 06:49:19 +0200
+
+apport (2.12.5-0ubuntu2) saucy; urgency=low
+
+  * etc/apport/crashdb.conf: Disable Launchpad crash/kernel reports for the
+    final release. Only report to http://errors.ubuntu.com from now on.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 11 Oct 2013 12:11:45 +0200
+
+apport (2.12.5-0ubuntu1) saucy; urgency=low
+
+  * New upstream bug fix release:
+    - Report.add_os_info(): Do not overwrite already existing data.
+      (LP: #1226776)
+    - kernel_oops hook: Collect uname at the time of invoking the hook,
+      instead of at data collection time. (LP: #1226776)
+    - Replace fixed size icons with PNGs, which are more efficient and avoid
+      rendering artifacts. (LP: #1231763)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 27 Sep 2013 05:56:30 +0200
+
+apport (2.12.4-0ubuntu1) saucy; urgency=low
+
+  * New upstream release:
+    - Update icons to new design from Vishnoo Charan Reddy, many thanks!
+      (LP: #1079639)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 19 Sep 2013 13:27:03 -0500
+
+apport (2.12.3-0ubuntu1) saucy; urgency=low
+
+  * New upstream bug fix release:
+    - ProblemReport.write_mime(): Adjust MIMEText handling to latest Python
+      3.3 upstream changes which now don't tolerate passing bytes any more.
+      (LP: #1227381)
+    - apport-gtk: Don't use obsolete add_with_viewport() method any more.
+    - Fix ui_present_report_details() "modal_for" keyword for all UI
+      implementations, so that --hanging works for -cli and -kde, too.
+      (LP: #1213790)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 19 Sep 2013 10:36:06 -0500
+
+apport (2.12.2-0ubuntu1) saucy; urgency=low
+
+  * New upstream bug fix release. Changes since previous snapshot:
+    - crash-digger: Write pid into lock file. Thanks Steve Langasek.
+    - apport-gtk: When loading a Bug report from a file, properly set up for
+      bug reporting mode. (LP: #1226140)
+    - Move "program is not installed any more" check from report loading into
+      data collection, so that crash reports can be moved and reported on
+      machines without that program installed. (LP: #1226030)
+  * data/general-hooks/ubuntu.py: Add output of "system-image-info -i" to
+    reports as field "SystemImageInfo", to better identify phablet builds.
+    (LP: #1225113)
+  * Add gdb-minimal dependency to apport-noui, as for crashes we always need a
+    StacktraceAddressSignature at least. (part of LP #1226030)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 17 Sep 2013 16:25:55 -0500
+
+apport (2.12.1-0ubuntu4) saucy; urgency=low
+
+  * whoopsie-upload-all: Add a -t/--timeout option. In Jenkins we don't want
+    to block on upload for 30 mins, but it's still a reasonable timeout on
+    phones.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 12 Sep 2013 11:50:22 -0400
+
+apport (2.12.1-0ubuntu3) saucy; urgency=low
+
+  * data/general-hooks/ubuntu-gnome.py: Add tag when using the gnome3-next
+    PPA.
+  * data/general-hooks/cloud_archive.py: Fix IndexError if Package field does
+    not exist.
+  * Merge from trunk:
+    - fileutils.py, get_{new,all}_reports(): Don't consider reports which are
+      readable, but not writable. (LP: #1098844)
+    - test_ui_kde.py: Cleanly skip the test if PyQt/PyKDE are not installed,
+      instead of failing.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 30 Aug 2013 12:42:01 +0200
+
+apport (2.12.1-0ubuntu2) saucy; urgency=low
+
+  * Don't provide arguments to whoopsie-upload-all. It doesn't take any.
+  * Do not attempt to install the now dead apport-noui frontend.
+
+ -- Evan Dandrea <ev@xxxxxxxxxx>  Mon, 19 Aug 2013 15:25:05 +0100
+
+apport (2.12.1-0ubuntu1) saucy; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream release. Changes since our previous snapshot:
+    - Drop apport-noui in favour of whoopsie-upload-all. We don't want to
+      process hooks when run noninteractively, since they may ask questions or
+      determine a report is not due to a bug in Ubuntu. whoopsie-upload-all
+      skips these hooks.
+    - apport/report.py: Gracefully handle being unable to get the source package
+      for a binary package, as when the latter does not exist in the cache.
+      (LP: #1097773)
+  * data/general-hooks/ubuntu-gnome.py: Switch to Tim Lunn's duplicate DB for
+    the Ubuntu GNOME PPA.
+
+  [ Evan Dandrea ]
+  * Call whoopsie-upload-all from the apport-noui upstart job instead of
+    the now-dead apport-noui frontend.
+
+ -- Evan Dandrea <ev@xxxxxxxxxx>  Mon, 19 Aug 2013 14:42:26 +0100
+
+apport (2.12-0ubuntu3) saucy; urgency=low
+
+  * Add an upstart job and package to handle automatic error reporting.
+
+ -- Evan Dandrea <ev@xxxxxxxxxx>  Tue, 06 Aug 2013 11:17:48 +0100
+
+apport (2.12-0ubuntu2) saucy; urgency=low
+
+  * Merge from trunk:
+    - sandboxutils.py, make_sandbox(): Install packages from Package: and
+      Dependencies: fields also if we have a ProcMaps: field and there are any
+      third-party packages. This fixes retracing crashes that use PPAs (as they
+      don't have Contents.gz).
+    - Robustify "progress bar visible" GTK and KDE UI checks for the faster
+      collection due to dropping lsb_release.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 02 Aug 2013 16:03:43 +0200
+
+apport (2.12-0ubuntu1) saucy; urgency=low
+
+  * New upstream release:
+    - recoverable_problem: Can take the PID as an argument.
+    - Add data/whoopsie-upload-all: Process all pending crashes and mark them
+      for whoopsie upload, but do not upload them to any other crash database.
+      Wait until whoopsie is done uploading.
+    - Eliminate multiple calls to lsb_release by caching the result. On
+      systems which provide /etc/os-release, use that instead of lsb_release.
+      (LP: #1164742)
+    - launchpad.py: Show the Python major version in the error message about
+      missing launchpadlib.
+    - ui.py: Check if options for updating and reporting a new bug get used
+      together, and give a proper error message in this case. (LP: #1071905)
+    - apport: Fix "Exectuable" typo, leading to reports not being synced on
+      upstart crashes. Thanks James Hunt. (LP: #1203744)
+    - Rename apport-gtk-mime.desktop to apport-gtk.desktop and drop the
+      old apport-gtk.desktop that wasn't even being installed. With that, the
+      window will be shown as "Report a problem..." instead of "Apport-gtk" in
+      GNOME shell and other DEs. Thanks Jeremy Bicha. (LP: #1207496)
+    - report.py, add_gdb_info(): Fix crash if gdb cannot load the symbol map.
+      (LP: #1171484)
+    - apport-retrace: Fix crash when using --sandbox without --cache.
+      (LP: #1197034)
+    - Fix error message when PID is inaccessible. (LP: #1204718)
+    - doc/data-format.tex: Drop unused "OS" and "OSRelease" fields, replace
+      with "DistroRelease" which is actually being used. (LP: #1018387)
+  * debian/apport-gtk.install: Adjust for desktop file rename.
+  * debian/apport.install: Install whoopsie-upload-all.
+  * launchpad.py: Show package name in 'launchpadlib not installed' error
+    message, and give a more direct error message when trying to use this
+    through Python 3. (LP: #1071905)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 02 Aug 2013 11:30:12 +0200
+
+apport (2.11-0ubuntu1) saucy; urgency=low
+
+  * New upstream release:
+    - data/apport-noui: A noninteractive frontend for automatic error
+      reporting. apport-bug will use this if the /etc/apport/autoreport flag
+      file exists.
+    - hookutils.py, attach_upstart_logs(): Also attach
+      ~/.cache/upstart/application-<desktopname>.log for any *.desktop file
+      shipped by a package.
+  * debian/apport.install: Ship the new apport-noui frontend.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 17 Jul 2013 09:48:42 +0200
+
+apport (2.10.2-0ubuntu4) saucy; urgency=low
+
+  [ Brian Murray ]
+  * Avoid a crash when handling dpkg terminal log files with unicode data in
+    them
+
+  [ Evan Dandrea ]
+  * Fix the order of suid_dumpable and core_pattern. Thanks Seth Arnold
+    (LP: #1194541).
+
+ -- Evan Dandrea <ev@xxxxxxxxxx>  Mon, 08 Jul 2013 15:50:49 +0100
+
+apport (2.10.2-0ubuntu3) saucy; urgency=low
+
+  * Enable suid_dumpable (core dumps of setuid binaries). This has
+    always been safe for us, as we set a core pipe handler, but the
+    kernel now protects against one not being set:
+    http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-
+    raring.git;a=blob;f=Documentation/sysctl/fs.txt;h=88152f214f48cb69c6
+    43d4bf2ff2ac9a61ad2eb0;hb=HEAD
+
+ -- Evan Dandrea <ev@xxxxxxxxxx>  Tue, 25 Jun 2013 15:37:01 +0100
+
+apport (2.10.2-0ubuntu2) saucy; urgency=low
+
+  [ Brian Murray ]
+  * data/general-hooks/ubuntu.py:
+    - Resolve crash in duplicate signature calculation when the package is not
+      installed (LP: #1184121)
+    - Remove unusable check for previous package install failures
+    - Fix indentation of package-conflict check
+
+  [ Martin Pitt ]
+  * Raise python-apport's "Suggests: python launchpadlib" to Depends:, as the
+    only reason why to install this package is for apport-collect these days.
+    (LP: #1192330)
+  * Merge from trunk:
+    - hookutils.py, attach_conffiles(): Fix check for inaccessible or modified
+      conffiles. (LP: #1192899)
+    - Updated translations from LP.
+  * etc/apport/crashdb.conf: Enable crash reports on Launchpad for saucy.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 21 Jun 2013 07:16:00 +0200
+
+apport (2.10.2-0ubuntu1) saucy; urgency=low
+
+  * New upstream bug fix release:
+    - Resolve symlinks in file references in Python crash signatures.
+      (LP: #1179979)
+    - Fix endless loop of EOFErrors with broken core dumps. (LP: #1168849)
+    - report.py, add_gdb_info(): Fix crash if gdb did not determine an
+      assertion message. (LP: #1171484)
+    - apt/dpkg: Fix get_file_package()'s "release" field to actually mean
+      DistroRelease:, not a distro code name. This now requires a previous
+      call to install_packages() with a configdir, which needs to have a file
+      <configdir>/<release>/codename with the release's code name in it.
+    - sandboxutils.py: Call get_file_package() with the report's release, so
+      that we actually get files from the target release, not the host
+      release.
+    - test_hookutils.py: Don't assume that /etc/motd exists.
+  * Move to dh compat level 9.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 22 May 2013 12:39:21 +0200
+
+apport (2.10.1-0ubuntu1) saucy; urgency=low
+
+  * New upstream bug fix release:
+    - Fix ui.test_run_crash_anonymity_escaping test when running as root.
+    - launchpad.py: Fix crash when trying to adjust a distro-only bug task if
+      the bug also already has a distropackage task.
+    - apt/dpkg: When there is no -dbg package, install all -dbg packages of
+      the corresponding source package, and only then fall back to -dbgsym.
+      (LP: #1003234)
+  * data/general-hooks/ubuntu.py: Fix PEP8 error, to make test suite run
+    again.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 14 May 2013 16:43:09 +0200
+
+apport (2.10-0ubuntu3) saucy; urgency=low
+
+  * data/general-hooks/cloud_archive.py: deal with the case where a bug is
+    being reported about a package that is not installed (LP: #1173240)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 06 May 2013 08:29:51 -0700
+
+apport (2.10-0ubuntu2) saucy; urgency=low
+
+  * data/general-hooks/ubuntu.py: For package installation failures, build a
+    DuplicateSignature from the package, version, and dpkg ErrorMessage,
+    instead of using the whole dpkg terminal log.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 02 May 2013 15:21:23 -0700
+
+apport (2.10-0ubuntu1) saucy; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream release. Changes since our previous snapshot:
+    - Support retracing foreign powerpc reports, thanks Steve Langasek.
+    - apport/report.py: Generate a crash signature for suspend/resume failures.
+    - hookutils.py: Add attach_upstart_logs(), thanks Steve Langasek.
+    - hookutils.py, in_session_of_problem(): Port from ConsoleKit to logind.
+    - apport/report.py: Handle the case where the user has been removed from
+      the system, but one of its still-running binaries crashes (LP: #1163453).
+    - Fix anonymization of user/GECOS fields with regexp control characters
+      like '+'. (LP: #985049)
+    - Run tests under LC_CTYPE=C and unset LANG as well, to discover
+      assumptions about UTF-8 locales. Fix the two failing tests.
+    - Fix UnicodeDecodeError when apport encounters non-ASCII environment
+      variables. (LP: #1172638)
+  * debian/control: Update Vcs-* for saucy branch.
+  * data/general-hooks/cloud_archive.py: Fix PEP-8 error.
+
+  [ Steve Langasek ]
+  * data/general-hooks/ubuntu.py: Call attach_upstart_logs(), to attach the
+    logs for any upstart user jobs shipped by the binary package.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 30 Apr 2013 14:49:42 -0700
+
+apport (2.9.2-0ubuntu8) raring; urgency=low
+
+  * data/package-hooks/source_ubiquity.py: use an untranslated string to
+    determine if the grub install was successful (LP: #1168126)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 11 Apr 2013 12:51:43 -0700
+
+apport (2.9.2-0ubuntu7) raring; urgency=low
+
+  * data/general-hooks/cloud_archive.py: Send reports for packages from
+    the Ubuntu Cloud Archive to the cloud-archive project on Launchpad.
+
+ -- James Page <james.page@xxxxxxxxxx>  Thu, 11 Apr 2013 16:07:39 +0100
+
+apport (2.9.2-0ubuntu6) raring; urgency=low
+
+  * etc/apport/crashdb.conf: Disable Launchpad crash/kernel reports for the
+    raring release. Only report to http://errors.ubuntu.com from now on.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 11 Apr 2013 12:42:27 +0200
+
+apport (2.9.2-0ubuntu5) raring; urgency=low
+
+  * data/package-hooks/source_ubiquity.py: Fix crash on non-UTF-8 data in log
+    files.
+  * Merge from trunk:
+    - data/gcc_ice_hook: Fix crash with source files that have non-UTF8 data.
+      (LP: #1045283)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 27 Mar 2013 09:01:58 +0100
+
+apport (2.9.2-0ubuntu4) raring; urgency=low
+
+  * data/general-hooks/ubuntu-gnome.py: Add "gnome3-ppa" tag if any dependency
+    is from the gnome3 PPA.
+  * Merge from trunk:
+    - hookutils.attach_conffiles(): Fix IOError crash on inaccessible
+      conffiles; mark them as '[inaccessible: <reason>]' instead.
+      (LP: #1154536)
+    - hookutils.in_session_of_problem(): Fix crash when the current locale is
+      invalid. (LP: #1154896)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 25 Mar 2013 15:34:02 +0100
+
+apport (2.9.2-0ubuntu3) raring; urgency=low
+
+  [ Martin Pitt ]
+  * Add data/general-hooks/ubuntu-gnome.py: Send reports for packages from the
+    gnome3 PPAs to the ubuntu-gnome Launchpad project. (LP: #1158119)
+
+  [ Philip Muškovac ]
+  * Add the seed name as bug tag in the ubiquity hook so it's possible to
+    filter the bugs by the image that was used. (LP: #1154302)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 25 Mar 2013 11:17:49 +0100
+
+apport (2.9.2-0ubuntu2) raring; urgency=low
+
+  * Include ubiquity.log generated by upstart for the ubiquity.conf
+    upstart job.
+
+ -- Dmitrijs Ledkovs <dmitrij.ledkov@xxxxxxxxxx>  Wed, 13 Mar 2013 18:52:21 +0000
+
+apport (2.9.2-0ubuntu1) raring; urgency=low
+
+  * New upstream release:
+    - report.py, add_package_info(): Add "[origin: unknown]" tag to
+      Package/Dependencies fields for non-distro package whose origin cannot
+      be determined. (LP: #1148116)
+    - Adjust kernel_crashdump to the format kdump-tools produces. Thanks Louis
+      Bouchard.
+    - Write core dumps on SIGQUIT if ulimit allows. Thanks Graeme Hewson.
+      (LP: #1153662)
+  * debian/apport.upstart: Also check for kdump-tools-style kernel crash
+    reports for calling kernel_crashdump. Thanks Louis Bouchard.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 19 Mar 2013 11:48:27 +0100
+
+apport (2.9.1-0ubuntu1) raring; urgency=low
+
+  * New upstream release:
+    - launchpad.py: Add support for filing bugs as private. Document this in
+      doc/crashdb-conf.txt. (LP: #1144647)
+    - Fix crash in error() and warning() if there is no sys.stderr.
+      (LP: #1012445)
+    - Fix Turkish translation to add missing keyboard accelerator.
+      (LP: #648750)
+    - fileutils.py, find_package_desktopfile(): Restrict to autostart and
+      application .desktop files. (LP: #1147528)
+    - apt/dpkg get_modified_files(): Fix crash when encountering non-ASCII
+      file names in an ASCII locale. (LP: #1044014)
+  * Bump Standards-Version to 3.9.4 (no changes necessary).
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 07 Mar 2013 16:04:35 +0100
+
+apport (2.9-0ubuntu2) raring; urgency=low
+
+  * Merge from trunk:
+    - test_signal_crashes.py: Fix test_crash_apport() when being run under
+      LD_PRELOAD.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 01 Mar 2013 13:35:21 +0100
+
+apport (2.9-0ubuntu1) raring; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream release. Changes since previous trunk merge:
+    - fileutils.py, shared_libraries(): Return a "name → path" dict instead of
+      just a set of names. Thanks Kyle Nitzsche.
+    - sandboxutils.py: Support unpackaged executables, i. e. reports which do
+      not have "Package" and "Dependencies" fields. For those, get required
+      libraries from "ProcMaps". Thanks Kyle Nitzsche.
+    - apport/report.py: report if LD_PRELOAD and LD_LIBRARY_PATH are set.
+      Thanks James Hunt.
+    - apport-valgrind: Cleanly exit on keyboard interrupts. Thanks Kyle
+      Nitzsche.
+    - debian.py: Fix "string payload expected" crash when building the report.
+      Thanks Dmitry Shachnev. (Debian #698010)
+    - Move shared_libraries() and links_with_shared_library() from hookutils
+      into fileutils, so that we can use it from apport-valgrind. Thanks to
+      Kyle Nitzsche for the initial patch.
+    - fileutils.shared_libraries(): Filter out virtual "linux-vdso" from
+      result.  Thanks Kyle Nitzsche.
+    - apport-valgrind: Fix path to debug symbols in the sandbox.
+    - ui.py, get_desktop_entry(): Fix for Python 2.
+
+  [ Brian Murray ]
+  * data/general-hooks/ubuntu.py: remove adding of running-unity tag to bug
+    reports as the majority of users are now using unity so this is the more
+    common case.
+  * data/package-hooks/source_ubiquity.py: set a default value for cd_error
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 01 Mar 2013 09:17:34 +0100
+
+apport (2.8-0ubuntu4) raring; urgency=low
+
+  * ui.py: Check $PKEXEC_UID in addition to $SUDO_UID for opening a browser.
+    (Backported from trunk).
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 01 Feb 2013 11:26:39 +0100
+
+apport (2.8-0ubuntu3) raring; urgency=low
+
+  * Backport polkit action for running apport-gtk through pkexec to access
+    system crash reports from upstream r2578
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 30 Jan 2013 08:13:01 -0800
+
+apport (2.8-0ubuntu2) raring; urgency=low
+
+  [ Martin Pitt ]
+  * debian/control: Add alternative libc-dbg dependencies.
+
+  [ Brian Murray ]
+  * data/package-hooks/source_linux.py: modify check for whether or not the
+    kernel is an upstream one (LP: #1100198)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 17 Jan 2013 09:04:19 -0800
+
+apport (2.8-0ubuntu1) raring; urgency=low
+
+  * New upstream release:
+    - Factor out sandbox management functions from apport-retrace into
+      apport/sandboxutils.py, so that other programs can re-use the API
+      easily. Thanks to Kyle Nitzsche for the initial work on this.
+    - Generate a crash signature for kernel OOPSes.
+    - Add "apport-valgrind" tool to produce valgrind reports in a temporary
+      sandbox with debug symbols (similar to apport-retrace). Thanks Alex
+      Chiang and Kyle Nitzsche!
+    - Fix StacktraceAddressSignature generation on ARM. (LP: #1089778)
+    - debian.py: Fix TypeError crash in payload generation. Thanks Ritesh Raj
+      Sarraf.
+    - apport_python_hook.py: Update "ExecutableTimestamp" field when mangling
+      "ExecutablePath". (LP: #1077253)
+  * Add new apport-valgrind binary package.
+  * Re-enable Launchpad crash reports for raring.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 08 Jan 2013 08:39:35 +0100
+
+apport (2.7-0ubuntu2) raring; urgency=low
+
+  * Cherry-pick from trunk:
+    - Fix StacktraceAddressSignature generation on ARM. (LP: #1089778)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 13 Dec 2012 08:56:47 +0100
+
+apport (2.7-0ubuntu1) raring; urgency=low
+
+  * New upstream release:
+    - packaging.py, get_file_package(): Add optional "release" and "arch"
+      arguments for getting a file's package for a foreign release or
+      architecture. Implement this for apt/dpkg backend.
+    - packaging.py, install_packages(): Add optional "architecture" argument
+      for creating a sandbox for a foreign architecture. Implement this for
+      apt/dpkg backend.
+    - When a report's architecture does not match the system architecture, try
+      to use gdb-multiarch (if available, as packaged on Debian/Ubuntu), and
+      set architecture and gnutarget accordingly in gdb. This supports x86,
+      x86_64, and ARM for now, so that reports from all these architectures
+      can be retraced on an x86_84 machine. (LP: #1044437)
+    - launchpad.py: Add "architecture" option to process reports for a foreign
+      architecture.
+    - Add exceptions from package hooks to new HookError_<filename> report
+      field, to make them more visible. Until now they were only written to
+      stderr. (LP: #1086309)
+    - apport-cli: Fix showing of prompt. Thanks Dmitry Shachnev!
+    - fileutils.py, mark_report_upload(): Do not try to remove the .uploaded
+      file, as this is not owned by the user.
+    - backends/packaging-apt-dpkg.py, install_packages(): Set mirror to the
+      one in the sandbox config.
+    - apportcheckresume: Fix crash if state file does not exist.
+  * debian/control: Add "gdb-multiarch" suggests to apport-retrace, and update
+    package description for justification.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 10 Dec 2012 14:07:04 +0100
+
+apport (2.6.3-0ubuntu4) raring; urgency=low
+
+  * Merge from trunk: Consistently use ignore file without $HOME. Fixes
+    running as root, and autopkgtests.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 05 Dec 2012 23:28:09 +0000
+
+apport (2.6.3-0ubuntu3) raring; urgency=low
+
+  * Fix OSError crash in mark_report_upload(); regression from
+    2.6.3-0ubuntu2.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 05 Dec 2012 10:55:55 +0000
+
+apport (2.6.3-0ubuntu2) raring; urgency=low
+
+  * debian/control: Add libglib2.0-dev and libnih-dev build dependencies, for
+    the tests that run during build time.
+  * debian/tests/control: Add missing test dependencies: libnih-dev for
+    test_add_gdb_info_abort_libnih.
+  * Merge from trunk:
+    - Fix test_find_package_desktopfile test to not consider packages with
+      only one "NoDisplay=true" .desktop file for the "has one desktop file"
+      test.
+    - report.py, mark_ignore(): Use home directory of actual effective user,
+      not of $HOME. Fixes ignore file when using through sudo.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 30 Nov 2012 21:51:33 +0100
+
+apport (2.6.3-0ubuntu1) raring; urgency=low
+
+  * New upstream release. Changes since our previous snapshot:
+    - debian.py: Only reject reports with useless stack traces if the report
+      actually has a stack trace at all.
+    - debian.py: Fix UTF-8 string handling. Thanks Ritesh Raj Sarraf.
+    - debian.py: Fix crash on broken "Package" fields, as generated by current
+      Debian/Ubuntu dkms package.
+    - data/apport: Call fsync when writing upstart crash reports.
+    - report.py, add_gdb_info(): Handle libnih's assertion messages.
+      (LP: #997359)
+    - apport-gtk, apport-kde: Don't provide an option to restart a crashed
+      application when the crash occurred in a thread (LP: #1033902).
+    - apport-retrace: Disallow option -C without option -S. Thanks Kyle
+      Nitzsche.
+    - fileutils.py, mark_report_upload(): Refresh the .upload stamps if a
+      previous version of the report was already uploaded, but another
+      instance of the problem happened since then. Thanks Brian Murray. (LP:
+      #1084296)
+    - Ignore implausibly low addresses when computing
+      StacktraceAddressSignature.  These are usually artifacts from gdb when
+      not having debug symbols, and having too many of them prevents proper
+      client-side duplicate detection and proper bucketing in daisy.
+      (LP: #1084996)
+    - fileutils.py: Ignore .desktop files with NoDisplay=true. (LP: #1048524)
+  * debian/tests/control: Run tests as root, just like before switching our
+    autopkgtests to run as user "ubuntu" by default. This enables a couple of
+    extra tests, and avoids some confusion because the distro and the user
+    name are identical.
+  * data/package-hooks/source_linux-nexus7.py: Fix PEP-8 error.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 30 Nov 2012 18:00:01 +0100
+
+apport (2.6.2-0ubuntu5) raring; urgency=low
+
+  * data/general-hooks/ubuntu.py: Deal with dpkg_log file being a string
+    instead of bytes (LP: #1080915)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 19 Nov 2012 17:03:54 -0800
+
+apport (2.6.2-0ubuntu4) raring; urgency=low
+
+  * data/package-hooks/source_linux.py: Do not abort with "not an Ubuntu
+    kernel" if the report has a CrashDB set, i. e. reports go to a different
+    project.
+  * Add data/package-hooks/source_linux-nexus7.py: Package hook for our nexus7
+    package which currently lives in a PPA: (LP: #1076082)
+    - Report bugs against the "ubuntu-nexus7" project.
+    - Collect information from the "linux" source package hook.
+    - Add "mobile" and "nexus7" tags.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 19 Nov 2012 09:24:12 +0100
+
+apport (2.6.2-0ubuntu3) raring; urgency=low
+
+  * debian/tests/control: Add missing libglib2.0-0-dbg test dependency for the
+    report.test_add_gdb_info_abort_glib() check.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 09 Nov 2012 10:49:30 +0100
+
+apport (2.6.2-0ubuntu2) raring; urgency=low
+
+  * debian/tests/control: Add libglib2.0-dev dependency for the new "glib
+    assertion message" test case.
+  * Merge from trunk:
+    - test_signal_crashes.py: Fix incompatibility with Python 3.3.
+    - test_signal_crashes.py: Allow XDG_RUNTIME_DIR environment variable, as
+      it only shows whether or not it is set. (Test regression from 2.6)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 07 Nov 2012 10:24:28 +0100
+
+apport (2.6.2-0ubuntu1) raring; urgency=low
+
+  * New upstream release:
+    - problem_report.py: Fix UnicodeDecodeError crash under Python 2 when the
+      report has an unicode field with an unprintable ASCII character < 20.
+    - debian.py: Fix calling of parent accepts() method and return value.
+      Thanks Ritesh Raj Sarraf.
+    - bin/apport-retrace: Fix crash when not using --sandbox mode.
+    - report.py, add_proc_info(): Throw correct exception if the executable
+      path does not exist, to provide a more appropriate error message.
+      (LP: #1065129)
+    - report.py, add_gdb_info(): Check __glib_assert_msg for assertion
+      messages, too.
+    - REThread.py: Fix for Python 3.3.
+  * debian/control: Update Vcs-Bzr: for raring branch.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 06 Nov 2012 16:18:56 +0100
+
+apport (2.6.1-0ubuntu6) quantal-proposed; urgency=low
+
+  * Do not refer to the current release in the InstallationDate field
+    (LP: #1070400). We have the installed release version in the
+    InstallationMedia field.
+
+ -- Evan Dandrea <ev@xxxxxxxxxx>  Wed, 24 Oct 2012 14:31:10 +0100
+
+apport (2.6.1-0ubuntu5) quantal-proposed; urgency=low
+
+  * Include the date that Ubuntu was installed with each report
+    (LP: #1070400).
+
+ -- Evan Dandrea <ev@xxxxxxxxxx>  Wed, 24 Oct 2012 11:29:18 +0100
+
+apport (2.6.1-0ubuntu4) quantal-proposed; urgency=low
+
+  * apport/ui.py: create a MarkForUpload field and set that to false for
+    binaries that changed since the crash happened thereby preventing uploads
+    to the crash database (LP: #1039220)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 16 Oct 2012 13:31:24 -0700
+
+apport (2.6.1-0ubuntu3) quantal; urgency=low
+
+  * etc/apport/crashdb.conf: Disable Launchpad crash/kernel reports for the
+    final release. Only report to http://errors.ubuntu.com from now on.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 09 Oct 2012 17:19:32 +0200
+
+apport (2.6.1-0ubuntu2) quantal; urgency=low
+
+  * apport-kde; do not run mainloop as well as dialogues, prevents
+    crash on reporting a bug
+
+ -- Jonathan Riddell <jriddell@xxxxxxxxxx>  Tue, 09 Oct 2012 13:14:38 +0100
+
+apport (2.6.1-0ubuntu1) quantal; urgency=low
+
+  * New upstream release:
+    - setup.py: Build java module with "-target 1.5" option, so that you can run
+      it with OpenJDK 6 even if you build with OpenJDK 7.
+    - report.py, add_proc_info(): Show if $XDG_RUNTIME_DIR is set.
+    - Add apport/crashdb_impl/debian.py: Initial crash database implementation for
+      the Debian BTS. Add configuration for it to etc/apport/crashdb.conf. Thanks
+      Ritesh Raj Sarraf!
+      Note that in the Ubuntu packaging branch crashdb.conf is not changed, as
+      we do not need the Debian BTS and this would otherwise be Feature Freeze
+      matter.
+    - test_python_crashes.py: Robustify "$PYTHONPATH in ProcEnviron" check.
+    - Updated translations from Launchpad.
+  * data/package-hooks/source_linux.py: Stop collecting ACPI data, not
+    needed/desired for most bug reports according to Colin King.
+  * debian/tests/control: Add at-spi2-core dependency, otherwise the GTK test
+    will fail to connect to org.a11y.Bus.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 01 Oct 2012 12:27:00 +0200
+
+apport (2.5.3-0ubuntu1) quantal; urgency=low
+
+  * New upstream release. Changes since our previous snapshot:
+    - report.py, search_bug_patterns(): Fix bug patterns containing non-ASCII
+      characters.
+    - apport_python_hook.py: Capture $PYTHONPATH and $PYTHONHOME environment
+      variables for Python crashes.
+    - Translation updates.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 28 Sep 2012 12:59:11 +0200
+
+apport (2.5.2-0ubuntu4) quantal; urgency=low
+
+  * Merge from trunk:
+    - hookutils.py, attach_root_command_outputs(): Ignore IOError crash about
+      nonexisting files, which can happen if the user dismisses authorization.
+      (LP: #1051222)
+    - launchpad.py: Fix tag filtering for Python 3. (LP: #1052754)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 20 Sep 2012 08:07:01 +0200
+
+apport (2.5.2-0ubuntu3) quantal; urgency=low
+
+  * data/general-hooks/ubuntu.py: Fix PEP-8 errors.
+  * Merge from trunk:
+    - apport/ui.py: Update expected exception after r2486.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 19 Sep 2012 10:41:09 +0200
+
+apport (2.5.2-0ubuntu2) quantal; urgency=low
+
+  * data/general-hooks/ubuntu.py: Add "package-from-proposed" tag if the
+    installed package version is available from -proposed, but not from
+    -security and -updates. (LP: #1050853)
+  * Merge fixes from trunk:
+    - data/apportcheckresume: Open report file in binary mode. (LP: #1040353)
+    - packaging-apt-dpkg.py: When throwing ValueErrors, show the non-existing
+      package name. This makes it easier to debug such crashes.
+    - launchpad.py: Replace characters from tags which are not allowed by
+      Launchpad with '.' (LP: #1029479)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 18 Sep 2012 14:51:08 +0200
+
+apport (2.5.2-0ubuntu1) quantal; urgency=low
+
+  * New upstream release:
+    - Fix crash on broken .desktop files. (LP: #1039889)
+    - apport-gtk: For console program crashes, say "stopped" instead of
+      "closed".  Add a subtitle label with a hint about hanging programs.
+      Thanks Matt Price and Matthew Paul Thomas!
+    - report.py: Fix crash on determination of Python module path when
+      examining a crash of "python -m ...".
+    - apport-kde: Fix crash with undefined QString under Python 3. Thanks
+      Jonathan Riddell! (LP: #1028984)
+    - launchpad.py: Add missing "Pre-release Freeze" status. Thanks Brian
+      Murray!
+    - report.py, _check_bug_pattern(): Fix bug pattern matching against binary
+      values. Thanks Brian Murray for the original patch. (LP: #1016380)
+  * debian/control: Move x-terminal-emulator dependency from apport-retrace to
+    -gtk and -kde. It's those which actually spawn an X terminal for
+    apport-retrace to run in, and this lessens the dependencies for
+    apport-retrace on server type systems.
+  * Add debian/apport.maintscript: Clean up obsolete precise conffile
+    /etc/apport/native-origins.d/lts-q-backports on upgrades. (LP: #1049058)
+  * data/general-hooks/ubuntu.py: Fix PEP-8 errors.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 17 Sep 2012 14:15:41 +0200
+
+apport (2.5.1-0ubuntu7) quantal-proposed; urgency=low
+
+  * bin/apport-bug: Explicitly set the PATH to that of ENV_SUPATH in
+    /etc/login.defs. We need do this so that confined applications using
+    ubuntu-browsers.d/ubuntu-integration cannot abuse the environment to
+    escape AppArmor confinement via this script (LP: #1045986). This can be
+    removed once AppArmor supports environment filtering (LP: 1045985)
+
+ -- Jamie Strandboge <jamie@xxxxxxxxxx>  Tue, 04 Sep 2012 21:23:16 -0500
+
+apport (2.5.1-0ubuntu6) quantal; urgency=low
+
+  * data/general/ubuntu.py: handle the case where a log file is compressed
+    when reviewing package installation failures (LP: #917903)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 04 Sep 2012 15:35:50 -0700
+
+apport (2.5.1-0ubuntu5) quantal; urgency=low
+
+  * Use Python string rather than QString, LP: #1028984
+
+ -- Jonathan Riddell <jriddell@xxxxxxxxxx>  Tue, 04 Sep 2012 16:13:14 +0100
+
+apport (2.5.1-0ubuntu4) quantal; urgency=low
+
+  * do not stack trace when ec2 metadata is available (LP: #1018552)
+
+ -- Scott Moser <smoser@xxxxxxxxxx>  Thu, 30 Aug 2012 17:15:02 -0400
+
+apport (2.5.1-0ubuntu3) quantal; urgency=low
+
+  * data/general/ubuntu.py: when creating a duplicate signature search the
+    terminal log for more messages indicating the start of a failure thereby
+    creating a duplicate signature in more cases
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 28 Aug 2012 09:56:30 -0700
+
+apport (2.5.1-0ubuntu2) quantal; urgency=low
+
+  * Merge from trunk:
+    - test/run: Ignore root_info_wrapper with pyflakes.
+    - packaging-apt-dpkg.py: Add recommended packages to "Dependencies:"
+      field.  (LP: #1014428)
+    - test_hookutils.py, test_in_session_of_problem(): Use year 2038 for a
+      future date instead of 2211, as current Python 3.2 now crashes with an
+      OverflowError on 32 bit machines with later years.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 24 Aug 2012 07:50:15 +0200
+
+apport (2.5.1-0ubuntu1) quantal; urgency=low
+
+  * New upstream release:
+    - test_recoverable_problem.py: Fix test for calling test runner with
+      absolute path.
+    - packaging-apt-dpkg.py: Fix crash on writing virtual_mapping.db when
+      running with --sandbox-dir and -S system or giving no --cache.
+    - REThread.py: Fix re-raising of exceptions in Python 3. Thanks Martin
+      Packman! (LP: #1024836)
+    - apport-retrace: Keep compressed CoreDump from .crash files instead of
+      uncompressing them into memory. This dramatically reduces memory usage.
+      (LP: #981155)
+    - Add an apport.memdbg() function which prints out current memory usage if
+      APPORT_MEMDEBUG is set. Annotate apport-retrace with it.
+    - hookutils.py: Allow specifying a list of profile names when using
+      attach_mac_events(). Thanks Marc Deslauriers.
+    - hookutils.py, attach_root_command_outputs() and root_command_output():
+      Drop usage of sudo, kdesudo, and gksu, and replace with pkexec. For
+      attach_root_command_outputs(), use a wrapper and proper .policy file
+      which explains the action and works under every environment; thus
+      attach_root_command_outputs() is preferred over root_command_output()
+      now, as it provides a better user experience.
+    - Package hooks which want to send the report to a different crash
+      database than "default" can now also give the database specification
+      itself in the "CrashDB" field, not just the DB name. With this, packages
+      do not need to ship a separate /etc/apport/crashdb.conf.d/ file. Please
+      see doc/package-hooks.txt for details. (LP: #551330)
+    - report.py, add_hooks_info(): If reporting against a package/program in
+      /opt, also search for package hooks in the corresponding /opt directory.
+      This allows such hooks to define a custom crash database and thus report
+      bugs against their own project instead of against the distribution.
+      (LP: #1020503)
+  * debian/rules: Call dh_install with --list-missing, and ignore .pyc and
+    .egg-info files.
+  * debian/apport.install: Install new polkit .policy and root_info_wrapper
+    files, and add policykit-1 Recommends.
+  * debian/apport.install: Ship is-enabled script.
+  * debian/apport-kde.install: Ship userpass.ui file.
+  * Drop debian/apport-retrace.manpages and debian/apport.manpages and install
+    the man pages from *.install instead. This works better with
+    --list-missing.
+  * debian/apport.install: Install 000record-status pm-utils script, to
+    unbreak suspend failure detection.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 22 Aug 2012 11:58:45 +0200
+
+apport (2.4-0ubuntu9) quantal; urgency=low
+
+  * apport/ui.py: revert the change to when the .upload file is created as the
+    fix was incomplete and requires more investigation
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 21 Aug 2012 10:23:35 -0700
+
+apport (2.4-0ubuntu8) quantal; urgency=low
+
+  * hookutils.py: Allow specifying a list of profile names when using
+    attach_mac_events()
+
+ -- Marc Deslauriers <marc.deslauriers@xxxxxxxxxx>  Wed, 15 Aug 2012 22:47:33 -0400
+
+apport (2.4-0ubuntu7) quantal; urgency=low
+
+  * apport/ui.py: only create the .upload file after collect_info is complete
+    that way whoopsie will upload crash files with all the information it
+    needs (LP: #1020994)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 15 Aug 2012 16:07:34 -0700
+
+apport (2.4-0ubuntu6) quantal; urgency=low
+
+  * debian/control:
+    - Drop python3-pykde4 from Build-Depends.  The dep8 tests will pull
+      it in as needed.  The non-fatal build tests will continue to fail the
+      KDE test anyway because it requires X.  This way, we don't require
+      python3-pykde4 to be in main.
+
+ -- Michael Terry <mterry@xxxxxxxxxx>  Wed, 25 Jul 2012 13:20:42 -0400
+
+apport (2.4-0ubuntu5) quantal; urgency=low
+
+  * Merge from trunk:
+    - test_recoverable_problem.py: Fix test for calling test runner with
+      absolute path.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 23 Jul 2012 07:06:40 +0200
+
+apport (2.4-0ubuntu4) quantal; urgency=low
+
+  * data/general/ubuntu.py: check to see if a package installation duplicate
+    signature has been encountered previously and if so prevent bug reporting
+    (LP: #1007637)
+  * data/general/ubuntu.py: properly decode DpkgTerminalLog lines
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 20 Jul 2012 11:39:06 -0700
+
+apport (2.4-0ubuntu3) quantal; urgency=low
+
+  * data/general/ubuntu.py: modify regualr expressions for determining which
+    package installation failures to gather /etc/default/grub for
+    (LP: #1006633)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 18 Jul 2012 15:48:49 -0700
+
+apport (2.4-0ubuntu2) quantal; urgency=low
+
+  * debian/apport.install: Ship the new recoverable_problem script.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 18 Jul 2012 16:33:56 +0200
+
+apport (2.4-0ubuntu1) quantal; urgency=low
+
+  [ Brian Murray ]
+  * data/general/ubuntu.py: in trim_log deal with the fact that
+    DpkgTerminalLog is a bytes object and convert it to a string object
+
+  [ Martin Pitt ]
+  * New upstream release. Changes since our previous snapshot:
+    - Add new "RecoverableProblem" report type for problems which the
+      application can handle, but still wishes to notify the user and send a
+      problem report about. As an example, the application may wish to notify
+      the user because handling the error resulted in degraded functionality.
+      The user interface may fail to load items, or the action just performed
+      may not return any data. Applications call
+      /usr/share/apport/recoverable_problem with a string of arbitrary
+      NUL-separated key/value pairs that are added to the report. Thanks Evan
+      Dandrea!
+    - launchpad.py: Fix setting of 'Medium' importance on duplicate checking.
+    - apport-retrace: Fix StacktraceSource generation for relative --cache
+      paths.
+    - crashdb.py, check_duplicate(): Do not try to mark a bug as duplicate of
+      itself. This can happen when re-processing a previously retraced bug.
+    - apport-retrace: Fix UnicodeDecodeError when encountering a non-ASCII
+      source code file and running under a non-UTF-8 locale.
+  * debian/control: Add libc6-dbg build dependency, to ensure that the
+    report.test_add_gdb_info_abort test case can succeed (otherwise gdb cannot
+    decipher the __abort_msg structure).
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 18 Jul 2012 12:31:50 +0200
+
+apport (2.3-0ubuntu4) quantal; urgency=low
+
+  * debian/control: Add gir1.2-wnck-3.0 dependency for apport-gtk, needed by
+    the new --hanging feature.
+  * Merge from trunk:
+    - test_python_crashes.py: Fix race condition in timeout test.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 10 Jul 2012 18:35:15 +0200
+
+apport (2.3-0ubuntu3) quantal; urgency=low
+
+  * Merge from trunk:
+    - apport_python_hook.py: For org.freedesktop.DBus.Error.ServiceUnknown
+      exceptions, add a 'DbusErrorAnalysis' field to the report which points
+      out whether any .service file provides the service it tried to talk to,
+      and whether the processes for those are running. This helps to determine
+      the root cause for such errors (missing dependencies, broken .service
+      files, talking to the wrong bus, etc.) (LP: #1020572)
+    - hookutils.py, attach_alsa(): Use alsa-info.sh when available. Thanks
+      David Henningson.
+    - ui tests, test_wait_for_pid(): Fix eternal hang when running as root.
+    - testsuite: Fix ResourceWarnings when running with Python 3.
+  * debian/control, debian/tests/control: Add gvfs-daemons as build/test
+    dependency, as test_python_crashes uses it as an example for handling
+    python-dbus exceptions.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 10 Jul 2012 14:58:45 +0200
+
+apport (2.3-0ubuntu2) quantal; urgency=low
+
+  * Fix PEP-8 violations in Ubuntu specific hooks, picked up by latest pep8
+    checker.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 09 Jul 2012 11:30:29 +0200
+
+apport (2.3-0ubuntu1) quantal; urgency=low
+
+  * New upstream release:
+    - launchpad.py: Rework test suite to not use Launchpad's +storeblob
+      facility at all any more. It almost never works on staging and is
+      horribly slow. Fake the bug creation from a blob by manually creating
+      the comment and attachments ourselves, and just assume that storeblob
+      works on production.  Also change the structure to allow running every
+      test individually.
+    - crash-digger: Add --crash-db option to specify a non-default crash
+      database name. (LP: #1003506)
+    - apport-gtk: Add --hanging option to specify the process ID of a hanging
+      application. If the user chooses to report this error, apport will
+      terminate the pid with SIGABRT, otherwise it will send SIGKILL. The
+      normal core pipe handler will be used to process the resulting report
+      file, with a .hanging file in /var/crash to separate these from regular
+      crashes.
+    - apport: Also treat a binary as modified if the /proc/pid/exe symlink
+      does not point to an existing file any more. (LP: #984944)
+    - Fix PEP-8 violations picked up by latest pep8 checker.
+    - ui.py: Do not ignore certain exceptions during upload which are not
+      likely to be a network error.
+    - launchpad.py: Recongize Launchpad projects for bug query and marking
+      operations. (LP: #1003506)
+    - packaging-apt-dpkg.py: Fix get_source_tree() to work with apt sandboxes.
+    - apport-retrace: Turn StacktraceSource generation back on, now that it
+      works with the current sandboxing.
+    - launchpad.py: Ensure that upload chunk size does not underrun.
+      (LP: #1013334)
+    - apport_python_hook: Fix UnicodeEncodeError crash with Python 2 for
+      exceptions with non-ASCII characters. (LP: #972436)
+    - test_ui_kde.py: Fix occasional test failure in test_1_crash_details if
+      the application ends before the "is progress bar visible" check is done.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 09 Jul 2012 08:14:30 +0200
+
+apport (2.2.5-0ubuntu2) quantal; urgency=low
+
+  * data/general/ubuntu.py: fix an issue with a regular expression for
+    finding a package install failure due to a corrupt package
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 02 Jul 2012 13:24:00 -0700
+
+apport (2.2.5-0ubuntu1) quantal; urgency=low
+
+  * New upstream bug fix release:
+    - launchpad.py: Fix str vs. bytes crash for already known bugs, take 2.
+       (LP: #1015788)
+    - apport/ui.py, get_desktop_entry(): Disable interpolation, to correctly
+      read desktop files with % signs. (LP: #1014341)
+    - apport/ui.py: Fix rare crash if a report is already being updated in the
+      background when the UI tries to update a previous version. (LP: #949196)
+    - GTK and KDE UI tests: Avoid eternal hangs due to "this is not a distro
+      package" error messages.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 21 Jun 2012 16:15:20 +0200
+
+apport (2.2.4-0ubuntu1) quantal; urgency=low
+
+  * debian/tests/control: Simplify Depends: line by using "@" and dropping
+    packages which are already dependencies of apport's packages.
+  * debian/tests/control: Drop undefined "no-build-needed" feature.
+  * New upstream bug fix release. Changes since our previous trunk snapshot:
+    - apport-cli: Unbreak "keep" option. (LP: #1007826)
+    - launchpad.py: Fix str vs. bytes crash for already known bugs.
+      (LP: #1015788)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 21 Jun 2012 09:13:56 +0200
+
+apport (2.2.3-0ubuntu6) quantal; urgency=low
+
+  * Merge from trunk:
+    - test/run: Wait for a previous xvfb server to finish before trying to
+      start one. This fixes a race condition in the KDE UI tests which often
+      failed to start up xvfb.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 20 Jun 2012 07:59:33 +0200
+
+apport (2.2.3-0ubuntu5) quantal; urgency=low
+
+  [ Brian Murray ]
+  * data/general-hooks/ubuntu.py: do not report 'dpkg-deb --control returned
+    error exit status 2' package install failures
+
+  [ Martin Pitt ]
+  * debian/tests/upstream-system: Show number of failed tests on stdout, not
+    stderr.
+  * debian/tests/control: Add python3-mock and xvfb dependencies.
+  * Merge from trunk:
+    - test_crash_digger.py: Do not write crash reports of crash-digger into
+      system /var/crash, use a temporary directory.
+  * debian/control: Add XS-Testsuite header, as per current DEP-8.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 19 Jun 2012 08:51:18 +0200
+
+apport (2.2.3-0ubuntu4) quantal; urgency=low
+
+  * debian/tests/upstream-system: Clean up old crash reports.
+  * debian/tests/upstream-system: Show number of failed tests.
+  * Merge from trunk:
+    - test_signal_crashes.py: Show crash reports in /var/crash/.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 18 Jun 2012 09:30:10 +0200
+
+apport (2.2.3-0ubuntu3) quantal; urgency=low
+
+  * Merge from trunk:
+    - test_apport_unpack.py: Fix test_unpack_python() test when running the
+      system-installed tests.
+    - data/java_uncaught_exception: Fix for Python 3.
+  * debian/tests/control: Add apport-retrace dependency, as the tests cover
+    it.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 15 Jun 2012 12:57:19 +0200
+
+apport (2.2.3-0ubuntu2) quantal; urgency=low
+
+  * debian/rules: Disable the xvfb tests during package build for now, as they
+    currently cause the buildds to hang indefinitely. They are still run in
+    the jenkins autopkgtests.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 15 Jun 2012 10:17:17 +0200
+
+apport (2.2.3-0ubuntu1) quantal; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream bug fix release:
+    - test/run: Do not run pep8 and pyflakes when running against the sytem
+      installed Apport.
+    - test_backend_apt_dpkg.py: For the "are we online" check, verify that we can
+      download from http://ddebs.ubuntu.com/, not just whether we have a default
+      route. The latter is not sufficient for e. g. buildd environments which are
+      online, but are restricted by proxies or firewalls.
+    - test_report.py: Call "sync" after test script write core dumps, to ensure
+      that subsequent operations have a complete one.
+    - test_signal_crashes.py: Drop the broken and obsolete test_local_python()
+      test. Instead, add two tests which check proper logging.
+    - launchpad.py: Fix urlopen() for Python3. Thanks Steve Langasek.
+    - test/run: Run the tests under LC_MESSAGES=C, to avoid failing tests on
+      translated strings.
+  * debian/control: Add libc6-dbg | libc6-dbgsym dependency to apport-retrace,
+    to ensure gdb can decipher the abort_msg_s struct and thus read assertion
+    messages. Also add libc6-dbg to debian/tests/control so that
+    report.test_add_gdb_info_abort can succeed in autopkgtest.
+  * debian/control, debian/tests/control: apport-retrace needs a terminal
+    emulator, so add an x-terminal-emulator dependency. Add xterm as build and
+    autopkgtest dependency, so that the tests have one available.
+  * debian/control: Drop python-launchpadlib from Depends to Suggests for
+    python-apport, too.
+
+  [ Steve Langasek ]
+  * debian/rules: call dh_python3 with --skip-private, to avoid incorrect
+    generation of a .rtupdate script for /usr/share/apport.  LP: #1013171.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 15 Jun 2012 08:27:17 +0200
+
+apport (2.2.2-0ubuntu2) quantal; urgency=low
+
+  * debian/control: Add python3-pykde4 build dependency for the test suite.
+  * debian/rules: Unset $TMPDIR during the tests, to work around LP #972324.
+  * Merge from trunk:
+    - test/test_signal_crashes.py: More verbose tests.
+  * debian/tests/upstream-system: Do not run in the source tree, as we want to
+    check the system-installed Apport.
+  * debian/tests/control: Explicitly depend on apport-kde and apport-gtk.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 13 Jun 2012 17:55:35 +0200
+
+apport (2.2.2-0ubuntu1) quantal; urgency=low
+
+  * debian/control: Add alternative gdb-minimal dependencies to
+    apport-{gtk,kde}. (LP: #1012405)
+  * debian/control: apport-kde: depend on python3-pykde4.
+  * debian/tests/control: Add missing python3 dependencies for the GUI tests.
+  * New upstream release:
+    - testsuite: Run with Python 3 by default. To test with Python 2, run
+      "PYTHON=python2 test/run".
+    - apport: Redefine sys.std{out,err} when redirecting output, as they are
+      None in Python 3 when being called from the kernel.
+    - test/test_signal_crashes.py: Clean up unexpected core dumps on failed
+      test cases.
+    - apport-gtk: Fix crash when closing the crash dialog while the
+      information is being collected.
+    - hookutils.py, xsession_errors(): Fix crash when running under a non-UTF8
+      locale.
+    - data/apport: Do not use sys.stdin.fileno(), it is invalid when being
+      called from the kernel with Python 3.
+    - data/apport: When core dumps are enabled, read them from the written
+      report instead of directly from stdin (and then reading the written core
+      file into the .crash report). If the core file size is limited, we
+      otherwise stop reading the core dump from the kernel in the middle and
+      have no (or a broken) core dump to be put into the report.
+    - data/apport: Properly close the written crash report before changing its
+      permissions to be readable. This prevents having crash reporting UI from
+      looking at incomplete .crash files.
+  * debian/rules: drop explicit setting of $PYTHON, test suite is now run
+    with python3 by default.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 13 Jun 2012 13:08:51 +0200
+
+apport (2.2.1-0ubuntu2) quantal; urgency=low
+
+  * debian/control: Add back the Python 2 build dependencies, as we
+    are also doing a Python 2 build.
+  * debian/control: Add pyflakes build dependency, so that it can run during
+    the build.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 12 Jun 2012 06:38:26 +0200
+
+apport (2.2.1-0ubuntu1) quantal; urgency=low
+
+  * New upstream release:
+    - Clean up module imports.
+    - test/run: Run pyflakes, if available.
+    - package_hook: Add --tags option. Thanks to Brian Murray.
+    - launchpad.py: Drop the external multipartpost_handler.py (which is not
+      portable to Python 3) and replace it with using the standard email
+      module.
+    - launchpad.py: Also work with Python 3. Deal gracefully with a missing
+      "launchpadlib" module; this is not yet available for Python 3, but not
+      required for client-side reporting.
+    - apport-kde: Port to work with Python 3.
+    - apport-retrace: Fix crash when using the --procmaps option.
+    - setup.py: Update hashbang lines of installed scripts in data directory
+      to the python executable setup.py was run with, similar to what already
+      happens to scripts installed to ../bin/.
+    - apport-cli: Port to work with Python 3.
+    - setup.py: When fixing hashbang lines of installed scripts, only include
+      the major Python version.
+    - hookutils.py, read_file, attach_file(), attach_file_if_exists(): Convert
+      file contents to unicode if the contents is UTF-8, or the newly added
+      force_unicode argument is True.
+    - hooktuils, command_output(): Convert output to unicode by default, and
+      add a "decode_utf8" parameter to disable this.
+    - hookutils.py, recent_logfile(): Fix fd leak.
+    - data/apport: Do not assume that sys.stdout and sys.stderr always have a
+      name; they can be None in Python 3.
+    - data/dump_acpi_tables.py: Fix for Python 3.
+  * data/package-hooks/source_debian-installer.py: Port to work with Python 3.
+  * Move to Python 3, except for the parts that need python-launchpadlib
+    (which is not yet available for Python 3):
+    - debian/control: Add python3-problem-report and python3-apport packages.
+    - debian/control: Switch build and binary dependencies to Python 3
+      equivalents, except for apport-retrace.
+    - debian/rules: Override dh_auto_* to also handle python3-* packages (see
+      Debian #597105).
+    - debian/rules: Run test suite with Python 3.
+    - debian/rules: Switch hashbang line of apport-retrace back to Python 2.
+    - Move /etc/apport/crashdb.conf from python-apport to apport, and
+      recommend apport from both python{,3}-apport.
+  * bin/apport-bug: Force running with python 2 when being invoked as
+    apport-collect, and add a check/error message that you need to install
+    python-apport to use this.
+  * test/test_hookutils.py: Drop duplicate definition of _get_mem_usage(), now
+    identical again to trunk.
+  * ./test/test_ui_gtk.py: Drop duplicate definition of
+    test_immediate_close(), now identical again to trunk.
+  * data/general-hooks/ubuntu.py: Do not decode result of command_output(),
+    this is done by default now.
+  * data/package-hooks/source_linux.py: Add a __main__ for debugging. Stop
+    importing hookutils into the global namespace.
+  * data/package-hooks/source_ubiquity.py: Fix undefined command_output().
+  * data/general-hooks/ubuntu.py: Move definition of wrong_grub_msg and
+    grub_hook_failure to the correct place, so that this actually works.
+  * data/general-hooks/ubuntu.py: Drop definition of unused "cloud" variable.
+  * data/general-hooks/ubuntu.py: Do not import hookutils symbols into global
+    namespace.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 11 Jun 2012 12:23:53 +0200
+
+apport (2.1.1-0ubuntu2) quantal; urgency=low
+
+  [ Martin Pitt ]
+  * data/general-hooks/automatix.py: Fix whitespace according to PEP-8.
+  * data/general-hooks/ubuntu.py: Fix whitespace according to PEP-8.
+  * data/package-hooks/source_{linux,ubiquity}.py: Fix whitespace according to
+    PEP-8.
+  * debian/control: Add pep8 build dependency, to ensure folks test-build with
+    that.
+  * etc/apport/crashdb.conf: Re-enable Launchpad crash reporting again.
+
+  [ Brian Murray ]
+  * data/general-hooks/ubuntu.py: collect /etc/default/grub on systems where a
+    package failed to install during update-grub (LP: #1006633)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 01 Jun 2012 15:44:54 +0200
+
+apport (2.1.1-0ubuntu1) quantal; urgency=low
+
+  [ Martin Pitt ]
+  * debian/control: Update Vcs-Bzr: for quantal branch.
+  * data/general-hooks/ubuntu.py: Do not assume that all reports have a
+    ProblemType field. This will not be the case for updating a bug with
+    "apport-collect". (LP: #1004029)
+  * New upstream release:
+    - launchpad.py: When closing a bug as a duplicate, copy some well-known
+      tags to the master bug. Thanks Brian Murray.
+    - launchpad.py: Set importance of Python crash reports to "Medium" by
+      default, similar to signal crashes. Thanks Brian Murray.
+    - hookutils.py: Add attach_default_grub() convenience function from the
+      grub2 package hook so it can be used by other packages. Thanks Brian
+      Murray.
+    - launchpad.py: Make Launchpad bug subscription user/team configurable:
+      The initial subscriber after filing a bug can be set with the
+      "initial_subscriber" crashdb option, and the team which gets subscribed
+      after retracing with "triaging_team". (LP: #980726)
+    - report.py: Do not change the SourcePackage: field if the binary package
+      is not installed and does not exist. This fixes source package hooks to
+      actually work in some cases where source and binary package names
+      overlap. (part of LP: #993810)
+    - apport-gtk, apport-kde: Avoid collecting information twice in "bug
+      update" mode. This caused a crash in cases where the source package in a
+      bug report does not correspond to an installed binary package.
+      (LP: #993810)
+
+  [ Brian Murray ]
+  * data/general-hooks/ubuntu.py: block reporting of package install failures
+    with error regarding 'not a debian format archive'
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 30 May 2012 09:06:49 +0200
+
+apport (2.1-0ubuntu1) quantal; urgency=low
+
+  * New upstream release:
+    - packaging.py, install_packages(): Add permanent_rootdir flag and if set,
+      only unpack newly downloaded packages. Implement it for the apt/dpkg
+      backend. Thanks Evan Dandrea.
+    - apport-retrace: Add --sandbox-dir option for keeping a permanent sandbox
+      (unpacked packages). This provides a considerable speedup. Thanks Evan
+      Dandrea.
+    - crash-digger: Add --sandbox-dir option and pass it to apport-retrace.
+    - Fix the whole code to be PEP-8 compatible, and enforce this in test/run
+      by running the "pep8" tool.
+    - GTK UI tests: Ensure that there are no GLib/GTK warnings or criticals.
+    - Support Python 3. Everything except the launchpad crashdb backend now
+      works with both Python 2 and 3. An important change is that the load(),
+      write(), and write_mime() methods of a ProblemReport and apport.Report
+      object now require the file stream to be opened in binary mode.
+    - data/apport: Ignore a crash if the executable was modified after the
+      process started. This often happens if the package is upgraded and a
+      long-running process is not stopped before. (LP: #984944)
+    - Add test cases for apport-unpack.
+    - apport-retrace: Add information about outdated packages to the
+      "RetraceOutdatedPackages" field.
+    - ui.py: Drop python-xdg dependency, use ConfigParser to read the .desktop
+      files.
+    - apport-gtk: Work around GTK crash when trying to set pixmap on an
+      already destroyed parent window. (LP: #938090)
+    - data/dump_acpi_tables.py: Fix crash on undefined variable with
+      non-standard tables. (LP: #982267)
+    - backends/packaging-apt-dpkg.py: Fix crash if a package is installed, but
+      has no candidates in apt. (LP: #980094)
+    - data/general-hooks/generic.py: Bump minimum free space requirement from
+      10 to 50 MB. 10 is not nearly enough particularly for /tmp. (LP: #979928)
+    - hookutils.py, recent_logfile(): Use a default limit of 10000 lines and
+      call "tail" instead of reading the whole file. This protects against
+      using up all memory when there are massive repeated log messages.
+      (LP: #984256)
+    - apport-gtk: Do not assume that an icon requested for size 42 actually
+      delivers size 42; some themes do not have this available and deliver a
+      smaller one instead, causing overflows. Also, copy the image as
+      gtk_icon_theme_load_icon() returns a readonly result which we must not
+      modify. (LP: #937249)
+    - ui.py: Don't show the duplicate warning when the crash database does not
+      accept the problem type, and they are just being sent to whoopsie.
+      Thanks Evan Dandrea. (LP: #989779)
+    - report.py: Correctly escape the file path passed to gdb.
+    - apport-gtk, apport-kde: Do not show the information collection progress
+      dialog if the crash database does not accept this kind of report. In that
+      case whoopsie will upload it in the background and the dialog is not
+      necessary.  (LP: #989698)
+  * data/general-hooks/ubuntu.py, data/general-hooks/automatix.py: Support
+    Python 3.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 18 May 2012 16:33:53 +0200
+
+apport (2.0.1-0ubuntu7) precise-proposed; urgency=low
+
+  * Fix (LP: #989779). Don't show the duplicate warning when we're just
+    reporting to daisy.ubuntu.com.
+
+ -- Evan Dandrea <ev@xxxxxxxxxx>  Fri, 27 Apr 2012 16:53:11 +0100
+
+apport (2.0.1-0ubuntu6) precise-proposed; urgency=low
+
+  * Cherry-pick from trunk:
+    - hookutils.py, recent_logfile(): Use a default limit of 10000 lines and
+      call "tail" instead of reading the whole file. This protects against
+      using up all memory when there are massive repeated log messages.
+      (LP: #984256)
+    - apport-gtk: Do not assume that an icon requested for size 42 actually
+      delivers size 42; some themes do not have this available and deliver a
+      smaller one instead, causing overflows. Also, copy the image as
+      gtk_icon_theme_load_icon() returns a readonly result which we must not
+      modify. Fixes crashes when using themes other than the standard Ubuntu
+      ones. (LP: #937249)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 20 Apr 2012 18:53:24 +0200
+
+apport (2.0.1-0ubuntu5) precise-proposed; urgency=low
+
+  * etc/apport/crashdb.conf: Disable Launchpad crash/kernel reports for the
+    final release. Leave Apport running for whoopsie, though, so use the new
+    mechanism for selective problem types.
+  * Cherry-pick from trunk:
+    - data/general-hooks/generic.py: Bump minimum free space requirement from
+      10 to 50 MB. 10 is not nearly enough particularly for /tmp.
+      (LP: #979928)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 18 Apr 2012 10:08:28 +0200
+
+apport (2.0.1-0ubuntu4) precise; urgency=low
+
+  * Cherry-pick from trunk:
+    - data/dump_acpi_tables.py: Fix crash on undefined variable with
+      non-standard tables. (LP: #982267)
+    - backends/packaging-apt-dpkg.py: Fix crash if a package is installed, but
+      has no candidates in apt. (LP: #980094)
+    - Launchpad automatic translations update.
+  * debian/control: Drop duplicated python-gi build dependency, thanks
+    lintian.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 16 Apr 2012 16:29:04 +0200
+
+apport (2.0.1-0ubuntu3) precise; urgency=low
+
+  * Cherry-pick from trunk:
+    - GTK UI tests: Ensure that there are no GLib/GTK warnings or criticals.
+    - apport-gtk: Work around GTK crash when trying to set pixmap on an
+      already destroyed parent window. (LP: #938090)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 13 Apr 2012 19:42:02 +0200
+
+apport (2.0.1-0ubuntu2) precise; urgency=low
+
+  * debian/general-hooks/ubuntu.py: if the package installation failure is
+    from live media check to see that /cdrom, the real root filesystem, has
+    enough free space
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 11 Apr 2012 15:41:01 -0700
+
+apport (2.0.1-0ubuntu1) precise; urgency=low
+
+  * New upstream bug fix release. Changes since our previous snapshot:
+    - problem_report.py, write_mime(): Fix regression from version 1.95: Add a
+      value as attachment if it is bigger than 1000 bytes, not if it is bigger
+      than 100. (LP: #977882)
+    - packaging-apt-dpkg.py: Avoid constructing and updating the apt.Cache()
+      objects multiple times, to speed up retracing. Thanks Evan Dandrea.
+      (LP: #973494)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 10 Apr 2012 15:38:11 +0200
+
+apport (2.0-0ubuntu5) precise; urgency=low
+
+  * Merge from trunk:
+    - generic package hook: Also check /tmp for enough space. Thanks Brian
+      Murray. (LP: #972933)
+    - Automatic Launchpad translation updates.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 10 Apr 2012 07:34:08 +0200
+
+apport (2.0-0ubuntu4) precise; urgency=low
+
+  * debian/tests/upstream-system: Drop dead code.
+  * debian/tests/upstream-system: Work around LP #972324 by unsetting TMPDIR
+    for the tests.
+  * Merge test fixes from trunk:
+    - test_backend_apt_dpkg.py: Fix checks for the installation of -dbgsym
+      packages. This should always happen, as the sandboxes have a ddeb apt
+      source. Only make it conditional on the system apt sources in the "use
+      system config" test.
+    - test_report.py: Sleep a bit after calling our test crash script, to
+      ensure the kernel has time to finish writing the core file.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 03 Apr 2012 14:17:38 +0200
+
+apport (2.0-0ubuntu3) precise; urgency=low
+
+  [ Martin Pitt ]
+  * data/general-hooks/ubuntu.py: Do not capture stderr of lsb_release.
+    (LP: #955111)
+
+  [ Scott Moser ]
+  * data/general-hooks/ubuntu.py: timeout on attempts to contact ec2 metadata
+    service (LP: #855651)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 03 Apr 2012 06:58:07 +0200
+
+apport (2.0-0ubuntu2) precise; urgency=low
+
+  * debian/control: Make dh-apport Multi-Arch: foreign, so that it can
+    satisfy cross-build-dependencies.
+
+ -- Colin Watson <cjwatson@xxxxxxxxxx>  Sat, 31 Mar 2012 02:29:55 +0100
+
+apport (2.0-0ubuntu1) precise; urgency=low
+
+  * New upstream release: This is the final 2.0 release, featuring the
+    overhauled and simplified GUI, support for whoopsie-daemon, and
+    client-side duplicate checking.
+    - report.py, anonymize(): Only replace whole words, not substrings.
+      (LP: #966562)
+    - apport_python_hook.py: Fix filtering of
+      org.freedesktop.DBus.Error.NoReply exceptions. (LP: #958575)
+    - crashdb.py: When publishing the crash database, cut hash file names
+      after quoting, to avoid that the quoting causes them to become too long.
+      (LP: #968070) This also uncovered that known() did not actually find any
+      signature which contained an URL-quoted character, therefore breaking
+      client-side duplicate checking in a lot of cases. Double-quote the file
+      name now, as urlopen() unquotes it.
+    - Add a new crash database option "problem_types" and a CrashDatabase
+      method "accepts(report)". This can be used to stop uploading particular
+      problem report types to that database. E. g. a distribution might decide
+      to not get "Crash" reports any more after release.  Document the new
+      option in doc/crashdb-conf.txt.
+    - ui.py: Do not upload a report if the crash database does not accept the
+      report's type. This behaviour is not really correct, but necessary as
+      long as we only support a single crashdb and have whoopsie hardcoded.
+      Once we have multiple crash dbs, we need to not even present the data if
+      none of the DBs wants the report. See LP #957177 for details.
+      (LP: #968121)
+    - ui.py: Do not short-circuit information collection if report already has
+      a "DistroRelease" field, as the GUIs add that in some cases. Check for
+      "Dependencies" instead. This fixes information collection for kernel
+      problems (which now has a full GTK GUI test case). (LP: #968488)
+  * Merge from trunk:
+    - test_ui_gtk.py: Disable package hooks for the tests, as they might ask
+      for sudo passwords and other interactive bits, and thus make the tests
+      hang.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 30 Mar 2012 12:38:02 +0200
+
+apport (1.95-0ubuntu1) precise; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream release:
+    - apport-gtk, apport-kde: When reporting a "system crash", don't say "...
+      of this program version", but "...of this type", as we don't show a
+      program version in the initial dialog
+      (https://wiki.ubuntu.com/ErrorTracker#error) (LP: #961065)
+    - problem_report.py, write_mime(): Do not put a key inline if it is bigger
+      than 1 kB, to guard against very long lines. (LP: #957326)
+    - etc/cron.daily/apport: Do not remove whoopsie's *.upload* stamps every
+      day, only if they are older than a week. whoopsie comes with its own
+      cron job which deals with them. Thanks Steve Langasek. (LP: #957102)
+    - report.py, mark_ignore(): Fix crash if executable went away underneath
+      us. (LP: #961410)
+    - apport-gtk: Do not compare current continue button label against a
+      translated string.  Instead just remember whether or not we can restart
+      the application. (LP: #960439)
+    - hookutils.py, command_output(): Add option to keep the locale instead of
+      disabling it.
+    - hookutils.py, command_output(): Actually make the "input" parameter
+      work, instead of causing an eternal hang. Add tests for all possible
+      modes of operation.
+    - hooktuils.py: Change root_command_output() and
+      attach_root_command_outputs() to disable translated messages
+      (LC_MESSAGES=C) only as part of the command to be run, not already for
+      the root prefix command. This will keep the latter (gksu, kdesudo, etc.)
+      translated. (LP: #961659)
+    - apport-gtk: Cut off text values after 4000 characters, as Gtk's TreeView
+      does not get along well with huge values. KDE's copes fine, so continue
+      to display the complete value there. (LP: #957062)
+    - apport-gtk: Make details window resizable in bug reporting mode.
+    - crashdb.py, known(): Check the address signature duplicate database if
+      the symbolic signature exists, but did not find any result. (LP: #103083)
+    - ui.py: Run anonymization after checking for duplicates, to prevent host
+      or user names which look like hex numbers to corrupt the stack trace.
+      (LP: #953104)
+    - apport-gtk: Require an application to both have TERM and SHELL in its
+      environment to consider it a command line application that was started
+      by the user. (LP: #962130)
+    - backends/packaging-apt-dpkg.py, _check_files_md5(): Fix double encoding,
+      which caused UnicodeDecodeErrors on non-ASCII characters in an md5sum
+      file. (LP: #953682)
+    - apport-kde, apport-gtk: Only show "Relaunch" if the report has a
+      ProcCmdline, otherwise we cannot restart it. (LP: #956173)
+    - apport-gtk, apport-kde: Show the ExecutablePath while we're collecting
+      data for the crash report. Thanks Evan Dandrea. (LP: #938707).
+  * debian/copyright: Change to copyright format 1.0.
+  * debian/control: Bump Standards-Version to 3.9.3.
+
+  [ Brian Murray ]
+  * data/general-hooks/ubuntu.py: use main.log to determine UpgradeStatus not
+    apt.log (LP: #886111)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 22 Mar 2012 18:55:17 +0100
+
+apport (1.94.1-0ubuntu2) precise; urgency=low
+
+  * Merge from trunk:
+    - ui.py: Ensure that the report file is readable by the crash reporting
+      daemon after running through collect_info(). Thanks Evan Dandrea.
+    - apport-gtk, apport-kde: Set the window title to the distribution name, as
+      per http://wiki.ubuntu.com/ErrorTracker#error . Thanks Evan Dandrea.
+      (LP: #948015)
+    - test/run: Ignore obsolete packages on the system, to avoid breaking the
+      GUI tests due to them.
+    - hookutils.py, attach_alsa(): Add the full "pacmd list" output instead of
+      just sinks and sources. Thanks David Henningsson.
+    - apport-gtk: Fix handling of non-ASCII strings in message dialogs.
+      (LP: #865394)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 09 Mar 2012 16:52:53 +0100
+
+apport (1.94.1-0ubuntu1) precise; urgency=low
+
+  * New upstream bug fix release. Changes since our previous snapshot:
+    - apport-cli: Consistently handle unicode vs. byte arrays. (LP: #946207)
+    - report.py, anonymize(): Fix crash when the hostname or user name contain
+      non-ASCII characters. (LP: #945230)
+    - packaging-apt-dpkg.py: Fix UnicodeDecodeError on unexpected md5sum output.
+      (LP: #921037)
+    - apport-gtk: Fix handling of non-ASCII strings in message dialogs.
+      (LP: #865394)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 07 Mar 2012 14:47:31 +0100
+
+apport (1.94-0ubuntu2) precise; urgency=low
+
+  * Merge from trunk:
+     - collect_info(): Do not assume that reports have a "ProblemType" field.
+       This is not the case when updating a bug. (LP: #947519)
+     - Re-enable inadvertently disabled "bug report for uninstalled package"
+       test.
+     - Update translations from Launchpad.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 06 Mar 2012 11:37:17 +0100
+
+apport (1.94-0ubuntu1) precise; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream release:
+    - apport: Set the group of written reports to "whoopsie" if that group
+      exists.
+    - Fix tests to run properly against the system-installed modules and
+      binaries.
+    - test/run: Run under LC_MESSAGES=C to avoid test failures due to
+      translated strings.
+    - general-hooks/generic.py: Also attach xsession-errors for programs that
+      link to libgtk-3.
+    - launchpad.py: Properly handle "Expired" status, to avoid marking new
+      bugs as duplicates of expired ones. (LP: #941854)
+    - apport: Fix crash if the "whoopsie" group does not exist. (LP: #942326)
+    - report.py, crash_signature(): Do not put "<module>" frames into Python
+      crash signatures that happen outside of function/method calls. Fall back
+      to the file/line number as a frame description instead. This will do a
+      much better job at disambiguating e. g. different ImportError crashes.
+      (LP: #920403)
+    - Make "binary changed since the time of the crash" error message more
+      comprehensible, thanks Paolo Rotolo. (LP: #942830)
+    - crashdb.py, check_duplicate(): It can happen that a bug gets identified
+      as being a duplicate of bug S by symbolic signatures and a duplicate of
+      bug A by address signatures. Empirical evidence shows that this is due
+      to the unavoidable jitter in stack traces (A and S not being identified
+      as duplicates as their signatures differ slightly) and not a logic
+      error. So instead of erroring out, duplicate all three bugs and keep the
+      lowest number as the master ID. (LP: #943117)
+    - Revert the usage of multiple nested threads during data collection, and
+      switch back to only using one UI thread. The UI implementations can, and
+      now do, decide between showing a spinner and showing a progress dialog
+      in the ui_*_info_collection_progress() methods. This fixes libX11
+      crashes when multiple UI threads do changes concurrently (LP: #901675),
+      and also avoids multi-thread induced crashes in Pango (LP: #943661). The
+      removal of the collect() method also fixes the new crashes in it.
+      (LP: #942098, #939803)
+    - ui.py, get_desktop_entry(): Fix crash on uninstalled package.
+      (LP: #940984)
+    - data/unkillable_shutdown: Fix crash on race condition when PID goes away
+      while the report is created. (LP: #546369)
+    - apport/hookutils.py, pci_devices(): Fix crash on unexpected lines from
+      lspci. (LP: #904489)
+    - Drop hardcoded "Ubuntu" words again which crept in with the whoopsie
+      support merge. Use the DistroRelease: field.
+    - apport-kde: Fix Home page URL in KApplication metadata.
+    - apport-gtk: Fix resizability and size after hiding details.
+      (LP: #405418)
+    - test/run: Drop "local" argument. This now tests against the source tree
+      when run in the source tree root, and against the system
+      libraries/programs when run from anywhere else.
+    - test/run: Consider command line arguments as test names and only run
+      those when given. Also support just running a single test.
+    - testsuite: Force the skipping of online tests when $SKIP_ONLINE_TESTS is
+      set.
+    - hookutils.py, xsession_errors(): Add a reasonable default pattern which
+      matches glib-style warnings, errors, criticals etc. and X window errors.
+      In data/general-hooks/generic.py, call it with that default instead of
+      the rather incomplete custom pattern. (LP: #932660)
+    - packaging.py: Add get_package_origin() method, and implement it for
+      apt-dpkg.
+    - report.py, add_package_info(): Add "[origin: ...]" tag to "Package" and
+      "Dependencies" fields for any package which is not native to the
+      distribution. If any such package is present, tag the report with
+      "third-party-packages" in data/general-hooks/generic.py. (LP: #927912)
+    - apport/packaging.py: Add get_uninstalled_package() method as a helper
+      method for the test suite. Use it instead of a hardcoded Debian/Ubuntu
+      specific name in test/test_hooks.py.
+    - test/test_ui_{gtk,kde}.py: Add test cases for complete UI workflow runs
+      for reporting a bug against an installed/uninstalled package, and
+      reporting a crash with and without showing details. This reproduces the
+      recent crashes like LP #901675 or LP #943661.
+    - test_ui.py: Add a test case for reporting a complete report on
+      uninstalled package. This happens when reporting a problem from a
+      different machine through copying a .crash file.
+    - test/run: Add a test that there are no hardcoded "Ubuntu" words in the
+      source. The code should use the DistroRelease: field or lsb_release.
+  * debian/apport-retrace.install: Ship crash-digger. There is no reason any
+    more not to, as it's now very easy to set up a retracer bot environment.
+  * debian/apport.install: Install crash.{class,jar} into test suite
+    directory, so that the test_java_crashes.py test can run.
+  * debian/control: Tighten dependencies to ensure that we don't run a newer
+    UI package against an older python-apport, which would cause crashes due
+    to API mismatches. (LP: #939702)
+  * Drop test/test_backend_rpm.py, as we also drop the RPM backend in the
+    Ubuntu branch.
+  * debian/rules: Update test suite invocation, the "local" argument is
+    obsolete.
+
+  [ Brian Murray ]
+  * data/package-hooks/source_linux.py: add in ProcFB
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 02 Mar 2012 15:32:07 +0100
+
+apport (1.93-0ubuntu2) precise; urgency=low
+
+  [ Martin Pitt ]
+  * debian/control: Add python-launchpadlib and psmisc build dependencies for
+    the test suite.
+  * Merge from trunk:
+    - apport: Set the group of written reports to "whoopsie" if that group
+      exists.
+
+  [ Brian Murray ]
+  * data/package-hooks/source_ubiquity.py: prevent reporting of bugs where
+    there was an I/O error with the disk being installed to or from
+    (LP: #874727)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 23 Feb 2012 17:54:54 +0100
+
+apport (1.93-0ubuntu1) precise; urgency=low
+
+  * New upstream bug fix release:
+    - apport-gtk: Fix crash on nonexisting icon. Thanks Evan Dandrea.
+      (LP: #937354)
+    - ui.py, open_url(): Revert back to calling sudo instead of dropping
+      privileges ourselves; with the latter, calling firefox as the sudo'ing
+      user fails. (LP: #916810, #938128)
+    - ui.py: Fix aborting with "AssertionError" if the report is already
+      known, but without an URL. (LP: #938778)
+    - launchpad.py: If a bug is already known, but the report is private, do
+      not send the report. There is little sense piling up lots of duplicates.
+      (LP: #938700)
+    - test/crash: Fix regression of test_crash_apport(), consider $TERM a
+      non-sensitive variable.
+    - ui.py: Fix test failures for data collection progress, they are not
+      expected to happen for "ProblemType: Crash" any more (happens in the
+      background during sending, or if user clicks on "Show Details").
+    - test/hooks: Use a package from Debian/Ubuntu main, so that this works
+      better during package builds on build servers.
+    - test/python: Do not assume that /var/crash/ exists. Use /var/tmp/ for
+      the fake binaries instead.
+    - data/general-hooks/parse_segv.py: Fix test case name.
+    - ui.py: Fix crash on invalid core dumps. (LP: #937215)
+    - launchpad.py: Fix crash on unicode report titles. (LP: #896626)
+    - apport-gtk: Show the most interesting fields first in the details view.
+    - do-release: Call pyflakes and abort on errors other than unused imports.
+    - Move all test suites out of the code modules into test/test_<module>.py.
+      This avoids having to load it every time the program runs, and also
+      allows running the tests against the installed version of Apport.
+    - Clean up the other executable test script in test/* and change them to
+      the same structure as the module tests.
+  * debian/control: Add python-mock and GTK gir build dependencies for the
+    gtk/kde tests.
+  * debian/control: Add procps dependency to avoid a "command not found" error
+    for killall in the ubuntu.py general hook during the test suite.
+  * debian/control: Add missing python-gi dependency to apport-gtk.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 23 Feb 2012 16:22:37 +0100
+
+apport (1.92-0ubuntu1) precise; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream release:
+    - man/apport-bug.1: Mention where crash files are stored. Thanks David
+      Kastrup.
+    - hookutils.py, attach_hardware(): Sort ProcModules, thanks Brian Murray.
+    - launchpad.py: Keep "Dependencies" attachment in duplicates. Thanks Brian
+      Murray.
+    - Reorganize the GNOME and KDE user interface to do the crash
+      notifications and detail browser in a single dialog. Add test/gtk and
+      test/kde tests to check expected dialog layout for different cases.
+      Thanks Evan Dandrea!
+    - Add support for the whoopsie-daisy crash reporting daemon by creating
+      zero-byte .upload file stamps for crash reports. Thanks Evan Dandrea!
+    - ui.py: Fix wrong creation of "~" folder instead of expanding it to home
+      directory when using "Examine locally". Thanks Jason Conti!
+      (LP: #909149)
+    - Replace file() calls with open() for Python 3 compatibility. Thanks
+      Colin Watson!
+    - launchpad.py: Avoid sending tag names with upper case. (LP: #924181)
+    - report.py, crash_signature_addresses(): Fix crash if report does not
+      have "Signal".
+    - apport-gtk: Fix resize handling of expander in details window. Thanks
+      Thomas Bechtold! (LP: #930562)
+    - Clean up unnecessary imports. Thanks Evan Dandrea!
+  * debian/apport-kde.install: Ship new spinner.gif.
+
+  [ Brian Murray ]
+  * data/package-hooks/source_ubiquity.py: include kernel command line from
+    ubiquity syslog in the report as InstallCmdLine
+  * data/package-hooks/source_ubiquity.py: move apport-bug failures due to
+    grub-installer to that package (LP: #878335)
+  * debian/control: Add xvfb dependency so that the test suite can run the GUI
+    tests.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 20 Feb 2012 16:55:29 +0100
+
+apport (1.91-0ubuntu1) precise; urgency=low
+
+  * New upstream release:
+    - crashdb.py, check_duplicate(): If a crash has a signature but no
+      existing duplicate in the DB, also check for an existing address
+      signature duplicate in the DB.
+    - apport-retrace: Use DistroRelease specific subdirectory of the cache dir
+      for mapping a file to a package, as these maps are release specific.
+    - packaging-apt-dpkg.py: Refresh Contents.gz cache if it is older than one
+      day.
+    - crashdb.py: Ensure that address_signature duplicate db table does not
+      have multiple identical signatures by making it a primary key. Bump the
+      db format to "3". Existing databases need to be migrated manually as
+      SQLite does not allow adding a "PRIMARY KEY" constraint to existing
+      tables.
+    - crashdb.py: Do not add a new address signature entry if one already
+      exists.
+    - apport-cli: Fix UnicodeDecodeError on unicode report values.
+      (LP: #275972)
+    - launchpad.py: Only set bug task importance if it is undecided.
+    - apport-retrace: Fix "an useful" typo. (LP: #911437)
+    - report.py: Filter out frames which are internal kernel/glibc
+      implementation details and not stable across duplicates. In particular,
+      filter out __kernel-syscall() and the SSE stubs.
+    - crashdb.py: Remove debugging leftover which completely disabled bug
+      pattern checking.
+    - report.py: Update reading AssertionMessage. Current (e)glibc turned
+      __abort_msg from a simple static string into a struct.
+    - Change permissions of .crash files from 0600 to 0640, so that /var/crash
+      can be made g+s and crash handling daemons can access those.
+    - Python exceptions: Blacklist DBus.Error.NoReply. It does not help to get
+      these traces from the client-side application, you need the actual
+      exception in the D-Bus server backend instead. (LP: #914220)
+    - Support /etc/apport/whitelist.d/ similarly to /etc/apport/blacklist.d/,
+      for cases like installer environments where only crashes of a few selected
+      programs should be reported.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 18 Jan 2012 09:56:00 +0100
+
+apport (1.90-0ubuntu2) precise; urgency=low
+
+  [ Martin Pitt ]
+  * debian/control: Move from transitional python-gobject to python-gi.
+  * debian/control: Add gdb dependency to apport-retrace.
+  * apport/crashdb.py: Remove debugging leftover which completely disabled bug
+    pattern checking. Cherrypicked from trunk r2120.
+
+  [ Brian Murray ]
+  * data/general-hooks/ubuntu.py: improve match for hard disk errors
+  * data/package-hooks/source_ubiquity.py: tag ubiquity bugs ubiquity-upgrade
+  * data/package-hooks/source_linux.py: disable question regarding uploading
+    oops to kerneloops.org
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 13 Jan 2012 16:58:28 +0100
+
+apport (1.90-0ubuntu1) precise; urgency=low
+
+  * New upstream release: First beta release of 2.0 which introduces
+    client-side duplicate checking.
+    - report.py: Break out new method stacktrace_top_function() from
+      standard_title(), so that other parts of the code can use this as well.
+    - launchpad.net: When sending retraced results back to the bug report,
+      update the topmost function in the bug title. (LP: #869970)
+    - report.py, add_gdb_info(): Add a new field "StacktraceAddressSignature"
+      which is a heuristic signature for signal crashes. This should be used
+      if crash_signature() fails, i. e. the Stacktrace field does not have
+      enough symbols. This can be used to check for duplicates on the client
+      side, provided that the crash database server supports querying for
+      these.  Do not expose this field when uploading to crash databases
+      though, as it can be recomputed from the already existing information
+      (ProcMaps and Stacktrace) and thus would just clutter the reports.
+    - crashdb.py: Add a table "version" with the database format version. Add
+      automatic upgrading to the most current format.
+    - crashdb.py: Put address signatures from reports checked with
+      check_duplicate() into the duplicate database, so that implementations
+      of known() can check for these.
+    - dupdb-admin: Add "publish" dupdb-admin command which exports the
+      duplicate database into a set of text files suitable for WWW publishing.
+    - crashdb.py: Add new method "known(report)" which can be implemented to
+      check if the crash db already knows about the crash signature. If so,
+      the report will not be uploaded, and instead the user will be directed
+      to the existing report URL (if available), similar to bug patterns. The
+      default implementation checks this format, if the crash database is
+      initialized with a "dupdb_url" option pointing to the exported database.
+    - launchpad.py: Override known() to check if the master bug is actually
+      accessible by the reporter, and is not tagged with "apport-failed-retrace"
+      or "apport-request-retrace"; otherwise file it anyway.
+    - crash-digger: Add --publish-db option to conveniently integrate
+      duplicate DB publication (similar to dupdb-admin publish) into retracer
+      setups.
+    - launchpad.py: Attach updated stack traces from a duplicate to the master
+      bug if it failed retracing previously or has an "apport-request-retrace"
+      tag. (LP: #869982)
+    - apport-kde, apport-gtk: Support the "Annotation" field for custom dialog
+      titles for "Crash" and "Package" problem types as well, not just for
+      "Kernel". (LP: #664378)
+    - backends/packaging-apt-dpkg.py: Fix another test case failure when ddeb
+      repository is not enabled.
+    - backends/packaging-apt-dpkg.py: Fix handling of explicit cache directory
+      name when it is a relative path.
+    - launchpad.py: Only query for bugs after 2011-08-01, to avoid timeouts.
+    - ui.py: Also anonymize standard bug title. (LP: #893863)
+    - launchpad.py: Current Launchpad cannot have private bugs which affect
+      multiple projects. Fix test suite accordingly.
+  * data/general-hooks/ubuntu.py: Fix crash if "apport" package is not
+    installed, which might happen on local installs or running the test suite.
+  * etc/default/apport: Re-enable Apport by default; we want reports early in
+    Precise, and we also do not have unstable GNOME versions this time which
+    have known problems. We also have client-side duplicate detection now
+    which should mitigate the noise.
+  * Drop debian/pyversions, debian/pycompat: Obsolete with dh_python2.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 24 Nov 2011 16:17:16 +0100
+
+apport (1.26-0ubuntu1) precise; urgency=low
+
+  * New upstream release:
+    - backends/packaging-apt-dpkg.py: Port to current python-apt API.
+    - hookutils.py: Fix path_to_key() to also work with unicode arguments.
+    - test/crash: Exit successfully if apport is not enabled in the system.
+      This allows packages to run the test suite during build.
+    - report.py, add_proc_info(): Correctly handle "python -m <modulename>"
+      programs as being interpreted and determine the appropriate module path.
+    - Fix some import statements to also work for the system-installed test
+      suite.
+    - test/run: Fix testing data/general-hooks/parse_segv.py when called in
+      system-installed mode.
+    - apport/ui.py: Clean up test .crash file after test cases.
+    - Fix tests when running as root.
+    - setup.py: Fix crash when "javac -version" fails.
+    - README: Update command for one-time enablement.
+    - backends/packaging-apt-dpkg.py: Fix interleaving usage of
+      install_packages() with other operations such as get_version(), by
+      resetting the apt status after building and using the sandbox.
+    - report.py test suite: Remove requirement that $USER is set, which makes
+      it easier to run this from package build environments.
+    - apport/ui.py, test/crash: Use "yes" as test process instead of "cat".
+      The former is less likely to run already, and does not depend on having
+      a stdin, so it runs better in test environments like autopkgtest.
+    - backends/packaging-apt-dpkg.py: Fix tests if system does not have a
+      dbgsym apt source.
+    - Ignore a crash if gnome-session is running and says that the session is
+      being shut down. These often die because X.org or other services are
+      going away, are usually harmless, and just cause a lot of clutter in bug
+      trackers.  (LP: #460932)
+    - test/crash: Rewrite using Python's unittest, to be in line with other
+      tests, and be easier to maintain and extend.
+  * Add debian/tests/control and debian/tests/upstream-system:
+    DEP-8/autopkgtest control file for running the upstream tests.
+  * debian/control: Bump minimal Python version to 2.7, as the upstream trunk
+    is now moving to Python 3 compatibility; some of the new syntax does not
+    work with 2.6 yet.
+  * debian/control: Update apport-retrace package description, apport-chroot
+    is gone. Also drop the now obsolete Suggests.
+  * debian/rules: Run tests during package build, but do not let them fail the
+    build just yet. It will still take a while until all test suceed in the
+    buildd environment.
+  * debian/control: Add gdb and python-twisted-core build dependencies, so
+    that the test suite can succeed.
+  * debian/control: Move python-gobject and gir1.2-glib-2.0 dependencies from
+    apport-gtk to apport, as our generic.py hook needs it. Also add them to
+    build depends for the test suite.
+  * debian/control: Add missing lsb-release dependency, used by
+    Report.add_os_info().
+  * debian/control: Add net-books build dependency, test suite uses "route" to
+    determine whether or not to run the online tests.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 11 Nov 2011 11:32:49 +0100
+
+apport (1.25-0ubuntu1) precise; urgency=low
+
+  * New upstream release:
+    - Add new response "Examine locally" to presenting the report details,
+      which runs apport-retrace in the chosen mode in a terminal. This should
+      be made available for crash reports if apport-retrace and a Terminal
+      application are installed; add an abstrace UI method for this.
+      (LP: #75901)
+    - apport-gtk: Add "Examine locally..." button, and implement
+      ui_run_terminal().
+    - apport-cli: Add "Examine locally..." responses, and implement
+      ui_run_terminal().
+    - apport-cli: Greatly speed up displaying large reports. This also changes
+      the format to avoid indenting each line with a space, and visually set
+      apart the keys in a better way.
+    - apport_python_hook.py: Move tests out of this file into test/python, to
+      avoid having to parse the unit tests at each Python startup.
+    - test/python: Also make tests work if Python hook is not installed in
+      system's sitecustomize.py.
+    - packaging.py: Add get_modified_conffiles() API, and implement it in
+      packaging-apt-dpkg.py.
+    - hookutils.py: Add attach_conffiles().
+    - hookutils.py: Add attach_upstart_overrides().
+    - launchpad.py: Remove "Ubuntu" in bug response, replace with "this
+      software". (LP: #883234)
+    - apport-kde: Rearrange order of imports to get intended error message if
+      PyKDE is not installed.
+    - packaging-apt-dpkg.py: Ignore hardening-wrapper diversions, to make
+      gcc_ice_hook work if hardening-wrapper is installed.
+    - apport_python_hook: Respect $APPORT_REPORT_DIR.
+    - apport_python_hook: Limit successive crashes per program and user to 3
+      per day, just like signal crashes. (LP: #603503)
+    - packaging-apt-dpkg.py: Skip online tests when there is no default route.
+    - ui.py: Fix test suite to not fail if system has some obsolete or
+      non-distro packages.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 02 Nov 2011 20:45:08 -0400
+
+apport (1.24-0ubuntu1) precise; urgency=low
+
+  * New upstream release 1.23.1:
+    - apport/crashdb.py: Ensure that duplicate table only has one entry per
+      report ID.
+    - apport-retrace: Pass correct executable path to gdb in --gdb with
+      --sandbox mode.
+    - apport-retrace: Do not leave behind temporary directories on errors.
+    - apport-retrace: Drop assertion failure for existance of "Stacktrace".
+      This isn't present in the case of gdb crashing, and there is not much we
+      can do about it. This should not break the retracer.
+    - apport/report.py: Unwind XError() from stack traces for the
+      "StacktraceTop" field, as they take a significant part of the trace.
+      This causes bugs to be duplicated which really have different causes.
+  * New upstream release 1.24:
+   - apport-retrace: Add --timestamp option to prepend a timestamp to log
+     messages. This is useful for batch operations.
+   - crash-digger: Call apport-retrace with --timestamps, to get consistent
+     timestamps in log output.
+   - hookutils.py: Add two new functions attach_gsettings_package() and
+     attach_gsettings_schema() for adding user-modified gsettings keys to a
+     report. (LP: #836489)
+   - hookutils.py: Add new function in_session_of_problem() which returns
+     whether the given report happened in the currently running XDG session.
+     This can be used to determine if e. g. ~/.xsession-errors is relevant and
+     should be attached.
+   - backends/packaging-apt-dpkg.py, install_packages(): Also copy
+     apt/sources.list.d/ into sandbox.
+   - backends/packaging-apt-dpkg.py, install_packages(): Install apt keyrings
+     from config dir or from system into sandbox. (LP: #856216)
+   - packaging.py, backends/packaging-apt-dpkg.py: Define that
+     install_packages() should return a SystemError for broken
+     configs/unreachable servers etc., and fix the apt/dpkg implementation
+     accordingly.
+   - apport-retrace: Don't crash, just give a proper error message if servers
+     are unreachable, or configuration files are broken. (LP: #859248)
+   - backends/packaging-apt-dpkg.py: Fix crash when
+     /etc/apport/native-origins.d contains any files. (LP: #865199)
+   - hookutils, recent_logfile(): Fix invalid return value if log file is not
+     readable. (LP: #819357)
+   - test/crash: Fix race condition in the "second instance terminates
+     immediately" check.
+   - hookutils.py: Replace attach_gconf() with a no-op stub. It used static
+     python modules like "gconf" which broke the PyGI GTK user interface, and
+     gconf is rather obsolete these days.
+   - ui.py, open_url(): Greatly simply and robustify by just using xdg-open.
+     This already does the right thing wrt. reading the default browser from
+     GNOME, KDE, XCE, and other desktops. (LP: #198449)
+   - data/general-hooks/generic.py: Only attach ~/.xsession_errors if the bug
+     is reported in the same XDG session as the crash happened. (LP: #869974)
+   - Ignore crashes for programs which got updated in between the crash and
+     reporting. (LP: #132904)
+   - Special-case crashes of 'twistd': Try to determine the client program and
+     assign the report to that, or fail with an UnreportableReason.
+     (LP: #755025)
+   - apport-gtk: In bug update mode, make details dialog resizable and fix
+     default size. (LP: #865754)
+   - apport-gtk: Fix crash if report does not have ProcCmdline. (LP: #854452)
+   - hookutils.py, attach_wifi(): Anonymize ESSID and AP MAC from "iwconfig"
+     output. (LP: #746900)
+   - test/crash: Fix test failure if user is not in any system groups.
+   - test/crash: Change to /tmp/ for test crash process, to fix failure if the
+     user that runs the test suite cannot write into the current directory.
+     (LP: #868695)
+   - ui.py: Improve error message if package is not a genuine distro package.
+     Thanks to Ronan Jouchet. (LP: #559345)
+  * debhelper/dh_apport: Install debian/source.apport into the first binary
+    package only, as per documentation. (LP: #687584)
+  * debian/apport.upstart: Exit pre-start with 0 if apport is disabled, to
+    avoid warning message about failed startup. (LP: #857086)
+  * debian/control: Update Vcs-Bzr: for precise branch.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 19 Oct 2011 09:39:41 +0200
+
+apport (1.23-0ubuntu3) oneiric; urgency=low
+
+  * etc/default/apport: Disable for final Oneiric release.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 05 Oct 2011 16:41:07 +0200
+
+apport (1.23-0ubuntu2) oneiric; urgency=low
+
+  [ Martin Pitt ]
+  * debian/control: Bump GIR dependencies to ensure that we don't run this
+    against older versions against gir1.2-glib-2.0, which still have a wrong
+    API for markup_escape_text(). (LP: #851450)
+
+  [ Brian Murray ]
+  * data/general-hooks/ubuntu.py: also check CurrentDmesg for disk errors
+    as some package hooks add it
+  * data/package-hooks/source_debian-installer.py: for dmraid collection use
+    attach_root_command_outputs (LP: #856826)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 28 Sep 2011 07:12:19 +0200
+
+apport (1.23-0ubuntu1) oneiric; urgency=low
+
+  [ Brian Murray ]
+  * data/package-hooks/source_ubiquity.py: Do not create a DuplicateSignature
+    for bugs with a Traceback included as it is redundant
+
+  [ Martin Pitt ]
+  * New upstream release:
+    - crashdb.py, crash-digger, dupdb-admin: Drop the concept of "duplicate DB
+      consolidation". Such massive queries cause timeouts with e. g.
+      Launchpad. Instead, update the status of potential master bugs in the
+      crash DB whenever check_duplicate() is called. Note that this does not
+      affect Ubuntu itself, just the retracers in the data center.
+    - launchpad.py: Fix crash in close_duplicate() if master bug was already
+      marked as a duplicate of the examined bug.
+    - problem_report.py, load(): Fix missing last character if the last line
+      in a multi-line field is not terminated with a newline.
+    - launchpad.py: Fix test_marking_python_task_mangle() check to work with
+      current Launchpad.
+    - apport-retrace: If the user did not specify a --cache directory, create
+      a shared one instead of letting the two install_packages() calls create
+      their own. This ensures that the apt and dpkg status is up to date, and
+      avoids downloading the package indexes multiple times. (LP: #847951)
+    - apport-retrace: Give proper error mesage instead of AssertionError crash
+      if a report does not contain standard Apport format data. (LP: #843221)
+    - fileutils.py, get_new_reports(): Fix crash if report file disappears in
+      the middle of the operation. (LP: #640216)
+    - apport/ui.py, load_report(): Intercept another case of broken report
+      files. (LP: #445142)
+    - apport/report.py, standard_title(): Escape regular expression control
+      characters in custom exception names. (LP: #762998)
+  * data/package-hooks/source_ubiquity.py: Fix crash if
+    prepare_duplicate_signature() does not return anything. (LP: #843911)
+  * debian/control: Bump Standards-Version to 3.9.2 (no changes necessary).
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 14 Sep 2011 08:29:03 +0200
+
+apport (1.22.1-0ubuntu2) oneiric; urgency=low
+
+  * data/general-hooks/ubuntu.py: include apport version in bug reports since
+    apport contains code for blocking bug reports and source package hooks
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 08 Sep 2011 20:09:57 +0200
+
+apport (1.22.1-0ubuntu1) oneiric; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream release:
+    - dupdb-admin: Add "removeid" command.
+    - dupdb-admin: Use the in-memory CrashDB implementation for simple
+      operations like dump or changeid, which do not require an actual
+      backend. This makes the command work in checkouts without a
+      /etc/apport/crashdb.conf.
+    - dupdb-admin: Fix UnicodeEncodeError crash.
+    - launchpad.py: Fix crash if a crash report does not have a DistroRelease.
+    - Set the default "Apport" title for choice dialogs instead of the default
+      apport-gtk title. Thanks Robert Roth. (LP: #608222)
+    - apport-gtk: Update markup_escape_text() call to current glib.
+      (LP: #829635)
+  * data/package-hooks/source_ubiquity.py: Only set a DuplicateSignature and
+    change the source package if we are reporting a package or program crash,
+    not for ProblemType == 'Bug'.
+
+  [ Brian Murray ]
+  * data/general-hooks/ubuntu.py: check the device holding /, /var and /usr
+    partitions for I/O errors and if they exist make the bug unreportable
+  * data/package-hooks/source_ubiquity.py: Use attachment OemConfigLog to
+    determine whether or not to tag the bug oem-config not information in
+    syslog
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 06 Sep 2011 08:16:46 +0200
+
+apport (1.22-0ubuntu3) oneiric; urgency=low
+
+  * data/package-hooks/source_ubiquity.py: Fix crash on undefined 'version'.
+    (LP: #837048)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 30 Aug 2011 06:35:43 +0200
+
+apport (1.22-0ubuntu2) oneiric; urgency=low
+
+  * data/package-hooks/source_ubiquity.py: create a duplicate signature for
+    ubiquity bug reports using data in syslog
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 26 Aug 2011 13:17:38 -0400
+
+apport (1.22-0ubuntu1) oneiric; urgency=low
+
+  [ Brian Murray ]
+  * data/general-hooks/ubuntu.py: generate a DuplicateSignature tag for
+    distribution upgrades too.
+
+  [ Martin Pitt ]
+  * New upstream release:
+    - Completely rework apport-retrace to use gdb's "debug-file-directory" and
+      "solib-absolute-prefix" settings and only unpack the necessary packages
+      in a temporary directory. This makes it possible to use it in a running
+      system without actually touching installed packages, does not need any
+      root privileges, and stops the requirement of using chroots with
+      fakechroot and fakeroot. This is a lot easier to maintain and use, and a
+      lot faster, too.  As a consequence, drop the chroot module, and update
+      crash-digger accordingly. See "man apport-retrace" for the new usage.
+      It is now also easier to port to other packaging backends, as a lot of
+      the common logic moved out of the packaging API;
+      packaging.install_retracing_packages() got dropped in favor of the
+      simpler packaging.install_packages(). (LP: #832740)
+    - launchpad.py: When searchTasks() times out, exit with 99 as this is a
+      transient error.
+    - crash-digger: Intercept OverflowError from downloaded compressed
+      attachments.
+    - crash-digger: Show how many bugs are left in the pool with each new
+      retrace.
+  * Drop debian/local/apport-chroot and manpage, and ubuntu-fat-chroot. These
+    are obsolete now with the new apport-retrace.
+  * Drop debian/local/setup-apport-retracer: Most of it is obsolete now,
+    setting up a retracer merely needs an lp:apport checkout and creating an
+    apt sources file, we don't need a script for that any more.
+  * data/general-hooks/ubuntu.py: Fix invalid "continue" statement in
+    DuplicateSignature code. (LP: #828037)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 25 Aug 2011 16:31:37 +0200
+
+apport (1.21.3-0ubuntu4) oneiric; urgency=low
+
+  * data/package-hooks/source_ubiquity.py: remove use of continue when not in
+    a loop (LP: #828037)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 17 Aug 2011 07:34:21 -0700
+
+apport (1.21.3-0ubuntu3) oneiric; urgency=low
+
+  * Fix crash in GLib.markup_escape_text() call. Patch cherrypicked from
+    trunk. (LP: #828010)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 17 Aug 2011 15:52:22 +0200
+
+apport (1.21.3-0ubuntu2) oneiric; urgency=low
+
+  * data/package-hooks/source_ubiquity.py:
+    - attach the contents of syslog in the case where it is readable by the
+      user (LP: #824799)
+    - prevent reporting of bugs due to I/O error with installation media
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 17 Aug 2011 14:43:21 +0200
+
+apport (1.21.3-0ubuntu1) oneiric; urgency=low
+
+  * New upstream bug fix release. Changes since our previous snapshot:
+    - Add apport.packaging.get_library_paths() interface and implement it for
+      backends/packaging-apt-dpkg.py using dpkg multiarch directories. Use it
+      in chroot.py. This unbreaks apport-chroot for oneiric.
+    - hookutils.py: Don't attach empty values. Thanks Bryce Harrington.
+      (LP: #813798)
+    - apport-gtk: Correctly pass message dialog type.
+    - apport-gtk: Fix GLib and GObject imports to be compatible with the future
+      pygobject 3.0.
+    - hookutils.py, attach_alsa(): Get a list of outputs/inputs that PulseAudio
+      knows about, which also shows the currently selected output/input, as well
+      as volumes. This should help with "no sound" bug troubleshooting. Thanks
+      Luke Yelavich.
+  * data/general-hooks/ubuntu.py: Fix crash if report doesn't have a Package
+    field (caught by test suite).
+  * data/general-hooks/ubuntu.py: Fix crash if report doesn't have a
+    DpkgTerminalLog field (caught by test suite).
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 17 Aug 2011 08:42:18 +0200
+
+apport (1.21.2-0ubuntu14) oneiric; urgency=low
+
+  * data/general-hooks/ubuntu.py: resolve issue with the contents of
+    DuplicateSignature being truncated
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Sat, 13 Aug 2011 11:40:07 -0700
+
+apport (1.21.2-0ubuntu13) oneiric; urgency=low
+
+  * data/general-hooks/ubuntu.py: do not report package installation failures
+    where the conflicting package is not a genuine Ubuntu package
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 11 Aug 2011 12:40:11 -0700
+
+apport (1.21.2-0ubuntu12) oneiric; urgency=low
+
+  * Merge change from trunk:
+    - apport/hookutils.py: properly detect as non-root when auditd is being
+      used, use egrep as we're using an extended regex.
+
+ -- Marc Deslauriers <marc.deslauriers@xxxxxxxxxx>  Wed, 10 Aug 2011 13:42:27 -0400
+
+apport (1.21.2-0ubuntu11) oneiric; urgency=low
+
+  * data/general-hooks/ubuntu.py:
+    - create a duplicate signature for package installation failures
+    - tag install failures due to a package conflict 'package-conflict'
+      (LP: #368435)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Wed, 10 Aug 2011 09:02:04 -0700
+
+apport (1.21.2-0ubuntu10) oneiric; urgency=low
+
+  * data/package-hooks/source_debian-installer.py:
+    - collect installation log files (LP: #820582)
+  * data/package-hooks/source_ubiquity.py:
+    - tag bug reports using the version of ubiquity and oem-config if
+      applicable
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 04 Aug 2011 11:48:25 -0700
+
+apport (1.21.2-0ubuntu9) oneiric; urgency=low
+
+  * data/package-hooks/source_linux.py:
+    - kernel driver tag needs a space before it
+    - add grub-pc to related package version if an apport-package bug
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 25 Jul 2011 12:36:54 -0700
+
+apport (1.21.2-0ubuntu8) oneiric; urgency=low
+
+  * data/package-hooks/source_linux.py:
+    - ensure Oops with RIP get tagged with the kernel-driver
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 22 Jul 2011 09:34:46 -0700
+
+apport (1.21.2-0ubuntu7) oneiric; urgency=low
+
+  [ Martin Pitt ]
+  * data/general-hooks/ubuntu.py: Fix calling of add_info() in the __main__
+    test code.
+
+  [ Brian Murray ]
+  * data/package-hooks/source_ubiquity.py:
+    - collect all logs using root_command_outputs (LP: #812738)
+  * apport/hookutils.py:
+    - check to see if the package has any upstart override files
+  * data/general-hooks/ubuntu.py:
+    - when reporting a problem use the upstart override check (LP: #803977)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 22 Jul 2011 16:51:22 +0200
+
+apport (1.21.2-0ubuntu6) oneiric; urgency=low
+
+  * data/general-hooks/ubuntu.py:
+    - In addition to DpkgTerminalLog also check VarLogDistupgradeApttermllog
+      for package installation failure messages
+    - Also move postrm.d/zz-update-grub errors to grub2
+  * apport/hookutils.py:
+    - raise a yes no dialog in the event a conffile has been modified
+      (LP: #811203)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 21 Jul 2011 06:36:04 +0200
+
+apport (1.21.2-0ubuntu5) oneiric; urgency=low
+
+  * data/general-hooks/ubuntu.py:
+    - Check DpkgTerminalLog for more cases that indicate the bug report should
+      be filed about grub2
+  * data/package-hooks/source_linux.py:
+    - kerneloops was a transitional package we want the version of
+      kerneloops-daemon
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Tue, 19 Jul 2011 07:20:07 +0200
+
+apport (1.21.2-0ubuntu4) oneiric; urgency=low
+
+  [ Brian Murray ]
+  * data/package-hooks/source_linux.py:
+    - tag kerneloops reports with the driver the Oops occurred in
+    - include kerneloops package version in kerneloops reports
+
+  [ Martin Pitt ]
+  * Merge changes from trunk:
+    - gtk/apport-gtk.desktop.in: Also show in Unity. (LP: #803519)
+    - apport-unpack: Fix crash on file errors.
+    - hookutils.py: Add attach_mac_events() for reporting logs of MAC systems.
+      Looks for AppArmor messages for now. Thanks Marc Deslauriers!
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 14 Jul 2011 18:13:52 +0200
+
+apport (1.21.2-0ubuntu3) oneiric; urgency=low
+
+  * data/general-hooks/ubuntu.py: add in casper package version to bugs
+    reported from Live Media
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 14 Jul 2011 06:30:51 +0200
+
+apport (1.21.2-0ubuntu2) oneiric; urgency=low
+
+  * data/package-hooks/source_ubiquity.py:
+    - Check syslog for squashfs errors and do not report
+    - Ask before adding installer debug log file (LP: #773766)
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Thu, 07 Jul 2011 13:40:17 -0700
+
+apport (1.21.2-0ubuntu1) oneiric; urgency=low
+
+  * New upstream bug fix release. Changes since our trunk snapshot:
+    - generic hook: Don't report package installation failures due to
+      segfaulting maintainer scripts. We want the actual crash report only.
+      Thanks Brian Murray.
+    - hookutils.py, attach_wifi(): Also include wpasupplicant logs. Thanks
+      Mathieu Trudel-Lapierre!
+    - report.py: Fix bug patterns to correctly match against compressed report
+      fields.
+  * gtk/apport-gtk.desktop.in: Also show in Unity. Cherrypicked from trunk.
+    (LP: #803519)
+  * etc/default/apport: Turn Apport back on by default for Alpha 2.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 01 Jul 2011 16:32:38 +0100
+
+apport (1.21.1-0ubuntu2) oneiric; urgency=low
+
+  * Merge from trunk:
+    - test/run: Check $PYTHON for using a different Python interpreter (such
+      as "python3") for the tests.
+    - backends/packaging-apt-dpkg.py: Fix crash introduced in 1.21.1's
+      multiarch fixes.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 22 Jun 2011 10:42:15 +0200
+
+apport (1.21.1-0ubuntu1) oneiric; urgency=low
+
+  * New upstream release:
+    - data/general-hooks/generic.py: Also check for low space on /var. Thanks
+      Brian Murray.
+    - hookutils.py, attach_file() and attach_file_if_exists(): Add a new
+      "overwrite" flag option. If not given, now default to overwriting an
+      existing key, as this is usually what you need when attaching files
+      (instead of attaching it several times with '_' appended to the keys).
+      You can get the old behaviour by setting overwrite=False.
+    - When showing the size of the full report, take the compressed size of
+      binary values instead of their uncompressed size, as the crash db upload
+      will use the compressed values.
+    - backends/packaging-apt-dpkg.py: Fix for current dpkg with multiarch
+      support.
+    - test/run: Fix the test suite to run against the system installed
+      libraries with current Python versions (2.6, 2.7) where __file__ does
+      not work any more with imports.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 20 Jun 2011 11:53:30 +0200
+
+apport (1.21-0ubuntu1) oneiric; urgency=low
+
+  * New upstream release. Changes since our previous trunk merge:
+    - Supply --desktop option to kdesudo to improve the description which
+      program is requesting administrative privileges.
+    - apport-checkreports: Exit with status 2 if there are new reports, but
+      apport is disabled. This helps crash notification GUIs to not display new
+      crash reports in that case. Thanks to Michael Vogt for the original patch.
+    - Add data/is-enabled: Shell script to check if apport is enabled.
+      Non-Python programs (which can't use apport.packaging.enabled() ) can
+      call this instead of having to parse /etc/default/apport themselves, and
+      just check the exit code. Inspired by original patch from Michael Vogt.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 08 Jun 2011 11:19:01 +0200
+
+apport (1.20.1-0ubuntu6) oneiric; urgency=low
+
+  * debian/control: Update Vcs-Bzr: to oneiric branch.
+  * bin/apport-bug: Finally drop the long-deprecated -p/-P options.
+  * gtk/apport-gtk: Stop forcing GTK 2, we move to GTK 3 now. Update GIR
+    dependency accordingly.
+  * man/apport-bug.1: Revert change to explain $APPORT_STAGING, this has been
+    removed long ago.
+  * Convert packaging from cdbs+python-central to dh7+dh_python2.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 17 May 2011 15:34:10 +0200
+
+apport (1.20.1-0ubuntu5) natty; urgency=low
+
+  [ Kees Cook ]
+  * debian/rules: really ignore "start" result at install (LP: #767829).
+
+  [ Brian Murray ]
+  * Only prepend linux bug titles with [STAGING] if a title exists
+    (LP: #767864).
+
+ -- Kees Cook <kees@xxxxxxxxxx>  Wed, 20 Apr 2011 16:27:06 -0700
+
+apport (1.20.1-0ubuntu4) natty; urgency=low
+
+  * Ignore return code on startup (LP: #767498)
+
+ -- Stéphane Graber <stgraber@xxxxxxxxxx>  Wed, 20 Apr 2011 16:55:58 -0400
+
+apport (1.20.1-0ubuntu3) natty; urgency=low
+
+  * Merge from trunk:
+    - Use kde-open instead of kfmclient to open URLs under KDE. Thanks Philip
+      Muškovac. (LP: #765808)
+  * etc/default/apport: Disable by default for the final release.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 20 Apr 2011 18:57:27 +0200
+
+apport (1.20.1-0ubuntu2) natty; urgency=low
+
+  [ Brad Figg ]
+  * The kernel team has decided that asking the user for a bunch of
+    information which they may not be able to answer is the wrong thing to do.
+    Therefore, all the propmpting of the user for said information has been
+    removed. Also removed is the tagging of "needs-upstream-testing".
+
+  [ Martin Pitt ]
+  * Merge bug fixes from trunk:
+    - apport-gtk: HTML-escape text for dialogs with URLs. (LP: #750870)
+    - dump_acpi_tables.py: Check to see if acpi/tables dir is mounted first.
+      Thanks Brian Murray. (LP: #729622)
+    - man/apport-cli.1: Document recently added -w/--window option. Thanks
+      Abhinav Upadhyay. (LP: #765600)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 19 Apr 2011 11:04:57 +0200
+
+apport (1.20.1-0ubuntu1) natty; urgency=low
+
+  * New upstream bug fix release:
+    - Add bash completion support for new -w/--window option that was
+      introduced in 1.20. Thanks Philip Muškovac.
+    - apport-unpack: Fix crash if target directory already exists.
+    - Fix crash if UnreportableReason is a non-ASCII string. (LP: #738632)
+    - Fix crash if application from desktop name is a non-ASCII string.
+      (LP: #737799)
+    - unkillable_shutdown: Fix rare crash if ExecutablePath does not exist
+      (any more). (LP: #537904)
+    - kernel_crashdump: Fix crash if the vmcore file disappeared underneath
+      us.  (LP: #450295)
+    - unkillable_shutdown: Fix crash if the checked process terminated
+      underneath us. (LP: #540436)
+    - ui.py: Properly raise exceptions from the upload thread that happen at
+      its very end. (LP: #469943)
+  * data/package-hooks/source_ubiquity.py: Read root-only accessible log files
+    as root. (LP: #745455)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 31 Mar 2011 17:37:16 +0200
+
+apport (1.20-0ubuntu1) natty; urgency=low
+
+  * New upstream release. Changes since our previous snapshot:
+    - Add support for -w/--window option which will enable user to select a
+      window as a target for filing a problem report. Thanks Abhinav Upadhyay.
+      (LP: #357847)
+    - Disable the filtering on SIGABRT without assertion messages. Turns out
+      that developers want these crash reports after all. (LP: #729223)
+    - Add support for a "DuplicateSignature" report fields. This allows
+      package hooks to implement custom duplicate problem handling which
+      doesn't need to be hardcoded in Apport itself. Update the launchpad
+      backend to tag such bugs as "need-duplicate-check".
+    - hookutils.py Update WifiSyslog regex to correctly catch application log
+      messages in syslog. Thanks Mathieu Trudel-Lapierre. (LP: #732917)
+    - hookutils.py, attach_hardware(): Avoid error message if machine does not
+      have a PCI bus. Thanks Marcin Juszkiewicz. (LP: #608449)
+    - backends/packaging-apt-dpkg.py: Replace deprecated getChanges() call
+      with get_changes().
+    - apport-gtk: Fix broken dialog heading if the name of the crashed program
+      contains an & or other markup specific characters.
+    - apport-gtk: Don't crash if GTK cannot be initialized. This usually
+      happens without a $DISPLAY or when the session is being shut down. Just
+      print an error message. If there are pending crashes, they will be shown
+      again the next time a session starts. (LP: #730569)
+  * debian/local/apport-chroot: In retracing mode, fix the passed --auth and
+    --duplicate-db arguments to be paths within the fakechroot.
+  * debian/local/apport-chroot: Apply the same absolute path fix to retracing
+    mode that we already applied to login mode in 1.19-0ubuntu1.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 18 Mar 2011 16:39:07 +0100
+
+apport (1.19-0ubuntu3) natty; urgency=low
+
+  * Merge fixes from trunk:
+    - apport-retrace: Intercept SystemErrors from ill-formed gzip attachments
+      as well.
+    - Fix crash if crash database configuration does not specify a
+      bug_pattern_url. Just assume None. (LP: #731526)
+    - If a custom crash database does not specify a bug_pattern_url, fall back
+      to using the default database's. (LP: #731526)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 09 Mar 2011 19:21:16 +0100
+
+apport (1.19-0ubuntu2) natty; urgency=low
+
+  * gtk/apport-gtk: Update require_version() call to current pygobject API.
+    Bump python-gobject dependency accordingly.
+  * Merge from trunk:
+    - report.py, add_hooks_info(): Properly report TypeErrors from hooks.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 03 Mar 2011 17:20:41 +0100
+
+apport (1.19-0ubuntu1) natty; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream release:
+    - apt backend: Do not generate a warning if the opportunistically added -dbg
+      package does not exist.
+    - apt backend: Only add -dbg in --no-pkg mode, as there will be conflicts in
+      normal package mode.
+    - apt backend: Call tar with target cwd instead of using -C; the latter causes
+      an extra openat() call which breaks with current fakechroot.
+    - launchpad.py: Fix retracer crash if DistroRelease field does not exist.
+    - Convert deprecated failIf()/assert_() TestCase method calls to
+      assertFalse()/assertTrue().
+    - In apport-bug, if the user specifies a PID referring to a kernel thread,
+      do the right thing and file the bug against the kernel
+    - In hookutils.attach_dmesg, skip over an initial truncated message if one
+      is present (this happens when the ring buffer overflows)
+    - Change bug patterns to just use one central file instead of per-package
+      files. This allows bug patterns to be written which are not package
+      specific, and is easier to maintain as well. IMPORTANT: This changed the
+      format of crashdb.conf: bug_pattern_base is now obsolete, and the new
+      attribute bug_pattern_url now points to the full URL/path of the patterns
+      file. Thanks to Matt Zimmerman!
+  * debian/local/setup-apport-retracer: Drop local installation of packages,
+    we now just check that they are installed in the system.
+  * debian/local/apport-chroot: Convert --auth argument to absolute path, as
+    fakechroot needs that.
+
+  [ Steve Langasek ]
+  * data/general-hooks/ubuntu.py: don't collect bug reports on missing
+    menu.lst - this is a user error that they need to fix up on their side.
+    (LP: #668888)
+
+  [ Matt Zimmerman ]
+  * data/general-hooks/ubuntu.py: Add UpgradeStatus field to show if the
+    system was upgraded from a previous release (and when)
+  * debian/apport.install: actually install the java_uncaught_exception script
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 28 Feb 2011 12:16:22 +0100
+
+apport (1.18-0ubuntu2) natty; urgency=low
+
+  * Merge from trunk:
+    - Update stack unwind patterns for current glib (slightly changed function
+      names), and also ignore a preceding '*'. (LP: #716251)
+    - Fix crash_signature() to fail if there is an empty or too short
+      StacktraceTop.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sun, 20 Feb 2011 20:31:02 +0100
+
+apport (1.18-0ubuntu1) natty; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream release:
+    - Ensure that symptom scripts define a run() function, and don't show them
+      if not.
+    - Do not show symptom scripts which start with an underscore. These can be
+      used for private libraries for the actual symptom scripts.
+    - Update bash completion. Thanks Philip Muškovac.
+    - etc/default/apport: Remove obsolete "maxsize" setting. (LP: #719564)
+    - Remove explicit handling of KDE *.ui files in setup.py, as
+      python-distutils-extra 2.24 fixes this. Bump version check.
+    - hookutils.py: Add attach_root_command_outputs() to run several commands
+      at once. This avoids asking for the password several times.
+      (LP: #716595)
+  * debian/apport.postinst: Add missing debhelper token.
+  * debian/rules: Drop dump_acpi_tables.py chmod workaround, it's upstream now
+    and has the proper permissions.
+  * Add etc/apport/blacklist.d/apport and drop the creation of it in
+    /debian/rules. This is easier to maintain and more obvious. Also move
+    README.blacklist from python-apport to apport, it fits better there.
+  * etc/apport/blacklist.d/apport: Add the binaries of nspluginwrapper, as we
+    can't do anything about them anyway. (LP: #717468)
+
+  [ Brian Murray ]
+  * data/package-hooks/source_linux.py: Properly set regression-release tag if
+    the reporter chooses "I do not know".
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 16 Feb 2011 14:29:36 +0100
+
+apport (1.17.2-0ubuntu2) natty; urgency=low
+
+  * Merge from trunk:
+    - Ensure that symptom scripts define a run() function, and don't show them
+      if not.
+    - Do not show symptom scripts which start with an underscore. These can be
+      used for private libraries for the actual symptom scripts.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 07 Feb 2011 12:23:57 +0100
+
+apport (1.17.2-0ubuntu1) natty; urgency=low
+
+  * New upstream bug fix release:
+    - Be more Python 3 compatible (not fully working with Python 3 yet,
+      though).
+    - apt/dpkg backend: Drop support for pre-0.7.9 python-apt API.
+    - Add --tag option to add extra tags to reports. (LP: #572504)
+    - hookutils.py, attach_dmesg(): Do not overwrite already existing dmesg.
+    - hookutils.py: Be more robust against file permission errors.
+      (LP: #444678)
+    - ui.py: Do not show all the options in --help when invoked as *-bug.
+      (LP: #665953)
+    - launchpad.py: Adapt test cases to current standard_title() behaviour.
+  * debian/control: Bump python-apt dependency to >= 0.7.9 to ensure that we
+    have the current API. Trunk dropped support for the old API.
+  * data/general-hooks/ubuntu.py: Ignore obsolete packages when filing bugs
+    against update-manager. (LP: #397519)
+  * data/general-hooks/ubuntu.py: Do not file a package install failure if
+    DpkgTerminalLog doesn't have any data. (LP: #695887)
+  * Add debian/apport.postinst: Create /var/crash. This directory is required
+    for package failures even if apport is disabled and thus the upstart job
+    does not run. (LP: #683367)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 04 Feb 2011 15:46:40 +0100
+
+apport (1.17.1-0ubuntu3) natty; urgency=low
+
+  * data/general-hooks/ubuntu.py: Add some __main__ code for easy testing,
+    which will update a .crash file with that hook's data.
+  * data/general-hooks/ubuntu.py: Trim DpkgTerminaLog to the most recent
+    install session; not only is this much easier to read, but it also avoids
+    confusing the tests further down which check for particular strings in the
+    log. (LP: #580419)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 26 Jan 2011 11:44:00 +0100
+
+apport (1.17.1-0ubuntu2) natty; urgency=low
+
+  * Merge from trunk:
+    - hookutils.py, attach_dmesg(): Do not overwrite already existing dmesg.
+  * etc/default/apport: Enable Apport by default for Alpha-2.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 25 Jan 2011 07:28:48 +0100
+
+apport (1.17.1-0ubuntu1) natty; urgency=low
+
+  * New upstream release:
+    - Make the GTK frontend work with GTK 2.0 as well, and drop "3.0"
+      requirement.
+  * gtk/apport-gtk: Force GTK 2 for now, as we do not currently have a real
+    GTK 3 theme, and thus with GTK 3 the application looks very ugly.
+  * debian/control: Depend on gir1.2-gtk-2.0 instead of -3.0.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 10 Jan 2011 22:26:10 -0600
+
+apport (1.17-0ubuntu2) natty; urgency=low
+
+  [ Brian Murray ]
+  * data/package-hooks/source_linux.py: Prevent regression-release bugs from
+    being tagged regression-updates. (LP: #692344). Additionally, reorder the
+    regression tags in likelyhood of greatest usage and clarify that
+    'regression-release' applies to the dev release and a stable release but
+    not an updated package in the stable release.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 05 Jan 2011 09:47:38 +0100
+
+apport (1.17-0ubuntu1) natty; urgency=low
+
+  * New upstream release:
+    - Better standard bug titles for Python crashes. Thanks Matt Zimmerman!
+      (LP: #681574)
+    - Add handler for uncaught Java exceptions. There is no integration for
+      automatically intercepting all Java crashes yet, see java/README.
+      Thanks Matt Zimmerman! (LP: #548877)
+    - GTK frontend: Require GTK 3.0.
+    - launchpad.py: Default to "production" instance, not "edge", since edge
+      is obsolete now.
+    - hookutils.py, attach_alsa(): Fix crash if /proc/asound/cards does not
+      exist. (LP: #626215)
+    - ui.py, format_filesize(): Fix to work with stricter locale.format() in
+      Python 2.7. (LP: #688535). While we are at it, also change it to use
+      base-10 units.
+    - hookutils.py, package_versions(): Always include all requested package
+      names even if they're unknown to us. Thanks Matt Zimmerman!
+      (LP: #695188)
+    - launchpad.py: When updating a bug, also add new tags. Thanks Brian
+      Murray!
+  * debian/apport.install: Install Java crash handler in
+    /usr/share/apport/apport.jar.
+  * debian/control: Add Java build dependency so that the Java crash handler
+    will be built.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 31 Dec 2010 16:15:06 +0100
+
+apport (1.16-0ubuntu5) natty; urgency=low
+
+  * data/general-hooks/ubuntu.py: Add tag "running-unity" if Unity is running.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 18 Dec 2010 20:50:20 +0100
+
+apport (1.16-0ubuntu4) natty; urgency=low
+
+  * Restore the python2.7 fix which was not in the vcs and dropped.
+
+ -- Sebastien Bacher <seb128@xxxxxxxxxx>  Thu, 16 Dec 2010 23:40:12 +0100
+
+apport (1.16-0ubuntu3) natty; urgency=low
+
+  * debian/control:
+    - Update Depends for gir abi change
+
+ -- Michael Terry <mterry@xxxxxxxxxx>  Thu, 16 Dec 2010 13:49:57 -0500
+
+apport (1.16-0ubuntu2) natty; urgency=low
+
+  * Cherrypick from trunk:
+    - ui.py, format_filesize(): Fix to work with stricter locale.format() in
+      Python 2.7. (LP: #688535). While we are at it, also change it to use
+      base-10 units.
+  * debian/rules: Fix python version check to also work with 2.7.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 14 Dec 2010 12:23:31 +0100
+
+apport (1.16-0ubuntu1) natty; urgency=low
+
+  * New upstream release:
+    - Port GTK frontend from pygtk2 to GTK+3.0 and gobject-introspection.
+    - Fix symptoms again. Version 1.15 broke the default symptom directory.
+    - Fix memory test case to work with current Python versions, where the
+      SQLite integrity check throws a different exception.
+  * debian/control: Replace python-gtk2 dependency with python-gobject and
+    gir1.0-gtk-3.0.
+  * debian/control: Drop obsolete Conflicts/Replaces.
+  * debian/control: Consistently wrap dependencies.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 19 Nov 2010 11:43:08 +0100
+
+apport (1.15-0ubuntu1) natty; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream release. Changes since to our previous trunk snapshot:
+    - Order symptom descriptions alphabetically. Thanks to Javier Collado.
+    - Check $APPORT_SYMPTOMS_DIR environment variable for overriding the
+      system default path. Thanks to Javier Collado.
+    - testsuite: Check that crashdb.conf can have dynamic code to determine DB
+      names and options.
+    - ui.py test suite: Rewrite _gen_test_crash() to have the test process
+      core dump itself, instead of using gdb to do it. The latter fails in
+      ptrace restricted environments, such as Ubuntu 10.10.
+    - launchpad.py: Use launchpadlib to file a bug instead of screen scraping.
+      The latter was completely broken with current Launchpad, so this makes
+      the test suite actually work again. Thanks to Diogo Matsubara!
+    - launchpad.py: Change $APPORT_STAGING to $APPORT_LAUNCHPAD_INSTANCE, so
+      that you can now specify "staging", "edge", or "dev" (for a local
+      http://launchpad.dev installation). Thanks to Diogo Matsubara!
+    - backends/packaging-apt-dpkg.py: Fix crash on empty lines in ProcMaps
+      attachment.
+    - doc/symptoms.txt: Fix typo, thanks Philip Muskovac. (LP: #590521)
+    - apport/hookutils.py: rename ProcCmdLine to ProcKernelCmdLine to not wipe
+      wipe out /proc/$pid/cmdline information. (LP: #657091)
+    - apport/hookutils.py: attach_file() will not overwrite existing report
+      keys, instead appending "_" until the key is unique.
+    - Fix --save option to recognise ~, thanks Philip Muškovac. (LP: #657278)
+    - Remove escalation_subscription from Ubuntu bug DB definition, turned out
+      to not be useful; thanks Brian Murray.
+    - launchpad.py: Fix APPORT_LAUNCHPAD_INSTANCE values with a https://
+      prefix.
+    - apt backend: Opportunistically try to install a -dbg package in addition
+      to -dbgsym, to increase the chance that at least one of it exists.
+      Thanks Daniel J Blueman!
+  * debian/control: Switch Vcs-Bzr: to natty branch.
+
+  [ Brian Murray ]
+  * data/package-hooks/source_linux.py: Drop regression-potential tag. We are
+    moving away from using regression-potential as a tag in the management of
+    regression bug reports. Instead we will tag bugs regression-release and
+    then create series, release, tasks for the release affected if the bug is
+    in fact a regression.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 12 Nov 2010 14:59:01 +0100
+
+apport (1.14.1-0ubuntu8) maverick; urgency=low
+
+  * debian/local/ubuntu-fat-chroot: Divert gio-querymodules and
+    gdk-pixbuf-query-loaders, since they keep breaking the chroots.
+  * etc/default/apport: Disable Apport for final Maverick release.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 28 Sep 2010 09:31:59 +0200
+
+apport (1.14.1-0ubuntu7) maverick; urgency=low
+
+  * In kde/apport-kde use correct translation catalogue, LP: #633483
+
+ -- Jonathan Riddell <jriddell@xxxxxxxxxx>  Wed, 08 Sep 2010 20:53:13 +0100
+
+apport (1.14.1-0ubuntu6) maverick; urgency=low
+
+  * backends/packaging-apt-dpkg.py: fix handling of
+    /etc/apport/native-origins.d to actually work. LP: #627777.
+
+ -- Steve Langasek <steve.langasek@xxxxxxxxxx>  Thu, 02 Sep 2010 22:28:48 +0000
+
+apport (1.14.1-0ubuntu5) maverick; urgency=low
+
+  * debian/control: Update Vcs-Bzr: to point to maverick branch.
+  * data/package-hooks/source_linux.py: Update to new-style kernel tags.
+    Patch by Brad Figg.
+  * debian/control: Bump Standards-Version to 3.9.1, no changes necessary.
+  * debian/compat: Bump to 7, since we are build depending on debhelper > 7.3
+    anyway.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 25 Aug 2010 13:02:46 +0200
+
+apport (1.14.1-0ubuntu4) maverick; urgency=low
+
+  * debian/local/ubuntu-fat-chroot: Drop firefox and thunderbird, we will use
+    upstream crash reporting for those now.
+  * debian/rules: Make dump_acpi_tables.py executable. This is a workaround as
+    long as the script comes through the package diff.gz.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 21 Jul 2010 08:43:32 +0200
+
+apport (1.14.1-0ubuntu3) maverick; urgency=low
+
+  * Merge from trunk:
+    - Add dump_acpi_tables.py script. This can be called by package hooks
+      which need ACPI table information (in particular, kernel bug reports).
+      Thanks to Brad Figg for the script!
+    - Fix test suite to work under ptrace restricted kernel.
+  * data/package-hooks/source_linux.py: Call dump_acpi_tables.py and save
+    output into "AcpiTables" field.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 13 Jul 2010 08:14:10 +0200
+
+apport (1.14.1-0ubuntu2) maverick; urgency=low
+
+  * etc/apport/crashdb.conf: Add a new database "canonical-oem" which
+    checks for an Ubuntu Distribution Channel Descriptor (in
+    /var/lib/ubuntu_dist_channel), and parses out the OEM project name from
+    that. Now that we modify the file anyway, remove the Fedora stanza, which
+    is not relevant for Ubuntu and not working due to a nonexisting Bugzilla
+    backend.
+  * data/general-hooks/ubuntu.py: Report bug against the OEM project instead
+    of Ubuntu if we have a DCD and an OEM specific package version.
+  * etc/default/apport: Re-enable Apport by default for Maverick.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 05 Jul 2010 10:53:10 +0200
+
+apport (1.14.1-0ubuntu1) maverick; urgency=low
+
+  * New upstream bug fix release:
+    - hookutils.py, attach_drm_info(): Sanitize connector names. Thanks Chris
+      Halse Rogers. (LP: #597558)
+    - bash completion: Complete all path names, apport-bug can be invoked with
+      a path to a program. Thanks Philip Muskovac.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 24 Jun 2010 15:37:19 +0200
+
+apport (1.14-0ubuntu1) maverick; urgency=low
+
+  * New upstream release:
+    - hookutils.py: Add new method attach_drm_info() to read and format
+      /sys/class/drm/*. (desktop-maverick-xorg-gpu-freeze-reports)
+    - packaging-apt-dpkg.py: Fix deprecated python-apt variables, thanks David
+      Stansby. (LP: #591695)
+    - launchpad.py: Fix crash on attachments which are named *.gz, but
+      uncompressed. (LP: #574360)
+    - hookutils.py, attach_gconf(): Fix defaults parsing for boolean keys.
+      (LP: #583109)
+  * debian/control: Bump p-distutils-extra build-dependency to 2.19, to ensure
+    that we get a complete translation template. (LP: #533565)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 16 Jun 2010 15:50:55 +0200
+
+apport (1.13.4-0ubuntu1) maverick; urgency=low
+
+  * New upstream bug fix release:
+    - bash completion: Fix error message if /usr/share/apport/symptoms does
+      not exist. Thanks Philip Muškovac! (LP: #562118)
+    - general-hooks/parse_segv.py: Report stack exhaustion more clearly and
+      correctly handle register dereferencing calls.
+    - Save/restore environment when calling hooks, in case they change the
+      locale, etc. (LP: #564422)
+    - hookutils.py, command_output(): Do not set $LC_MESSAGES for the calling
+      process/hook, just for the command to be called.
+    - ui.py: When displaying strings from system exceptions, decode them into
+      an unicode string, to avoid crashing the KDE UI. (LP: #567253)
+    - apport-retrace: Fix crash for retracing kernel vmcores, which do not
+      have an ExecutablePath.
+    - apport-bug manpage: Clarify when apport-collect may be used. Thanks
+      Brian Murray! (LP: #537273)
+    - generic hook: Check ProcMaps for unpackaged libraries, and ask the user
+      if he really wants to continue. If he does, tag the report as
+      "local-libs" and add a "LocalLibraries" field to the report with a list
+      of them.  (LP: #545227)
+  * debian/control: Drop the now obsolete apport-qt transitional package.
+  * debian/control: We do not need python-dev, just python-all.
+  * Add debian/source/format: We keep 1.0, since 3.0 is a pain for
+    bzr-maintained packages.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 08 May 2010 09:00:26 +0200
+
+apport (1.13.3-0ubuntu2) lucid; urgency=low
+
+  * etc/default/apport: Disable Apport for the final release.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 19 Apr 2010 10:33:43 +0200
+
+apport (1.13.3-0ubuntu1) lucid; urgency=low
+
+  * New upstream bug fix release:
+    - data/general-hooks/parse_segv.py: suggest segv-in-kernel possibility.
+    - ui.py: When running as root, only show system crash reports, to avoid
+      restarting user programs as root. (LP: #445017)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 14 Apr 2010 14:42:28 +0200
+
+apport (1.13.2-0ubuntu1) lucid; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream bug fix release:
+    - packaging-apt-dpkg.py, _install_debug_kernel(): Do not crash on an
+      outdated kernel, just return that it is outdated. (LP: #532923)
+    - launchpad.py test suite: Add "Referer" HTTP header, now required by
+      launchpad.
+    - launchpad.py: Fix crash if configuration does not have an
+      "escalated_tag" option.
+    - launchpad.py: Port to launchpadlib 1.0 API, thanks Michael Bienia for
+      the initial patch! (LP: #545009)
+    - gtk/apport-gtk-mime.desktop.in, kde/apport-kde-mime.desktop.in: Change
+      categories so that these do not ever appear in menu editors.
+      (LP: #449215)
+    - launchpad.py: Some LP bugs have broken attachments (this is a bug in
+      Launchpad itself). Ignore those instead of crashing.
+    - apport-gtk: Turn http:// and https:// links into clickable hyperlinks in
+      information and error dialogs. (LP: #516323)
+    - apport-retrace: Fix crash when trying to rebuild package info for
+      reports without an ExecutablePath. (LP: #436157)
+    - ui.py: Fix crash when package information cannot be determined due to
+      broken apt status. (LP: #362743)
+    - ui.py: Fix crash when /etc/apport/crashdb.conf is damaged; print an
+      appropriate error message instead. (LP: #528327)
+    - data/kernel_crashdump: Fix crash if log file disappeared underneath us.
+      (LP: #510327)
+    - data/apport: Fix IOError when apport is called with invalid number of
+      arguments, and stderr is not a valid fd. (LP: #467363)
+    - hookutils.py: Factor out the DMI collection code from attach_hardware()
+      into attach_dmi(), and call that in attach_alsa() as well. Thanks to
+      Brad Figg for the patch! (LP: #552091)
+    - apport/ui.py: Fix the help output if Apport is invoked under an
+      alternative name (like apport-collect). (LP: #539427)
+  * debian/local/apport-chroot: Fix crash if $APPORT_CRASHDB_CONF is not set.
+    (LP: #487700)
+  * debian/control: Bump python-launchpadlib dependency, to ensure that we
+    have a current version (LP: #407091), and the "1.0" protocol available.
+  * data/package-hooks/source_linux.py: Drop _() i18n, it's not available in
+    the hook and causes crashes. (LP: #538368)
+
+  [ Leann Ogasawara ]
+  * data/package-hooks/source_linux.py:
+    - Clean up some of the wording in the information dialogs for the
+      interactive kernel hook. Also add an additional "I don't know" option when
+      asked how frequently an issue occurs. (LP: #534638)
+    - Autodetect if running an upstream kernel. (LP: #532932)
+    - Attempt to categorize issue.  Then add tag based on category.
+      (LP: #534745)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 31 Mar 2010 16:32:39 +0200
+
+apport (1.13.1-0ubuntu2) lucid; urgency=low
+
+  * Merge bug fixes from trunk:
+    - problem_report.py, write_mime(): Add new optional argument
+      "priority_fields" for ordering report keys. Patch by Brian Murray,
+      thanks!
+    - launchpad.py: Put some interesting fields first in the report, with the
+      new priority_fields argument. Patch by Brian Murray, thanks!
+    - packaging-apt-dpkg.py, _install_debug_kernel(): Do not crash on an
+      outdated kernel, just return that it is outdated.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 27 Mar 2010 11:48:34 +0100
+
+apport (1.13.1-0ubuntu1) lucid; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream bug fix release:
+    - Update parse-segv to handle gdb 7.1 output.
+    - Enhance test suite to work with gdb 7.1 as well, and catch future
+      outputs.
+    - UI: Add exception string to the "network error" dialog, to better tell
+      what the problem is.
+    - UI: Add back -p option to apport-collect/apport-update-bug (regression
+      from 1.13). (LP: #538944)
+    - launchpad.py: Add yet another workaround for LP#336866. (LP: #516381)
+    - launchpad.py, download(): Ignore attachments with invalid key names.
+    - Fix regression from 1.10 which made it impossible for a package hook to
+      set a third-party crash database for non-native packages. (LP: #517272)
+    - apport-cli: Create the 'details' string only if user wants to view
+      details, and do not show files larger than 1MB. Thanks Scott Moser!
+      (LP: #486122)
+    - packaging-apt-dpkg.py: Silence apt.Cache() spewage to stdout with newer
+      python-apt versions. (LP: #531518)
+    - unkillable_shutdown: Add list of running processes and blacklisted pids
+      to report. (LP: #537262)
+    - Sort the report by key in the details view. (LP: #519416)
+
+  [ Evan Dandrea ]
+  * Move ubiquity's package-hook into apport, so that it can be used
+    from the installed system to grab the logs in /var/log/installer.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 20 Mar 2010 22:28:44 +0100
+
+apport (1.13-0ubuntu3) lucid; urgency=low
+
+  * Merge fixes from trunk:
+    - Update parse-segv to handle gdb 7.1 output.
+    - Enhance test suite to work with gdb 7.1 as well, and catch future outputs.
+    - unkillable_shutdown: Add list of running processes, blacklisted pids,
+      and "initctl list" to report. (LP: #537262)
+    - launchpad.py: Preserve the bug title written to the description by
+      apport as OriginalTitle for pattern matching. Thanks to Brian Murray!
+      (LP: #511310)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 13 Mar 2010 15:55:47 +0100
+
+apport (1.13-0ubuntu2) lucid; urgency=low
+
+  * data/general-hooks/parse_segv.py: backport portion of upstream commit 1724
+    to handle new Disassembly output from gdb 7.1.
+
+ -- Kees Cook <kees@xxxxxxxxxx>  Thu, 11 Mar 2010 10:58:39 -0800
+
+apport (1.13-0ubuntu1) lucid; urgency=low
+
+  * New upstream release:
+    - Add "unkillable_shutdown" script to collect information about processes
+      which are still running after sending SIGTERM to them. This can be
+      hooked into e. g. /etc/init.d/sendsigs on Debian/Ubuntu systems.
+    - apport_python_hook.py: Directly check /etc/default/apport instead of
+      querying packaging.enabled(), to avoid importing lots of modules for
+      non-packaged scripts. Thanks Stuart Colville! (LP: #528355)
+    - Fix SegV parser to notice walking off the stack during "call" or "ret"
+      (LP: #531672).
+    - Fix --help output for bug updating mode (invocation as apport-collect or
+      apport-update-bug). (LP: #504116)
+    - Fix bug escalation tagging, thanks to Brian Murray.
+    - Fix option processing when being invoked as apport-bug. Thanks to Daniel
+      Hahler for the patch! (LP: #532944)
+  * debian/apport.install: Install unkillable_shutdown.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 11 Mar 2010 08:42:05 +0100
+
+apport (1.12.1-0ubuntu5) lucid; urgency=low
+
+  * launchpad.py: Do not escalate a bug if its already been escalated and
+    dealt with.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Fri, 05 Mar 2010 13:05:10 -0800
+
+apport (1.12.1-0ubuntu4) lucid; urgency=low
+
+  [ Leann Ogasawara ]
+  * data/package-hooks/source_linux.py:  When reporting a kernel oops the
+    reporter is presented with a dialog asking if they also want to report the
+    oops to kerneloops.org.  Unfortunately there is no information regarding
+    the oops at the time this dialog is presented.  Provide the reporter a
+    summary of the oops in question so they can make an educated decision
+    about reporting it to kerneloops.org. (LP: #528175)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 04 Mar 2010 13:08:22 +0100
+
+apport (1.12.1-0ubuntu3) lucid; urgency=low
+
+  * data/general-hooks/parse_segv.py: add "call" and "ret" to list of insns
+    that check the stack pointer for VMA sanity (LP: #531672), backport of
+    upstream commit 1715.
+
+ -- Kees Cook <kees@xxxxxxxxxx>  Wed, 03 Mar 2010 18:07:46 -0800
+
+apport (1.12.1-0ubuntu2) lucid; urgency=low
+
+  [ Leann Ogasawara ]
+  * data/package-hooks/source_linux.py: Prevent filing bugs against
+    linux-meta. Use the linux package instead. (LP: #526787)
+
+  [ Scott Moser ]
+  * data/general-hooks/ubuntu.py: Update "is ec2 instance" logic for lucid uec
+    images. (LP: #525003)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 25 Feb 2010 19:06:39 +0100
+
+apport (1.12.1-0ubuntu1) lucid; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream bug fix release:
+    - launchpad.py: Do not keep escalating bugs, just escalate at the 10th
+      duplicate.
+    - Improve error message if a symptom script did not determine a package
+      name.  (LP: #503834)
+    - general-hooks/generic.py: Fix crash on libGL check with empty
+      StacktraceTop.
+    - Review and clean up usage of chmod(). This fixes a small race condition
+      in the Python exception hook where a local attacker could read the
+      information from another user's crash report. (LP: #516029)
+    - hookutils, package_versions(): Ignore "None" packages, for more robust
+      package hooks. (LP: #518295)
+  * debian/apport.install: Actually install the bash completion file.
+    (LP: #218933)
+  * Bump Standards-Version to 3.8.4 (no changes necessary).
+
+  [ Leann Ogasawara ]
+  * source_linux.py: Tag kernel bugs which utilize a driver from staging. Also
+    provide the list of staging drivers in use. Prefix suspend/resume bug
+    titles with "[STAGING]" if a staging driver was being used.
+    (LP: #524174, #524167)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 22 Feb 2010 21:58:16 +0100
+
+apport (1.12-0ubuntu5) lucid; urgency=low
+
+  * Add a dh_apport debhelper program, and a sequence addon making it
+    possible to use 'dh --with apport'.
+
+ -- Colin Watson <cjwatson@xxxxxxxxxx>  Wed, 10 Feb 2010 18:12:30 +0100
+
+apport (1.12-0ubuntu4) lucid; urgency=low
+
+  [ Martin Pitt ]
+  * Add X-Ubuntu-Gettext-Domain: to desktop files, thanks Sebastien Bacher for
+    spotting this.
+
+  [ Jonathan Thomas ]
+  * Make apport-kde recommend the new kubuntu-notification-helper package
+    rather than update-notifier-kde to prevent the latter, depreciated tool
+    from getting on the Live CD
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 01 Feb 2010 07:40:11 -0800
+
+apport (1.12-0ubuntu3) lucid; urgency=low
+
+  * data/general-hooks/ubuntu.py: also attach byte compilation logs for
+    xemacs21
+
+ -- Reinhard Tartler <siretart@xxxxxxxxxx>  Sun, 24 Jan 2010 19:51:04 +0100
+
+apport (1.12-0ubuntu2) lucid; urgency=low
+
+  * launchpad.py: Do not keep escalating bugs, just escalate at the 10th
+    duplicate. (Merged from trunk)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 22 Jan 2010 16:51:35 +0100
+
+apport (1.12-0ubuntu1) lucid; urgency=low
+
+  * New upstream release:
+    - launchpad.py: Add options 'escalation_subscription' and 'escalation_tag'
+      for handling bugs with more than 10 duplicates.
+    - crashdb.conf: For Ubuntu, escalate bugs with >= 10 duplicates to
+      "ubuntu-bugcontrol" and tag them with "bugpattern-needed".
+      (LP: #487900)
+    - general-hooks/generic.py: Filter out crashes on missing GLX
+      (LP: #327673)
+    - Add bash completion script. Thanks to Philip Muškovac. (LP: #218933)
+    - launchpad.py: Drop APPORT_FILES whitelist for download() and instead
+      just filter out file extensions that we know about (*.txt and *.gz).
+      (LP: #444975)
+    - launchpad.py: Do not put the Tags: field into the bug description, since
+      they are already proper tags. In download(), convert the real tags back
+      to the Tags: field. (LP: #505671)
+    - test/crash: Update expected core dump flags for changed rlimit behaviour
+      in Linux 2.6.32.
+    - launchpad.py: Fix marking of 'checked for duplicate' for bugs with
+      upstream tasks.
+    - launchpad.py, get_fixed_version(): Do not consider a bug as invalid just
+      because it has any invalid distro package task.
+  * debian/local/setup-apport-retracer: Switch to lucid.
+  * debian/local/setup-apport-retracer: Do not locally install python-apt and
+    friends, users can run apt-get install in DC dchroots now.
+  * debian/local/setup-apport-retracer: Don't add the retracer PPA for now,
+    everything we need is in lucid.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 20 Jan 2010 13:51:15 +0100
+
+apport (1.11-0ubuntu5) lucid; urgency=low
+
+  * ubuntu.py: Avoid errors when running on ramdiskless EC2 images, by only
+    attaching available EC2 information. Patch from Scott Moser (LP: #494615)
+
+ -- Thierry Carrez <thierry.carrez@xxxxxxxxxx>  Tue, 12 Jan 2010 12:19:32 +0100
+
+apport (1.11-0ubuntu4) lucid; urgency=low
+
+  * Merge from trunk:
+    - launchpad.py: Add options 'escalation_subscription' and 'escalation_tag'
+      for handling bugs with more than 10 duplicates.
+    - crashdb.conf: For Ubuntu, escalate bugs with >= 10 duplicates to
+      "ubuntu-bugcontrol" and tag them with "bugpattern-needed". (LP: #487900)
+    - launchpad.py: Drop APPORT_FILES whitelist for download() and instead
+      just filter out file extensions that we know about (*.txt and *.gz).
+      (LP: #444975)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 11 Jan 2010 23:53:10 +0100
+
+apport (1.11-0ubuntu3) lucid; urgency=low
+
+  * Attach emacs compilation logs in order to assist bug triaging.
+    LP: #413110
+
+ -- Reinhard Tartler <siretart@xxxxxxxxxx>  Thu, 07 Jan 2010 22:14:45 +0100
+
+apport (1.11-0ubuntu2) lucid; urgency=low
+
+  * launchpad.py: Remove a snippet of redundant code.
+  * Merge bug fixes from trunk:
+    - launchpad.py: Drop APPORT_FILES whitelist for download() and instead
+      just filter out file extensions that we know about (*.txt and *.gz).
+      (LP: #444975)
+  * Enable Apport by default again.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 05 Jan 2010 18:30:19 +0100
+
+apport (1.11-0ubuntu1) lucid; urgency=low
+
+  * New upstream release:
+    - Add "--save" UI option to store the collected information into an
+      .apport file instead of sending it right away. The file can then later
+      be sent through apport-bug. Update manpages accordingly.
+    - Update all copyright and description headers and consistently format
+      them.
+    - Rename all TestCase classes to "_T", which makes it much easier to run
+      individual tests from the command line.
+    - Testsuite: Verify that report details are/are not shown. This uncovered
+      that details about package installation failures were not shown before
+      sending them, which is fixed now.
+    - test/hooks: Do not try to add hook information to kernel_crashdump test
+      case, since we do not have an UI here. This test case broke when the
+      system had an interactive package hook for the kernel.
+    - When reporting a bug from a saved .apport file, let the user
+      review/confirm the content before sending.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 23 Dec 2009 13:09:55 +0100
+
+apport (1.10.1-0ubuntu1) lucid; urgency=low
+
+  * New upstream release:
+    - Install apport-collect symlink.
+    - Update translations from Launchpad.
+    - Move all remaining option/argument parsing from apport-bug into ui.py.
+      This allows the user to add options to apport-bug/apport-collect, and
+      also avoids unwieldy dissection of options/arguments in shell.
+  * debian/apport.links: Do not create apport-collect symlink, now done by
+    upstream build system. Install that in debian/apport.install.
+  * debian/local/setup-apport-retracer: Set up lazr.restfulclient.
+  * debian/control: Bump python-distutils-extra build dependency to >= 2.14 to
+    ensure correct symlink handling.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 23 Dec 2009 00:54:37 +0100
+
+apport (1.10-0ubuntu1) lucid; urgency=low
+
+  * New upstream release:
+    - Add a mode for updating an existing problem report to ui.py
+      (-u/--update).  This is similar to the Ubuntu specific "apport-collect"
+      tool, but implemented the right way now: In particular, this has access
+      to the UI and thus can use interactive hooks (LP: #385811) and show you
+      what is being sent for confirmation/cancelling (LP: #371827)
+
+    - apport-bug: If invoked as "apport-collect" or "apport-update-bug" (i. e.
+      through a symlink), run apport in update mode (-u <number>). This
+      provides a convenient no-options command line program. Please note that
+      setup.py does not currently install such a symlink. Update the
+      apport-bug manpage accordingly.
+
+    - launchpad.py: Use new login_with() to clean up code, and specify allowed
+      access levels (WRITE_PRIVATE is the only sensible one anyway).
+      (LP: #410205)
+
+    - New hookutils functions:
+      + xsession_errors (match lines from ~/.xsession-errors)
+      + shared_libraries (determine which libraries a binary links with)
+      + links_with_shared_library (test if a binary links with a particular
+        library)
+
+    - New CrashDatabase API: get_affected_packages(), can_update(), is_reporter()
+
+    - Rename CrashDatabase.update() to update_traces().
+
+    - Add CrashDatabase.update() for adding all new fields of a report. This is
+      primarily useful for collecting local standard and package hook data for an
+      already existing bug report which was not filed through Apport. This checks
+      can_update()/is_reporter() if the user is eligible for updating that
+      particular bug. (LP: #485880)
+
+    - Ignore SIGXCPU and SIGXFSZ; thanks to Kees Cook. (LP: #498074)
+
+    - launchpad.py: Do not mark non-Ubuntu bugs as needs-retrace, since there is
+      no retracer right now. (LP: #489794)
+
+    - packaging-apt-dpkg.py, install_retracing_packages(): Do not crash on
+      malformed Dependencies.txt lines. (LP: #441709)
+
+    - use-local: Fix for new source tree location of "apport" binary.
+
+  * Drop debian/local/apport-collect{,.1} and install symlinks for apport-bug
+    instead.
+  * data/general-hooks/ubuntu.py: Do not report "corrupted filesystem tarfile"
+    package errors. (LP: #320743)
+  * data/general-hooks/ubuntu.py: Report "package ... is already installed and
+    configured" errors against dpkg, not the package that failed. (LP: #467688)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 19 Dec 2009 16:48:48 +0100
+
+apport (1.9.6-0ubuntu2) lucid; urgency=low
+
+  * Bump python-launchpadlib dependency to ensure that we have login_with()
+    with credentials_file argument.
+  * debian/local/apport-collect: Add short infos to description if the calling
+    person is the bug reporter. (LP: #348948)
+  * debian/local/apport-collect: Intercept lazr.restfulclient.errors.HTTPError
+    as well, and also cover the login process.
+  * debian/local/apport-collect: Improve error messages.
+  * debian/local/ubuntu-fat-chroot: Disable update-alternatives, it causes too
+    much breakage with fakechroot.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 18 Dec 2009 13:09:26 +0100
+
+apport (1.9.6-0ubuntu1) lucid; urgency=low
+
+  [ Brian Murray ]
+  * debian/local/apport-collect: Strongly encourage collectors who are not
+    the bug reporter to file a new bug report.
+
+  [ Marco Rodrigues ]
+  * debian/control: Fix lintian warnings. Move python-distutils-extra
+    to b-d-i and add misc:Depends to apport-qt.
+
+  [ Martin Pitt ]
+  * New upstream version 1.9.5 and 1.9.6:
+    - apport-retrace: Fix crash if InterpreterPath/ExecutablePath do not
+      exist.
+    - hookutils.py, attach_alsa(): Attach /proc/cpuinfo too, for CPU flags.
+    - Fix crash if InterpreterPath does not exist any more at the time of
+      reporting. (LP: #428289)
+    - apport-gtk: Connect signals properly, to repair cancel/window close
+      buttons. (LP: #427814)
+    - Update German translations and fix "konnre" typo. (LP: #484119)
+    - launchpad.py: Ensure that text attachments on initial bug filing are
+      valid UTF-8. (LP: #453203)
+    - man/apport-retrace.1: Document -R option.
+    - Add pm-utils hook to record current operation, so that apportcheckresume
+      can check it. Before this was kept in Ubuntu's pm-utils package.
+    - general-hooks/generic.py: Check if using ecryptfs, and which directory.
+      (LP: #444656)
+  * data/general-hooks/ubuntu.py: Add distro release codename tag.
+    (LP: #404250)
+  * debian/local/apport-chroot: Fix last occurrence of "--no-dpkg" to be
+    "--no-pkg". (LP: #487056)
+  * debian/local/apport-collect: Use "apport-collect data" as comment for the
+    apport-collect attachments to enable bug mail filtering. Thanks to Bryce
+    Harrington for the suggestion.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 02 Dec 2009 00:01:06 +0100
+
+apport (1.9.4-0ubuntu1) lucid; urgency=low
+
+  [ Marco Rodrigues ]
+  * etc/default/apport: Replace the old init.d force_start command by
+    the Upstart one.
+  * debian/apport.upstart: If $force_start=1 is given then run the job.
+  * debian/local/apport-collect: Don't collect information if bug is a
+    duplicate. (LP: #471429)
+
+  [ Martin Pitt ]
+  * New upstream bug fix release:
+    - Fix crash when ExecutablePath isn't part of a package. (LP: #424965)
+    - hookutils.py, attach_hardware(): Anonymize disk labels. Thanks to Marco
+      Rodrigues. (LP: #394411)
+    - hookutils.py, attach_wifi(): Anonymize encryption key (which appeared in
+      hex when being called as root). Thanks to Marco Rodrigues. (LP: #446299)
+    - launchpad.py: If unset, set bug task source package also for interpreter
+      crashes.
+    - apport-gtk: Give details window a minimize/maximize button, which were
+      missing in some window managers. Thanks to Marien Zwart. (LP: #447749)
+    - apport-kde: Properly terminate program after closing the last dialog.
+      (LP: #458662)
+    - hookutils.py, attach_alsa(): Attach /proc/asound/version. (LP: #467233)
+    - general-hooks/generic.py: Only collect ~/.xsession-errors bits when we
+      have an ExecutablePath linked to libgtk.
+  * debian/control: Update Vcs-Bzr: for lucid branch.
+  * data/package-hooks/source_linux.py: Add interactive questionaire, thanks
+    Leann Ogasawara! (LP: #444672)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 06 Nov 2009 14:06:52 +0100
+
+apport (1.9.3-0ubuntu4) karmic; urgency=low
+
+  * etc/default/apport: Disable Apport for final Karmic.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 22 Oct 2009 22:41:34 +0200
+
+apport (1.9.3-0ubuntu3) karmic; urgency=low
+
+  * apport/crash_db/launchpad.py: Increase the number of files available
+    for searching with bug patterns.
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Sun, 18 Oct 2009 12:38:38 +0200
+
+apport (1.9.3-0ubuntu2) karmic; urgency=low
+
+  * debian/local/apport-collect: Instantiate Launchpad crash database with
+    "distro = ubuntu", to satisfy an assertion introduced in the previous
+    release. (LP: #451838)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 15 Oct 2009 21:12:21 +0200
+
+apport (1.9.3-0ubuntu1) karmic; urgency=low
+
+  * New upstream bug fix release:
+    - hookutils.py: Fix error codes from "comm", thanks to Brian Murray.
+      (LP: #414194)
+    - general-hooks/generic.py: Catch xkbcomp error messages. (LP: #431807)
+    - launchpad.py: Assert that we have exactly one of "distro" or "project"
+      option.
+    - doc/crashdb-conf.txt: Improve documentation of crash database options.
+    - apport-gtk: Make Cancel/Send buttons focusable. Thanks to Marco
+      Rodrigues. (LP: #447780)
+    - Drop handling of the APPORT_REPORT_THIRDPARTY environment variable and
+      "thirdparty" configuration file option. This has never been documented,
+      and conceptually does not work. There is a proper mechanism for this in
+      place now, e. g. launchpad.py's "project" option.
+  * bin/apport-bug: Show deprecation warning for -p/-P. (LP: #431942)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 14 Oct 2009 23:28:24 +0200
+
+apport (1.9.2-0ubuntu2) karmic; urgency=low
+
+  [ Matt Zimmerman ]
+  * general-hooks/ubuntu.py: Include in Ubuntu bug reports the version number
+    of the installation media used to install the system, via
+    /var/log/installer/media-info (cf. #364649)
+
+  [ Martin Pitt ]
+  * debian/local/apport-collect.1: Clarify that the launchpad.credentials
+    files needs to be removed in order to ask for privileges again.
+  * Merge bug fixes from trunk:
+    - general-hooks/generic.py: Catch xkbcomp error messages, too. (LP: #431807)
+    - apport-bug: Consider -h as "output help", too. (Marco Rodrigues)
+
+  [ Brian Murray ]
+  * debian/local/apport-collect:
+    - Resolve bug with specifying package for adding information.
+    - Let collector know if bug was not reported by them.
+    - Clarify potential failure causes.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 08 Oct 2009 09:37:35 +0200
+
+apport (1.9.2-0ubuntu1) karmic; urgency=low
+
+  * New upstream bug fix release:
+    - apport-cli: Print the URL and ask whether to open a browser. In many
+      situations (such as usage on a server through ssh), it's preferable to not
+      open the browser on the reporting computer. Thanks to Matt Zimmerman for the
+      initial patch! (LP: #286415)
+    - general-hooks/generic.py: Collect important glib errors/assertions (which
+      should not have private data) from ~/.xsession-errors (LP: #431807)
+    - launchpad.py: Link hardware data submission key if it exists. (LP: #424382)
+    - apport-cli: Fix crash with non-ASCII characters in prompts.
+    - Fix "apport-bug symptomname" to actually work.
+    - launchpad.py: Fix crash on invalid credentials file. Thanks to Marco
+      Rodrigues for the initial patch! (LP: #414055)
+  * man/apport-bug.1: Document APPORT_IGNORE_OBSOLETE_PACKAGES (cherrypicked
+    from trunk), and APPORT_STAGING (Ubuntu specific change, since it's a
+    launchpad backend specific variable).
+  * bin/apport-bug: Ignore -p option when giving two arguments, to keep
+    compatibility with current bug filing instructions. (LP: #356755)
+  * debian/copyright: Update copyright year and fix GPL link, thanks Marco
+    Rodrigues!
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 02 Oct 2009 13:25:58 +0200
+
+apport (1.9.1-0ubuntu3) karmic; urgency=low
+
+  * Merge bug fixes from trunk:
+    - apport-cli: Print the URL and ask whether to open a browser. This makes
+      ubuntu-bug work much better for servers, now that ubuntu-bug is by and
+      large mandatory. (LP: #286415)
+    - launchpad.py: Consistently respect $APPORT_STAGING, so that it works
+      for bug filing as well. (LP: #435112)
+
+  [ Matt Zimmerman ]
+  * data/general-hooks/ubuntu.py: Add metadata and tags for bugs reported from
+    EC2 and UEC instances.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 25 Sep 2009 18:51:44 +0200
+
+apport (1.9.1-0ubuntu2) karmic; urgency=low
+
+  * kde/bugreport.ui: Select "complete report" option by default, to actually
+    be able to file bugs if the options are not shown. Thanks to Yuriy Kozlov!
+    Fix cherrypicked from trunk. (LP: #405378)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 23 Sep 2009 10:18:28 +0200
+
+apport (1.9.1-0ubuntu1) karmic; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream bug fix release:
+    - hookutils.py, attach_hardware(): Do not attach empty Pccardctl*.
+    - apport/report.py, add_gdb_info(): Do not throw away stderr from gdb.
+    - data/general-hooks/parse_segv.py:
+      + Handle arithmetic wrapping correctly.
+      + Handle empty base, scale, or index registers in disassembly.
+      + Handle in/out ioport faults.
+    - Various improvements to user-visible strings, thanks to Marco Rodrigues!
+      (LP: #178507)
+    - Various apport-retrace robustifications.
+    - setup.py: Fix DistUtilsExtra version check. (LP: #428337)
+    - hookutils.py, attach_gconf(): Do not overwrite previous values from
+      other packages, thanks Loïc Minier!
+    - hookutils.py, attach_gconf(): Fix crash with nonexisting <applyto> tags.
+
+  [ Loïc Minier ]
+  * Upstream source is at https://launchpad.net/apport/+download not
+    archive.ubuntu.com.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 22 Sep 2009 12:51:38 +0200
+
+apport (1.9-0ubuntu6) karmic; urgency=low
+
+  * debian/apport.upstart:
+    - Use "exit" in Upstart script rather than "return".
+    - Fix post-stop script to write to the correct file.  LP: #430895.
+
+ -- Scott James Remnant <scott@xxxxxxxxxx>  Wed, 16 Sep 2009 20:33:49 +0100
+
+apport (1.9-0ubuntu5) karmic; urgency=low
+
+  * Merge bug fixes from trunk:
+    - hookutils.py, attach_hardware(): Do not attach empty Pccardctl*.
+    - apport/ui.py: Show a better message when failed connection to crash
+      database. Thanks to Marco Rodrigues! (LP: #178507)
+    - Do not throw away stderr from gdb.
+    - data/general-hooks/parse_segv.py: Handle arithmetic wrapping correctly.
+    - backends/packaging-apt-dpkg.py: More robust of missing ExecutablePath
+      due to outdated packages.
+    - setup.py: Fix DistUtilsExtra version check. (LP: #428337)
+  * data/general-hooks/ubuntu.py: Add distribution channel descriptor, as per
+    https://wiki.ubuntu.com/FoundationsTeam/Specs/OemTrackingId .
+  * data/general-hooks/ubuntu.py: Do not allow users to file bugs against
+    upgrade-system if the package isn't actually installed. Way too many
+    upgrade failures get wrongly reported against this. (LP: #404727)
+  * debian/rules: Entirely drop obsolete dh_installinit call.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 15 Sep 2009 17:31:26 +0200
+
+apport (1.9-0ubuntu4) karmic; urgency=low
+
+  FFE LP: #427356.
+
+  * Replace init script with Upstart job.
+  * debian/control:
+    - Bump build-dependency on debhelper for Upstart-aware dh_installinit
+
+ -- Scott James Remnant <scott@xxxxxxxxxx>  Tue, 15 Sep 2009 03:33:57 +0100
+
+apport (1.9-0ubuntu3) karmic; urgency=low
+
+  * apport/report.py: add upstream bzr commit 1591:
+    - include stderr in gdb command output
+
+ -- Kees Cook <kees@xxxxxxxxxx>  Wed, 09 Sep 2009 19:32:05 -0700
+
+apport (1.9-0ubuntu2) karmic; urgency=low
+
+  * Add missing python-apt build dependency.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 08 Sep 2009 17:41:04 +0200
+
+apport (1.9-0ubuntu1) karmic; urgency=low
+
+  * New upstream release:
+    - Add "do what I mean" mode to command line argument parsing (applies to
+      all interfaces: -cli, -gtk, -kde). When giving a single argument and no
+      options, determine the most likely mode, like reporting a bug against a
+      symptom, package, executable name, or PID.
+    - Add program "apport-bug" which determines the most appropriate user
+      interface (GTK, KDE, CLI) and files a bug through it, using the single
+      argument "do what I mean" mode. This is an improved version of Ubuntu's
+      "ubuntu-bug" script.
+    - Update apport-cli manpage to current set of options and behaviour. Also
+      point out that apport-gtk and apport-kde share the same CLI.
+    - setup.py now installs apport-{gtk,kde} into $prefix/share/apport/, they
+      are not supposed to be called directly. This also reflects the path
+      which the .desktop files expect.
+    - setup.py now installs the internal helper scripts like
+      "kernel_crashdump", "apport", or "apportcheckresume" into
+       $prefix/share/apport instead of $prefix/bin.
+    - Update usage of gettext to work around Python bug of gettext() not
+      returning unicodes, but str. Fixes UnicodeDecodeErrors on translated
+      --help output.
+    - Add missing gettext wrapping for user-visible strings in
+      apport-{retrace,unpack} and ui.py; thanks to Marco Rodrigues!
+    - backends/packaging-apt-dpkg.py: Robustify get_{source,architecture} for
+      uninstalled packages
+    - ui.py: Add --version option. Thanks Marco Rodrigues! (LP: #383694)
+  * debian/local/apport-collect: Fix KeyError crash on nonexisting LP bug
+    number. Thanks Marco Rodrigues! (LP: #424273)
+  * debian/control: Bump Standards-Version to 3.8.3 (no changes necessary).
+  * debian/local/apport-collect: Point out that you need to select "Change
+    anything" privileges. (LP: #373700)
+  * debian/control: Drop obsolete texlive-latex-recommended build dependency.
+  * debian/rules: Drop --install-scripts, upstream now installs the files and
+    binaries into the right place. Adapt debian/*.install accordingly.
+  * Drop debian/local/ubuntu-bug{,.1} and replace them with symlinks to
+    apport-bug{,.1}, which is a more robust version of ubuntu-bug.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 08 Sep 2009 15:53:33 +0200
+
+apport (1.8.2-0ubuntu1) karmic; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream bug fix release:
+    - crashdb.py: Fix handling of non-ASCII crash signatures
+    - packaging-apt-dpkg.py: Run ExecutablePath/InterpreterPath check later,
+      so that it does not always have to be done
+    - crashdb.py: Never mark a bug as a duplicate of itself.
+    - launchpad.py, close_duplicate(): Add duplicate assertion
+    - Update Ubuntu bug pattern URL
+    - launchpad.py: Add "cache_dir" option and $APPORT_LAUNCHPAD_CACHE
+      environment variable to specify a non-temporary cache directory.
+      (LP: #416804)
+    - packaging-apt-dpkg.py, get_architecture(): Only use installed
+      architecture if package is actually installed
+    - launchpad.py: Drop explicit temporary cache dir, launchpadlib does that
+      automatically now. Thanks to Marco Rodriguez!
+
+  [ Marco Rodrigues ]
+  * debian/local/setup-apport-retracer: Switch to karmic.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 05 Sep 2009 13:04:16 +0200
+
+apport (1.8.1-0ubuntu1) karmic; urgency=low
+
+  * New upstream bug fix release:
+    - data/general-hooks/generic.py: Check $HOME, not /home for enough space.
+      (LP: #422658)
+    - launchpad.py: Intercept httplib2.ServerNotFoundError as well, to avoid
+      crashes when being offline. (LP: #396276)
+    - apport-cli: Save reports with .apport extension instead of .txt. Thanks
+      to Steve Beattie! (LP: #401983)
+    - fileutils.py, likely_packaged(): Ignored crashes in /var, packages don't
+      ship executables there, and it creates false positives. (LP: #414368)
+    - packaging-apt-dpkg.py, get_modified_files(): Fix crash with empty lines.
+      (LP: #408280)
+    - packaging-apt-dpkg.py: Use installed version instead of candidate
+      version where appropriate. This also fixes a crash where an obsolete
+      package is not available any more. (LP: #423511)
+    - hookutils.py, attach_gconf(): Fix crash with keys which do not have a
+      schema default. (LP: #422277)
+    - launchpad.py: Remove LP #353805 workaround, seems fixed now.
+    - launchpad.py: Talk to staging if $APPORT_STAGING is set.
+    - launchpad.py: Explicitly supply content_type for addAttachment, current
+      wadllib requires it now.
+    - apport_python_hook.py: Paper over inexplicable import error.
+      (LP: #348250)
+    - apport_python_hook.py: Protect against nonexisting sys.argv.
+      (LP: #418051)
+    - apport/ui.py, load_report(): Check that report has ProblemType field.
+      (LP: #198543)
+    - ui.py: Fix handling of complete vs. reduced report size. (LP: #92653).
+      This also fixes a race condition crash with os.path.getsize().
+      (LP: #348137)
+    - fi.po: Fix mistranslation of "&Cancel". (LP: #355303)
+    - apport-{gtk,kde}: Check for having $DISPLAY at startup to avoid crashes.
+      (LP: #411276)
+    - report.py, add_gdb_info(): Fix race condition in unlink_core, thanks to
+      Tommi Komulainen! (LP: #397945)
+    - ui.py, load_report(): Robustify check whether program is still
+      installed. (LP: #329184)
+    - packaging-apt-dpkg.py, install_retracing_packages(): Install package for
+      ExecutablePath/InterpreterPath if missing; this can happen with package
+      hooks which reassing package
+    - launchpad.py: Add a comment when marking a bug as a duplicate.
+      (LP: #418871)
+  * Move gdb dependency from apport to GUI packages to avoid pulling in gdb on
+    Ubuntu server. Thanks to Steve Beattie! (LP: #354172)
+  * ubuntu-bug: Fix handling of .crash file arguments, thanks to Marco
+    Rodrigues for pointing this out! (LP: #422881)
+  * debian/local/apport-collect: Set content_type and description, wadllib
+    requires them now. (LP: #423512) Also drop the ASCII reencoding
+    workaround, this doesn't seem to be necessary any more.
+  * apport/hookutils.py, attach_conffiles(): Fix crash with obsolete
+    conffiles. (LP: #412132)
+  * debian/local/apport-collect: Do not upload data if the affected package
+    isn't installed and there is no source package hook available either.
+    (LP: #417277)
+  * debian/local/ubuntu-bug: Accept .apport extension, too; thanks to Steve
+    Beattie! (LP: #401983)
+  * debian/local/apport-collect: Drop $APPORT_STAGING check, it's done by
+    launchpad.py itself now.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 03 Sep 2009 21:08:31 +0200
+
+apport (1.8-0ubuntu2) karmic; urgency=low
+
+  * apport/report.py: add upstream bzr 1538 commit:
+    - change to upstream glibc's __abort_msg variable name.
+    - filter out memory addresses when matching assert-bug duplicates.
+
+ -- Kees Cook <kees@xxxxxxxxxx>  Fri, 28 Aug 2009 12:47:14 -0700
+
+apport (1.8-0ubuntu1) karmic; urgency=low
+
+  * New upstream release:
+    - Do not generally ignore SIGABRT any more. Try to extract the assertion
+      message from the core dump, and add it as "AssertionMessage" field. Mark
+      reports as unreportable if they do not have an assertion message and crashed
+      with SIGABRT. This implements UbuntuSpec:security-karmic-apport-abort.
+    - report.py, add_hooks_info(): Add optional package/srcpackage argument. Hooks
+      can use that to change the affected package or call hooks from different
+      packages.
+    - KDE frontend implementation of ui_question_userpass(), for crash databases
+      which need to ask for credentials.
+    - hookutils.py: New funtion attach_wifi() to add wireless network related
+      information to reports.
+    - Fix the test suite on current kernels; test/crash previously often failed
+      with python segfaults, since it killed the test processes too early.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 26 Aug 2009 13:19:51 +0200
+
+apport (1.7-0ubuntu4) karmic; urgency=low
+
+  [ Colin Watson ]
+  * data/package-hooks/source_debian-installer.py: Report Ubiquity bugs
+    against the ubiquity source package, rather than rejecting them.
+
+  [ James Westby ]
+  * data/package-hooks/source_linux.py: submit oopses back if the user
+    accepts. Use the new kerneloops-submit to do it.
+  * bin/kernel_oops: kerneloops will now pass the checksum, so if it does
+    then base the report path on that to uniquify the reports.
+  * apport/fileutils.py: allow uid to be a string so that we can use
+    the checksum in place of the uid.
+
+ -- James Westby <james.westby@xxxxxxxxxx>  Tue, 25 Aug 2009 21:15:24 +0100
+
+apport (1.7-0ubuntu3) karmic; urgency=low
+
+  [ Colin Watson ]
+  * data/general-hooks/ubuntu.py: File update-grub bugs on grub2 instead of
+    grub if appropriate.
+  * apport/hookutils.py: Add command_available method, and use it to add
+    prtconf and pccardctl output if those commands are available.
+  * data/package-hooks/source_debian-installer.py: New hook, providing
+    roughly the same information as is provided by the 'report-hw' tool in
+    installation-report.
+
+  [ Matt Zimmerman ]
+  * apport/hookutils.py: Include modem-manager syslog messages in WifiSyslog
+  * data/general-hooks/ubuntu.py: Exclude bugs already aimed at grub2 from the
+    update-grub test (in support of Colin's change above)
+  * data/general-hooks/ubuntu.py: Redirect failures in /etc/kernel/*.d to the
+    package owning the file which failed
+  * Make sure that kernel crash dumps are marked as private in Launchpad
+    (LP: #417059)
+
+ -- Kees Cook <kees@xxxxxxxxxx>  Fri, 21 Aug 2009 11:32:06 -0700
+
+apport (1.7-0ubuntu2) karmic; urgency=low
+
+  [ Matt Zimmerman ]
+  * data/general-hooks/ubuntu.py: Detect when a kernel upgrade failure is
+    caused by update-grub failing, and file the bug on grub instead of linux
+  * data/general-hooks/ubuntu.py: Detect when a kernel upgrade failure is
+    caused by update-initramfs failing, and file the bug on initramfs-tools
+    instead of linux
+  * data/package-hooks/source_linux.py: Per discussion with ogasawara, attach
+    ALSA details on kernel bug reports by default.  About 9% of sampled kernel
+    bugs are audio-related.
+  * data/package-hooks/source_linux.py: Add linux-firmware version to kernel
+    bug reports
+  * apport/hookutils.py: Add attach_wifi function with wifi-related debug info
+  * data/package-hooks/source_linux.py: Attach wifi info by default to kernel
+    bugs
+
+  [ Martin Pitt ]
+  * Merge trunk:
+    - report.py, add_hooks_info(): Add optional package/srcpackage argument.
+    - Implemented ui_question_userpass [Caio Romão].
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 08 Aug 2009 12:20:39 +0200
+
+apport (1.7-0ubuntu1) karmic; urgency=low
+
+  * New upstream release:
+    - Add support for symptoms.
+  * debian/control: Recommend apport-symptoms.
+  * debian/local/ubuntu-bug: When called without arguments, run in "show
+    available symptoms" mode.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 05 Aug 2009 19:32:39 +0100
+
+apport (1.6-0ubuntu3) karmic; urgency=low
+
+  * Merge trunk:
+    - apport-gtk: Fix ordering of choices
+    - bin/package_hook: Fix crash for subdirectories in log dir. (LP: #332350)
+    - doc/package-hooks.txt: Document allowed chars in report keys.
+    - Show precise error message for damaged reports.
+  * ubuntu-bug: Call apport-kde instead of apport-qt.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 04 Aug 2009 18:50:26 +0100
+
+apport (1.6-0ubuntu2) karmic; urgency=low
+
+  * Re-enable Apport by default, for the alpha-3 release.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 21 Jul 2009 00:44:50 +0200
+
+apport (1.6-0ubuntu1) karmic; urgency=low
+
+  * New upstream release:
+    - Add support for kernel crashes, thanks to Michael Vogt!
+    - apport/ui.py, run_crash(): Do not re-collect information if we already
+      have a Dependencies field. This happens when calling apport on an already
+      pre-processed .crash file with -c. (LP: #394497)
+    - apport/hookutils.py, pci_devices(): Deliver all matching devices, not
+      just the last one. (LP: #398906)
+    - hookutils.py, _get_module_license(): Return "invalid" if modinfo fails,
+      so that they do not count as "free". (LP: #341720)
+    - packaging-apt-dpkg.py: Support additional custom native origins in
+      /etc/apport/native-origins.d/ . (LP: #386052)
+    - packaging-apt-dpkg.py: Drop PPA origin hack, launchpad behaves properly
+      now
+    - apport-gtk: Avoid focus stealing when being called without arguments (i.
+      e. auto-launched). LP: #396243)
+    - apport-kde: Use standard gettext again
+    - Fix handling of PC lacking disassembly due to invalid memory location.
+  * debian/local/apport-collect: Tag bugs with "apport-collected" on success.
+    (LP: #391392)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 15 Jul 2009 18:02:59 +0200
+
+apport (1.5-0ubuntu2) karmic; urgency=low
+
+  * Merge fixes from trunk:
+    - packaging-apt-dpkg.py: Fix install_retracing_packages() for pre-0.7.9
+      python-apt API.
+    - Sort the list of dependencies so it's easier to scan (LP: #391021)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 30 Jun 2009 22:39:18 +0200
+
+apport (1.5-0ubuntu1) karmic; urgency=low
+
+  * New upstream release:
+    - Drop all Makefiles, po/POTFILES.in, and most code from setup.py, and use
+      DistUtilsExtras.auto which "just does the right thing" for most build
+      system tasks. This requires python-distutils-extra >= 2.2, see
+      https://launchpad.net/python-distutils-extra
+    - Move all test scripts into test/, to unclutter source tree.
+    - setup.py now auto-detects the required packaging backend if
+      apport/packaging_impl.py is not manually installed.
+  * debian/control: Add python-distutils-extra build dependency.
+  * debian/rules: Drop stuff which is now properly done by the upstream build
+    system.
+  * Drop debian/apport.examples, preloadlib died long ago.
+  * Adapt debian/apport-{gtk,kde}.install to new upstream build system, which
+    now installs the .desktop files itself.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 29 Jun 2009 12:00:21 +0200
+
+apport (1.4-0ubuntu1) karmic; urgency=low
+
+  * New upstream release. Compared to our previous snapshot, this changes:
+    - Replace Qt4 frontend with KDE frontend, thanks to Richard Johnson!
+    - apport/ui.py, run_report_bug(): Clean up PID information collection.
+    - gtk/apport-gtk.ui: Drop invalid icon reference. (LP: #389064)
+    - ui.py: Do not reject non-distro package reports if report sets CrashDB
+      (for third-party destination). (LP: #391015)
+    - bin/kernel_crashdump: Use packaging API properly.
+    - apport-gtk.ui: Drop erroneous translatable flag from stock buttons.
+    - Update German translations.
+  * debian/*: qt → kde, add transitional package for apport-qt.
+  * Drop backends/packaging_rpm.py. We don't use it in the Ubuntu package at
+    all, and it's still in trunk.
+  * debian/rules: Drop some deprecated dh_* calls, cdbs's debhelper.mk has
+    done them for a long time.
+  * debian/control: Bump Standards-Version to 3.8.2 (no changes necessary).
+  * debian/control: Replace URLs in descriptions with proper Homepage: field.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 26 Jun 2009 10:44:54 +0200
+
+apport (1.3-0ubuntu2) karmic; urgency=low
+
+  * debian/local/apport-collect: Pass None as HookUI object. This will crash
+    with interactive hooks, but is a good enough immediate bandaid.
+    (LP: #385811)
+  * Merge fixes from trunk:
+    - packaging-apt-dpkg.py: Add backwards compatibility code for python-apt <
+      0.7.9 to not break backportability.
+    - hookutils.py, command_output(): Force LC_MESSAGES=C, to avoid translated
+      output in bug reports. (LP: #383230)
+    - apport-gtk.ui: Make details window resizable, and lower default size, so
+      that it will fit on small screens. (LP: #365517)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 12 Jun 2009 12:47:59 +0200
+
+apport (1.3-0ubuntu1) karmic; urgency=low
+
+  * New upstream release. Compared to our bzr snapshot, this has:
+    - Interactive package hooks:
+      + Add apport.ui.HookUI class which provides GUI functionality such as
+        yes/no
+        questions or file dialogs to hooks.
+      + add_info() in package hooks now can (optionally) take a second argument
+        which is the HookUI instance.
+      + See doc/package-hooks.txt for details.
+      + See UbuntuSpec:desktop-karmic-symptom-based-bug-reporting
+    - New function apport.hookutils.root_command_output() to run a command as root,
+      through gksu/kdesudo/sudo, depending on the desktop environment.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 10 Jun 2009 16:49:13 +0200
+
+apport (1.2.1-0ubuntu3) karmic; urgency=low
+
+  * debian/control: Bump Standards-Version to 3.8.1 (no changes necessary).
+  * debian/control: Bump debhelper dependency for dh_icons, to satisfy
+    lintian.
+  * general-hooks/ubuntu.py: Fix IndexError crash if report does not have a
+    Package field. Check whether we actually have attach_conffiles() (which is
+    not the case when running the upstream version).
+  * Merge trunk:
+    - launchpad.py: Fix crash for unset titles.
+    - Add segfault analysis hook for quick segv reviews. Thanks to Kees Cook!
+    - run-tests: Replace hardcoded Python path with dynamically detected path.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 03 Jun 2009 09:52:03 +0200
+
+apport (1.2.1-0ubuntu2) karmic; urgency=low
+
+  * debian/control: Update Vcs-Bzr: for new location (moved from project
+    branch to package branch).
+  * Merge bug fixes from trunk:
+    - apport-cli: Fix report saving in "bug report" mode. (LP: #353253)
+    - Drop "UnsupportableReason" field, it is too similar to
+      UnreportableReason and just confusing.
+    - ui.py: Check UnreportableReason for run_report_bug() as well.
+      (LP: #361359)
+    - general-hooks/generic.py: Do not report problems with low free space on
+      / or /home. (LP: #381047)
+    - launchpad.py: Do not overwrite report['Title'].
+    - launchpad.py: Repair support for extra tags.
+    - New function apport.hookutils.root_command_output() to run a command as
+      root, through gksu/kdesudo/sudo, depending on the desktop environment.
+      (Part of UbuntuSpec:desktop-karmic-symptom-based-bug-reporting)
+    - launchpad.py: Fetch DpkgTerminalLog. (LP: #382589)
+    - launchpad.py: More robust download(), fixes other part of (LP: #382589)
+    - problem_report.py: Allow dashes and underscores in key names. Update
+      doc/data-format.tex accordingly. (LP: #380811)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 02 Jun 2009 11:59:41 +0200
+
+apport (1.2.1-0ubuntu1) karmic; urgency=low
+
+  * New upstream release:
+    - Moving away from deprecated APIs:
+      + packaging-apt-dpkg.py: Use python-apt >= 0.7.9 official API and drop
+        usage of internal symbols.
+      + hookutils.py: Drop hal related functions and queries, replace with
+        udev database, udev log file, and DMI information from sysfs.
+      + gtk UI: Convert from libglade to gtk.Builder.
+    - Bug fixes:
+      + hookutils.py: Drop /proc/version_signature collection, it is Ubuntu
+        specific.
+      + apportcheckresume: Fix log collection from pm-utils.
+      + Fix various crashes and report properties for reporting against
+        uninstalled packages.
+  * debian/control: Drop python-glade2 dependency, bump python-gtk2 dependency
+    to ensure availability of gtk.Builder.
+  * hookutils, attach_conffiles(): Remove leftover debugging spew.
+  * debian/apport-qt.install: Install the individual Qt .ui files instead of
+    *.ui, since GTK's are now also called *.ui.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 15 May 2009 11:28:34 +0200
+
+apport (1.1.1-0ubuntu2) karmic; urgency=low
+
+  [ Martin Pitt ]
+  * hookutils.py: Do not attach /proc/version_signature, it's Ubuntu specific.
+    (Merged from trunk). Instead, attach it in general-hooks/ubuntu.py.
+  * general-hooks/ubuntu.py: Attach package conffile information.
+  * debian/local/apport-collect: Add workaround for launchpadlib bug
+    LP#353805, to avoid crashing with non-UTF8 attachments. (LP: #368004)
+  * debian/local/apport-collect: Fix import of launchpadlib's HTTPError.
+  * apport/hookutils.py, attach_conffiles(): Ignore empty lines from
+    dpkg-query output.
+  * general-hooks/ubuntu.py: Strip off '/target' prefix from ExecutablePath
+    and InterpreterPath, to correctly process crash reports from the live
+    system installer.
+  * apport/hookutils.py, attach_conffiles(): Do not use command_output(),
+    since that causes error messages to get parsed as conffiles. Use
+    subprocess properly.
+  * backends/packaging-apt-dpkg.py: Replace deprecated python-apt properties
+    with current ones (merged from trunk). Update python-apt dependency to
+    >= 0.7.9.
+  * packaging-apt-dpkg.py, get_modified_files(): Do not show package list file
+    as modified if the package is not installed (merged from trunk).
+    (LP: #364533)
+  * backends/packaging-apt-dpkg.py, install_retracing_packages(): Fix syntax
+    error which broke the retracers.
+
+  [ Andy Whitcroft ]
+  * bin/apportcheckresume: the suspend _and_ hibernate logs are both in
+    pm-suspend.log.
+  * bin/apportcheckresume: remove redunant check for file before attaching
+    stress log.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 13 May 2009 15:22:53 +0200
+
+apport (1.1.1-0ubuntu1) karmic; urgency=low
+
+  [ Martin Pitt ]
+  * New upstream security update:
+    - etc/cron.daily/apport: Only attempt to remove files and symlinks, do not
+      descend into subdirectories of /var/crash/. Doing so might be exploited by
+      a race condition between find traversing a huge directory tree, changing
+      an existing subdir into a symlink to e. g. /etc/, and finally getting
+      that piped to rm. This also changes the find command to not use GNU
+      extensions.  Thanks to Stephane Chazelas for discovering this!
+      (LP: #357024, CVE-2009-1295)
+    - Other fixes were already cherrypicked in the previous upload.
+
+  [ Matt Zimmerman ]
+  * package-hooks/source_linux.py: Attach info for linux-restricted-modules
+    and linux-backports-modules
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 30 Apr 2009 09:08:29 +0200
+
+apport (1.1-0ubuntu1) karmic; urgency=low
+
+  * New upstream release:
+    - Drop some remaining distro specific pieces of code from non-backends.
+    - Add hookutils methods for attaching relevant packages, greatly improve
+      attach_alsa() for sound problem debugging.
+    - Move launchpad crash database implementation from ever-breaking
+      python-launchpad-bugs (screenscraping) to launchpadlib (official and
+      stable Launchpad API). (LP: #353879)
+    - Add new field Report.pid which gets set on add_proc_info() and can be
+      used by hooks.
+    - setup.py: Properly clean up all generated files, install missing
+      mimetypes/text-x-apport.svg icon symlink.
+    - Add README file.
+    - Add translations from Launchpad.
+    - Remove preloadlib/*; it's undermaintained, and not really useful any
+      more these days.
+    - Various bug fixes; most visible being the misnamed
+      etc/default/apport.default file (which should just be
+      etc/default/apport).
+  * Merge some bug fixes from trunk:
+    - launchpad.py: Send and read Date: field again, reverting r1128; it is
+      useful after all. (LP: #349139)
+    - report.py, add_proc_info(): Only add ProcAttrCurrent if it is not
+      "unconfined".
+    - ui.py: Detect invalid PIDs (such as for kernel processes) and give a
+      friendly error message. (LP: #360608)
+    - report.py, add_hooks_info(): Always run common hooks, and run source
+      package hooks if we do not have a binary package name. (LP: #350131)
+    - launchpad.py: Consider socket errors when connecting as transient, so
+      that crash-digger doesn't stop completely on them.
+  * Drop debian/apport.README.Debian, superseded by upstream README.
+  * Drop debian/apport.links, done by upstream setup.py now.
+  * debian/rules, debian/apport.preinst: Drop upgrade fix for misnamed default
+    file again, was only necessary for intra-Jaunty upgrades.
+  * debian/control: python-launchpad-bugs → python-launchpadlib dependencies.
+  * debian/local/apport-collect: Drop launchpadlib login code, just use the
+    CrashDatabase implementation from apport/crashdb_impl/launchpad.py.
+  * Make package backportable to hardy and intrepid:
+    - debian/control: Relax python-central buil-dependency to 0.5.6.
+    - debian/rules: Determine DH_PYCENTRAL value ("include-links" vs.
+      "nomove") based on the installed pycentral version.
+    - debian/rules: Only supply --install-layout=deb when Python version is
+      2.6.
+  * apport/hookutils.py: Add docstring for attach_hardware, thanks Matt
+    Zimmerman! (Merged from lp:~mdz/apport/hookutils)
+  * apport/crashdb_impl/launchpad.py: Support older wadllib API
+    where bug.date_created was a string instead of a datetime object.
+    (Cherrypicked from trunk).
+  * debian/control: Drop apport dependency to python-xdg, it's not required.
+    (LP: #354172)
+  * debian/control: Drop gdb from Depends: to Recommends:. (LP: #354172)
+  * debian/local/apport-collect: Print a friendly error message instead of
+    crashing if the bug number is not an integer. (LP: #351050)
+  * debian/local/apport-collect: Change incomplete tasks back to "New" after
+    data collection. (LP: #363126)
+  * debian/apport.links: source_linux-meta.py -> source_linux.py package hook,
+    so that apport-collect works on "linux" source bug tasks. These get
+    opportunistically translated into binary packages, but the binary "linux"
+    is built by the source "linux-meta". (LP: #350131)
+  * debian/local/setup-apport-retracer:
+    - Use ports.ubuntu.com for non-{i386,amd64,lpia}.
+    - Set up Jaunty by default.
+    - Fix test for being in local unpackaged apport source tree.
+    - Drop installation of python-launchpad-bugs.
+    - Install bzr branches/packages necessary for launchpad, in a shared
+      ~/launchpadlib/ tree: launchpadlib, wadllib, oauth, lazr.uri, httplib2,
+      simplejson.
+    - Clean up apport-chroot calling for extra packages.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 28 Apr 2009 10:50:49 +0200
+
+apport (1.0-0ubuntu5) jaunty; urgency=low
+
+  [ Martin Pitt ]
+  * Rename etc/default/apport.default to etc/default/apport (brown paperbag),
+    and add debian/apport.preinst to remove the apport.default file on
+    upgrades. (LP: #361543)
+  * debian/rules: Call dh_installinit with --onlyscripts, so that the package
+    calls update-rc.d again. This fixes the calling of init script again,
+    which got broken in 1.0-0ubuntu1. (LP: #361579)
+
+  [ Matt Zimmerman ]
+  * package-hooks/source_linux.py: Attach /etc/initramfs-tools/conf.d/resume to
+    show the resume device for hibernation
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 15 Apr 2009 22:36:33 +0200
+
+apport (1.0-0ubuntu4) jaunty; urgency=low
+
+  * etc/default/apport.default: Disable Apport by default for the final
+    release.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 14 Apr 2009 11:47:29 +0200
+
+apport (1.0-0ubuntu3) jaunty; urgency=low
+
+  * apport/hookutils.py: Factor out package_versions() to generate a simple
+    text listing of relevant package versions and use it in attach_printing()
+  * apport/hookutils.py: Add new function attach_relevant_packages() to attach
+    version information (and perhaps eventually run hooks?) for related
+    packages
+  * apport/hookutils.py: Add glob matching to package_versions()
+  * apport/hookutils.py: Add fuser info and dmesg to attach_alsa
+  * apport/hookutils.py: Add codec info to attach_alsa
+
+ -- Matt Zimmerman <mdz@xxxxxxxxxx>  Thu, 09 Apr 2009 07:36:45 -0700
+
+apport (1.0-0ubuntu2) jaunty; urgency=low
+
+  * backends/packaging-apt-dpkg.py: Add missing shutil import.
+  * debian/local/ubuntu-bug: Filter out -p and -P, for backwards calling
+    compatibility. (LP: #356755)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 06 Apr 2009 23:04:39 -0700
+
+apport (1.0-0ubuntu1) jaunty; urgency=low
+
+  * Apport has a proper upstream trunk now (lp:apport) and made an 1.0
+    upstream release. Use this as an orig.tar.gz. This does not change any
+    code for Jaunty, just removes the Fedora/OpenSUSE specific .spec and init
+    scripts.
+  * Add bzr-builddeb configuration (merge mode).
+  * Add debian/watch for upstream releases on Launchpad.
+  * Drop debian/python-apport.postinst, obsolete for a long time.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 06 Apr 2009 17:37:48 -0700
+
+apport (0.149) jaunty; urgency=low
+
+  Do some internal cleanup of distribution specific stuff:
+
+  * problem_report.py, man/apport-unpack.1: Fix description of .crash file
+    syntax (RFC822, not "Debian control").
+  * Move cron.daily, init script, and default file from debian/ to etc/, and
+    install them in setup.py. These files are appropriate for upstream
+    installation.
+  * Move crashdb.conf and doc/README.blacklist to etc/, to simplify setup.py.
+  * setup.py: Move *.mo generation/installation into my_install_data class,
+    for cleanliness.
+  * Move installation of missing packages for retracing from
+    bin/apport-retrace to new abstract interface apport/packaging.py,
+    install_retracing_packages() and remove_packages(), and move the apt/dpkg
+    code to backends/packaging-apt-dpkg.py. This removes a major piece of
+    apt/dpkg specific code from non-backends.
+  * bin/apport-retrace: Rename option --no-dpkg to --no-pkg and update
+    bin/apport-chroot accordingly.
+  * Move bin/apport-chroot and man/apport-chroot.1 to debian/local, since they
+    are totally Debian/Ubuntu specific.
+  * debian/local/setup-apport-retracer: Update apport-chroot and crashdb.conf
+    paths for above changes.
+  * apport/hookutils.py, files_in_package(): Replace dpkg-query call with
+    packaging.get_files(), to avoid Debianism.
+  * man/apport-retrace.1: Drop reference to "apt", simply talk about package
+    installation.
+
+  Bug fixes:
+
+  * setup.py: Fix homepage URL.
+  * debian/local/apport-chroot: If multiple distro IDs point to the same
+    chroot, do not upgrade them more than once with "upgrade all".
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 06 Apr 2009 16:06:33 -0700
+
+apport (0.148) jaunty; urgency=low
+
+  [ Matt Zimmerman ]
+  * apport/hookutils.py: add attach_media_build to include information about
+    the build of installation media in use (i.e. in a casper live CD
+    environment)
+  * general-hooks/ubuntu.py: use attach_media_build (LP: #351781)
+  * bin/apportcheckresume: Use attach_file_if_exists rather than attach_file to
+    avoid spurious error messages about non-existent log files (LP: #351973)
+
+  [ Martin Pitt ]
+  * debian/local/ubuntu-bug: Drop generic passthrough of apport-{cli,gtk,kde}
+    options since this leads to too much confusion. Instead just support a
+    single argument and check whether it is a pid, a package name, a .crash
+    file, or a program path. This does the right thing when calling it with a
+    .crash file (LP: #347392) and fixes the help output (LP: #344923) Update
+    manpage accordingly.
+  * apport/hookutils.py: Move attach_media_build() to
+    general-hooks/ubuntu.py, since it is Ubuntu specific.
+  * bin/apport-retrace: Fix KeyError crash on bugs with an ExecutablePath
+    which does not exist any more. Close the bug as invalid instead.
+    (LP: #352331)
+  * bin/kernel_oops: Add "kernel-oops" tag. Since both bin/kernel_oops and
+    bin/apportcheckresume use the "kerneloops" bug class, it previously was
+    hard to filter out the bug reports which were real oopses. (LP: #349621)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 01 Apr 2009 18:10:01 +0200
+
+apport (0.147) jaunty; urgency=low
+
+  * bin/apportcheckresume: report the pm-suspend.log/pm-hibernate.log
+    from /var/lib.
+  * bin/apportcheckresume: only attempt to attach the stress log if its is
+    present.
+  * bin/apportcheckresume, debian/apport.init: add detection for late
+    resume hangs, those where the user thinks the system was working.
+    (LP: #335323)
+
+ -- Andy Whitcroft <apw@xxxxxxxxxxxxx>  Mon, 30 Mar 2009 09:47:28 +0200
+
+apport (0.146) jaunty; urgency=low
+
+  * apport/report.py, _generate_sigsegv_report(): Turn into a class method, so
+    that it can be used by test cases in other modules as well. Also add
+    missing Signal field.
+  * apport/crashdb_impl/launchpad.py: Fully enable operation with
+    staging.launchpad.net.
+  * apport/crashdb_impl/launchpad.py: Add initial test suite, performing data
+    upload, Python and SEGV bug reporting, report download, report updating,
+    tag and duplicate handling. This happens on staging.launchpad.net.
+  * apport/crashdb.py: Add new interface duplicate_of(id) to return the master
+    bug of a duplicate. Also document that close_duplicate() with "None"
+    master bug will un-duplicate the bug.
+  * apport/crashdb_impl/{launchpad,memory}.py: Implement duplicate_of() and
+    add test cases. The Launchpad test case reproduces the
+    "duplicate-of-a-duplicate" regression, which now got fixed in
+    python-launchpad-bugs bzr head.
+  * apport/ui.py, open_url(): Also consider a sesssion as "GNOME" if gconfd-2
+    is running; some variants such as UNR do not have gnome-panel; this fixes
+    using the preferred browser for them. (LP: #322386)
+  * debian/local/apport-collect: Add new option -p to explicitly specify a
+    (binary) package name instead of guesstimating it from the bug's source
+    package tasks. Document new option in debian/local/apport-collect.1.
+    (LP: #333875)
+  * apport/crashdb.py, duplicate_db_consolidate(): Add logging about removing
+    invalidated bugs from the duplicate database, now that this actually
+    works.
+  * debian/local/ubuntu-bug.1: Update for the possibility to specify a package
+    name or PID without any options. Also document the "ubuntu-bug linux"
+    special case. (LP: #348985)
+  * debian/local/ubuntu-bug.1: Add missing documentation of the case of
+    specifying a path name.
+  * backends/packaging-apt-dpkg.py: When unpacking source trees, try
+    "debian/rules setup" last, since it is the least common variant.
+  * debian/local/ubuntu-fat-chroot: Divert away
+    /usr/lib/xulrunner-1.9.1b3/xulrunner-bin. It is called on debian/rules
+    patch in xulrunner-1.9.1 and hangs eternally in the fakechroots. This is
+    only a temporary kludge, though, until the next xulrunner version lands.
+  * apport/crashdb_impl/launchpad.py: Add test case: Update a bug report which
+    got marked as a duplicate during processing. This reproduces #349407.
+  * apport/crashdb_impl/launchpad.py, update(): Intercept and ignore IOErrors
+    when changing the bug priority. This happens if a bug gets duplicated
+    underneath us. (LP: #349407)
+  * apport/crashdb.py, get_crashdb(): Print syntax errors from parsing
+    conf.d/*.conf to stderr.
+  * apport/crashdb_impl/launchpad.py: Support new CrashDB option "project"
+    which can be set to a LP project name to file bugs against that project
+    instead of the distribution. Add test case for filing crash bug against a
+    project, updating it, duplicating/unduplicating it, and determining fixed
+    version. (LP: #338835)
+  * bin/crash-digger: If apport-retrace exits with 99, consider it a transient
+    error and just stop the retracer, but don't leave the lock file behind.
+    Add appropriate test case to test-crash-digger.
+  * bin/apport-retrace: If apt update fails due to a "hash sum mismatch", exit
+    with a "transient error" code, to stop (but not break) the retracing
+    cycle.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 27 Mar 2009 17:01:08 +0100
+
+apport (0.145) jaunty; urgency=low
+
+  * apport/crashdb_impl/launchpad.py: Fix typo in previous upload.
+  * debian/local/apport-collect: Do not crash on
+    launchpadlib.errors.HTTPError, but give a proper error message and point
+    out that this script needs "change anything" privileges. (LP: #338201)
+  * apport_python_hook.py: Fix crash for already existing reports, and make
+    behaviour equivalent to bin/apport: Silently exit for existing unseen
+    crash report, and overwrite existing seen crash report. Add test cases.
+    (LP: #323714)
+  * general-hooks/automatix.py: Refuse to send bug reports when ultamatix is
+    installed.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 10 Mar 2009 18:45:34 +0100
+
+apport (0.144) jaunty; urgency=low
+
+  * apport/crashdb_impl/launchpad.py, mark_retrace_failed(): If report is
+    invalid, remove CoreDump.gz and other attachments.
+  * bin/apport-retrace: If we didn't find the ExecutablePath on the system
+    because the package is out of date, don't crash, but close the bug as
+    invalid.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 10 Mar 2009 10:45:56 +0100
+
+apport (0.143) jaunty; urgency=low
+
+  * debian/apport.README.Debian: Document how to temporarily and permanently
+    enable crash interception.
+  * backends/packaging-apt-dpkg.py, is_distro_package(): Do not consider a
+    package a native distro one if installed version is "None". This happens
+    with some PPA packages. (LP: #252734)
+  * apport/report.py, anonymize(): Move user name anonymization into the
+    "non-root" case as well; fixes uninitialized variable. (LP: #338847)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 09 Mar 2009 12:16:49 +0100
+
+apport (0.142) jaunty; urgency=low
+
+  * apport/report.py: Do not include lsb_release's stderr in the
+    DistroRelease: output.
+  * apport/hookutils.py: Fix attach_printing():
+    - Correct spelling or "error_log".
+    - Do not call fgrep with no file names (if /etc/cups/ppd/ is empty), since
+      that hangs forever.
+  * apport/report.py, _gen_stacktrace_top(): Fix parsing of stacktraces
+    with some addresses missing. Add test cases. (LP: #269133)
+  * apport/ui.py, run_report_bug(): Show details of collected information and
+    give the user a chance to cancel. Previously, collected data was sent
+    directly to Launchpad. Nowadays lots of packages have hooks, so we cannot
+    guarantee any more that bug reports only have non-sensitive information.
+    (LP: #195514) This also allows the user to cancel if (s)he inadvertedly
+    clicked on "Report a problem". (LP: #279033)
+  * apport/ui.py: Fix crash in get_complete_size() for reports that are
+    constructed on the fly instead of loaded from a file (i. e. for bug
+    reports). Fixes displaying of report in apport-cli.
+  * apport/report.py: Slight robustification of test_add_gdb_info_script()
+    test case.
+  * debian/local/ubuntu-bug: Fix invocation with "--help". (LP: #305841)
+  * apport/ui.py, load_report(): Clearer error message if report file does not
+    exist. (LP: #204198)
+  * Remove redundant verbiage from test suite docstrings.
+  * apport/report.py, anonymize(): Fix crash when processing root-owned
+    reports. (LP: #338033)
+  * apport/report.py, anonymize(): Do not anonymize single-character user and
+    host names, since they create an utter mess in bug reports, and also are
+    very low-sensitive.
+  * debian/apport.init: Also start apport if force_start=1 is given. This
+    provides a convenient method of starting apport just for a session without
+    changing the default file. Add a comment to debian/apport.default about
+    this possibility. Thanks to Milan for the suggestion and the initial
+    patch! (LP: #320467)
+  * backends/packaging-apt-dpkg.py, _get_mirror(): Only consider http://
+    mirrors for fetching Contents.gz. (LP: #315797)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 05 Mar 2009 17:01:05 +0100
+
+apport (0.141) jaunty; urgency=low
+
+  * apport/hookutils.py: Add cups error log to attach_printing()
+
+ -- Brian Murray <brian@xxxxxxxxxx>  Mon, 02 Mar 2009 10:55:53 -0800
+
+apport (0.140) jaunty; urgency=low
+
+  * debian/python-{apport,problem-report}.install: Fix site-packages →
+    *-packages.
+  * run-tests: Only check for local packaging_impl.py if running local tests.
+    This unbreaks running tests from /usr/share/apport/testsuite/.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 02 Mar 2009 11:56:59 +0100
+
+apport (0.139) jaunty; urgency=low
+
+  * apport/report.py, anonymize(): Do not anonymize "root". (Side
+    issue in LP #333542)
+  * debian/rules: Supply --install-layout=deb to setup.py.
+  * debian/local/apport-collect: Attach new info to
+    staging.launchpad.net if $APPORT_STAGING is defined. This makes
+    testing easier. Describe in debian/local/apport-collect.1.
+  * debian/local/apport-collect: Ignore ValueErrors from
+    add_package_info(), which happens if the bug has a source package
+    task which does not have an identically named binary package name.
+    Slightly ugly, but it's nontrivial to do that in a sensible
+    manner; let's just fix the crash for now, since the focus of this
+    tool is to collect information from hooks. (LP: #334823)
+  * apport/hookutils.py, hal_dump_udi(): Filter out serial numbers.
+    (Mentioned in LP #107103)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 02 Mar 2009 11:36:18 +0100
+
+apport (0.138) jaunty; urgency=low
+
+  * apport/crashdb_impl/launchpad.py: Consider an useful stack trace
+    sufficient for automatically removing the core dump, it doesn't
+    need to be perfect. This is in accordance with not setting the
+    apport-failed-retrace tag for useful, but non-perfect retraces any
+    more.
+  * apport/hookutils.py, backends/packaging_rpm.py: Convert usage of
+    md5 module (which is deprecated in 2.6) to hashlib.
+  * Replace all instances of using an exception's .message attribute
+    with str(exception), since message is deprecated in Python 2.6.
+  * apport/hookutils.py: Add attach_printing(). Thanks to Brian Murray
+    for the initial patch! (LP: #333582)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 24 Feb 2009 22:24:31 +0100
+
+apport (0.137) jaunty; urgency=low
+
+  * Set python-version to all, include symlinks in the package.
+
+ -- Matthias Klose <doko@xxxxxxxxxx>  Tue, 24 Feb 2009 21:22:36 +0100
+
+apport (0.136) jaunty; urgency=low
+
+  [ Andy Whitcroft ]
+  * bin/apportcheckresume: remove originator in suspend/hibernate/resume
+    reporting.  This was intended for debugging only and is now redundant.
+  * bin/apportcheckresume, apport/report.py: when collecting resume failures
+    in very early boot hal may not be running and we thus unable to obtain
+    the machine type information.  Move title generation to the reporting
+    engine.
+
+  [ Martin Pitt ]
+  * debian/local/apport-collect: Add user environment information, too
+    (LANG, PATH, SHELL). (LP: #332578)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 24 Feb 2009 14:25:21 +0100
+
+apport (0.135) jaunty; urgency=low
+
+  * problem_report.py, test_write_mime_text(): Add test cases for
+    single-line and two-line UTF-8 values, single-line and two-line
+    Unicode values and a single-line LF-terminated value. Fix handling
+    of the latter two.
+  * problem_report.py, test_write(): Add test cases for single-line
+    and two-line UTF-8 and Unicode values, and fix handling of these
+    in write().
+  * debian/local/apport-collect: Collect package, OS, and user
+    information as well. (LP: #332578)
+  * package-hooks/source_apport.py: Robustify by using hookutils, and
+    avoid stat errors if /var/crash/* does not exist.
+  * test-hooks: Update dodgy test for uninstalled package,
+    libdb4.3-tcl is not available in Jaunty any more.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 23 Feb 2009 13:14:24 +0100
+
+apport (0.134) jaunty; urgency=low
+
+  * debian/local/apport-collect: Do not collect information for closed
+    tasks. Thanks for Brian Murray for the initial patch! (LP: #331839)
+  * apport/crashdb_impl/launchpad.py, download(): Download
+    DpkgTerminalLog.txt attachment as well.
+  * apport/report.py: If downloading a nonexisting bug pattern file
+    name succeeds and returns a HTML snippet with "404 Not Found",
+    consider this as failure. This repairs falling back to source
+    package names. (LP: #328751)
+  * apport/hookutils.py: Replace tabs with spaces.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 20 Feb 2009 11:22:15 +0100
+
+apport (0.133) jaunty; urgency=low
+
+  [ Andy Whitcroft ]
+  * apport/hookutils.py: define and include a machine type from the hardware
+    information in the report, using HAL information where available.
+  * bin/apportcheckresume: include the machine type in the suspend/hibernate
+    report title.  They are generally machine specific.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 19 Feb 2009 17:49:03 +0100
+
+apport (0.132) jaunty; urgency=low
+
+  [ Martin Pitt ]
+  * Add debian/local/apport-collect: Download a Launchpad bug report,
+    get its source package, check if it has apport hooks, and if so,
+    run and upload them. Add manpage, too. (LP: #124338)
+  * debian/control: Add Suggests: python-launchpadlib; this is only
+    needed by apport-collect, thus we don't need to pull that into
+    every default installation; if it's not installed apport-collect
+    will detect and point this out.
+  * debian/control: Add ${misc:Depends} dependencies.
+
+  [ Jonathan Riddell ]
+  * Set window icon in apport-qt
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 19 Feb 2009 13:50:34 +0100
+
+apport (0.131) jaunty; urgency=low
+
+  [ Andy Whitcroft ]
+  * bin/apportcheckresume, bin/kernel_oops, cli/apport-cli, gtk/apport-gtk,
+    gtk/apport-gtk.glade, qt4/apport-qt: generalised the KernelOops
+    dialog and handling to allow suspend and hibernate failures present
+    more accurate reasons for the report.  Also commonises all messages
+    in the three implementations to simplify internationalisation.
+
+  [ Martin Pitt ]
+  * po/Makefile: Fix merge-po rule to actually work again.
+  * cli/apport-cli, qt4/apport-qt: Unify string with apport-gtk.
+  * apport/ui.py: Drop some bogus translatable strings.
+  * Update German translations.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 16 Feb 2009 19:31:41 +0100
+
+apport (0.130) jaunty; urgency=low
+
+  [ Martin Pitt ]
+  * bin/kernel_crashdump: Don't crash if vmcore.log does not exist.
+  * crashdb_impl/launchpad.py: Tag bugs with the architecture they are
+    being reported on.
+  * bin/crash-digger: Revert catching "database is locked" errors
+    during consolidation, since it just hides more fundamental errors.
+  * apport/crashdb_impl/memory.py: Improve docstrings of test suite.
+  * bin/apport-retrace: Do not try to install -dbgsym packages with
+    nonmatching versions, unless --unpack-only is used. Thanks to
+    hggdh for the initial patch! (LP: #309208)
+
+  [ Andy Whitcroft ]
+  * bin/apportcheckresume: modify the oops title and thereby the launchpad
+    bug title to say suspend or hibernate.
+  * bin/apportcheckresume: modify the tags to bin/apportcheckresume:
+    modify the oops title and thereby the launchpad be resume+suspend or
+    resume+hibernate as appropriate.
+  * bin/apportcheckresume: include any non-free modules in the bug title.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 12 Feb 2009 22:09:35 +0100
+
+apport (0.129) jaunty; urgency=low
+
+  * bin/apport-retrace: Log broken reports.
+  * bin/apport-retrace: Do not mark bugs as invalid after they are
+    already marked as a duplicate, since that does not work in
+    Launchpad.
+  * debian/local/ubuntu-fat-chroot: Symlink /target -> /, to work
+    for crashes which appear in /target during installation.
+  * bin/apport: Move argv length/usage help before lock check, so that
+    it works if the user cannot lock /var/crash/.lock. Thanks to Kees
+    Cook!
+  * doc/package-hooks.txt: Point out apport.hookutils.
+  * apport/ui.py: Check environment variable APPORT_REPORT_THIRDPARTY
+    in addition to the 'thirdparty' configuration file option for
+    overriding the "genuine distro package" check. Thanks to Oumar
+    Aziz OUATTARA!
+  * apport/crashdb_impl/launchpad.py: In third-party mode, report bugs
+    against Launchpad projects. Thanks to Oumar
+    Aziz OUATTARA for his branch! (LP: #213454)
+  * bin/apportcheckresume: Include /var/lib/pm-utils/stress.log, too.
+    Thanks to Andy Whitcroft for the initial patch, rewrote to use
+    apport.hookutils.
+  * apport/crashdb.py, init_duplicate_db(): Run an integrity check and
+    raise exception if it fails, to avoid running the retracers on a
+    corrupt duplicate db. Add test case to
+    apport/crashdb_impl/memory.py.
+  * bin/crash-digger: Create a backup of the duplicates database right
+    after initializing it (which verifies integrity).
+  * dupdb-admin: Add new command "consolidate".
+  * apport/crashdb_impl/launchpad.py: Request bug lists with batch
+    size 300, for slight speedup of consolidation.
+  * apport/crashdb.py, duplicate_db_consolidate(): Warn about a bug
+    which is not yet fixed, but does not appear in get_unfixed(). In
+    Launchpad, this means that the bug does not have the
+    'apport-crash' tag any more; if there are many, those would be a
+    huge time/bandwidth waste.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 26 Jan 2009 16:04:16 +0100
+
+apport (0.128) jaunty; urgency=low
+
+  * apport/ui.py: Introduce new configuration option "thirdparty" and
+    ignore the is_distro_package() check if it is set to true.
+  * bin/apport-retrace: Call Cache.open() after Cache.update().
+  * bin/apport-retrace: If downloading a report fails (e. g. the
+    description was invalidly modified), mark the bug as invalid with
+    a proper explanation instead of crashing, unless we are in
+    "stdout" or "output file" mode.
+  * apport/crashdb_impl/launchpad.py: Apply some heuristics to attempt
+    recovering broken descriptions as in LP #315728 (intermediate
+    blank lines, and non-apport data append).
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 19 Jan 2009 17:49:55 +0100
+
+apport (0.127) jaunty; urgency=low
+
+  * bin/apportcheckresume, debian/apport.init: integrate with pm-utils to
+    detect suspend/resume failures.  Thanks to Steve Conklin and Andy
+    Whitcroft.  LP: #316419.
+
+ -- Steve Langasek <steve.langasek@xxxxxxxxxx>  Tue, 13 Jan 2009 12:54:12 -0800
+
+apport (0.126) jaunty; urgency=low
+
+  * bin/apport-chroot: If --auth is specified in "login" mode, symlink
+    the file into /tmp/auth in the fakechroot. This makes it much
+    easier to interactively debug retracing.
+  * bin/apport-retrace: Exit with zero for bugs which do not have a
+    core dump, so that it does not completely stop the retracers.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 09 Jan 2009 22:49:48 +0100
+
+apport (0.125) jaunty; urgency=low
+
+  * bin/apport-chroot: Exit with apport-retraces' exit status, to
+    propagate errors upwards to crash-digger.
+  * bin/apport-retrace: Do not put outdated -dbgsym comments into the
+    bug comments.
+  * Rewrite bin/crash-digger to become much more robust and easier for
+    retracer maintainers:
+    - Now designed around cron-based maintenance: start, process all
+      pending bugs, exit. This makes memory leaks irrelevant, and gets
+      rid of all the logging, daemonizing, and looping code.
+    - Adapt stdout/stderr reporting to be suitable for cron and
+      redirecting stdout to a log file.
+    - Use lock files to avoid overlapping instances and avoid damaging
+      bugs with broken retracers after crash-digger failed.
+    - Handle chroot upgrading, so that this does not need separate
+      cronjobs any more.
+    - Drop old -i option, replace with -D/--dupcheck which is a mode
+      which *only* checks duplicates of Python crashes (no fakechroot
+      handling).
+    - Mark bug as retraced after apport-chroot retrace finished
+      successfully; the process is robust enough now to avoid enless
+      loops even if retracing fails.
+    - Adapt test-crash-digger accordingly.
+    - UbuntuSpec:apport-retracer-maintenance
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 09 Jan 2009 12:14:44 +0100
+
+apport (0.124) jaunty; urgency=low
+
+  * debian/local/ubuntu-fat-chroot: Divert touch to touch.real and
+    wrap it into a shell wrapper which ignores failures. Some packages
+    use "touch -m" which fails with EPERM on directories under
+    fakechroot. Also disable gconf-schemas and polkit-auth, since they
+    do not work in fakechroots.
+  * apport/crashdb_impl/launchpad.py: Allow using staging for testing.
+  * apport/crashdb.py, mark_retrace_failed(): Add new optional
+    argument "invalid_msg", intended for crashes which cannot be
+    retraced properly (e. g. due to outdated packages). Implement this
+    in apport/crashdb_impl/launchpad.py.
+  * bin/apport-retrace: If we do not have an usable stack trace, and
+    encounter outdated package versions in the crash, close the report
+    as invalid with an appropriate comment. (LP: #308917)
+  * bin/apport-retrace: Update the apt cache before looking for, and
+    installing packages. (Part of UbuntuSpec:apport-retracer-maintenance)
+  * debian/apport.default: Enable by default again for Jaunty. Let the
+    flood begin!
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 08 Jan 2009 14:05:07 +0100
+
+apport (0.123) jaunty; urgency=low
+
+  * bin/apport: Do not write the report into the log file if opening
+    the report file failed; just log the error.
+  * bin/apport: Remove a previously seen report file, so that the
+    following creation with O_EXCL actually works.
+  * apport/report.py, add_proc_info(): Only try to attach
+    /proc/pid/attr/current if we are root. This works around Python
+    segfaulting regression when encountering EPERM on read() (see
+    LP #314065).
+  * apport/report.py testsuite: Use "isofs" for module license check
+    testing instead of "usbcore", since the latter is more likely to
+    get built into the kernel.
+  * apport/report.py, add_proc_environ(): Use "PATH=(...)" instead of
+    "PATH: ..." notation, to be consistent with other environment
+    variables. Unbreaks the apport test suite.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 05 Jan 2009 18:05:38 +0100
+
+apport (0.122) jaunty; urgency=low
+
+  * apport/crashdb_impl/launchpad.py: Support extra tags in the
+    report's "Tags:" field, and set them in the Launchpad bug.
+    Document this in doc/data-format.tex. Thanks to Steve Conklin for
+    the patch!
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 05 Jan 2009 10:06:49 +0100
+
+apport (0.121) jaunty; urgency=low
+
+  * debian/apport.init: Drop long obsolete setting of
+    /proc/sys/kernel/crashdump-size.
+  * debian/apport.init: Make restart actually work if the default file was
+    changed. (LP: #292402)
+  * apport/report.py, add_proc_environ(): Do not include verbatim $PATH, only
+    classify it as "default" (does not appear at all then), "custom,
+    user" (/home or /tmp in $PATH), or "custom, no user". Add appropriate test
+    case. Update the data format documentation accordingly. (LP: #245263)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 08 Dec 2008 19:37:53 -0800
+
+apport (0.120) jaunty; urgency=low
+
+  * man/apport-cli.1: Fix "sytem" typo. (LP: #288977)
+  * apport/fileutils.py: Add new function get_options() to read
+    ~/.config/apport/settings. In the future, the apport-ignore.xml file will
+    move to this directory, too. Based on idea and initial patch from Nikolay
+    Derkach.
+  * bin/apport: Check config option "unpackaged", and if it is set to True,
+    create a crash dump for unpackaged programs, too. Bump apport package
+    dependency to python-apport for this.
+  * apport/ui.py: Fix regression introduced in in 0.115 for checking
+    successful package name determination.
+  * apport/report.py: Some distro portability fixes in the test suite, thanks
+    to Nikolay Derkach!
+  * Add OpenSUSE spec file, init script, and RPM packaging backend. Thanks to
+    Nikolay Derkach!
+  * apport_python_hook.py, bin/apport: Create files in a race free way to
+    avoid symlink attacks. Thanks to Sebastian Kramer <krahmer@xxxxxxxxxx> for
+    finding them!
+  * problem_report.py test suite: Create debugging leftover which left /tmp/r
+    behind.
+  * apport/crashdb_impl/memory.py: Use example.com, not bug.net, since the
+    latter actually exists now.
+  * apport/hookutils.py: Add attach_network(), attach_alsa(), and
+    attach_hardware(), and add proper docstrings. Thanks to Matt Zimmerman for
+    the branch!
+  * source_linux.py hook: Use above tool functions, which greatly simplifies
+    the hook.
+  * apport/report.py: Also print exceptions from binary and source package
+    hooks, not just from common ones.
+  * apport/report.py, add_hooks_info(): Do not print an error if a source
+    package hook does not exist.
+  * apport/hookutils.py, _parse_gconf_schema(): Correctly handle bool values.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 26 Nov 2008 19:24:23 +0100
+
+apport (0.119) intrepid; urgency=low
+
+  * debian/apport.default: Disable Apport by default for the final release.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 23 Oct 2008 09:34:41 +0200
+
+apport (0.118) intrepid; urgency=low
+
+  * apport/hookutils.py: add attach_gconf() function to add non-default gconf
+    settings to a report
+
+ -- Matt Zimmerman <mdz@xxxxxxxxxx>  Mon, 13 Oct 2008 20:10:33 +0100
+
+apport (0.117) intrepid; urgency=low
+
+  * backends/packaging-apt-dpkg.py, is_distro_package(): Fix crash if
+    apt.Cache()[pkg].origins is None. (LP: #279353)
+  * bin/apport: Log that we are ignoring SIGABRT, since it is a common cause
+    of confusion.
+  * test-apport, create_test_process(): Fix race condition: wait until the
+    child process has fully execve()ed, to avoid coredumping it while it is
+    still running as test-apport process.
+  * apport/crashdb_impl/launchpad.py, update(): Set source package of a bug if
+    the reporter removed it and the task is against 'Ubuntu'. (LP: #269045)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 07 Oct 2008 16:38:06 +0200
+
+apport (0.116) intrepid; urgency=low
+
+  * Update AUTHORS and debian/copyright, Michael and Troy released their
+    copyright to Canonical. Properly attribute them as authors in the
+    respective files.
+  * debian/local/ubuntu-bug: Fix quoting of the command line arguments, so
+    that several options do not end up as one big argument when being passed
+    to apport-{cli,gtk,qt}. This also repairs launchpad-integration.
+    (LP: #260242)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 26 Sep 2008 10:32:45 +0200
+
+apport (0.115) intrepid; urgency=low
+
+  [ Matt Zimmerman ]
+  * Add apport/hookutils.py with some convenience functions for writing hook
+    scripts (work in progress)
+  * Extend ubuntu-bug to accept a path as an argument and look up the package
+    name
+  * Rename kernel_hook to kernel_crashdump (there are other kernel hooks)
+  * Change kernel crash report type to KernelCrash
+  * Fix automatix.py to not crash when automatix isn't installed (LP: #267004)
+  * Add bin/kernel_oops hook to capture a kernel oops (eg. via kerneloops)
+
+  [ Martin Pitt ]
+  * Add AUTHORS file for collecting the list of major contributors and
+    copyright holders.
+  * apport/report.py: If we do not find a bug pattern file for the binary
+    package, fall back to looking for one with the source package name.
+  * run-tests: Provide a better error message if apport/packaging_impl.py does
+    not exist.
+
+  [ Brian Murray ]
+  * apport/crashdb_impl/launchpad.py: Add regression-retracer tag to bugs
+    which seem to be a regression (duplicate, and crash happens in a later
+    version than the fix). (LP: #271876)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 18 Sep 2008 18:18:03 -0700
+
+apport (0.114) intrepid; urgency=low
+
+  [ Fabien Tassin ]
+  * apport/ui.py: Use preferred browser when it's recognized as a
+    Mozilla browser (firefox, seamonkey, flock) or Epiphany (LP: #131350)
+
+  [ Oumar Aziz OUATTARA ]
+  * apport/crashdb.py: Add support for /etc/apport/crashdb.conf.d/*.conf crash
+    database configuration files. Document it in doc/crashdb-conf.txt.
+  * apport/ui.py: Support a new field "CrashDB" in apport reports which select
+    a non-default crash database. Document this in doc/package-hooks.txt.
+
+  [ Martin Pitt ]
+  * apport/report.py: If a hook crashes with an exception, print it to
+    stderr, for easier debugging of hooks.
+  * apport/crashdb_impl/launchpad.py: If PackageArchitecture is 'all', fall
+    back to looking at Architecture instead of not adding a
+    needs-$ARCH-retrace tag at all. This prevented signal crashes originating
+    from e. g. Python packages from being automatically retraced.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 04 Sep 2008 10:51:24 +0200
+
+apport (0.113) intrepid; urgency=low
+
+  * apport-qt recommends update-notifier-kde instead of adept-notifier
+
+ -- Anthony Mercatante <tonio@xxxxxxxxxx>  Thu, 28 Aug 2008 15:02:20 +0200
+
+apport (0.112) intrepid; urgency=low
+
+  * apport/crashdb_impl/launchpad.py: Update attachment handling to current
+    python-launchpad-bugs API, thanks Markus Korn!
+  * apport/ui.py: Use gnome-panel as indicator for a running GNOME session;
+    'gnome-session' now calls itself x-session-manager, which isn't useful
+    to tell apart session types.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 07 Aug 2008 17:09:49 +0200
+
+apport (0.111) intrepid; urgency=low
+
+  The "(Kernel) OOPS, I dumped it again!" release.
+
+  * apport/ui.py: Fix test_run_report_bug_unpackaged_pid() to work with the
+    installed run-tests from the package as well.
+  * apport/crashdb_impl/launchpad.py: Ignore broken LP bug tasks instead of
+    crashing on them.
+  * apport/report.py, add_proc_info(): Report the AppArmor or SELinux context
+    in a new ProcAttrCurrent field, read from /proc/pid/attr/current.
+    Document it in doc/data-format.tex. The field will not be added if the
+    proc attribute cannot be read or isn't present. Thanks to Steve Beattie
+    for the patch and the suggestion!
+  * debian/local/setup-apport-retracer: Switch to intrepid.
+  * debian/local/setup-apport-retracer: Fix installation of python-apt. Also
+    install apt, to avoid library version mismatches to python-apt.
+  * debian/apport.default: Enable apport by default again, now that we have
+    working retracers.
+  * apport/report.py, test_add_gdb_info_script(): Use bash, not dash as test
+    program for core dumping; stack trace is awkwardly bad with dash, so that
+    the test case cannot really work any more.
+  * Add package-hooks/source_linux.py: Package hook for collecting kernel
+    related information. By Matt Zimmerman, thank you! (LP: #251441)
+  * debian/local/ubuntu-bug.1: Fix documentation of -p, it  specifies the
+    binary package name, not the source.
+  * apport/packaging.py: Add get_kernel_package() to return the actual Linux
+    kernel package name; useful if the user reports a bug against just
+    "linux". Implement it in backends/packaging-apt-dpkg.py.
+  * apport/ui.py: "Do what I mean" when filing a bug against "linux" and
+    report it against the actual kernel package.
+  * debian/local/ubuntu-bug: If just one argument is given, infer -p/-P from
+    the type of the argument.
+  * apport/ui.py: Drop the PackageArchitecture field for the uploaded report
+    if it is equal to Architecture. Adapt apport/crashdb_impl/launchpad.py to
+    fall back to Architecture, and mention the change in doc/data-format.tex.
+  * problem_report.py, write_mime(): Add new "skip_keys" argument to filter
+    out keys. Add test cases.
+  * apport/crashdb_impl/launchpad.py: Do not write the "Date:" field on
+    upload(), and fetch it from the bug metadata in download().
+  * apport/crashdb_impl/launchpad.py, download(): Support reading bugs with
+    the "--- " separator instead of "ProblemType: ". Launchpad doesn't create
+    bugs that way ATM, but at least we have the reading part implemented now.
+  * package-hooks/source_linux.py: Drop Uname, ProcVersion, and
+    RunningKernelVersion fields, since they are all subsumed in the
+    ProcVersionSignature field.
+  * apport/ui.py, run_report_bug(): Strip spaces from package argument.
+  * apport/ui.py, add_hooks_info(): Collect OS info first, then call the
+    package hooks, so that the linux hook actually has a chance to delete the
+    Uname field.
+  * bin/kernel_hook, test-hooks: Throw away the original kernel hook which
+    we never used (and got superseded by the proper source_linux.py package
+    hook now). Replace it with the new logic of looking for
+    /var/crash/vmcore{,.log} and turning that into an apport report.
+  * debian/apport.init: Call kernel_hook if /var/crash/vmcore exists.
+    (LP: #241322)
+  * apport/ui.py: Collect information for "ProblemType: Kernel" as well, so
+    that we run the package hook. Adapt test suite to cover this.
+  * debian/control: Bump Standards-Version (no required changes).
+  * gtk/apport-gtk.glade, qt4/apport-qt: Generalize notification of kernel
+    crash, since it now happens after a boot, not right after the BUG/OOPS.
+    But in the future we want to cover both cases.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 05 Aug 2008 18:13:24 +0200
+
+apport (0.110) intrepid; urgency=low
+
+  * apport/chroot.py: In the test suite, copy some system binaries/libraries
+    into a fakechroot and exercise a lot of standard shell commands (cp, ln
+    -s, rm, rm -r, mkdir, echo, chmod, chown, etc.) with absolute/relative
+    paths.  This reproduces the total breakage of rm'ing, chmod'ing, and
+    chown'ing absolute paths in hardy fakechroots.
+  * bin/crash-digger: Intercept exceptions when downloading crash reports for
+    duplicate checking, so that the retracer does not crash on malformed bug
+    reports. (LP: #205178)
+  * apport/packaging.py: Introduce a new function enabled() which reports
+    whether Apport should create crash reports. Signal crashes are controlled
+    by /proc/sys/kernel/core_pattern, but we need that to control whether
+    reports for Python, package, or kernel crashes are generated.
+  * backends/packaging-apt-dpkg.py: Provide implementation for
+    PackageInfo.enabled() for Debian/Ubuntu by evaluating /etc/default/apport.
+    Add various test cases for different configuration files and absent files.
+  * apport_python_hook.py: Do not create reports if Apport is disabled (in
+    /etc/default/apport). (LP: #222260)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 17 May 2008 12:44:21 +0200
+
+apport (0.109) intrepid; urgency=low
+
+  [ Martin Pitt ]
+  * debian/local/setup-apport-retracer: Update for some changes in Hardy.
+
+  [ Loic Minier ]
+  * apport/report.py, add_proc_info(): also strip pathnames starting with
+    'cow', 'squashmnt', and 'persistmnt' to allow apport to locate the
+    executable pathname, additionally to 'rofs' added in 0.75.  This fixes
+    apport for packages installed on the read-write part of the unionfs mounts
+    and under UME which uses different names for the mount points.  Proper fix
+    is to rewrite the pathnames in the kernel. (LP: #224168)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 23 Apr 2008 14:30:03 +0200
+
+apport (0.108) hardy; urgency=low
+
+  [ Martin Pitt ]
+  * apport-{gtk,qt,cli}: Fix handling of file references added by package
+    hooks. (LP: #205163)
+  * backends/packaging_rpm.py: Fix dependency resolution of uname(*) in the
+    RPM backend. Thanks to Patryk Zawadzki! (LP: #213018)
+  * backends/packaging_rpm.py: Fix RPM platform parsing, thanks to Patryk
+    Zawadzki! (LP: #213015)
+  * po/de.po: Fix typo (missing space).
+  * debian/apport.default: Disable Apport for the final Hardy release, since
+    it is less useful in stable releases, and drains a lot of CPU and I/O
+    power on crashes. Disabling it here instead of in update-notifier/adept is
+    more discoverable and more centralized.
+
+  [ Daniel Hahler ]
+  * bin/apport-retrace: catch the same exceptions from Report.load() like
+    ui.load_report() does (LP: #211899)
+  * Fix uncaught exceptions in apport itself (LP: #215929):
+    - apport/REThread.py: check if "sys" exists in the except block of
+      REThread.run()
+    - apport_python_hook.py: check if "sys" exists in the finally block of
+      apport_excepthook
+  * cli/apport-cli: Fix UnboundLocalError in ui_present_crash, which rendered
+    apport-cli useless (for reporting crashes) (LP: #216151)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 16 Apr 2008 12:24:32 +0200
+
+apport (0.107) hardy; urgency=low
+
+  * cli/apport-cli: Add translator comment for difficult string. (LP: #210948)
+  * Update German translations.
+  * po/Make{vars,file}: Remove the --language=python option again, since it
+    breaks extracting strings from the glade. intltool-update currently does
+    not seem to have a way to tag a file as "language python", so add an ugly
+    workaround: Create temporary .py symlinks for gtk/apport-gtk & friends,
+    and have intltool extract them.
+  * apport/ui.py: Disallow filing a bug without specifying a package or a PID.
+    Update debian/local/ubuntu-bug.1 accordingly (apport-cli manpage was
+    already correct). (LP: #210348)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sun, 06 Apr 2008 11:44:38 -0600
+
+apport (0.106) hardy; urgency=low
+
+  [ Martin Pitt ]
+  * apport/crashdb_impl/launchpad.py: Fix spelling mistake in p-lp-bugs API
+    (now corrected there).
+  * apport_python_hook.py: Catch IndexError for invalid sys.argv[0], too.
+    (LP: #204940)
+  * apport/ui.py: Add test_run_report_bug_unpackaged_pid() test case which
+    reports a bug against a pid which belongs to an unpackaged program. This
+    reproduces LP #203764.
+  * apport/report.py: Drop add_hooks_info() assertion on nonexisting Package
+    field, return silently instead. This conforms to the behaviour of the
+    other add_*_info() functions and avoids nasty error handling.
+  * apport/ui.py: Generate proper error message when calling with -f -p PID
+    and PID belongs to an unpackaged program. (LP: #203764).
+
+  [ Sebastien Bacher ]
+  * po/Makevars: add the --language=python xgettext option so the translations
+    template is correctly updated on build since cdbs is using intltool-update
+    directly and not the corresponding makefile target
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 01 Apr 2008 16:02:46 +0200
+
+apport (0.105) hardy; urgency=low
+
+  * apport/crashdb_impl/launchpad.py: Ignore ValueErrors when subscribing a
+    team, since these are usually due to the team already being subscribed.
+  * apport/report.py, anonymize(): Be robust against empty user names and only
+    anonymize fields which can potentially contain user specific data.
+    (LP: #195706)
+  * backends/packaging-apt-dpkg.py, get_architecture(): Return 'unknown'
+    instead of None if package architecture cannot be determined.
+    (LP: #198548)
+  * apport/ui.py, run_crash(): Intercept other IOErrors, too (such as EISDIR)
+    and print out proper error message instead of crashing. (LP: #201819)
+  * apport_python_hook.py: If the Python script has mutilated sys.argv so that
+    even sys.argv[0] does not exist any more, fall back into readlink()ing
+    /proc/pid/exe and gracefully handle the failure of that, instead of
+    crashing in the crash handler (ugh). Add test case. (LP: #198183)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 18 Mar 2008 23:04:57 +0100
+
+apport (0.104) hardy; urgency=low
+
+  [ Martin Pitt ]
+  * apport/crashdb_impl/launchpad.py, get_source_version(): re-escape the
+    package name so that it doesn't stumble over '+' and similar characters.
+  * apport/ui.py tests: assert that ProcEnviron is also included into bug
+    reports where we do not have a PID, since having the local information is
+    interesting and important (and acceptable in terms of personal
+    information).
+  * apport/report.py: Split out method add_proc_environ() for getting
+    ProcEnviron, so that we can call it separately.
+  * apport/ui.py, run_report_bug(): Add ProcEnviron if we do not have a pid to
+    file a bug against. This way, bugs filed against packages or distro also
+    get locale information. (LP: #198514)
+  * apport/fileutils.py, mark_report_seen(): Do not crash if the file does not
+    exist any more, because it was removed underneath us. (LP: #199932)
+  * apport/ui.py, test_collect_info_exepath(): Add a tuple argument and a
+    CompressedValue to the test report. This reproduces LP #199349.
+  * apport/report.py, anonymize(): Only work on string values. (LP: #199349)
+  * apport/ui.py: If a report has a field "Ignore", entirely ignore the report
+    without even presenting an explanatory error dialog (as
+    "UnsupportableReason" does). Document this in doc/package-hooks.txt.
+    (LP: #198863)
+  * debian/control: Bump Standards-Version (no changes necessary).
+  * debian/control: Fix wrongly spelt project names (Python and GTK+). Thanks
+    to lintian's scrutiny.
+  * gtk/apport-gtk-mime.desktop.in, qt4/apport-qt-mime.desktop.in: Add a main
+    category.
+
+  [ Kees Cook ]
+  * apport/report.py: fix module license checking logic (LP: #199927).
+    - nonfree_modules: being unable to find a module should not mean the
+      module is non-free.
+    - test_module_license_evaluation: check modinfo reporting.
+  * problem_report.py: Skip atime test case if file system is mounted noatime.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 13 Mar 2008 14:01:30 +0100
+
+apport (0.103) hardy; urgency=low
+
+  * bin/apport-unpack: Print error messages instead of crashing for problems
+    like nonexisting file names passed as arguments. (LP: #185273)
+  * backends/packaging-apt-dpkg.py, is_distro_package(): Explicitly check site
+    for "ppa", so that we do not automatically file bugs for PPA packages.
+    This works around Soyuz bug LP #140412 for the time being.
+  * apport/report.py: Add standard_title() test cases for Python crashes with
+    a custom message, and a custom message with newlines. The latter
+    reproduces LP #190947.
+  * apport/report.py, standard_title(): Do not rely on a fixed position of the
+    topmost function; use iteration and regular expression matching instead.
+    (LP: #190947)
+  * apport/ui.py, parse_argv(): Specify that --pid/-P argument must be an
+    integer, to avoid exceptions when it's not. (LP: #193494)
+  * apport/report.py: Use uname -srm, not -a, to hide the hostname. (part of
+    LP #192786); also use os.uname() instead of calling the system program.
+  * problem_report.py(): Make write() work for reports with CompressedValues.
+    Add test case.
+  * apport/ui.py: Add test case test_run_crash_anonymity() which asserts that
+    the crash dump does not contain strings which can identify the user, such
+    as the user name, login name, host name, and current directory.
+  * apport/report.py: Add method anonymize() which replaces user specific
+    strings with generic ones.
+  * apport/ui.py, thread_collect_info(): Call anonymize() on the report.
+    (LP: #192786)
+  * bin/apport-retrace: Only update a bug report with new attachments if it is
+    not a duplicate. (LP: #172792)
+  * bin/apport-retrace: Print out proper error message instead of an exception
+    if trying to do write operations to the bug tracker without specifying
+    a cookie file. (LP: #146423)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 25 Feb 2008 17:47:13 +0100
+
+apport (0.102) hardy; urgency=low
+
+  [ Martin Pitt ]
+  * problem_report.py: Support reading reports with legacy zlib
+    compression in 'retain compressed values' mode (as used nowadays by
+    apport when reporting a crash). Add a test case, too. (LP: #129616)
+  * debian/control, debian/rules: Switch from python-support to
+    python-central, and use 'nomove' option so that apport works during
+    upgrades, too. (LP: #121341)
+  * debian/rules: Use dh_icons instead of dh_iconcache.
+  * debian/apport.init: Do not stop apport in any runlevel (LSB header).
+  * apport/ui.py, run_crash(): Catch zlib.error on invalidly compressed core
+    dumps. (LP: #176977)
+  * apport/ui.py: Give a meaningful error message instead of crashing if the
+    package for a crash report is not installed any more. (LP: #149739)
+  * apport/ui.py: Do not include ProcCmdline in bug reports, since these are
+    not ack'ed by the user and might contain sensitive data. (LP: #132800)
+  * apport/ui.py: Add various test cases for crash reports whose packages have
+    been uninstalled between the crash and the report. This reproduces
+    LP #186684.
+  * apport/ui.py, load_report(): Produce proper error message if
+    executable/interpreter path do not exist any more. (LP: #186684)
+  * cli/apport-cli: Intercept SIGPIPE when calling sensible-pager, to avoid
+    crash when quitting it prematurely. (LP: #153872)
+  * bin/apport-checkreports: Print out a list of program names/packages which
+    have a pending crash report. (LP: #145117)
+  * apport/ui.py, run_argv(): Add return code which indicates whether any
+    report has been processed.
+  * cli/apport-cli: If no pending crash reports are present, say so and refer
+    to --help. (LP: #182985)
+  * apport/ui.py: Waive check for obsolete packages if environment defines
+    $APPORT_IGNORE_OBSOLETE_PACKAGES. Document this in the apport-cli manpage.
+    (LP: #148064)
+
+  [ Daniel Hahler ]
+  * .crash file integration for KDE3 (LP: #177055)
+    - debian/apport-qt.install: install added files qt4/apport-qt-mime.desktop
+      and qt4/apport-qt-mimelnk.desktop
+  * Fixed minor warnings/errors from desktop-file-validate in
+    gtk/apport-gtk-mime.desktop.in and qt4/apport-qt.desktop.in (LP: #146957)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 06 Feb 2008 12:55:53 +0100
+
+apport (0.101) hardy; urgency=low
+
+  * debian/control: Add python-xdg dependency to apport, since apport-cli
+    needs it. (LP: #177095)
+  * apport/ui.py: Add test case for reporting a report which has been
+    preprocessed by apport-retrace, i. e. has a stack trace, but no core dump
+    any more (reproducing LP #185084).
+  * apport/ui.py, run_crash(): Do not reject reports which have a stack trace,
+    but no core dump. (LP: #185084)
+  * apport/report.py: Fix test_add_gdb_info_load() test case, the temporary
+    executable was already deleted when gdb ran the second time.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 23 Jan 2008 17:48:06 +0000
+
+apport (0.100) hardy; urgency=low
+
+  * bin/crash-digger: Add option --log for logging to a file, and
+    --pidfile/--stop for daemonization. Add test cases to test-crash-digger.
+  * bin/apport: Do not re-raise exceptions about failure to create the lock
+    file, to avoid crashing in the case that another apport instance tries to
+    lock at exactly the same moment. (LP: #147237)
+  * apport/report.py testsuite: Check that our methods get along with binary
+    data which turn into CompressedValue objects after loading them from a
+    file. This reproduces LP #148305.
+  * problem_report.py, CompressedValue: Add method splitlines() since we need
+    it very often. Add test case to test_compressed_values(). (LP: #148305)
+  * problem_report.py: Add test case to check that update() works and does the
+    right thing with binary values and overwriting. This confirms that
+    importing a dictionary works.
+  * debian/local/setup-apport-retracer: Update for hardy.
+  * apport/crashdb_impl/launchpad.py: get_source_info() does not work any more
+    due to HTML changes in Launchpad, and not showing the component any more
+    on /distro/+source/package. Since we do not actually need component and
+    release name any more, rename it to get_source_version(), fix the regular
+    expression to just get the version, and adapt get_fixed_version()
+    accordingly.
+  * debian/local/setup-apport-retracer: Update default apt sources to
+    http://ddebs.ubuntu.com.
+  * apport/ui.py: Robostify cleanup of forked test processes.
+  * apport/ui.py: Sleep for 0.5 seconds after creating the test process in the
+    test suite to give /proc some time to settle down.
+  * bin/apport: Drop evaluation of CORE_* environment variables and mandate
+    calling with <pid> <signal> <core ulimit>. Drop the now obsolete
+    apport/elfcore.py. Adapt test-apport accordingly.
+  * debian/apport.init, use-local: Now call apport with %p, %s, and %c kernel
+    macros (since 2.6.24). Drop Edgy support from init script.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 21 Dec 2007 02:18:48 +0100
+
+apport (0.99) hardy; urgency=low
+
+  * cli/apport-cli, qt4/apport-qt: Fix typo 'send' -> 'sent'.
+    (LP: #139288)
+  * apport_python_hook.py: Add user info, too. Also add check for this to the
+    test suite. (LP: #145109)
+  * apport/ui.py, run_crash(): Show a proper UI error message instead of just
+    crashing with an exception if the crash report is inaccessible for the
+    invoking user. (LP: #146464)
+  * apport/crashdb_impl/memory.py: Implement mark_retraced(),
+    get_unretraced(), and get_dup_unchecked() for completeness, and define
+    _MemoryCrashDBTest also when not running file as __main__. This makes the
+    class useful for higher-level test suites. Add test cases for the new
+    functions.
+  * apport/crashdb_impl/memory.py: Support 'dummy_data' option which adds a
+    few dummy crashes by default. This is useful for external test suites
+    which cannot otherwise pre-fill the in-memory db. Add checks that this
+    works properly.
+  * bin/crash-digger: Use self.log() more consistently, and flush stdout in
+    log(), so that we do not lose logs on output redirection.
+  * Add test-crash-digger: Initial test suite for bin/crash-digger.
+  * apport/ui.py, run_crash(): Intercept CRC errors from the info collection
+    thread, which happens on broken core dumps. (LP: #132212)
+  * cli/apport-cli, ui_present_package_error(): Fix running of dialog, so that
+    reporting package problems with apport-cli actually works. (LP: #136369)
+  * apport/ui.py, run_crash(): Intercept ENOSPC and present a proper error
+    message. (LP: #145100)
+  * gtk/apport-gtk.glade: Fix title of upload progress window to comply to
+    HIG. Thanks, Bruce Cowan. (LP: #144782)
+  * qt4/apport-qt: Fix Unicode <-> UTF-8 conversion. Thanks, Daniel Hahler!
+    (LP: #148177)
+  * apport/ui.py: Only import xdg.DesktopEntry when a .desktop file has been
+    found in the affected package. This avoids the dependency on servers with
+    just apport-cli. Thanks, Matthias Gug! (LP: #130013)
+  * apport/fileutils.py: Do not fail if there are no packages installed which
+    have one or several .desktop files. Thanks, Matthias Gug!
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sun, 28 Oct 2007 18:32:07 -0400
+
+apport (0.98) gutsy; urgency=low
+
+  [ Martin Pitt ]
+  * debian/local/setup-apport-retracer: launchpadBugs -> launchpadbugs
+    (recently renamed Python package in python-launchpad-bugs).
+  * apport/crashdb_impl/launchpad.py, test examples: Do not duplicate to bug
+    #1, that generates a huge amount of spam. Use another test bug.
+  * apport/crashdb_impl/launchpad.py, download(): Use Bug.description_raw,
+    since LP mangles spaces in .description. Bump p-lp-bugs dependency.
+  * apport/crashdb_impl/launchpad.py, close_duplicate(): Explicitly set the
+    duplicate after removing attachments, since the new LP does not allow any
+    modification of duplicate bugs.
+  * bin/crash-digger: Only consolidate the duplicate DB when -i is given (i.
+    e. usually only on one running instance).
+
+  [ Colin Watson ]
+  * Use bugs.launchpad.net for +filebug and +bugs requests. (LP: #138090)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 01 Oct 2007 14:35:07 +0200
+
+apport (0.97) gutsy; urgency=low
+
+  [Martin Pitt]
+  * problem_report.py: Coerce CompressedValue.__len__() to return an int to
+    work on Python 2.4, too.
+  * debian/local/setup-apport-retracer: Adapt ddeb apt source for the move
+    from ~pitti to ~ubuntu-archive.
+
+  [Markus Korn]
+  * port to new python-launchpad-bugs API.
+
+  [Daniel Holbach]
+  * small fixes to the port.
+  * debian/control: bumped python-launchpad-bugs Depends to >= 0.2.2.
+
+ -- Daniel Holbach <daniel.holbach@xxxxxxxxxx>  Tue, 04 Sep 2007 11:24:28 +0200
+
+apport (0.96) gutsy; urgency=low
+
+  * Create man pages for apport-cli, apport-chroot, and dupdb-admin.
+  * apport/fileutils.py, find_file_package(): Try to resolve symlinks in the
+    directory path. (LP: #125551)
+  * apport/crashdb_impl/launchpad.py, debian/local/setup-apport-retracer: Use
+    packaging.get_system_architecture() (which is dpkg --print-architecture on
+    Debian/Ubuntu) instead of uname, so that this does the right thing on lpia.
+  * problem_report.py, write_mime(): Use base64 encoding for gzipped
+    attachments, to not screw up mail servers. Thanks to Tim Yamin for this
+    patch!
+  * apport/crashdb.py: Drop the last argument (-1), since it is the default
+    anyway and did not yet exist on Python 2.4.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 21 Aug 2007 14:11:48 +0200
+
+apport (0.95) gutsy; urgency=low
+
+  * general-hooks/automatix.py: Remove hashbang, it's not an executable
+    script.
+  * apport/report.py: Support system-wide blacklisting:
+    /etc/apport/blacklist.d/. Add test cases.
+  * Add doc/README.blacklist: Document blacklist.d/, install it there in
+    setup.py.
+  * debian/rules: Blacklist wine-preloader, so that we ignore wine crashes
+    until an appropriate way is found to deal with them. (Point 6 of
+    apport-better-retracing spec.)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 11 Aug 2007 18:10:54 +0200
+
+apport (0.94) gutsy; urgency=low
+
+  * doc/data-format.tex: Some updates to incorporate feedback from Gnome
+    upstream:
+    - Do not talk about "Distributions" any more, but "Operating systems".
+      Gnome is used on non-Linux OSs, too.
+    - Split "DistroRelease:" field into "OS:" and "OSRelease:".
+    - Explicitly mention that CoreDump, StackTrace etc. can also contain
+      minidump output.
+    - Increase document version to 0.2.
+  * apport/report.py, obsolete_packages(): Fix crash when apt does not know an
+    available version of a package. (LP: #128176)
+  * test-apport: Add check that apport aborts immediately if another apport
+    instance is already running. Also test that a symlink attack on the lock
+    file is not possible.
+  * bin/apport: Abort running several apport instances at the same time, by
+    lockf()'ing /var/crashes/.lock and aborting on failure. (LP: #119622)
+  * Add bin/gcc_ice_hook: Script to create an apport report for a gcc ICE
+    (internal compiler exception). Add test cases to test-hooks, and ship it
+    in the 'apport' package. (LP: #125551)
+  * run-tests: In 'local' mode, only explicitly run the apt/dpkg
+    implementation instead of backends/*, since the RPM ones don't have tests
+    yet.
+  * apport/crashdb.py: Add a second optional parameter to upload() to specify
+    an upload progress callback function. Adapt the declarations in the
+    Launchpad and Memory implementations, too.
+  * apport/crashdb_impl/launchpad.py, upload(): Pass upload progress callback
+    handler to launchpadBugs.storeblob.upload(), which supports this since
+    version 0.2~39. Bump dependency to it accordingly.
+  * apport/ui.py, file_report(): Define an upload progress callback handler,
+    pass it to the crashdb upload(), and feed ui_set_upload_progress() with
+    some actual data. (LP: #91521)
+  * problem_report.py: Remove support for reading bz2 compressed binary data.
+    That was only relevant during edgy's development cycle.
+  * apport/report.py, test_add_proc_info(): Fix determination of /bin/zgrep
+    interpreter.
+  * problem_report.py: Switch encoding of binary values from bare zlib to
+    proper gzip format, since this is much more useful when reusing the
+    compressed value. Retain support for zlib-only reports. Add test cases for
+    both old and new encodings, and adapt the other test cases for the new
+    format. Update doc/data-format.tex accordingly.
+  * problem_report.py, write(): Add new permitted 'binary' argument value
+    'compressed', which retains gzip compressed binary values instead of
+    unpacking them transparently. Add test cases.
+  * problem_report, write_mime(): Eliminate unnecessary usage of StringIO.
+  * problem_report, write_mime(): Make function work for compressed binary
+    values. Add test case.
+  * apport/report.py, add_gdb_info(): Make function work if CoreDump is a
+    compressed value.
+  * apport/ui.py: Load crash report with keeping compressed binaries. This
+    avoids loading the entire uncompressed core dump into memory, and avoids
+    recompressing it all over again for generating the crash database upload
+    MIME document. This greatly speeds up crash reporting, too. (LP: #98562)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 31 Jul 2007 21:32:00 +0200
+
+apport (0.93) gutsy; urgency=low
+
+  * apport/crashdb.py: Set sqlite connect timeout to two hours, instead of the
+    default 5 seconds. Previously, one retracer always crashed when the other
+    was consolidating the database.
+  * bin/dupdb-admin, command_dump(): Correctly interpret empty version strings
+    as 'fixed in unknown verrsion', not 'unfixed'.
+  * apport/crashdb_impl/launchpad.py: Fix typo in bug comment string.
+  * apport/crashdb_impl/launchpad.py: Add function get_source_info() which
+    parses out release, version, and component from
+    https://launchpad.net/$DISTRO/+source/$PACKAGE.
+  * apport/crashdb_impl/launchpad.py, get_fixed_version(): If a bug is fixed,
+    return the current version (as approximation of the version where the bug
+    was fixed), instead of an empty string (which meant 'fixed in unknown
+    version'). [apport-crash-duplicates spec]
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 25 Jul 2007 17:04:27 +0200
+
+apport (0.92) gutsy; urgency=low
+
+  * bin/crash-digger: Do not crash if duplicate db is locked when attempting
+    to consolidate it. This happens often because in the DC we have two
+    parallel instances (for amd64 and i386).
+  * Move ubuntu-fat-chroot from bin/ to debian/local/, since it is so heavily
+    Ubuntu specific.
+  * debian/local/ubuntu-fat-chroot: Use diversions for the binaries we want to
+    disable, so that chroot upgrades do not trash the modifications.
+  * debian/local/setup-apport-retracer: launchpad-crash-digger ->
+    crash-digger.
+  * bin/crash-digger: Add option -i/--arch-indep-dupcheck to explicitly enable
+    duplicate checking of arch-independent crashes like Python exceptions. We
+    only want to process them on one architecture to avoid scattering the
+    duplicate database.
+  * apport/crashdb_impl/launchpad.py, get_unfixed(): Search for 'apport-crash'
+    tag, not 'apport'.
+  * bin/apport-unpack: Fix format string in error message.
+  * apport/ui.py, __init__(): Intercept ImportError, which can happen for
+    crashes during system upgrades. (LP: #124354)
+  * Add general-hooks/automatix.py: Refuse to send problem reports if
+    automatix is installed.
+  * doc/package-hooks.txt: Do not document UnsupportableReason, since it does
+    not make sense to set it in package hooks (it is checked before calling
+    the hooks). Hooks should use UnreportableReason only.
+  * apport/ui.py, test_run_crash_package(): Check that 'Package' problem
+    reports collect additional information, too.
+  * apport/ui.py, collect_info(): Collect additional information for 'Package'
+    problem reports, too.
+  * Revive preloadlib/:
+    - Remove PIPE_CORE #ifdefs and make them the default. We do not need to
+      support the Edgy kernel patches in this version any more.
+    - Install signal handler for SIGABRT, too.
+    - Read core ulimit, pass it to apport in CORE_REAL_RLIM, and set it to
+      zero for the program, since we do not actually want the kernel to write
+      core files when we pipe the core dump to apport.
+    - test-apport: Pass APPORT_REPORT_DIR to the manually called apport
+      instance in the memory clipping test; otherwise it'll write into
+      /var/crash/, which we do not consider in library mode.
+  * apport/crashdb_impl/launchpad.py, __init__(): Only do the "download bug
+    #2" hack if we actually have an authentication cookie. Thus, do it only on
+    the retracing servers, not on the client side. (LP: #125142)
+  * apport/report.py, crash_signature(): Generate a signature for one-line
+    Python tracebacks, too. This sometimes seems to happen, e. g. LP#124588.
+    (LP: #125020)
+  * apport/crashdb_impl/launchpad.py, update(): Set bug importance to Medium
+    if retracing was successful. (LP: #106379)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 24 Jul 2007 21:50:34 +0200
+
+apport (0.91) gutsy; urgency=low
+
+  * bin/apport: Remove code that supported the Edgy kernel way of core dump
+    passing. Also factorize the CORE_REAL_RLIM evaluation, since it is likely
+    to change in the near future.
+  * apport/crashdb_impl/launchpad.py, close_duplicate(): Delete some
+    attachments, as specified in apport-crash-duplicates spec, and make the
+    bug public afterwards.
+  * apport/crashdb_impl/launchpad.py, close_duplicate(): If the master bug is
+    already duped to yet another bug, mark the bug to that one instead of the
+    master.
+  * apport/crashdb.py: Split out duplicate_db_last_consolidation() for getting
+    the date (or seconds since) the last consolidation, so that we can use it
+    externally.
+  * apport/crashdb.py: Add duplicate_db_change_master_id() to change the
+    master ID of a crash. Add test case to apport/crashdb_impl/memory.py.
+  * Add bin/dupdb-admin: Initial version of duplicate db CLI app; can dump the
+    db, display consolidation state, and change master bug IDs for now. Ship
+    it in apport-retrace.
+  * apport/crashdb.py, duplicate_db_last_consolidation(): Fix timedelta
+    seconds calculation to actually take the days into account, too.
+  * bin/crash-digger: Fix dumping of dup db after consolidation.
+  * apport/ui.py:
+    - test_run_report_bug_package(): Add test case for calling the UI in bug
+      filing mode with an invalid package name.
+    - run_report_bug(): Do not crash on invalid package name, generate an
+      error message instead. (LP: #123644)
+  * apport/fileutils.py, mark_report_seen(): Do not crash if the file has
+    already been deleted underneath us. (LP: #122347)
+  * apport/ui.py, run_report_bug(): Do not crash if the target process runs as
+    a different user. Print a proper error message instead. Add test case
+    test_run_report_bug_noperm_pid(). (LP: #121121)
+  * apport/fileutils.py, likely_packaged(): Ignore /var/lib/schroot. Add test
+    case. (LP: #122859)
+  * apport/ui.py, open_url(): Intercept weird race condition for os.close()
+    trying to close an already invalidated fd. (LP: #123180)
+
+  Merge the fedora branch, thanks to Will Woods <wwoods@xxxxxxxxxx>:
+
+  * Add apport.init.fedora: Fedora specific init script.
+  * Add apport.spec: RPM build recipe.
+  * Add backends/packaging_rpm.py: Partial implementation of the packaging
+    backend for RPM which applies to all RPM-based distros.
+  * Add backends/packaging_fedora.py: Concrete packaging backend
+    implementation for Fedora.
+  * apport/elfcore.py: Classes for parsing general ELF files, and information
+    from core dumps.
+  * bin/apport: Fall back to reading signal number and PID directly from the
+    core file (via elfcore.py) if CORE_SIGNAL and CORE_PID are not defined (i.
+    e. when running on a non-Ubuntu kernel).
+  * crashdb.conf: Add stanzas for Fedora and a 'debug' database which uses the
+    'memory' crashdb implementation.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 14 Jul 2007 15:08:35 +0200
+
+apport (0.90) gutsy; urgency=low
+
+  * apport/ui.py, load_report(): Catch IOError, too. LP: #118827
+  * Merge apport-cli package into apport itself. The program itself is just 3
+    kB compressed, and it's not worth wasting another 34 kB compressed
+    changelog for this tiny bit.
+  * apport/report.py, obsolete_packages(): Use the version comparison from the
+    packaging system instead of just testing for inequality. This catches zero
+    epochs. Thanks to Will Woods <wwoods@xxxxxxxxxx>!
+  * apport/ui.py: Add option -c/--crash-file to run the UI with a particular
+    crash file (which can be anywhere) instead of all pending crashes in
+    /var/crash/.
+  * Add xdg-mime/apport.xml: XDG MIME type definition for .crash files.
+  * Add gtk/apport-gtk-mime.desktop.in: Link text/x-apport MIME type to
+    apport-gtk -c, so that .crash files can be reported with Gnome.
+  * Add debian/apport.links: Install an icon symlink for the MIME type.
+  * apport/ui.py: Do not ask the initial "Do you want to report this?"
+    question when being invoked with --crash-file.
+  * po/POTFILES.in: Add missing cli/apport-cli.
+  * po/de.po: Updated for apport-cli.
+  * cli/apport-cli: Add option for keeping the report file without sending it,
+    and to display its path. This is for sending the report later, copying
+    it from a server to a workstation with internet connection, etc.
+  * apport/crashdb_impl/launchpad.py: Simplify _subscribe_triaging_team(), now
+    that we do not differ between main and universe policies any more.
+  * apport/report.py: Support another hook directory
+    /usr/share/apport/general-hooks/ for scripts which are run for every
+    problem report. This was requested for adding e. g. AppArmor logs, etc.
+    Add test cases.
+  * Add debian/apport.dirs again to ship that hook directory.
+  * doc/package-hooks.txt: Document the general hooks.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 10 Jul 2007 21:10:19 +0100
+
+apport (0.89) gutsy; urgency=low
+
+  Implement private crash bug handling, according to
+  https://wiki.ubuntu.com/CrashReporting:
+
+  * apport/crashdb_impl/launchpad.py:
+    - upload(): If we have an Ubuntu bug, mark it as private and only
+      subscribe 'apport' (the 'Apport retracing service' user).
+    - Add function _subscribe_triaging_team() which subscribes
+      ubuntu-crashes-main for source packages in Ubuntu main or restricted, or
+      ubuntu-crashes-universe for other packages. It does not touch non-Ubuntu
+      bugs, since these are not marked private by default and are outside of
+      the scope of this spec.
+    - update(), _mark_dup_checked(): Call _subscribe_triaging_team().
+    - Note: This entire spec is a gross hack, and Ubuntu derivatives do not
+      benefit from it at all. We have to live with this until LP grows a real
+      crash database.
+    - get_distro_release(): Make this function work with private bugs, too, by
+      using p-lp-bugs' safe_urlopen().
+
+  Bug fixes:
+
+  * apport/crashdb_impl/launchpad.py: Revert simplification change of 0.85:
+    BugList returns a set of strings, not integers; due to non-identity they
+    do not work with the usual set operations.
+  * apport/crashdb_impl/launchpad.py: Add function get_source_component() to
+    query Launchpad for the component of a given distribution and source
+    package. (This will be required for implementing crash-reporting).
+  * backends/packaging-apt-dpkg.py, _search_contents(): Package list is
+    actually comma separated, only take the first item. This fixes retracing
+    of e. g. #124139.
+  * backends/packaging-apt-dpkg.py, _search_contents(): Fix package name
+    parsing for non-main components. This fixes retracing of e. g. #124111.
+  * apport/report.py, _read_maps(): Revert ptrace hack when maps cannot be
+    read. maps file is now protected based on process ownership, not ptracing.
+  * apport/crashdb.py, apport/crashdb_impl/launchpad.py,
+    apport/crashdb_impl/memory.py: Remove official interface
+    mark_dup_checked(), as it should only be an internally used function. Add
+    report parameter, since we will need it there in the future. Remove
+    explicit call from bin/crash-digger and instead change check_duplicate()
+    to call it on its own.
+  * apport/crashdb_impl/launchpad.py, download(): Replace dodgy parsing of
+    fields from the description with proper code, so that multi-line fields
+    are read correctly, too.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 06 Jul 2007 11:19:22 +0200
+
+apport (0.88) gutsy; urgency=low
+
+  * po/de.po: Update.
+  * backends/packaging-apt-dpkg.py, _search_contents(): Do not check the
+    return value of zgrep. It usually errors out with 'stdout: broken pipe'
+    when called with -m1.
+  * bin/crash-digger: Mark a bug as retraced if DistroRelease: cannot be
+    determined. Those are bugs apport cannot handle.
+  * backends/packaging-apt-dpkg.py, get_source_tree(): Call apt-get source
+    with --assume-yes to not block on VCS confirmations.
+  * apport/crashdb.py: Add interface mark_retrace_failed(). Implement it in
+    apport/crashdb_impl/launchpad.py.
+  * bin/apport-retrace: If retraced report does not have a crash signature,
+    mark it as failed with above new function. Bump python-apport dependency
+    for this.
+  * apport/crashdb_impl/launchpad.py, update(): Delete CoreDump.gz attachment
+    if the retrace was successful (i. e. if the report has a crash signature).
+  * apport/ui.py, test_run_crash(): Set the message box title, text, and
+    severity as assertion message if the run_crash() test fails, so that you
+    know why it fails. This usually happens if libc6 or another dependency of
+    the test crash is out of date.
+  * gtk/apport-gtk.glade: Mark string as translatable. LP: #119621
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 03 Jul 2007 21:38:05 +0200
+
+apport (0.87) gutsy; urgency=low
+
+  * apport/report.py:
+    - test_gen_stacktrace_top(): Add test case for unwinding a Gnome assertion
+      (g_logv(), g_assert_warning() and similar), see LP #123462.
+    - _gen_stacktrace_top(): Generalize for unwinding multiple functions and a
+      set of function names, and add the Gnome assertion ones.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 02 Jul 2007 11:00:44 +0200
+
+apport (0.86) gutsy; urgency=low
+
+  * test-apport: Check that apport does not create reports for emtpy core
+    dumps.
+  * problem_report.py: Introduce a fourth optional parameter "fail_on_empty"
+    to file pointer tuples which causes write() to raise an IOError if no data
+    was read. Add test cases.
+  * bin/apport: Enforce non-emptyness of CoreDump.
+  * problem_report.py: Add test case for delayed piping of data passed as file
+    object pointers. This was supposed to explain the reason for getting bugs
+    with zero-byte core dumps, but already works correctly.
+  * apport/report.py, check_ignored(): round the mtime to an int (just like
+    mark_ignore() does), to not get wrong results on file systems that support
+    subsecond file timestamps. This fixes running the test suite on the live
+    CD.
+  * test-apport: Clarify assertion message if /var/crash is not empty.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 28 Jun 2007 19:14:36 +0200
+
+apport (0.85) gutsy; urgency=low
+
+  * apport/crashdb_impl/launchpad.py: BugList.bugs is already a set, simplify
+    code a bit.
+  * debian/control: Add dpkg-dev dependency to apport-retrace, for getting
+    dpkg-source.
+  * apport/report.py, crash_signature(): Allow ':' and '~' as part of function
+    names to cover C++. Adapt test case to cover this.
+  * apport/report.py test suite: Do not assume that /bin/zgrep uses /bin/sh,
+    it was recently changed to use bash. Directly read the interpreter from
+    the shebang line.
+  * bin/apport-chroot, command_upgrade(): Supply -y to 'apt-get upgrade' also
+    in verbose mode.
+  * bin/apport-chroot, command_upgrade(): Run 'apt-get clean' before
+    regenerating the chroot tarball.
+  * backends/packaging-apt-dpkg.py, get_dependencies(): Fix crash when
+    encountering a virtual package. LP: #122274
+  * apport/report.py, obsolete_packages(): Do not consider virtual packages as
+    obsolete.
+  * apport/crashdb_impl/launchpad.py: Do a bogus call to Bug() in the ctor.
+    This initializes python-launchpad-bugs to use a cookie for the urlopen in
+    BugList, so that get_unretraced() and get_dup_unchecked() return private
+    bugs, too. This works around LP #122126.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 25 Jun 2007 16:38:43 +0200
+
+apport (0.84) gutsy; urgency=low
+
+  * apport/crashdb.py: Add new abstract methods:
+    - get_unretraced() and mark_retraced(id) to get a list of crashes that
+      need to be retraced and chalk them off.
+    - get_dup_unchecked() and mark_dup_checked() to get a list of crashes that
+      need to be checked for being a duplicate and chalk them off. This is
+      aimed at crashes which do not need retracing, such as unhandled Python
+      exceptions.
+  * apport/crashdb_impl/launchpad.py: Implement above methods for launchpad
+    (moving the code from bin/launchpad-crash-digger).
+  * apport/crashdb_impl/launchpad.py: Set "need-duplicate-check" tag for
+    Python crashes.
+  * apport/crashdb_impl/launchpad.py, download(): Fetch Traceback.txt, too, so
+    that we can do duplicate checking for Python crashes.
+  * bin/launchpad-crash-digger: Drop Launchpad specific code and replace it
+    with calls to above new functions. Rename to bin/crash-digger. Also rename
+    all 'cookie' to 'auth' (as happened with the other applications earlier).
+  * bin/crash-digger: Do duplicate checking for needs-duplicate-check crash
+    bugs (such as Python crashes).
+  * bin/apport-retrace, bin/crash-digger: More language cleanup; we should
+    stop talking about 'bugs' and use 'crash' consistently.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 14 Jun 2007 19:50:24 +0200
+
+apport (0.83) gutsy; urgency=low
+
+  * apport/crashdb.py: Separate abstract from implemented functions.
+  * apport/crashdb.py, apport/packaging.py, apport/ui.py: Use
+    NotImplementedError instead of Exception in the abstract methods.
+  * apport/packaging.py: Add interface compare_versions() for comparing
+    package version numbers.
+  * backends/packaging-apt-dpkg.py: Implement compare_versions() using
+    apt.VersionCompare(), add some test cases.
+  * apport/report.py: Fix typo: 'none' -> 'None'.
+  * apport/chroot.py: Do not include /usr/local/lib and /usr/lib in
+    LD_LIBRARY_PATH, just /lib, so that we still use the libc from outside,
+    but e. g. libxml2 from inside the chroot.
+
+  https://blueprints.launchpad.net/ubuntu/+spec/apport-crash-duplicates: Merge
+  crash-dups branch, which implements automatic crash duplicate detection:
+
+  * apport/crashdb.py: Add methods for crash duplicate detection.
+  * apport/crashdb_impl/memory.py: Change internal data management to track
+    fixed version and duplicates.
+  * apport/crashdb_impl/memory.py: Add a test suite for all methods, including
+    the duplicate detection API of the base CrashDatabase (since it is
+    much easier to test it here, on an actual implementation).
+  * debian/pyversions: Bump minimal Python version to 2.5, since this starts
+    providing the sqlite3 module.
+  * apport/crashdb_impl/launchpad.py: Implement new methods required for crash
+    duplicate detection. get_fixed_version() does not approximate version
+    tracking yet; it just returns '' for fixed bugs (which means 'fixed, but
+    unknown version'). Bump python-launchpad-bugs dependency for this to
+    ensure the availability of Bug.mark_duplicate().
+  * bin/apport-retrace: Add option --duplicate-db which specifies the path to
+    the duplicate sqlite database and enables duplicate detection.
+  * Abin/apport-chroot: Add option --duplicate-db. If a file is given, symlink
+    it into the chroot and pass --duplicate-db to apport-retrace.
+  * bin/launchpad-crash-digger: Add --duplicate-db and pass it to
+    apport-chroot.
+  * apport/crashdb.py: Track last run of duplicate_db_consolidate() in an
+    extra table and add a method duplicate_db_needs_consolidation() which
+    returns True if the last run was more than a given number of seconds ago.
+    Add test cases to apport/crashdb_impl/memory.py.
+  * bin/launchpad-crash-digger, fill_pool(): Check whether the duplicate
+    database needs consolidation (i. e. updating the bug states to the reality
+    in the bug tracker) and if so, trigger it.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 13 Jun 2007 13:09:57 +0200
+
+apport (0.82) gutsy; urgency=low
+
+  * Add bin/ubuntu-fat-chroot: Script to install a set of commonly needed
+    packages into a minimal Ubuntu chroot (as created by apport-chroot). This
+    requires some hacking of postinst and /usr/sbin/ files in between the
+    installation stages and thus deserves a script on its own.
+  * apport/packaging.py:
+    - Add "uninstalled" option to get_file_package(). If set to True, this
+      will do an expensive search of files/packages which are not installed.
+    - Add interface "set_mirror(URL)" for functions which need to retrieve
+      packages and data from distribution mirrors.
+  * backends/packaging-apt-dpkg.py: Implement "uninstalled" option and
+    "set_mirror(URL)", add test cases.
+  * bin/apport-retrace: Use "uninstalled" option now to install packages and
+    corresponding -dbgsyms for uninstalled files mentioned in ProcMaps
+    (Point 1 of apport-better-retracing spec). Bump python-apport dependency.
+  * apport/packaging.py: Add interface get_available_version(package).
+  * backends/packaging-apt-dpkg.py: Implement get_available_version(), add
+    shallow test case.
+  * apport/report.py: Add function obsolete_packages() to return packages in
+    Package: and Depends: which are not up to date. Add test cases.
+  * apport/ui.py, thread_collect_info(): For crashes, call obsolete_packages()
+    and set UnreportableReason: if there are any (Point 2 of
+    apport-better-retracing spec).
+  * apport/ui.py, thread_collect_info(): call standard_title() and add it to
+    the report as 'Title' field. This is useful if reporters modify the
+    default title (per request of Brian Murray, thanks). Add test case.
+  * apport/ui.py: Fix declaration of the test suite's
+    ui_set_upload_progress(). Funny that this has never been triggered before.
+  * apport/report.py, add_gdb_info(): Split out StacktraceTop generation into
+    separate funtion _gen_stacktrace_top(), so that we can test it separately.
+  * apport/report.py, _gen_stacktrace_top(): Step back from the crashed
+    program's own signal handlers, since those are generally not useful for
+    the purposes of StacktraceTop and only impede duplicate matching
+    (Point 4 of apport-better-retracing spec). Add various test cases.
+  * apport/report.py: Add method crash_signature() to calculate an unique
+    identifier of a signal or Python crash, to be used for duplicate
+    detection. Add various test cases.
+  * apport/packaging.py: Add interface get_source_tree() to fetch and unpack a
+    source package to a given directory, optionally specifying a particular
+    version.
+  * backends/packaging-apt-dpkg.py: Implement get_source_tree(). This has a
+    rather crude 'call apt-get source and guess about directories'
+    implementation until python-apt learns about doing this directly and more
+    elegantly (see LP #118788).
+  * bin/apport-retrace: Add gen_source_stacktrace() and a few helper functions
+    to construct a field 'StacktraceSource' with the source code around the
+    affected lines in the stack trace (as available). (Point 5 of
+    apport-better-retracing spec).
+  * apport/crashdb_impl/launchpad.py, update(): Attach StacktraceSource to the
+    bug if it exists.
+  * apport/crashdb_impl/launchpad.py: Check PackageArchitecture for 'all', to
+    not set a retracer tag 'need-all-retrace'.
+  * test-apport: Clarify assertion failure message when an unexpected core
+    dump is present.
+  * apport/report.py, get_module_license(): Do not iterate over Popen.stdout,
+    use communicate() instead. The latter is already fixed to not trip over
+    SIGINTR. (LP: #118965)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 08 Jun 2007 07:47:04 +0200
+
+apport (0.81) gutsy; urgency=low
+
+  * apport/report.py: Remove '[apport]' default bug title prefix. (LP: #94819)
+  * apport/crashdb_impl/launchpad.py: Tag new bugs with
+    'apport-<problemtype>'. This replaces the former '[apport]' prefixing.
+  * debian/local/setup-apport-retracer: Specify a path in '.' command and
+    use sh again. Yay for me needing three attempts before actually RTFMing
+    how '.' works (which is really nasty and strange IMHO).
+  * bin/apport-chroot: Fix symlinks before repackaging the chroot tarball in
+    'install' and 'installdeb' modes.
+  * debian/local/setup-apport-retracer: Install python-libxml2 and python-apt.
+  * bin/launchpad-crash-digger: Supply --auth instead of the deprecated
+    --cookie to apport-chroot.
+  * bin/apport-chroot: Fix identifier name in command_retrace().
+  * debian/local/setup-apport-retracer: Set APPORT_CRASHDB_CONF to the local
+    crashdb.conf.
+  * bin/apport-chroot: Unset APPORT_CRASHDB_CONF for login and retrace.
+  * bin/launchpad-crash-digger: Check the release of a bug and whether we have
+    a chroot for it before untagging it. This avoids loosing tags for bugs we
+    do not yet have a working retracer chroot for.
+  * bin/apport-retrace: Do not abort with an exception if package installation
+    fails. Give a proper error message instead and point to -u. (LP: #115681)
+  * apport/crashdb_impl/launchpad.py, update(): Create a temporary directory
+    and use proper file names for the new attachments. With TemporaryFile(),
+    attachment file names ended up as '<fdopen>'. (LP: #115347)
+  * apport/report.py, add_os_info(): Add field 'NonfreeKernelModules' which
+    lists loaded kernel modules which do not have a FOSS license. This is
+    particularly helpful for quickly checking for restricted graphics drivers.
+    (LP: #103239)
+  * apport_python_hook.py: Move the apport.* imports into the try: block and
+    move the likely_packaged() test to the top, to avoid importing
+    apport.report and creating a Report object for non-packaged scripts. This
+    makes the entire code more efficient and robust against errors in the
+    apport modules. (LP: #109955)
+  * apport/report.py, add_gdb_info(): Intercept OSError from gdb invocation
+    (which might be segfaulting itself) and just do not put any gdb output
+    into the report. The automatic retracers can try their luck again.
+    (LP: #112501)
+  * bin/apport-retrace: Fix handling of packages which are still known to
+    /var/lib/dpkg/status, but do not have an apt record any more; treat them
+    like virtual packages and just issue a warning instead of falling over.
+    (LP: #107474)
+  * Add doc/data-format.tex: Documentation of the structure, encoding, and
+    standard keys of the Apport report file format. [apport-for-upstreams
+    blueprint]
+  * Add doc/Makefile: Build and clean rules for generating data-format.pdf.
+  * debian/rules, setup.py: Call doc/Makefile and install the PDF
+    documentation. Add texlive-latex-recommended build dependency for that.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 24 May 2007 19:39:12 +0200
+
+apport (0.80) gutsy; urgency=low
+
+  Collect all Launchpad specific bits in a separate class and provide an
+  abstract base class. This will greatly help for getting upstream acceptance
+  and the possibility of automatically forwarding crashes upstream
+  (apport-for-upstreams specification):
+
+  * Add apport/crashdb.py: Abstract crash database interface. This also offers
+    a factory function get_crashdb() which reads a configuration file to find
+    the default crash database to be used.
+  * Add ./crashdb.conf: Crash database configuration file, for Ubuntu on
+    Launchpad. Modify setup.py and debian/python-apport.install to ship it in
+    python-apport.
+  * Add apport/crashdb_impl/memory.py: Simple in-memory implementation of
+    crash database interface for testing.
+  * Add apport/crashdb_impl/launchpad.py: Launchpad implementation of crash
+    database interface.
+  * apport/ui.py: Drop LP specific bits and move towards new CrashDatabase
+    interface.
+  * apport/ui.py, test suite: Do not overwrite file_report() any more, but
+    use the memory CrashDatabase. This will test the actual file_report()
+    implementation and allows the test suite to check the precise value of
+    opened URLs.
+  * apport/{report,ui}.py: Move UserInterface.create_crash_bug_title() and its
+    test cases to Report.standard_title(). It is much more appropriate there
+    and can be used in the retracer as well.
+  * bin/apport-retrace: Drop LP specific bits and move to CrashDatabase
+    interface. Remove the --remove-tag option, we really should not have it
+    here; remove it from man/apport-retrace.1 as well.
+  * bin/apport-chroot: Drop --remove-tag option here, too.
+  * bin/apport-chroot: Drop LP specific bits and move to CrashDatabase
+    interface.
+  * bin/launchpad-crash-digger: Remove retracing tag directly instead of
+    passing --remove-tag to apport-chroot. This is a much cleaner design and
+    avoids infinitely looping on some weirdly failing retraces.
+  * debian/control: Bump some python-apport dependencies for the API changes.
+
+  Some debranding:
+
+  * setup.py: Use apport wiki home page for 'url'.
+  * Remove 'X-Ubuntu-Gettext-Domain' from *.desktop.in, since langpack.mk will
+    add it automatically now.
+  * *.desktop.in: Remove 'in Ubuntu' from comment.
+  * cli/apport-cli, qt4/apport-qt: Generalize window titles.
+
+  Other fixes:
+  * po/de.po: Update.
+  * debian/local/setup-apport-retracer: Revert back 'source' to '.' and use
+    bash instead of sh. POSIX sh does not seem to have a 'source' command.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 21 May 2007 19:25:31 +0200
+
+apport (0.79) gutsy; urgency=low
+
+  * debian/local/setup-apport-retracer: Fix '.' bashism, replace it with
+    'source'.
+  * problem_report.py, write_mime(): Drop preamble argument, replace it with
+    an extra_headers dictionary. This is much easier to evaluate on clients.
+  * apport/ui.py: Convert to new write_mime() interface from above. This
+    finally automatically tags bugs with need-$ARCH-retrace. Bump
+    p-problem-report dependency of python-apport for this.
+  * apport/report.py: Change example URLs in the testsuite from launchpad to
+    an artificial ones to avoid the impression that it is LP specific.
+  * backends/packaging-apt-dpkg.py: Formally make this a subclass of
+    apport.packaging.PackageInfo.
+  * debian/control: Use code.lp.net instead of bazaar.lp.net VCS URL.
+  * bin/kernel_hook: Fix/improve the collected information:
+    - Read /proc/modules instead of lsmod.
+    - Fix lspci argument: -n instead of -m.
+    - Add /proc/cmdline.
+  * debian/rules: Use langpack.mk for updating the .desktop files.
+  * Add po/Makevars to specify the domain, to make intltool figure out the
+    gettext domain automatically.
+  * bin/kernel_hook, ./test-hooks: Do not rely on /proc/version_signature any
+    more, it's gone in the gutsy kernel.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 21 May 2007 15:55:10 +0200
+
+apport (0.78) gutsy; urgency=low
+
+  * apport/packaging.py, backends/packaging-dpkg.py: Add new interface
+    is_distro_package(package) which verifies the origin of a given package.
+    Move the dodgy hack from apport/ui.py to the backend, where it belongs to.
+    Also add a test case.
+  * debian/control: Add python-apt dependency to python-apport.
+  * debian/control: Remove debianutils dependency, it's essential.
+  * Drop backends/packaging-dpkg.py. It had some hackish usage of python-apt
+    anyway, since some things just cannot be figured out with dpkg alone.
+    Since we have to give up on that idea, implement a new clean packaging
+    backend 'packaging-apt-dpkg.py' which now uses python-apt and dpkg in a
+    clean way.
+  * apport/report.py, add_gdb_info(): Fix crash when Stacktrace could not be
+    created. (LP: #107853)
+  * ./test-apport: Check that crashes create a core dump (with proper ulimits)
+    when an unseen crash report exists already. This reproduces LP #105976.
+  * bin/apport: Create core dump file if aborting because an unseen crash
+    report already exists. (LP: #105976)
+  * apport/ui.py: Add a comment for translators. (LP: #104703)
+  * apport/ui.py, load_report(): Also catch zlib.error on invalid reports.
+    (LP: #103547)
+  * apport/report.py: Add method has_useful_stacktrace() to determine whether
+    the stack trace can be considered useful. The current heuristic is to
+    consider it useless if it either is shorter than three lines and has any
+    unknown function, or for longer traces, a minority of known functions. Add
+    test cases.
+  * gtk/apport-gtk, qt4/apport-qt, cli/apport-cli: Do not offer 'reduced
+    report' option if the stack trace is useless. (LP: #87430) Bump the
+    python-apport dependencies of the frontend packages to ensure that we have
+    has_useful_stacktrace().
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat,  5 May 2007 17:53:42 +0200
+
+apport (0.77) gutsy; urgency=low
+
+  * apport/report.py: Replace any() call with a list comprehension to work
+    with Python < 2.5. (LP: #104864)
+  * apport/report.py: Move the ctypes import to the one place where we
+    actually need it, and do not entirely fail if they do not exist (such as
+    in Python 2.4). It is only required for non-default Feisty kernels anyway.
+    (LP: #107662)
+  * apport/chroot.py: Fix test suite to work with Python 2.4's tarfile module
+    output format.
+  * debian/local/setup-apport-retracer: Generalized some feisty specific
+    bits, set default release to gutsy.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 23 Apr 2007 12:22:17 +0200
+
+apport (0.76) feisty; urgency=low
+
+  * Move python_hook.py out of the apport module to apport_python_hook.py, so
+    that it does not inflict the expensive import of all apport related
+    modules to every python program. Adapt module prefixes accordingly.
+    (LP: #105764)
+  * setup.py, debian/python-apport.install: Install apport_python_hook.py into
+    the python-apport binary package.
+  * apport/ui.py test suite: Unset locale related environment variables so
+    that the tests which check strings are not invalidated by translations.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 12 Apr 2007 11:47:50 +0200
+
+apport (0.75) feisty; urgency=low
+
+  * apport/report.py, add_proc_info(): Chop off /rofs/ prefix from
+    ExecutablePath, so that crashes work on the live system, too. Arguably a
+    kernel bug, but probably too hard to fix at this time. (LP: #102909)
+  * backends/packaging-dpkg.py, get_modified_files(): Ignore empty lines in
+    broken .md5sums file rather than crashing on them. (LP: #102906)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed,  4 Apr 2007 21:51:28 +0200
+
+apport (0.74) feisty; urgency=low
+
+  * debian/apport-{gtk,qt}.install: Do not install .desktop files for now,
+    until we get a proper guided bug reporting.
+  * problem_report.py, write_mime(): Do not re-compress keys which already end
+    in .gz. Add test cases.
+  * test-hooks: Add a (dodgy) test case for calling package_hook on an
+    uninstalled package. After all, this is very likely to happen for
+    installation errors. This reproduces #97636.
+  * backends/packaging-dpkg.py, get_source(): Add a similarly dodgy fallback
+    to apt if the queried package is not installed. This needs to be
+    generalized and cleaned up later, but now is the time for unintrusive
+    small patches. (LP: #97636)
+  * test-apport: Do not fail on non-empty gdb stderr if it only consists of a
+    single warning (as happens on powerpc).
+  * apport/report.py, test_check_interpreted(): Run gedit test on an actually
+    existing file, reproducing the interpreter confusion reported in #102056.
+  * apport/report.py, _check_interpreted(): Add a whitelist of common
+    interpreters and check ExecutablePath against it. (LP: #102056)
+  * apport/ui.py: Ignore SystemError exceptions from apt, which happen on
+    badly formatted source.list entries. (LP: #98901)
+  * apport/ui.py: Fix crash on None candiateOrigin from the apt cache object.
+    (LP: #98961)
+  * gtk/apport-gtk.glade: Add window titles to progress and details dialogs.
+    (LP: #97640)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed,  4 Apr 2007 14:44:08 +0200
+
+apport (0.73) feisty; urgency=low
+
+  * problem_report.py, write(): Allow a third optional argument in tuple
+    values, which specify a maximum file size. Above it, the entire key gets
+    removed. Add testsuite checks for all boundary cases.
+  * bin/apport: Limit core dump size to 75% of usable RAM
+    (MemFree+Cached-Writeback). This should avoid trashing people's boxes hard
+    on huge core dumps. Bump dependencies on python-problem-report. Create an
+    expensive, but realistic check for this in test-apport.
+    (LP: #71560)
+  * apport/ui.py, run_crash(): If a signal crash report does not have a core
+    dump, explain that the computer has too little memory for an automatic
+    analysis/report of the crash. Add test suite check.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 29 Mar 2007 23:38:23 +0200
+
+apport (0.72) feisty; urgency=low
+
+  [ Martin Pitt ]
+  * bin/apport-chroot, command_create(): Install gpgv.
+  * bin/apport-retrace: Fix error handling in fetch_unpack().
+  * Move apport-retrace.1 manpage from package apport to apport-retrace. Bump
+    Conflicts/Replaces accordingly.
+  * bin/launchpad-crash-digger, apport/ui.py: Remove the special case
+    'powerpc'->'ppc' and use need-powerpc-retrace uniformly.
+  * debian/control: Add XS-Vcs-Bzr: header.
+  * apport/ui.py: Fix wrong parameter name in help message.
+  * Another grammar fix, thanks to Brian Murray!
+
+  [ Michael Hofmann ]
+  * debian/local/ubuntu-bug: Try to use apport-cli, if we do not have a
+    $DISPLAY, or neither Gnome nor KDE are running.
+  * debian/control: Recommend elinks, since it is the only text browser so far
+    that works with Launchpad (see #59510)
+  * Add debian/apport-cli.README.Debian: Describe how to integrate
+    apport-checkreports and apport-cli into .bashrc for crash notification on
+    servers.
+  * qt4/apport-qt: Fix undefined symbol in ui_present_package_error().
+    (LP: #97282)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 29 Mar 2007 11:41:39 +0200
+
+apport (0.71) feisty; urgency=low
+
+  * cli/apport-cli, qt4/apport-qt: Fix bad grammar 'some minutes'.
+    (LP: #95296)
+  * problem_report.py, write_mime(): Add optional 'preamble' parameter. Add
+    test case.
+  * apport/ui.py, upload_launchpad_blob(): Set need-$ARCH-retrace tag in MIME
+    preamble. Bump p-problem-report dependency. (LP: #94790)
+  * bin/apport-retrace: In verbose mode, display the path of currently
+    extracting deb.
+  * bin/apport-retrace: Do not fall over errors of dpkg -x (which happens e.
+    g. on udev, where it cannot unpack /dev, since this is a symlink to the
+    real /dev). Merely print out a warning about it.
+  * apport/ui.py, run_report_bug(): Ignore ENOENT from add_proc_info(). This
+    happens if the user closes the application prematurely, so that /proc/pid
+    does not exist any more. Add test case. (LP: #95954)
+  * backends/packaging-dpkg.py, get_modified_files(): Ignore lines in .md5sums
+    files which contain a NUL byte. This Should Not Happen™, but nevertheless
+    did. (LP: #96050)
+  * apport/ui.py, doc/package-hooks.txt: Check for a field
+    "UnreportableReason: <text>" and display an information box that the
+    current crash cannot be reported because of <text>. Add test case.
+    Document the new field.
+  * apport/ui.py: Check package origin, compare it to DistroRelease:, and
+    report crash as unreportable if they do not match. This particularly saves
+    the user from uploading large reports for e. g. opera crashes, and avoids
+    filing Ubuntu bugs from Debian installations. (LP: #75513)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 26 Mar 2007 18:01:24 +0200
+
+apport (0.70) feisty; urgency=low
+
+  [ Martin Pitt ]
+  * bin/apport-retrace: Add option --remove-tag to remove a Launchpad bug
+    tag. This is intended for an automatic Malone crash retracing system.
+  * debian/control: Bump python-launchpad-bugs dependency to ensure that we
+    have Bug.[gs]et_metadata().
+  * man/apport-retrace.1: Add documentation for --confirm and --remove-tag.
+  * bin/apport-chroot: Add option --remove-tag and pass it to apport-retrace.
+  * apport/chroot.py, fix_symlinks(): Convert chroot path prefixed absolute
+    symlinks to relative symlinks to avoid fakechroot's weird handling of
+    absolute symlinks.
+  * Add bin/launchpad-crash-digger: Daemon for watching out for
+    need-$ARCH-retrace tagged Ubuntu bugs in Launchpad and calling
+    apport-retrace on them.
+  * bin/apport-retrace: Mangle bug comment with StacktraceTop to not contain
+    invalid UTF-8, to avoid getting Internal Server Errors from LP.
+  * debian/local/setup-apport-retracer: Install libc6-i686{,-dbgsym} into an
+    x86 chroot, to get sane x86 backtraces for crashes in libc.
+  * debian/local/setup-apport-retracer:
+    - Unpack and install python-launchpad-bugs locally if the package is not
+      installed.
+    - Link launchpad-crash-digger into the retracer's bin/ dir.
+  * run-tests: Run tests with python's -tt flag to catch whitespace errors.
+  * Replace tabs with spaces in all Python files. (LP: #93561)
+  * Remove trailing white space in all Python files.
+  * apport/report.py, add_proc_info(): Do not regard symlinks to executables
+    as interpreted scripts any more (such as Debian alternatives). Add test
+    case. (LP: #94732)
+  * problem_report.py: Add new method get_new() which returns a set of all
+    keys which have been added since load() or construction. Add test cases.
+  * problem_report.py: Add optional parameter only_new to write(), which
+    writes only the get_new() keys. Add test case.
+  * apport/ui.py: Remember currently processed report file and update it with
+    the added information, so that it becomes useful for local evaluation,
+    too. Bump python-problem-report dependency to ensure write()'s only_new
+    availability. (LP: #94678)
+  * apport-chroot: Add forgotten sys.exit(1) after printing the error message
+    about an invalid chroot specification.
+  * apport/ui.py, run_crash(): Check for a field "UnsupportableReason: <text>"
+    and display an information box that the current configuration cannot be
+    supported because of <text>, instead of processing and reporting the
+    crash. Add test case for this workflow. With special regards to our
+    Firefox crash triagers who want to get rid of the hundreds of
+    flash-related crashes. :)
+  * apport/report.py, add_hooks_info(): Use execfile() instead of
+    __import__(), since package names might conflict with module names already
+    imported into apport's namespace. Also search for hook named after the
+    source package name (prefixed with 'source_'). Add test cases.
+  * bin/apport-chroot: When specifying --save for login, only save the tarball
+    if the exit status is 0.
+  * bin/apport-chroot, create: Install /usr/sbin/policy-rc.d to disable init
+    scripts.
+  * bin/apport-chroot: Fixed command function selection to not abort with
+    'unknown command' if the DistroRelease: was unknown.
+  * bin/apport-retrace: Replace --no-purge with --no-dpkg. With this option,
+    do not call dpkg --unpack any more, but dpkg -x, to avoid any fchmod() and
+    other calls which cause problems in fakechroots.
+  * bin/apport-retrace: Fix ordering of version numbers in warning message.
+  * doc/package-hooks.txt: Add some examples, document source package hook.
+
+  [ Kees Cook ]
+  * apport/report.py, add_proc_info(): If reading /proc/pid/maps fails,
+    ptrace() the target process to make it readable (proposed security
+    improvement in future kernels).
+  * bin/apport-retrace: Fix crash for packages unknown to the apt cache.
+  * apport/report.py, add_gdb_info(): Limit maximum backtrace depth to 2000 to
+    avoid infinitely looped stacks and gdb crashes. (LP: #94455)
+    This also caps the maximum size of information that we add to reports.
+    (LP: #92653)
+  * bin/apport-retrace: Add option -R/--rebuild-package-info, so that
+    apport-retrace works on unprocessed crash dumps in /var/crash.
+  * Some grammar corrections.
+  * Add package-hooks/source_apport.py: Package hook for apport itself.
+    Include /var/log/apport.log and the status of files in /var/crash.
+
+  [ Michael Hofmann ]
+  * Add cli/apport-cli, setup.py, debian/apport-cli.install, debian/control:
+    Add command line user interface.
+  * apport/ui.py, format_filesize(): Use MiB and GiB instead of MB and GB;
+    these are the official units. Adapt test cases.
+  * apport/ui.py, collect_info()/file_report(): Do not raise an exception on
+    KeyboardInterrupt in the subthreads.
+  * apport/ui.py, open_url(): Do not use gtk.MessageDialog(), but
+    ui_error_message(), and fix error passing so that the message is
+    displayed in the parent thread.
+  * apport/ui.py, open_url(): Check that $DISPLAY is set before considering
+    the KDE/Gnome web browsers.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 26 Mar 2007 09:41:03 +0200
+
+apport (0.69) feisty; urgency=low
+
+  * apport-chroot: Add command 'installdeb' to conveniently install a bunch of
+    .debs into a chroot.
+  * apport-chroot: Fix 'login' and 'upgrade' commands to not require
+    specifying a chroot map when giving a chroot tarball path as argument.
+  * test-apport: Check that core dumps are written for packaged programs as
+    well, if ulimits want them. (Test for #92029)
+  * bin/apport: Call write_user_coredump() for packaged program crashes and
+    SIGABRT as well. (LP: #92029)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 19 Mar 2007 17:37:23 +0100
+
+apport (0.68) feisty; urgency=low
+
+  [ Michael Hofmann ]
+  * qt4/apport-qt: Fix taskbar entry, remove an unused method.
+  * qt4/error.ui: Fix icon spacing.
+
+  [ Martin Pitt ]
+  * apport-retrace: Add option --confirm to display the retraced stack traces
+    and ask for confirmation before uploading them as LP bug attachments.
+    (LP: #91878)
+  * apport-chroot: Add option --confirm-attach; if given, call apport-retrace
+    with --confirm.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 15 Mar 2007 00:05:18 +0100
+
+apport (0.67) feisty; urgency=low
+
+  * debian/local/setup-apport-retracer: Add apt sources for restricted,
+    universe, and multiverse, too.
+  * po/de.po: Update from Rosetta.
+  * apport/report.py: Remove undefined call to error_log() in
+    _command_output(), replace it with raising proper exceptions.
+  * bin/apport-retrace: Fix 'numer' typo. (LP: #91680)
+  * test-apport: Check that non-packaged executables generate a core dump on
+    SIGABRT, too (test case for bug #92029).
+  * bin/apport: Move check for ignoring SIGABRT below the core dump file
+    writing for non-packaged binaries. (LP: #92029)
+  * gtk/apport-gtk.glade:
+    - Remove titles from the progress windows to comply with Gnome HIG and not
+      repeat the text content.
+    - Improve wording a bit.
+    - LP: #92114
+  * gtk/apport-gtk{,.glade}: Fix signal handler name of the Cancel button in
+    the upload progress dialog, so that it actually works. (LP: #92115)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 14 Mar 2007 17:34:57 +0100
+
+apport (0.66) feisty; urgency=low
+
+  * Remove apport/MultipartPostHandler.py, this functionality moved to
+    python-launchpad-bugs now. Add a dependency to that package.
+  * apport/ui.py, upload_launchpad_blob(): Use the shiny new
+    launchpadBugs.storeblob.upload().
+  * bin/apport-retrace: Attach retraced stack traces back to the Launchpad bug
+    report if no other output option is given (This corresponds to the
+    in-place editing when a report file is specified). Add option --cookie to
+    specify a Mozilla-style cookie file for the necessary Launchpad
+    authentication.
+  * man/apport-retrace.1: Document above apport-retrace changes.
+  * bin/apport-chroot: Add --cookie option: temporarily symlink cookie into
+    the chroot and pass it to apport-retrace in retrace mode.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 10 Mar 2007 15:01:57 +0100
+
+apport (0.65) feisty; urgency=low
+
+  * debian/local/setup-apport-retracer:
+    - Replace grep-dctrl with grep call, since grep-dctrl is not installed in
+      all the DC chroots.
+    - Do not download apport source from archive.u.c., instead require that
+      this script lives in the unpacked apport source tree.
+  * bin/apport-chroot: Use apt-get options -y and --allow-unauthenticated when
+    installing additional packages.
+  * bin/apport-chroot: Handle --extra-package for 'upgrade', too, to provide a
+    simple way of adding a package to an existing chroot tarball.
+  * debian/local/setup-apport-retracer: Create tarball chroots by default.
+    It only imposes a negligible overhead, and sharing unpacked directories
+    with multiple people is just too brittle.
+  * bin/apport-retrace: Add option --no-purge to not purge unpacked packages
+    after retracing. This is (only) useful with temporarily unpacked chroots,
+    since it's only a waste of time there.
+  * bin/apport-chroot: Call apport-retrace with --no-purge when retracing in a
+    chroot tarball.
+  * apport/chroot.py: Add fix_symlinks() method to remove the chroot root
+    directory prefix from symbolic links; they prevent function of tarball
+    chroots and moving around directory chroots. Add test case.
+  * bin/apport: Fix symlinks after creating and upgrading a chroot.
+  * bin/apport-chroot: Add option --save to update a tarball after logging
+    in to it.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 10 Mar 2007 21:21:25 +0100
+
+apport (0.64) feisty; urgency=low
+
+  * bin/apport-chroot: Add 'login' command.
+  * bin/apport-chroot: Install apport-retrace into a newly created chroot.
+  * Add debian/local/setup-apport-retracer: Script to install local versions
+    of apport, debootstrap, fake{,ch}root libraries, and a feisty apport
+    fakechroot. This works OOTB on ronne's amd64 and i386 feisty chroots. The
+    script is not shipped in any package yet, but it's convenient to ship it
+    in revision control and in the source.
+  * apport/report.py, _check_interpreted(): When calling an interpreter with a
+    script name as argument, set ExecutablePath to the script instead of the
+    interpreter. Add test case. (LP: #88794)
+  * apport/report.py, search_bug_patterns(): Catch all exceptions from
+    urlopen(), not just IOError. Sometimes this fails with funnier errors.
+    (LP: #89589)
+  * bin/apport-retrace: Give some additional explanation when installing
+    packages fails. (LP: #89916)
+  * apport/fileutils.py, get_all_{system_,}reports(): Fix file access race
+    condition. (LP: #89977)
+  * bin/apport-retrace: Add option -p/--extra-package to install an additional
+    package for retracing. May be specified multiple times. Document new
+    option in man/apport-retrace.1. (LP: #90077)
+  * bin/apport-chroot: Add a similar option -p/--extra-package and install
+    those in the 'create' command and simply pass it to apport-retrace in the
+    'retrace' command. (LP: #90077)
+  * bin/apport-chroot: Add a -v/--verbose option.
+  * bin/apport-retrace: Do not complain about missing ddebs for Arch: all
+    packages.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue,  6 Mar 2007 16:20:41 +0100
+
+apport (0.63) feisty; urgency=low
+
+  New feature: fakechroot support for apport-retrace
+
+  * bin/apport-retrace:
+    - Simplify program design and throw away the complicated debug symbol
+      sandbox generation, along with the -d and -C options.  Instead, directly
+      install the missing packages and ddebs with apt. This makes the tool more
+      suitable for running in chroots and has often been requested anyway.
+    - Add option -u/--unpack-only which causes additionally installed packages
+      to be unpacked without being configured and purged again after
+      retracing. This allows apport-retrace to work under fakechroot and has
+      the nice side effect of speeding up package installation (we do not care
+      about configuration for retracing anyway).
+  * man/apport-retrace.1: Update description for the new behaviour, drop
+    documentation of the -d and -C options, and add documentation of -u.
+  * Add apport/chroot.py: Class for representing and working with chroots;
+    this uses the fakeroot and fakechroot libraries when being called as
+    non-root.
+  * Add bin/apport-chroot: CLI frontend for doing various things with
+    chroots (including fakeroot/fakechroot support from the Chroot class). For
+    now, this implements:
+    - create a chroot (tarball or directory)
+    - dist-upgrade a particular or all chroots
+    - apport-retrace a bug or Apport report file
+  * setup.py: Ship apport-chroot in scripts directory.
+  * Add a new package apport-retrace which ships apport-retrace and
+    apport-chroot and carries all the heavier dependencies (binutils,
+    python-launchpad-bugs, python-apt, etc.). Drop the latter two dependencies
+    from the apport package. This allows us to install the apport-retrace
+    package in fakechroots (not possible with apport itself) and avoid
+    unnecessary dependencies on normal desktop installations.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon,  5 Mar 2007 11:20:36 +0100
+
+apport (0.62) feisty; urgency=low
+
+  * apport/ui.py, collect_info(): Use REThread instead of Thread and raise
+    exceptions from it, so that errors during info collection actually become
+    visible.
+  * apport/report.py, add_proc_info(): Check that ExecutablePath actually
+    exists, so that invalid values from transient error conditions are ignored
+    (such as '/usr/bin/gnome-panel\x00\x00\x8b (deleted)').
+  * apport/packaging.py: Add interface get_system_architecture() to return the
+    system architecture in the distro specific notation. This can differ from
+    get_architecture(package) on multiarch platforms such as amd64.
+  * backends/packaging-dpkg.py: Implement get_system_architecture() to return
+    dpkg --print-architecture, add a shallow test case.
+  * apport/report.py, add_package_info(): Rename key 'Architecture:' to
+    'PackageArchitecture:' for clarity.
+  * apport/report.py, add_os_info(): Add system architecture as
+    'Architecture:' field.
+  * apport/ui.py, create_crash_bug_title(): Append warning about non-native
+    package if package architecture does not match the system's one.
+  * All test suites: Remove redundant word 'behaviour' from test descriptions.
+  * test-hooks: Run tests on installed hooks in /usr/share/apport by default
+    and add a '--local' switch to test the hooks in the source tree instead.
+    Use this option in run-tests.
+  * apport/report.py, test_add_proc_info(): Change the python script test
+    so that it does not depend on being run in the source tree.
+  * run-tests: Add a 'local' command line option which runs tests on the files
+    and modules in the build tree. Run tests on system files/modules by
+    default.
+  * setup.py, debian/apport.install: Ship test-hooks, test-apport, and
+    run-tests in /usr/share/apport/testsuite/, so that the full test suite can
+    be run in the installed system.
+  * gtk/apport-gtk.desktop.in: Only show in Gnome and Xfce.
+  * qt4/apport-qt.desktop.in: Only show in KDE.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu,  1 Mar 2007 10:43:29 +0100
+
+apport (0.61) feisty; urgency=low
+
+  * bin/apport:
+    - Kernel 2.6.20-9 now sets CORE_REAL_RLIM to -1 instead of not setting it;
+      handle this case correctly. (LP: #87065)
+    - Add forgotten multiplication of CORE_REAL_RLIM with 1024, since ulimit
+      sets kB, not bytes.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 27 Feb 2007 16:06:11 +0100
+
+apport (0.60) feisty; urgency=low
+
+  * gtk/apport-gtk.glade: Reintroduce window titles. Since the crash
+    notifications are like alerts, title have been removed recently to comply
+    with Gnome HIG standards, but then the user will get 'nameless window'
+    buttons in the task bar. Let's have the smaller evil then. (LP: #87164)
+  * apport/packaging.py: Add get_architecture() interface for determining the
+    architecture of a particular package (which might not match the overall
+    system architecture on multiarch-capable systems, e. g. an i386 Firefox
+    package installed on amd64).
+  * backends/packaging-dpkg.py: Implement get_architecture() and add test
+    case.
+  * apport/report.py, add_package_info(): Add Architecture: field.
+    (LP: #87424)
+  * apport/ui.py: Already mark report as seen when we load it, not just in the
+    information collection thread. That way, reports will only be shown once
+    on systems which have /var/crash mounted noatime, too. (LP: #85809)
+  * apport/fileutils.py, mark_report_seen(): If os.utime() fails, and opening
+    the report file for reading does not change the atime (happens with
+    noatime mount option), don't throw an exception, just delete the report.
+    (other aspect of LP: #85809)
+  * qt4/apport-qt: Wrap gettext() into an unicode(str, 'UTF-8') call,
+    otherwise all non-ASCII unicode strings are broken. (LP: #87757)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 26 Feb 2007 20:55:40 +0100
+
+apport (0.59) feisty; urgency=low
+
+  * apport/report.py: Check that interpreter options are discarded in
+    test_check_interpreted_script(). This replicates bug #87005.
+  * apport/report.py, _check_interpreted_script(): Filter out interpreter
+    command line options. This should make the detection of interpreted
+    scripts more robust. (LP: #87005)
+  * test-apport, check_crash(): Differ between expecting the program dumping
+    core and finding a core dump on disk, because this is not equivalent any
+    more with core pipelining.
+  * bin/apport: Write core files into a process' cwd if the process' ulimit
+    requests and permits it and the crashes process is not packaged, so that
+    developers get happy again. Test this behaviour with various ulimits in
+    test-apport.
+  * test-apport: Check that the core file written by apport is valid. This
+    uncovers kernel bugs like #87065
+  * problem_report.py test suite: Use assertAlmostEqual() when comparing stat
+    times, since they are floats on some systems.
+  * apport/report.py, add_gdb_info():
+    - Remove all the initial gdb output, which gets rid of the duplicated #0
+      line.
+    - Replace some stray tabs with spaces.
+    - Thanks to Kees Cook for this!
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 22 Feb 2007 19:52:52 +0100
+
+apport (0.58) feisty; urgency=low
+
+  * qt4/apport-qt.desktop.in  move to System menu
+
+ -- Jonathan Riddell <jriddell@xxxxxxxxxx>  Tue, 20 Feb 2007 11:35:17 +0000
+
+apport (0.57) feisty; urgency=low
+
+  * apport/ui.py: Intercept ENOMEM and fail gracefully; there is little else
+    we can do at that point, and there is no point in presenting a crash
+    report for this. (LP: #85155)
+  * apport/ui.py: Ignore KeyError when deleting the CoreDump field on sending
+    a reduced report. This Should Not Happen™, but nevertheless did.
+    (LP: #86083)
+  * gtk/apport-gtk, qt4/apport-qt: Intercept ImportError for the non-builtin
+    Python modules. This usually happens for crashes when there is a
+    dist-upgrade active and some Python packages have not been configured yet.
+    (LP: #86007)
+  * apport/ui.py: If the problem report does not apply to a packaged program,
+    and we have an ExecutablePath, mention it in the error message for easier
+    debugging.
+  * apport/python_hook.py: Resolve symbolic links in ExecutablePath.
+    (LP: #85529)
+  * apport/ui.py, open_url(): Remove debugging print statement again, now
+    that we tracked down bug #83974.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 19 Feb 2007 14:40:29 +0100
+
+apport (0.56) feisty; urgency=low
+
+  * apport/ui.py, open_url(): When being invoked as root, call gnome-open or
+    firefox as root through sudo instead of dropping our uid/gid and calling
+    it normally. The latter does not work for Firefox for some  mysterious
+    reason. Thanks to Mika Fischer for this trick. (LP: #81207)
+  * Add debian/local/ubuntu-bug.1: Manpage for ubuntu-bug. Add it to
+    debian/apport.manpages.
+  * qt4/apport-qt: Add some missing features that are present in the GTK UI:
+    - Do not show details by default, add a button to show them.
+    - Add complete/reduced bug report radio buttons.
+    - Thanks to Michael Hofmann for this!
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 15 Feb 2007 14:59:07 +0100
+
+apport (0.55) feisty; urgency=low
+
+  * Add debian/local/ubuntu-bug: Check for a running KDE or Gnome session,
+    availability of apport-gtk and -qt, and open the appropriate GUI in bug
+    filing mode. This makes it convenient for shell users and is also required
+    for proper Firefox 'Report a bug...' menu integration (see bug #85041).
+  * debian/apport.install: Install ubuntu-bug to /usr/bin.
+  * gtk/apport-gtk: Generously add some gtk.main_iteration() calls to avoid
+    hanging dialogs, since we do not have a main loop.
+  * apport/ui.py: Do not silently ignore exceptions while uploading data to
+    Launchpad, but intercept them and display their message in the error
+    dialog. (Part of LP: #84992)
+  * apport/ui.py: Switch from edge.launchpad.net to production launchpad.net,
+    since the necessary bits are now there. (LP: #84992)
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 14 Feb 2007 13:37:52 +0100
+
+apport (0.54) feisty; urgency=low
+
+  * bin/apport: Re-enable, now that our kernel has been fixed to pipe complete
+    core dumps to us.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 13 Feb 2007 09:33:38 +0100
+
+apport (0.53) feisty; urgency=low
+
+  * apport/ui.py, open_url(): Remove some accidentally left-over debugging
+    junk.
+  * gtk/apport-gtk: Process pending GTK events after hiding the info
+    collection window to avoid a hanging dead dialog.
+  * gtk/apport-gtk: Do not count the lines of fields with binary data. This
+    particularly avoids long delays with huge core dumps. (LP: #81979)
+  * apport/ui.py, open_url(): Print URL to stdout, so that we can debug the
+    weirdness in #83974.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 12 Feb 2007 16:57:05 +0100
+
+apport (0.52) feisty; urgency=low
+
+  * apport/report.py: Fix hook directory to be
+    /usr/share/apport/package-hooks/,  not /u/s/apport/.
+  * Add doc/package-hooks.txt: Document per-package hooks, ship in package
+    apport.
+  * Add debian/apport.dirs: Ship package-hooks/ directory.
+  * gtk/apport-gtk, qt4/apport-qt: Fix detection of binary data so that the
+    CoreDump is not displayed as incomprehensible gibberish any more.
+  * Add qt4/apport-qt.desktop.in and add it to POTFILES.in.
+  * bin/apport-retrace: --verbose can now be specified multiple times to
+    increase verbosity and debug package installation. Also, fix some quoting
+    bugs. Thanks to Kees Cook for this!
+  * qt4/apport-qt: Fix restart button handling. (LP: #84202)
+  * qt4/apport-qt: Do not try to call splitlines() on a report value that is a
+    file reference; just display the reference instead. (LP: #84196)
+  * bin/apport: Disable for now, since the current kernel produces cropped
+    core dumps and thus we get totally useless crash reports
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri,  9 Feb 2007 18:58:08 +0100
+
+apport (0.51) feisty; urgency=low
+
+  New feature: Qt4 GUI implementation:
+
+  * Added qt4/: Qt4 implementation of the abstract user interface. Thanks to
+    Michael Hofmann <mh21@xxxxxxxxx> for that!
+  * debian/copyright: Add Michael as copyright holder.
+  * setup.py, debian/control, debian/apport-qt.install: Packaging bits for
+    apport-qt.
+  * Move translations from apport-gtk to apport, since they are shared between
+    frontends. Add appropriate Conflicts/Replaces (we don't strictly need it
+    here because we strip them anyway, but we need that for the moving icon
+    anyway).
+  * Move icon from apport-gtk to apport, since it is/can be shared between
+    frontends.
+
+  Improvements:
+
+  * Replaced old apport.png icon stolen from bug-buddy with nice SVG one.
+    Thanks to Troy Sobotka for this!
+  * debian/copyright: Add Troy as copyright holder for the icon.
+  * bin/apport-retrace, man/apport-retrace.1: Document that report can now be
+    a LP bug number.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu,  8 Feb 2007 20:01:12 +0100
+
+apport (0.50) feisty; urgency=low
+
+  * gtk/apport-gtk.glade: Fix 'prolem' typo.
+  * bin/apport-retrace: Use python-launchpad-bugs to create a Report object
+    from a given Launchpad bug number (given as argument instead of the report
+    file path). Add appropriate p-l-b dependency.
+  * gtk/apport-gtk: Mark '(binary data)' string as translatable.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu,  8 Feb 2007 15:15:47 +0100
+
+apport (0.49) feisty; urgency=low
+
+  * gtk/apport-gtk.glade: Fix s/send/sent/ typo. Closes: LP#83061
+  * apport/ui.py, create_crash_bug_title(): Cope with odd Tracebacks that are
+    shorter than three lines. Add test case from the bug. Closes: LP#83556
+  * apport/python_hook: Do not create a report if the binary is ignored. Add
+    test case. Closes: LP#83566
+  * gtk/apport-gtk: Do not save/alter crash dialog title any more, it's empty
+    now.
+  * apport/ui.py, open_url(): Check the user's session for
+    ksmserver/gnome-session to decide whether to prefer kfmclient or
+    gnome-open. Also, only call Firefox directly if gconf's prefered browser
+    is actually Firefox. Closes: LP#82007
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue,  6 Feb 2007 18:33:15 +0100
+
+apport (0.48) feisty; urgency=low
+
+  New feature: Infrastructure for reporting kernel Oopses:
+
+  * Add bin/kernel_hook and ship it in /usr/share/apport. The kernel can call
+    this on an Oops. Add a test suite for it to test-hooks.
+  * apport/ui.py: Add support for reporting ProblemType: Kernel reports, and
+    add test suite for the workflow.
+  * gtk/apport-gtk{,.glade}: Add implementation for ui_present_kernel_error().
+
+  Improvements:
+
+  * Merged various apport-retrace improvements from Kees' branch:
+    - Add various options to override some report fields with local values.
+    - Add --verbose option and be quiet by default.
+    - Read ProcMaps for additional library dependencies, to also catch
+      libraries loaded at runtime (plugins).
+    - Set correct debug file directory when starting an interactive gdb
+      session with -g.
+  * Add gtk/apport-gtk.desktop.in: Desktop file for calling apport-gtk in
+    'file a distro bug' mode, to be displayed in gnome-panel's System menu
+    (see bug-reporting-tool spec). Also add a Makefile to do the
+    intltool-merge dance, add it to POTFILES.in, and ship it in
+    debian/apport-gtk.install.
+  * bin/apport: Call add_os_info(), so that we get architecture information
+    even for 'naked' reports which didn't go through UI enrichment.
+  * Add ./test-hooks: Test suite for the various package hooks shipped with
+    apport. Test the package problem hook for now.
+
+  Bug fixes:
+
+  * debian/control: Add missing python-apt dependency to apport
+    (apport-retrace needs it). Thanks to Kees Cook for noticing.
+  * debian/control: Add gdb dependency to python-apport.
+  * backends/packaging-dpkg.py test suite: Verify that packages returned by
+    get_dependencies() actually exist. This catches the 'chops off first
+    letter of package name sometimes' bug.
+  * backends/packaging-dpkg.py, _init_status(): Add missing space to Depends:
+    field format in dpkg-query call. This fixes the chopped-off first letters
+    in the 'Dependencies' report field.
+  * setup.py: Remove version attribute, we do not update and use it anyway.
+  * apport/ui.py: Do not crash if Package: specifies a nonexisting package.
+    Display a proper error message instead. Add test_run_crash_errors() test
+    case.
+  * apport/report.py, add_package_info(): Fix crash when the first dependency
+    is not installed. Closes: LP#82561
+  * gtk/apport-gtk.glade: Remove window titles in alert dialogs to comply with
+    Gnome HIG. Closes: LP#83123
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon,  5 Feb 2007 12:19:35 +0100
+
+apport (0.47) feisty; urgency=low
+
+  * apport/report.py, add_hooks_info(): Only use first part of 'Package:',
+    there might be a version number and a changed files list which we must not
+    propagate to the import statement. Closes: LP#82566
+
+ -- Kees Cook <kees@xxxxxxxxxx>  Wed, 31 Jan 2007 15:37:11 -0800
+
+apport (0.46) feisty; urgency=low
+
+  * debian/control: Bump dependencies to python-apport due to recent changes
+    in expected return values in some UI functions. Closes: LP#82267
+  * bin/package_hook: Remove erroneous 'import apport.packaging', which
+    shadows the packaging variable in the apport package. This unbreaks the
+    package problem hook. Closes: LP#82297
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 31 Jan 2007 07:51:24 +0100
+
+apport (0.45) feisty; urgency=low
+
+  New feature: Infrastructure for package install/upgrade failures:
+
+  * Add bin/package_hook: Script for creating a report for a package
+    installation/upgrade failure. It receives a package name, a number of log
+    files, and an ErrorMessage: from stdin. This will be called from e.g.
+    dist-upgrader.
+  * setup.py, debian/apport.install: Ship package_hook.
+  * apport/ui.py: If ProblemType is 'Package', call a new function
+    self.ui_present_package_error() instead of presenting a crash. Add test
+    suite checks for the package error report workflow.
+  * apport/ui.py, create_crash_bug_title(): Create default bug title for
+    package reports. Add various test cases.
+  * gtk/apport-gtk{,.glade}: GTK implementation of ui_present_package_error().
+
+  New feature: Maintain a per-binary blacklist to inhibit apport crash reports
+  until the binary changes. Closes: LP#79408
+
+  * apport/report.py: Add new Report methods check_ignored() and mark_ignore()
+    to check for/set ignore list entries. Add test cases.
+  * apport/ui.py: Add another return value of ui_present_crash() to specify
+    whether or not to blacklist the current crash's executable. Check workflow
+    of both responses in the test suite.
+  * gtk/apport-gtk{,.glade}: Add a blacklist checkbox to the crash
+    notification dialogs.
+  * bin/apport: Do nothing if the current crash is blacklisted.
+  * test-apport: Test blacklisting.
+
+  Bug fixes:
+
+  * gtk/apport-gtk: Fix return code for restarting the application ('reopen' ->
+    'restart'). Closes: LP#81422
+  * test-apport: Adapt to new core_pattern kernel interface mode:
+    - Check core_pattern instead of the obsolete crashdump sysctl to determine
+      whether or not apport is running.
+    - Give apport max. 10 seconds to complete. The current kernel reaps the
+      crashed process as soon as writing the core dump to the pipe is
+      finished, but apport still needs to write the report file.
+    - Do not EXFAIL the test for crashes in nonwriteable cwd any more, since
+      it is now supposed to work (we do not write a core dump to the disk any
+      more).
+  * run-tests, use-local: Adapt to new core_pattern kernel interface.
+  * apport: Improve logging of exceptions, include environment variables.
+  * apport/report.py test suite: Use gdb to generate a test core dump, do not
+    rely on kill(SIGSEGV) and the kernel to do it (since we now use a pipe in
+    core_pattern).
+  * backends/packaging-dpkg.py: Fix return value of get_modified_files() if
+    dpkg .list file is missing.
+  * apport/report.py, add_package_info(): Do not produce stray empty lines for
+    uninstalled alternative dependencies.
+  * apport/report.py: Fix test_add_gdb_info_script() to not leave behind a
+    stray gzip process which randomly blocks stdin. Closes: LP#78421
+  * backends/packaging-dpkg.py: Do not read the dpkg status in the
+    constructor, but lazily initialize it when actually calling a query
+    function. This avoids imposing the dpkg-query overhead for programs that
+    import the apport package without doing package queries (such as any
+    Python program under Ubuntu, due to the Python crash hook).
+  * apport/ui.py, create_crash_bug_title():
+    - Do not crash on an empty StacktraceTop. Closes: LP#81677
+    - Do not mention an unknown function name ('??') in the bug title;
+      instead, use the topmost function with a known name, or leave it out
+      at all.
+    - Add test cases for these situations.
+  * apport/report.py, _get_ignore_dom(): Do not throw an error for an empty
+    ignore list file.
+
+  Code cleanups:
+
+  * apport/report.py test suite: Refactorize generation of test crash program
+    and core dump generation.
+  * Consistently use 'in'/'not in' instead of find() for substring searches.
+  * Changed the packaging backend import, so that its methods can now be
+    accessed at apport.packaging instead of apport.packging.impl.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sun, 28 Jan 2007 12:34:05 +0100
+
+apport (0.44) feisty; urgency=low
+
+  Some more 'Need for Speed' optimizations:
+
+  * backends/packaging-dpkg.py, _check_files_md5(): Also accept a md5sum
+    string in addition to a md5sum file.
+  * backends/packaging-dpkg.py, get_modified_files(): Compare package file's
+    ctime and mtime against the package list file's mtime and only md5sum the
+    files that are newer. This drastically reduces the amount of md5suming
+    (usually to zero) and thus speeds up the information collection.
+  * backends/packaging-dpkg.py: Use a single hackish 'dpkg-query --show *'
+    as a portable variant of 'cat /var/lib/dpkg/status' to pre-fill the status
+    cache with all packages instead of calling dpkg -s on every single package
+    we query. This changes the time for figuring out dependencies and their
+    versions from 'unbearable for many packages' to 'barely noticeable'.
+
+  New feature: per-package apport hooks to collect additional information:
+
+  * apport/report.py: Add method add_hooks_info() which executes a function
+    add_info(report) from /usr/share/apport/<package>.py. Also add
+    appropriate test cases. This provides per-package hooks for apport.
+  * apport/ui.py: Call add_hooks_info() in the information collection thread.
+
+  Bug fixes:
+
+  * apport/report.py: Add some more test cases for _check_interpreted() for
+    Python scripts.
+  * apport/python_hook.py: Check for a correct ExecutablePath in
+    test_general().
+  * apport/python_hook.py: Use fileutils.likely_packaged() instead of
+    checking for /tmp and home, so that we ignore stuff in /usr/local, too.
+    Closes: LP#81244
+  * apport/python_hook.py: If we figure out an ExecutablePath which is not
+    actually an executable, do not create a report. This particularly affects
+    interactive python sessions where sys.argv[0] is empty and thus
+    ExecutablePath ends up being the current directory. Add test cases.
+    Closes: LP#81237
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 24 Jan 2007 17:16:04 +0100
+
+apport (0.43) feisty; urgency=low
+
+  * apport/ui.py: Add method create_crash_bug_title() to construct a
+    reasonable standard bug title for crash reports, so that the automatic
+    duplicate detection actually has a chance to work. Also add test cases for
+    various signal crashes and an unhandled Python exception.
+  * apport/ui.py, file_report(): Submit a default bug title for crash reports.
+    Closes: LP#79657
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 23 Jan 2007 16:26:40 +0100
+
+apport (0.42) feisty; urgency=low
+
+  New feature: https://wiki.ubuntu.com/ApportImprovements (kernel interface
+  change):
+
+  * bin/apport: Support calling without arguments, to support new semantics
+    agreed in the ApportImprovements spec: macro values (in particular, pid
+    and signal number) are passed as environment variables.
+  * preloadlib/libapport.c: Simulate new kernel behaviour described above.
+  * debian/apport.init: Set the kernel's core_pattern sysctl to pipe to apport
+    if the edgy-style 'crashdump-helper' sysctl helper does not exist.
+
+  Bug fixes:
+
+  * bin/apport-retrace: Beautify error message when report file is not
+    accessible. Closes: LP#79568
+  * apport/ui.py: Fix crash in the bug pattern search thread if we could
+    not determine a package name. Closes: LP#77872
+  * bin/apport: Only unlink the core dump if it still exists. Closes: LP#80866
+  * gtk/apport-gtk.glade: Fix expand/fill attributes so that the expander gets
+    all the space when resizing the window. Closes: LP#80987
+  * problem_report.py, write_mime(): Make sure that multi-line values that go
+    to the summary are terminated with a newline.
+  * apport/ui.py: Fix error message invocation for reporting cloakroom upload
+    failure.
+  * problem_report.py, write_mime(): Fix off-by-one comparison of the 'inline
+    text' treshold, so that apport's StacktraceTop field appears in bug
+    summaries. Also fix a corner case in CR line ending handling. Check both
+    things in the test suite.
+  * gtk/apport-gtk: Add missing 'import subprocess.'. Closes: LP#81007
+  * debian/control: Bump apport's and apport-gtk's dependency to python-apport
+    to make sure that apport.ui is available. Closes: LP#81019
+  * apport/ui.py: Add missing 'import pwd'. Closes: LP#81033
+
+  Minor improvements:
+
+  * apport/ui.py: Get the cloakroom ticket number from the
+    X-Launchpad-Blob-Token HTTP header instead of parsing the resulting page.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 23 Jan 2007 11:27:20 +0100
+
+apport (0.41) feisty; urgency=low
+
+  New feature: Use Malone cloakroom for uploading reports. Closes: LP#70919
+
+  * gtk/apport-gtk.glade: Redesign bug reporting dialog to have a 'Create bug
+    report' and a 'Cancel' button. Also assign GTK_RESPONSE_* constants to the
+    dialog buttons. Go back to Glade 2 since Glade 3 still sucks too much.
+  * gtk/apport-gtk: Adjust workflow for sending report to Malone cloakroom
+    instead of asking the user to attach the file. Sending is not yet
+    implemented, though.
+  * gtk/apport-gtk: Do not show any dialogs any more when filing a bug.
+  * Add apport/MultipartPostHandler.py: This module provides an urllib2 opener
+    for uploading file attachments to forms over HTTP POST. This module is
+    (C) 2006 Will Holcomb <wholcomb@xxxxxxxxx> and was taken from
+    http://odin.himinbi.org/MultipartPostHandler.py. (This is a serious hole
+    of the Python standard library IMHO.)
+  * apport/ui.py, file_report(): Upload blob to Malone (edge.launchpad.net for
+    now), retrieve the ticket, and pass it to +filebug.
+
+  Refactorizations:
+
+  * gtk/apport-gtk: Major refactorization to use modal dialogs and run()
+    instead of loosely coupled event handlers.
+  * Add apport/ui.py: Abstract frontend which encapsulates the logic, workflow
+    and UI independent bits and provides UI hooks for concrete
+    implementations. This both makes it easy to write more frontends like Qt
+    or CLI, and also makes the code automatically testable. Add an extensive
+    testsuite.
+  * run-tests: Add ui.py testsuite.
+  * gtk/apport-gtk: Port to ui.py's UserInterface (which means moving 1/3 of
+    the code into the new ui_*() methods and throwing away the rest).
+  * Add apport/REThread.py: Enhanced threading.Thread class that can propagate
+    the return value and uncaught exceptions of run() to the calling thread.
+  * apport/ui.py: Get rid of thread_check_bugpatterns() and hackish exception
+    handling, rewrite using REThread.
+  * apport/ui.py, gtk/apport-gtk: Add progress bar to report upload. It is
+    indefinite for now, because neither urllib2 nor httplib support upload
+    progress.
+
+  Bug fixes:
+
+  * gtk/apport-gtk.glade: Merged Gnome HIG fixes from Sebastian Heinlein,
+    thank you!
+  * Merge patch from Sebastian Heinlein to properly treat the apport-gtk icon
+    the dh_iconcache way and make it themeable. Thank you!
+  * gtk/apport-gtk: Remove periods from primary dialog texts to comply with
+    Gnome HIG standards.
+  * backends/packaging-dpkg.py, get_file_package(): Process list files in
+    chunks of 100, so that we do not exceed the maximum command line length if
+    there is a large number of packages installed. Closes: LP#64839
+  * gtk/apport-gtk: Use pgrep with -u instead of pidof for testing whether the
+    crashed process is already running again, so that we do not match
+    processes of other users. Add procps package dependency for this.
+  * gtk/apport-gtk: Only offer to restart programs that are in the $PATH. E.
+    g. /usr/lib/firefox/firefox-bin cannot be called directly.
+    Closes: LP#79623
+  * apport/report.py: Disassemble 16 instructions instead of 32 bytes to
+    become independent of the instruction size. Thanks to Kees Cook for the
+    patch!
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 22 Jan 2007 10:47:33 +0100
+
+apport (0.40) feisty; urgency=low
+
+  * debian/control: Add missing python-dev build dependency, which is
+    apparently required for 2.5 now.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 15 Jan 2007 11:06:20 +0100
+
+apport (0.39) feisty; urgency=low
+
+  * Introduce abstract packaging interface and move all dpkg/apt specific bits
+    to a dpkg implementation of this packaging interface (merge
+    apport/abstract-pkg branch):
+    - Add apport/packaging.py: Abstract packaging system query interface.
+    - Add backends/packaging-dpkg.py: dpkg implementation of abstract
+      packaging interface.
+    - run-tests: Run tests of all backends.
+    - apport/fileutils.py, apport/report.py: Port to packaging.py interface.
+    - debian/control: Drop python-apport's 'python-apt' dependency since the
+      backend only uses dpkg now (without measurable performance penalty since
+      it uses internal caching).
+    - debian/rules: Install backends/packaging-dpkg.py as our packaging
+      backend to apport/packaging_impl.py and remove it again on clean.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 13 Jan 2007 15:53:08 +0100
+
+apport (0.38) feisty; urgency=low
+
+  * Add ./COPYING: GPL license.
+  * debian/rules: Build POT file again.
+  * apport/fileutils.py: Add get_all_system_reports() and
+    get_new_system_reports() and added test cases. Now the test suite can also
+    be run as root to be able to actually check their complete behaviour.
+    Adapt the other tests to get along with running the tests as root.
+  * bin/apport-checkreports: Add option --system to check for system crash
+    reports. Closes: LP#62316
+  * gtk/apport-gtk: If called through sudo to process system crashes, drop
+    privileges to the original user in open_url() so that we get the web
+    browser correctly. (LP#62316) Caveat: The user cannot actually attach the
+    crash report file directly since it is not accessible to the user; this
+    will get fixed once Malone is able to link a bug report with uploaded
+    blobs.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 12 Jan 2007 14:29:44 +0100
+
+apport (0.37) feisty; urgency=low
+
+  * problem_report.py: Remove the requirement that values must not contain
+    empty lines. Add test cases that reading and writing values with empty
+    lines works, and add a test case that load() properly complains about
+    empty lines in debcontrol encoding (empty lines in values are encoded with
+    a single space). Closes: LP#78094
+  * apport/report.py test suite: Do not rely on a particular structure of the
+    'cat' stacktrace; apparently this is not consistent across architectures.
+    Instead, compile a segfaulting mini C program, let it dump core, and test
+    add_gdb_info() on it instead. This also allows us for a more rigid check
+    of StacktraceTop.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon,  8 Jan 2007 14:44:08 +0100
+
+apport (0.36) feisty; urgency=low
+
+  * gtk/apport-gtk.glade: Restore pulse step of progress bar (this apparently
+    got destroyed when saving with Glade 3).
+  * gtk/apport-gtk{,.glade}: Terminate the program properly when closing the
+    progress dialog instead of exiting with an exception.
+  * gtk/apport-gtk: Defer opening of the bug reporting window a bit so that
+    it appears on top of the browser window. Also enable the task bar blinking
+    for it when it is in the background.
+  * gtk/apport-gtk.glade: Restore vertical padding of bug report dialog labels
+    (another Glade 3 transition regression).
+  * bin/apport-retrace, apport/report.py: Call gdb on InterpreterPath if
+    present; calling it on a script does not yield anything useful. Add a test
+    case to report.py.
+  * debian/apport.init: Use mkdir -p instead of install -d, since install is
+    not in /bin. Thanks to Kees Cook for catching this.
+  * debian/control: Add missing python-apport dependency 'python-apt', which
+    is not caught by ${python:Depends}.
+  * gtk/apport-gtk: Catch MemoryError when loading a report and display an
+    error dialog instead of just crashing. Closes: LP#76235
+  * gtk/apport-gtk: Properly catch exceptions from the bug pattern check
+    thread to avoid useless backtraces like in bug #75160.
+  * gtk/apport-gtk: Catch exceptions from decoding of damaged reports and
+    display an error message instead of crashing. Closes: LP#77149
+  * apport/report.py: Add missing import of 'time' to test suite.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri,  5 Jan 2007 09:49:01 +0100
+
+apport (0.35) feisty; urgency=low
+
+  Optimizations:
+
+  * apport/fileutils.py: Split out heuristics for determining whether a file
+    belongs to a package to new function likely_packaged() and add test cases.
+  * bin/apport: Do not use the expensive find_file_package() any more, use
+    likely_packaged() instead. This will create initial reports in some
+    corner cases (like custom non-packaged executables in /usr/bin/), but
+    greatly reduces I/O impact at crash time. We rely on apport-gtk to deal
+    with reports that do not actually belong to a packaged executable.
+  * apport/report.py, add_gdb_info(): Call gdb just once and split the output
+    instead of calling it again for each command. This should significantly
+    speed up the gdb stage especially for large programs/core dumps.
+  * Use cStringIO instead of StringIO in modules.
+  * gtk/apport-gtk: Code cleanup and refactorization:
+    - Move iteration over crash reports into __main__ to simplify housekeeping
+      in the ApportGTK class and get rid of some functions.
+    - Refactor creation of temporary report file.
+  * gtk/apport-gtk.glade: Split the text in the progress bar dialog so that we
+    can use it for multiple steps (like uploading data to Malone) while not
+    breaking translations.
+
+  New feature: Bug reporting tool (https://wiki.ubuntu.com/BugReportingTool)
+
+  * gtk/apport-gtk: Split out crash report initialization to new function
+    show_crashes() so that we can use the frontend for other purposes like bug
+    reporting.
+  * gtk/apport-gtk: Add --file-bug, --package, and --pid options; if given,
+    create a bug report about the given package instead of viewing crash
+    reports.
+  * gtk/apport-gtk{,.glade}: Generalize some strings to not talk about 'crash'
+    any more, to make them suitable for bug reporting, too.
+  * gtk/apport-gtk: Support --file-bug without specifying a package or a PID
+    for filing generic distro bugs.
+  * problem_report.py: Add new method write_mime() to encode a problem report
+    in MIME/Multipart RFC 2822 format (i. e. an email with attachments). Short
+    values are aggregated into the first inline text/plain part, large values,
+    binary values, and file references get gzip compressed separate
+    attachments. Also add various test cases.
+
+  Bug/crash information:
+
+  * apport/report.py, add_user_info(): Add list of system groups that the user
+    belongs to.
+  * bin/apport: Call add_user_info(), check functionality in test-apport.
+  * apport/report.py, add_gdb_info(): Add field 'StacktraceTop' with the top
+    five functions on the stack and no local variables. This reduced 'glimpse'
+    is suitable for inline display in bug reports and automatic processing
+    (dup finders, etc).
+
+  Bug fixes:
+
+  * po/Makefile: Add top_srcdir to work with current intltool.
+  * po/de.po: Unfuzz some strings.
+  * apport/report.py, add_gdb_info(): Strip away the 'No symbol table info
+    available' messages from stack traces.
+  * apport/report.py, test_search_bug_patterns(): Use security.u.c. instead
+    of archive.u.c., since the latter times out too often.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed,  3 Jan 2007 16:45:20 +0100
+
+apport (0.34) feisty; urgency=low
+
+  * apport/fileutils.py, mark_report_seen(): Do not bail out if os.utime()
+    fails due to access permissions. This happens if the file does not belong
+    to the user calling apport-gtk, but is world-readable (such as ubiquity
+    crash reports). If utime() fails, repeatedly open()/close() the file for
+    reading until atime != ctime, or the 1.2s timeout is reached.
+    Closes: LP#72250
+  * apport/python_hook.py: Add unit test, call that in run-tests.
+  * apport/python_hook.py: Chmod the generated report to 0600 to not expose
+    potentially private data to the world, and to be consistent with other
+    crash reports.
+  * apport/fileutils.py: Add check_files_md5() and test cases.
+  * apport/report.py, add_package_info(): Append list of modified package
+    files to Package: and Dependencies: value. Closes: LP#70946
+  * bin/apport-retrace: Get along with Package:/Dependencies: fields with list
+    of modified files.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 22 Dec 2006 12:40:55 +0100
+
+apport (0.33) feisty; urgency=low
+
+  * debian/rules: Convert to cdbs. This fixes the dh_pysupport invocation
+    along the way, too.
+  * gtk/apport-gtk: Rework web browser invocation: Use kfmclient if available,
+    fall back to firefox-remote, then to webbrowser.open(). Do not call
+    x-www-browser any more since this would block if no running browser was
+    open before.
+  * Drop the apport_utils module (and with it the python-apport-utils
+    package), it became too much of a dumping ground. The report file handling
+    functions now live in apport.fileutils, and the debugging information
+    collectors are now methods of a new 'Report' class (subclass of
+    ProblemReport) in the new apport.report module. Adjust all programs
+    accordingly.
+  * Add debian/python-apport.postinst: Remove old .pyc and .pyo cruft on
+    upgrades to clean up after our broken dh_pysupport invocation in earlier
+    versions, so that the new modules are actually used.
+  * Remove debian/apport.postinst: Those cleanups were only necessary for
+    intra-edgy upgrades.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 19 Dec 2006 01:15:27 +0100
+
+apport (0.32) feisty; urgency=low
+
+  * apport_utils.py: Filter out "no debugging symbols found" warnings from gdb
+    outputs, and add some tests for this. Thanks to Kees Cook for the patch!
+  * test-apport: Fix AGENTPATH directory when building the preload library
+    (recently moved to bin/).
+  * use-local: Fix path to apport as well (recently moved to bin/).
+  * apport-retrace: Use ldd on InterpreterPath if present; ldd'ing scripts
+    will not get us very far. Closes: LP#72201
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 14 Dec 2006 13:42:58 +0100
+
+apport (0.31) feisty; urgency=low
+
+  * Move scripts to bin/ in source package.
+  * Add apport/python_hook.py: Default exception handler for Python, to create
+    apport reports for unhandled exceptions. Thanks to Robert Collins
+    <robert@xxxxxxxxxx> for this! Closes: LP#70957
+  * Add new package python-apport to ship the new Python package 'apport'.
+    This includes the python crash hook for now, but in the near future
+    apport-utils will get redesigned and put into this package, too.
+  * debian/control: apport now depends on python-apport instead of
+    python-apport-utils.
+  * apport_utils.py: Quiesce gdb error messages in test suite.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 25 Nov 2006 12:30:41 +0100
+
+apport (0.30) feisty; urgency=low
+
+  * test-apport, use-local: Support both kernel 2.6.17 and 2.6.19 sysctl names
+    (crashdump-helper vs. crashdump).
+  * gtk/apport-gtk.glade: Improve dialog title capitalization.
+    Closes: LP#70652.
+  * debian/apport.cron.daily: Immediately exit if /var/crash does not exist.
+    Create /var/crash in debian/apport.init if it does not exist.
+    Closes: LP#71599
+  * Convert all tabs in Python source code files to spaces to comply to PEP 8.
+    Thanks to Robert Collins for pointing this out.
+  * apport_utils.py, gtk/apport-gtk: Do not pass None to subprocess arguments
+    if report belongs to a non-packaged program. Thanks to Robert Collins for
+    discovering and fixing this! Closes: LP#70942
+  * debian/apport.init: Change /var/crash permissions to 1777, so that custom
+    crash handlers (in Python/Mono/etc.) can put reports there.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sat, 25 Nov 2006 10:44:33 +0100
+
+apport (0.29) feisty; urgency=low
+
+  * apport-retrace: Do not crash if a linked library is not a dependency.
+    Closes: LP#65914
+  * apport_utils.py:
+    - Add test_find_file_package_diversion() selftest to check diversion
+      handling.
+    - find_file_package(): Check for and respect diversions.
+    - Closes: LP#65917
+  * debian/apport.init, test-apport, use-local: Adapt to 'crashdump-helper' ->
+    'crashdump' sysctl renaming in 2.6.19.
+  * test-apport: Restore cwd even when failing a test.
+  * problem_report.py, ProblemReport.write(): Support file-like objects as
+    argument of file references to support direct reading from pipes. Add test
+    case test_write_fileobj().
+  * apport: Support '-' as core file argument, in which case the core will be
+    read from stdin. This paves the way for using Linux 2.6.19's 'pipe
+    core_pattern' feature. Bump python-problem-report dependency to >= 0.29
+    for this.
+  * apport: Confine permissions of log file to root:adm 0640, just in case.
+  * apport: Temporarily drop real u/gid to target user for the os.access()
+    tests, so that normal users cannot verify the existence of a given
+    inaccessible file. Add comprehensive tests to apport_utils' test suite and
+    test-apport. Thanks to Kees Cook for this patch!
+  * apport_utils.py, find_file_package(): Terminate fgrep options with '--' to
+    avoid problems with funny file names. Thanks to Kees Cook for spotting
+    this!
+  * test-apport: Automatically detect whether ULIMIT_CORE is nonzero, and
+    adapt tests accordingly: check that core still exists after invoking
+    apport, and clean it up.
+  * apport-retrace: Add new mode -g/--gdb which starts an interactive gdb
+    session with the report's core dump. Add this to man/apport-retrace.1, too.
+  * apport-retrace: If -c is given, completely remove the CoreDump field from
+    the report instead of setting it to 'removed'.
+  * test-apport: When using 'lib' mode, point APPORT_LOG_FILE to a temporary
+    file. Print it if the test suite fails.
+  * test-apport: Fix EXFAILure of the 'core dump works for non-writable cwds'
+    test case.
+  * preloadlib: Support -DPIPE_CORE mode which emulates the
+    pipe-in-core_pattern mode of kernel 2.6.19.
+  * test-apport: Build preload library with core piping. No more failed test
+    suite checks in 'lib' mode.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sun,  5 Nov 2006 07:10:30 -0800
+
+apport (0.28) edgy; urgency=low
+
+  "No core - ignore!"
+
+  * apport: Do not create a report for crashes which we do not get a core dump
+    for. The reports are useless and only clutter our bug tracker.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon,  9 Oct 2006 15:22:32 +0200
+
+apport (0.27) edgy; urgency=low
+
+  * apport: Ignore SIGABRT for now; it's usually signalled from abort() or
+    assertion failures and we only get reports with unusable stack traces for
+    it (see #61938).
+  * gtk/apport-gtk: If gnome-open is not available, fall back to x-www-browser
+    instead of using webbrowser.py, to respect default browser in XFCE.
+    Closes: LP#64209
+  * apport: use os.nice() instead of executing 'renice'. Thanks to Benoit
+    Boissinot for noticing.
+  * apport_utils.py, find_file_package(): Lower() both strings in the speedup
+    heuristics to match e. g. /usr/bin/Xorg -> xserver-xorg. Thanks to Kees
+    Cook!
+  * apport_utils.py, report_add_package_info(): Do not crash if we encounter a
+    'None' current version, which can happen with uninstalled alternative
+    dependencies. Thanks to Kees Cook for tracking this down!
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri,  6 Oct 2006 17:15:08 +0200
+
+apport (0.26) edgy; urgency=low
+
+  * apport-retrace: Clean up code a bit:
+    - Move option parsing to separate function.
+    - Use apport_utils' report_add_gdb_info() instead of duplicating the gdb
+      code.
+  * apport_utils.py, report_add_gdb_info(): Add optional parameter 'debugdir'
+    to specify an alternate debug file symbol root directory.
+  * apport-retrace: Add option -d/--download-debug to automatically download
+    available ddebs, create a temporary debug symbol directory from already
+    installed and downloaded ddebs, and point gdb to use that. Also add option
+    -C/--cache-dir to specify a permanent ddeb cache directory (by default, a
+    temporary one is used). Update the manpage accordingly.
+  * apport-retrace: Make the best out of a report without packaging
+    information (which can happen if the user does not click on 'report bug'
+    in apport-gtk).
+  * apport_utils, report_add_proc_info():
+    - Move heuristics for detecting interpreted scripts to a separate function
+      to be able to provide separate test cases for it. Check a few more
+      special cases for mono programs.
+    - Make interpreter heuristics even scarier to detect some more mono corner
+      cases (like banshee and beagled-helper). Closes: LP#58859
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed,  4 Oct 2006 19:10:47 +0200
+
+apport (0.25) edgy; urgency=low
+
+  * Drop apport-gtk's update-notifier dependency to a Recommends:.
+  * apport_utils.py, report_add_gdb_info(): Add register dump and disassembly
+    of the last 32 bytes, they might be useful to see what's going on
+    sometimes. Thanks to Kees Cook for the idea and the patch.
+  * test-apport, check_crash(): Verify that a crash does not leave a core file
+    behind. (Test for LP#62972)
+  * preloadlib/libapport.c: Do not unlink the core file after calling apport,
+    but set REMOVE_CORE=1 environment instead. This matches the current
+    kernel behaviour.
+  * apport: Register an atexit handler as early as possible for unlinking the
+    core dump if REMOVE_CORE environment is set. Closes: LP#62972
+  * apport: Set nice level 10 instead of 5. Closes: LP#63099
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon,  2 Oct 2006 14:21:53 +0200
+
+apport (0.24) edgy; urgency=low
+
+  The "Need for speed" release -- rrrroarrr!
+
+  * apport: Remove _copy_shrink_corefile(): While this has an enormous impact
+    on the size of an uncompressed core dump, it only causes a negligible size
+    reduction of the bzip2'ed core, but it needs a lot of I/O resources for
+    large core dumps.
+  * problem_report.py:
+    - Use zlib instead of bzip2 for compressing the binary data (in
+      particular, core dumps). This results in slightly bigger files, but speeds
+      up compression a lot (30 seconds vs. ~2:45 minutes for a Firefox core dump
+      on my slow iBook). Closes: LP#61538
+    - ProblemReport.read(): Support both bzip2 and zlib compression to be able
+      to read existing reports, too.
+    - Add/Adapt test cases.
+  * Move InformationCollector._get_gdb() from apport to apport_utils.py
+    report_add_gdb_info(), and add a test case for it.
+  * apport_utils.py, report_add_package_info(): Support calling without a
+    package name, then it will be figured out from ExecutableName. Extend test
+    case accordingly.
+  * test-apport: Do not require apport reports to contain gdb, packaging, and
+    OS information, since we are going to move them out of apport.
+  * apport: Do not collect static information. It requires a lot of CPU and
+    I/O resources and slows down the machine a lot, and it can be added to
+    the report later in the frontend. This also gets rid of the entire
+    InformationCollector class, since everything has been moved to
+    apport_utils.py now. Closes: LP#62542
+  * apport: Do not intercept KeyboardInterrupt as unhandled exception (only
+    useful for command line debugging, though).
+  * problem_report.py: Add test case for appending new data to an existing
+    report, fix write() function to not rely on an existing ProblemType key.
+  * problem_report.py: Add new method ProblemReport.add_to_existing() to
+    update an already existing problem report with new data. Add test case.
+  * apport_utils.py, mark_report_seen(): Use os.utime() instead of
+    open()/read() and a timeout for simpler and faster operation.
+  * gtk/apport-gtk:
+    - Collect gdb/packaging/operating system information when the user chooses
+      to file a bug and update the apport report.
+    - Change the 'Downloading bug patterns...' progress dialog to 'Collecting
+      information about the crash...'.
+  * debian/control: Bumped library dependencies of apport-gtk, added
+    update-notifer dependency.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 29 Sep 2006 15:47:56 +0200
+
+apport (0.23) edgy; urgency=low
+
+  * apport: Reset signal handler to SIG_IGN in the crash signal handler, to
+    avoid an endless crash/handler loop (noticed during debugging LP#61708).
+  * debian/apport.init: Do not let the script run with set -e, so that
+    do_{start,stop} can deliver their return codes for proper evaluation,
+    instead of immediately existing. Closes: LP#61796
+  * test-apport: Check that SIGQUIT does not generate a report. (Check for
+    bug #62511).
+  * apport: Ignore SIGQUIT. Closes: LP#62511
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 28 Sep 2006 20:57:38 +0200
+
+apport (0.22) edgy; urgency=low
+
+  * apport_utils.py, report_add_proc_info(): Make 'interpreted script'
+    detection more general to also work for mono programs.
+  * test-apport: Check that non-packaged scripts do not generate a report.
+  * apport: Call ic.collect_runtime_information() earlier and drop the local
+    /proc/pid/exe examination, so that we get proper script detection. This
+    avoids getting crash reports for non-packaged scripts (see test case
+    change from above).
+  * apport: Do not try to chmod the report file if we could not create it and
+    output to stderr instead (this mainly affects local testing only).
+  * apport_utils.py, find_file_package(): First grep the package lists whose
+    names are a substring of the crashed binary name (or vice versa), to
+    immensely speed up the package name determination in many cases.
+  * apport: Drop the maximum number of consecutive crashes per executable
+    from 5 to 2. 5 creates a too bad user experience and creates the
+    impression that it will never stop. Closes: LP#61078
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 19 Sep 2006 16:16:46 +0200
+
+apport (0.21) edgy; urgency=low
+
+  * apport: Keep a partially written report with '000' permissions, and only
+    chmod it to 0600 when it is fully written. This stops update-notifier from
+    picking up half-written reports and get activated several times.
+    Closes: LP#59988
+  * apport: Add the executable path to the first line of logging.
+  * apport: Run the complete code under control of the general exception
+    fallback handler.
+  * debian/apport.default: Increase maximum core size to 200 MB, to also catch
+    Firefox and Evolution core dumps.
+  * apport_utils.py, find_file_package(): Before searching the dpkg database
+    (which is expensive), check if the executable path matches a whitelist of
+    path prefixes. This replaces the weaker blacklist (/tmp and /home) in
+    apport itself.
+  * gtk/apport-gtk: Show a progress dialog while checking for bug patterns and
+    execute report_search_bug_patterns() in a separate thread, so that the UI
+    is not potentially blocked for a long time.
+  * apport: Gracefully abort if we cannot readlink /proc/pid/exe, instead of
+    falling over with an exception. Closes: LP#59993
+  * debian/rules: Use 'multiuser' instead of 'defaults' for dh_installinit.
+    Clean up the unnecessary rc symlinks in postinst and add appropriate
+    sysv-rc dependency.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 14 Sep 2006 23:16:26 +0200
+
+apport (0.20) edgy; urgency=low
+
+  * apport: Renice ourself to priority 5 to not slow down the user's processes
+    so heavily.
+  * Add manpages for apport-retrace(1) and apport-unpack(1) and install them
+    into apport. Closes: LP#58463
+  * problem_report.py: Test attaching two files instead of one in the
+    test_write_file() regression check to assert correct key sorting.
+  * problem_report.py: Alter write() method to sort binary data to the end of
+    the report. This makes reports easier to read, and also shows relevant
+    information more quickly when progressively loading them in a web browser.
+    Adapt regression tests accordingly.
+  * Move setting of ExecutablePath from apport's InformationCollector ctor to
+    apport_utils' report_add_proc_info(), where it belongs to. Check
+    ExecutablePath in apport_utils' regression tests.
+  * apport-unpack: Support '-' as report argument to read from stdin.
+  * apport_utils.py, report_add_proc_info():
+    - Apply some heuristics to determine whether the crashed process is an
+      interpreted script (check if the Name in /proc/pid/status matches
+      the second /proc/pid/cmdline part, and if that command line argument is
+      an existing executable file). In the case of an interpreted script, set
+      ExecutablePath to the script and InterpreterPath to the actually crashed
+      ELF binary.
+    - Test this with a shell (/bin/zgrep) and a Python (./apport-unpack)
+      script in the test suite.
+    - Closes: LP#58859
+  * Add debian/apport.logrotate to add a daily 7-step /var/log/apport
+    log rotation.
+  * test-apport: Fix WCOREDUMP() and pidof checks in check_crash().
+  * apport: Install a signal handler for all 'crashy' signals, which just logs
+    the signal and stack info and exits. This should avoid a crashing apport
+    examining itself, possibly in an endless loop. Closes: LP#58873
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 11 Sep 2006 09:20:18 +0200
+
+apport (0.19) edgy; urgency=low
+
+  * apport_utils.py: Add function report_search_bug_patterns(): Try to
+    download a package specific bug pattern XML file from a given URL base
+    directory and return the bug URL in case of a match. Also add extensive
+    test suite check.
+  * test-apport: Fix help message.
+  * apport-gtk: Make use of the new report_search_bug_patterns() function and
+    display appropriate instructions on match. Bump python-apport-utils dependency.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue,  5 Sep 2006 11:31:17 +0200
+
+apport (0.18) edgy; urgency=low
+
+  The "mating dance for ubiquity" release.
+
+  * apport-gtk:
+    - Use pidof's -x option in the detection whether the program is already
+      running to correctly handle scripts.
+    - Do not assume the presence of the ExecutablePath key in reports, but
+      gracefully fall back to Package.
+    - If the report specifies an explicit DesktopFile, use that instead of
+      trying to figure it out.
+    - Only created reduced report and show the radio buttons if there are
+      actually removed fields.
+    - Change tooltip of 'reduced report' radio button to be more generic (do
+      not refer to the memory dump, but to 'large items', since this is what
+      apport-gtk currently does).
+    - Support new field 'BugDisplayMode: file | list (default)'. In 'file'
+      mode, display the /+filebug page instead of /+bugs and change
+      instructions accordingly.
+    - Use the ProcCmdline attibute to restart an application; correctly
+      parsing of all the desktop file is just not possible at this point.
+    - Support new field 'RespawnCommand' to use custom respawning command.
+  * problem_report.py: Add method has_removed_fields() to check whether load()
+    skipped any fields due to binary=False. Add test suite check.
+  * apport_utils.py: Fix the quoting in ProcCmdline so that it is fully shell
+    compatible.
+  * run-tests: Check if kernel crash dump helper is active, and if so, run
+    test-apport in kernel mode.
+  * problem_report.py: Support an optional second argument of file references
+    which controls whether or not the file contents will be compressed/encoded
+    (defaults to True for backwards compatibility). Add test suite checks.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 25 Aug 2006 14:01:47 +0200
+
+apport (0.17) edgy; urgency=low
+
+  * Move packaging information collection from apport to new function
+    report_add_package_info() in apport_utils.py, add test suite check.
+  * Move operating system information collection from apport to new function
+    report_add_os_info() in apport_utils.py, add test suite check.
+  * Move /proc information collection from apport to new function
+    report_add_proc_info() in apport_utils.py, add test suite check, and fix
+    handling of failed /proc/$$/environ reading.
+  * preloadlib/libapport.c: Route gcore's stderr to /dev/null to suppress
+    error messages during the test suite and to become more compatible to the
+    kernel behaviour.
+  * Change apport_utils.py to be a public module and ship it in the new
+    python-apport-utils package, so that other applications like ubiquity can
+    use it easily.
+  * po/de.po: Add new translations to make this complete again.
+  * problem_report.py, apport_utils.py: Prepend UnitTest classes with '_' so
+    that they do not appear in the help() output.
+  * apport_utils.py: Add make_report_path(), which constructs the canonical
+    crash report pathname for a given report.
+  * Add debian/apport.postinst: Remove /usr/share/apport/apport_utils.pyc when
+    upgrading from an earlier version, so that the programs in
+    /usr/share/apport actually use the version from p-apport-utils.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 22 Aug 2006 18:14:00 +0200
+
+apport (0.16) edgy; urgency=low
+
+  *  test-apport: Check that non-packaged binaries do not generate a report.
+  * apport_utils.py: Add find_file_package() to find the package a file
+    belongs to. This uses fgrep /var/lib/dpkg/info/*.list which is much faster
+    than dpkg -S. Also add test suite check.
+  * apport: Use find_file_package() instead of direct dpkg -S call and pass
+    the result to the InformationCollector ctor to avoid grepping the dpkg
+    lists twice.
+  * apport: Immediately exit if the executable name starts with /home or /tmp,
+    to avoid grepping the dpkg database in the common developer case.
+  * apport: Replace 0-bytes in ProcCmdline with spaces to keep them readable.
+  * apport-gtk: Offer an alternative small report (without the core dump) for
+    users with slow internet connection.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 21 Aug 2006 19:34:47 +0200
+
+apport (0.15) edgy; urgency=low
+
+  * Add apport-unpack: Script to extract the fields of a problem report into
+    separate files into a new or empty directory. Mainly useful for extracting
+    compressed binary data like the core dump.
+  * test-apport: Check that dumped environment only contains security
+    insensitive variables.
+  * apport: Filter out all environment variables but $SHELL, $PATH, and
+    locale/language related ones. Closes: LP#56846
+  * test-apport: Delete test report in the cleanup handler so that the
+    kernel-mode test can be run multiple times without manual cleanup.
+  * test-apport: Check for running apport and test executable processes in
+    check_crash().
+  * preloadlib/libapport.c: Improve error checking, some robustification.
+  * test-apport: If using the preload library, wait a second between the test
+    process invocations in the flooding test to mitigate a strange race
+    condition that sometimes causes the signal handler not to be executed.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Sun, 20 Aug 2006 16:28:43 +0200
+
+apport (0.14) edgy; urgency=low
+
+  * preloadlib/libapport.c: Write core dump into cwd instead of /tmp to act
+    like the current kernel.
+  * apport_utils.py: Check APPORT_REPORT_DIR environment variable for an
+    alternate crash report directory. This is mainly useful for a local test
+    suite.
+  * apport: Quiesce the apt module's FutureWarning.
+  * preloadlib/libapport.c: Re-raise the signal instead of doing exit() so
+    that the process exits with the same code as it would do without the
+    library.
+  * preloadlib/libapport.c: Close stdout for gcore process.
+  * Add test-apport: Use preloadlib/ and APPORT_REPORT_DIR to create a
+    sandboxed environment and run various apport functionality tests. Also add
+    this script to run-tests.
+  * apport_utils.py, delete_report(): Actually try to unlink the report before
+    falling back to truncating it to zero bytes.
+  * preloadlib/libapport.c: Close stderr for apport process.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 18 Aug 2006 15:46:37 +0200
+
+apport (0.13) edgy; urgency=low
+
+  * Do not run the test suite on build since on the buildds modifying
+    file atimes does not work.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 18 Aug 2006 00:59:26 +0200
+
+apport (0.12) edgy; urgency=low
+
+  * apport-gtk: Make bug report window resizable when the details are
+    expanded. Closes: LP#56672
+  * apport_utils.py: Add get_recent_crashes() and a test suite check for it.
+  * apport: If the same binary produced more than 5 crashes in the last 24
+    hours, ignore the crash. This is a hideous and pretty ad-hoc band-aid to
+    avoid flooding users with reports for continuously crashing respawning
+    processes. Closes: LP#56362
+  * apport: Clean up exit codes to only exit with 0 if report was created, and
+    with 1 otherwise (to become more compatible to proposed future kernel
+    behaviour, where core dumps are only generated on demand).
+  * Add run-tests script which calls all available selftests.
+  * debian/rules: Run run-tests during build to have the package FTBFS on
+    regressions. Add python build dependency for this (it is already there
+    implicitly anyway).
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 17 Aug 2006 16:06:41 +0200
+
+apport (0.11) edgy; urgency=low
+
+  * gtk/apport-gtk.glade: Remove separators from dialogs. Closes: LP#56326
+  * apport:
+    - Move information collection from ctor to two new separate functions
+      collect_runtime_information() (fast, privileged, crashed process must
+      exist) and collect_static_information() (slow, unprivileged, crashed
+      process does not need to exist). This allows a cleaner design.
+    - Add missing close() call in init_error_log().
+    - Do not catch SystemExit in the final catch-all-and-log clause (will
+      become important once we switch to master/slave processes).
+    - Clean up handling of temporary files.
+    - Log successful report creation with file and package name, to ease
+      debugging.
+    - transitive_dependencies(): Do not break on pure virtual dependencies
+      (like perl-api-XXX).
+  * Add debian/apport.default: Default file to disable apport entirely and to
+    change the maximum size of kernel created core dumps.
+  * debian/apport.init: Evaluate new default file.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed, 16 Aug 2006 17:05:19 +0200
+
+apport (0.10) edgy; urgency=low
+
+  * apport-gtk: Show report file size in bug report window.
+  * apport: Correctly handle relative paths to core dumps (use crashed
+    process' cwd).
+  * Fix the GPL URLs in source file's copyright comments.
+  * debian/apport.cron.daily: Add -mindepth 1 to find commands to avoid
+    attempting to remove the /var/crash/ directory. Closes: LP#55107
+  * problem_report.py:
+    - Fix precise whitespace handling in continuation lines, add selftest.
+    - Add selftest for reading a report, modifying fields, and writing it
+      back.
+    - Fix writing back binary data, adapt test suite to check it.
+    - Fixed ProblemReport.load() to clean up old data, added selftest.
+    - Restructure class to inherit from IterableUserDict and throw away all
+      the now obsolete dictionary wrapper methods.
+  * debian/apport.init: Add colon to description to make output less
+    confusing.
+  * Add apport-retrace and install it into apport: This tool takes a crash
+    report and refreshes the stack traces in it. This is particularly useful
+    if debug symbols are installed now, but haven't been at the time the crash
+    occured.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 11 Aug 2006 15:40:05 +0200
+
+apport (0.9) edgy; urgency=low
+
+  * apport: Call objcopy to throw out READONLY/CODE sections from the core
+    dump, which drastically reduces its (uncompressed) size (factor 2 to 10).
+    This has little effect on the bzip2'ed core dump, though.
+  * apport:
+    - Support an optional third command line argument which specifies the
+      location of a core dump.
+    - If a core dump is given, call gdb on the core dump instead of the
+      crashed process. We cannot attach to the latter if we are called by the
+      kernel (since the crashed process is in uninterruptible kernel sleep).
+    - If no core dump is given, do not attempt to do anything gdb related.
+    - This matches the future behaviour of the kernel crash dump helper while
+      remaining compatible to the previous call semantics.
+  * Add preloadlib/{Makefile,libapport.c}: LD_PRELOADable library which
+    emulates the future kernel behaviour. This is ONLY for testing and
+    development purposes. It uses unsafe temporary file handling and thus must
+    not be used on production boxes!
+  * Ship preloadlib/* as examples in package 'apport' for people who want to
+    play with it until the new kernel arrives.
+  * Add preloadlib/README: Explain how to use the preload library.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed,  9 Aug 2006 12:12:20 +0200
+
+apport (0.8) edgy; urgency=low
+
+  * apport_utils.py:
+    - Add two new functions seen_report() and mark_report_seen().
+    - get_new_reports(): Only return unseen reports, add function
+      get_all_reports() for the old behaviour.
+  * gtk/apport-gtk.py: Do not delete reports after notifying about them. This
+    way, we do not need to add another button to save the report (which is
+    considered evil UI-wise), but still retain the report for filing and
+    examining later.
+  * Replace all usages of '/var/crash' to a new global variable in
+    apport_utils; this is particularly useful for test suites.
+  * apport.py: Overwrite old reports if they are seen.
+  * apport_utils.py: Add a test suite for all exported functions.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue,  8 Aug 2006 19:29:23 +0200
+
+apport (0.7) edgy; urgency=low
+
+  * Add apport_utils.py: Factorize out some common code of apport-gtk,
+    possible future frontends, and some backend tools.
+  * Add apport-checkreports: Test if there are new crash reports for the
+    invoking user. This factorizes out the tests we currently do in
+    update-notifier and makes them easier to change and keep in sync with
+    apport itself. Ship the script in the apport package.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue,  8 Aug 2006 17:24:46 +0200
+
+apport (0.6) edgy; urgency=low
+
+  * Add missing intltool build dependency to fix FTBFS.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu,  3 Aug 2006 09:15:42 +0200
+
+apport (0.5) edgy; urgency=low
+
+  * apport-gtk: Remove the crash report after it got displayed.
+  * apport-gtk: Fix exception on startup if no readable crash reports exist.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed,  2 Aug 2006 23:42:34 +0200
+
+apport (0.4) edgy; urgency=low
+
+  * Implement completely new UI according to the design described at
+    https://wiki.ubuntu.com/CrashReporting. Many thanks to Matthew Paul
+    Thomas!
+  * po/Makefile: Fix default target to not just break. Now it builds the .pot
+    file.
+  * debian/rules: Build .pot file on package build for automatic Rosetta
+    import.
+  * Bring German translations up to date.
+  * po/Makefile: Supply '--language=python' to intltool-update to properly
+    extract strings from apport-gtk.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Wed,  2 Aug 2006 23:14:58 +0200
+
+apport (0.3) edgy; urgency=low
+
+  * debian/rules clean: Also clean po/.
+  * debian/apport.cron.daily: Clean away empty files everytime.
+  * apport: Only consider a report as already present if it has a non-zero
+    size.
+  * apport: Set proper group for report files instead of 'root'.
+  * apport-gtk: Ignore 0-sized reports.
+  * apport-gtk: Add button to remove the current report (by truncating the
+    file to zero bytes; a user cannot unlink files in /var/crash).
+  * apport-gtk: Only display reports that the user can actually read.
+  * problem_report.py: Add 'binary' option to ProblemReport.load() to
+    optionally skip binary data.
+  * debian/rules: Clean stale *.pyc files.
+  * python-gtk: Do not load binary data (core dumps, etc.) to greatly speed up
+    the GUI. They are just gibberish anyway.
+  * apport: Switch from apt_pkg to apt, add SourcePackage: to reports.
+  * apport-gtk: Use source package name for the Malone URL.
+  * debian/rules: Call setup.py install with --no-compile to not ship *.pyc in
+    debs.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 31 Jul 2006 13:11:52 +0200
+
+apport (0.2) edgy; urgency=low
+
+  * debian/apport.cron.daily: Do not produce error messages if 'find' does not
+    find any crash reports.
+  * problem_report.py: Support iterators, add test case.
+  * apport: Filter out trailing 0-byte from ProcCmdline.
+  * Add a simple GTK frontend, ship it in new package apport-gtk.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 27 Jul 2006 23:52:33 +0200
+
+apport (0.1) edgy; urgency=low
+
+  * Initial release. This package implements the client backend part of
+    https://wiki.ubuntu.com/AutomatedProblemReports.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Mon, 24 Jul 2006 14:21:10 +0200
diff --git a/debian/clean b/debian/clean
new file mode 100644
index 0000000..3ec0e7f
--- /dev/null
+++ b/debian/clean
@@ -0,0 +1,2 @@
+debhelper/dh_apport.1
+apport/packaging_impl.py
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..ccd9cb8
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,219 @@
+Source: apport
+Section: utils
+Priority: optional
+Build-Depends:
+ debhelper-compat (= 13),
+ dh-translations,
+ gdb,
+ gir1.2-glib-2.0 (>= 1.29.17),
+ pkg-config,
+ python3-all,
+ python3-gi,
+Build-Depends-Indep:
+ black,
+ default-jdk-headless | java-sdk-headless,
+ dh-python,
+ gir1.2-gtk-3.0 (>= 3.1.90),
+ gir1.2-wnck-3.0,
+ intltool,
+ iputils-ping,
+ isort,
+ kmod,
+ pycodestyle,
+ pydocstyle,
+ pyflakes3,
+ pylint,
+ python3-apt (>= 0.7.9),
+ python3-dbus,
+ python3-distutils-extra (>= 2.24~),
+ python3-launchpadlib,
+ python3-psutil,
+ python3-requests,
+ python3-rpm,
+ python3-systemd,
+ python3-yaml,
+ valgrind,
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@xxxxxxxxxxxxxxxx>
+Rules-Requires-Root: no
+Standards-Version: 4.6.2
+Vcs-Browser: https://code.launchpad.net/~ubuntu-core-dev/ubuntu/+source/apport/+git/apport
+Vcs-Git: https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/apport
+Homepage: https://wiki.ubuntu.com/Apport
+
+Package: apport
+Architecture: all
+Depends:
+ gir1.2-glib-2.0 (>= 1.29.17),
+ python3,
+ python3-apport (>= ${source:Version}),
+ python3-gi,
+ sensible-utils,
+ ${misc:Depends},
+Recommends: apport-sy