=== 1.9.3 ===
2009-10-14  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* apport/ui.py: [1626] release 1.9.3

	* NEWS: [1625] update NEWS

2009-10-14  Kees Cook <kees.cook@canonical.com>

	* NEWS,
	* apport/hookutils.py: [1624] hookutils.py: fix error codes from
	"comm", thanks to Brian Murray.

2009-10-13  Martin Pitt <martin.pitt@canonical.com>

	* gtk/apport-gtk.ui: [1623] apport-gtk: Make Cancel/Send buttons
	focusable. Thanks to Marco Rodrigues! (LP: #447780)

2009-10-12  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* apport/crashdb_impl/launchpad.py,
	* apport/ui.py: [1622] drop APPORT_REPORT_THIRDPARTY/thirdparty hack

	* apport/crashdb_impl/launchpad.py,
	* doc/crashdb-conf.txt: [1621] improve documentation of crash database
	options

	* apport/crashdb_impl/launchpad.py: [1620] launchpad.py: Assert that
	we have exactly one of "distro" or "project" option

2009-10-08  Martin Pitt <martin.pitt@canonical.com>

	* data/general-hooks/generic.py: [1619] general-hooks/generic.py:
	Catch xkbcomp error messages, too. (LP: #431807)

2009-10-05  Martin Pitt <martin.pitt@canonical.com>

	* bin/apport-bug: [1618] apport-bug: Consider -h as "output help",
	too. (Marco Rodrigues)

=== 1.9.2 ===
2009-10-02  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* apport/ui.py: [1617] release 1.9.2

2009-09-29  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* apport/crashdb_impl/launchpad.py: [1616] launchpad.py: Fix crash on
	invalid credentials file. Thanks to Marco Rodrigues for the initial
	patch! (LP: #414055)

	* NEWS,
	* apport/ui.py: [1615] Fix "apport-bug symptomname" to actually work.

	* NEWS,
	* bin/apport-cli: [1614] apport-cli: Fix crash with non-ASCII
	characters in prompts.

	* NEWS,
	* apport/crashdb_impl/launchpad.py: [1613] launchpad.py: Link hardware
	data submission key if it exists. (LP: #424382)

	* NEWS,
	* data/general-hooks/generic.py: [1612] general-hooks/generic.py:
	Collect important glib errors/assertions from ~/.xsession-errors. (LP:
	#431807)

2009-09-28  Martin Pitt <martin.pitt@canonical.com>

	* man/apport-bug.1: [1611] man/apport-bug.1: Document
	APPORT_IGNORE_OBSOLETE_PACKAGES

2009-09-24  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* bin/apport-cli: [1610] apport-cli: Print the URL and ask whether to
	open a browser. (LP: #286415)

	* apport/crashdb_impl/launchpad.py: [1609] launchpad.py: Consistently
	respect $APPORT_STAGING. (LP: #435112)

2009-09-23  Martin Pitt <martin.pitt@canonical.com>

	* kde/bugreport.ui: [1608] 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! (LP: #405378)

=== 1.9.1 ===
2009-09-22  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* apport/ui.py: [1607] release 1.9.1

	* NEWS: [1606] NEWS update

	* apport/hookutils.py: [1605] hookutils.py, attach_gconf(): Fix crash
	with nonexisting <applyto> tags.

	* NEWS: [1604] update NEWS

	* apport/hookutils.py: [1603] hookutils.py, attach_gconf(): Do not
	overwrite previous values from other packages, thanks Lo?c Minier!

2009-09-17  Kees Cook <kees.cook@canonical.com>

	* data/general-hooks/parse_segv.py: [1602] data/general-
	hooks/parse_segv.py: allow "*" to start a register argument

	* NEWS,
	* data/general-hooks/parse_segv.py: [1601] data/general-
	hooks/parse_segv.py: Handle in/out ioport faults.

2009-09-16  Kees Cook <kees@outflux.net>

	* NEWS,
	* data/general-hooks/parse_segv.py: [1600] data/general-
	hooks/parse_segv.py: Handle empty base, scale, or index registers in
	disassembly.

2009-09-15  Martin Pitt <martin.pitt@canonical.com>

	* setup.py: [1599] setup.py: Fix DistUtilsExtra version check. (LP:
	#428337)

2009-09-14  Martin Pitt <martin.pitt@canonical.com>

	* backends/packaging-apt-dpkg.py: [1598] backends/packaging-apt-
	dpkg.py: More robust of missing ExecutablePath due to outdated
	packages

	* bin/apport-retrace,
	* bin/dupdb-admin,
	* man/apport-retrace.1: [1597] Remove word "online" from help error
	messages. Thanks to Marco Rodrigues!

2009-09-13  Kees Cook <kees@outflux.net>

	* data/general-hooks/parse_segv.py: [1596] add test for 64bit modulo
	branch too

2009-09-12  Kees Cook <kees@outflux.net>

	* NEWS,
	* data/general-hooks/parse_segv.py: [1595] parse_segv.py: handle
	arithmetic wrapping correctly, process -h argument

2009-09-10  Kees Cook <kees@outflux.net>

	* apport/report.py: [1594] apport/report.py: test that gdb output on
	stderr is recorded

	* apport/report.py: [1593] apport/report.py: add test for internal
	glibc errors

	* NEWS: [1592] update NEWS (I had been looking for "Changes"...)

	* apport/report.py: [1591] apport/report.py:  - do not throw away
	leading text, this is redundant with the pop(0).  - keep stderr, gdb
	reports in-line text for command output (for example,    "Cannot read
	memory address 0x.....") and without this, the -99    separator does
	not make it to its own line, messing up output ordering.

2009-09-09  Martin Pitt <martin.pitt@canonical.com>

	* apport/ui.py: [1590] apport/ui.py: Show a better message when failed
	connection to crash database. Thanks to Marco Rodrigues! (LP: #178507)

	* NEWS,
	* apport/hookutils.py: [1589] hookutils.py, attach_hardware(): Do not
	attach empty Pccardctl*.

=== 1.9 ===
2009-09-08  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* apport/ui.py: [1588] release 1.9

	* backends/packaging-apt-dpkg.py: [1587] backends/packaging-apt-
	dpkg.py: Robustify get_{source,architecture} for uninstalled packages

	* test/hooks: [1586] test/hooks: update basedir for local tests,
	scripts moved from bin/ to data/

	* po/ar.po,
	* po/be.po,
	* po/bg.po,
	* po/bs.po,
	* po/ca.po,
	* po/cs.po,
	* po/da.po,
	* po/de.po,
	* po/el.po,
	* po/eo.po,
	* po/es.po,
	* po/et.po,
	* po/eu.po,
	* po/fi.po,
	* po/fr.po,
	* po/ga.po,
	* po/gl.po,
	* po/he.po,
	* po/hi.po,
	* po/hr.po,
	* po/hu.po,
	* po/id.po,
	* po/is.po,
	* po/it.po,
	* po/ja.po,
	* po/ko.po,
	* po/ku.po,
	* po/lo.po,
	* po/lt.po,
	* po/lv.po,
	* po/mk.po,
	* po/ms.po,
	* po/nb.po,
	* po/nds.po,
	* po/nl.po,
	* po/oc.po,
	* po/pl.po,
	* po/pt.po,
	* po/pt_BR.po,
	* po/ro.po,
	* po/ru.po,
	* po/sk.po,
	* po/sl.po,
	* po/sq.po,
	* po/sv.po,
	* po/ta.po,
	* po/th.po,
	* po/tr.po,
	* po/uk.po,
	* po/zh_CN.po,
	* po/zh_TW.po: [1585] merge PO files, update German translations

	* NEWS,
	* apport/__init__.py,
	* apport/ui.py,
	* bin/apport-cli,
	* bin/apport-retrace,
	* bin/apport-unpack,
	* data/apportcheckresume,
	* data/kernel_oops,
	* gtk/apport-gtk,
	* kde/apport-kde: [1584] Update usage of gettext to work around Python
	bug of gettext() not returning unicodes, but str. Fixes
	UnicodeDecodeErrors on translated --help output.

	* apport/ui.py,
	* bin/apport-cli,
	* bin/apport-retrace,
	* bin/apport-unpack: [1583] Add missing gettext wrapping for user-
	visible strings in apport-{retrace,unpack} and ui.py; thanks to Marco
	Rodrigues!

2009-09-08  Martin Pitt <martin.pitt@canonical.com>

	* bin/apport-bug,
	* man/apport-bug.1: Added.

	* NEWS: Modified.

	[1582] Add program "apport-bug" to auto-select a GUI and file a bug
	through it. Based on the "ubuntu-bug" script.

2009-09-08  Martin Pitt <martin.pitt@canonical.com>

	* setup.py: [1581] setup.py: Update home page URL to Launchpad

2009-09-08  Martin Pitt <martin.pitt@canonical.com>

	* NEWS: Modified.

	* bin/apport: Renamed to data/apport.
	* bin/apport-checkreports: Renamed to data/apport-checkreports.
	* bin/apportcheckresume: Renamed to data/apportcheckresume.
	* bin/gcc_ice_hook: Renamed to data/gcc_ice_hook.
	* bin/kernel_crashdump: Renamed to data/kernel_crashdump.
	* bin/kernel_oops: Renamed to data/kernel_oops.
	* bin/package_hook: Renamed to data/package_hook.

	[1580] setup.py: Install internal helper scripts to
	$prefix/share/apport instead of $prefix/bin

2009-09-08  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* setup.py: [1579] move apport-{gtk,kde} to /usr/share/apport/, they
	are not supposed to be called directly

2009-09-08  Martin Pitt <martin.pitt@canonical.com>

	* cli: Removed.

	* setup.py: Modified.

	* cli/apport-cli: Renamed to bin/apport-cli.

	[1578] move apport-cli to bin/

2009-09-08  Martin Pitt <martin.pitt@canonical.com>

	* NEWS: [1577] update NEWS for recent changes

	* man/apport-cli.1: [1576] man/apport-cli.1: Update to current state
	of the art

	* apport/ui.py: [1575] apport/ui.py: Add "do what I mean" mode to
	parse_argv().   When giving a single argument and no options,
	determine the most likely mode. This puts the magic of the Ubuntu
	package's "ubuntu-bug" script into the proper place, and also adds
	test cases for it.

2009-09-06  Martin Pitt <martin.pitt@canonical.com>

	* apport/ui.py: [1574] ui.py: Propagate exceptions from the upload
	thread, to catch NeedsCredentials and other exceptions. Thanks to Caio
	Rom?o!

	* apport/ui.py,
	* do-release,
	* setup.py: [1573] ui.py: Add --version option. Thanks Marco
	Rodrigues! (LP: #383694)

=== 1.8.2 ===
2009-09-05  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* setup.py: [1572] release 1.8.2

	* NEWS: [1571] update NEWS for release

	* apport/crashdb.py,
	* apport/crashdb_impl/memory.py: [1570] crashdb.py: Fix handling of
	non-ASCII crash signatures

	* backends/packaging-apt-dpkg.py: [1569] packaging-apt-dpkg.py: Run
	ExecutablePath/InterpreterPath check later, so that it does not always
	have to be done

2009-09-04  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb.py,
	* apport/crashdb_impl/memory.py: [1568] crashdb.py: Never mark a bug
	as a duplicate of itself.

	* apport/crashdb_impl/launchpad.py: [1567] launchpad.py: Add
	explanation to close_duplicate() assertion

	* apport/crashdb_impl/launchpad.py: [1566] launchpad.py,
	close_duplicate(): Add duplicate assertion

	* doc/crashdb-conf.txt,
	* etc/apport/crashdb.conf: [1565] Update Ubuntu bug pattern URL

	* apport/crashdb_impl/launchpad.py: [1564] launchpad.py: Add
	"cache_dir" option and $APPORT_LAUNCHPAD_CACHE environment variable to
	specify a non-temporary cache directory. (LP: #416804)

	* backends/packaging-apt-dpkg.py: [1563] packaging-apt-dpkg.py,
	get_architecture(): Only use installed architecture if package is
	actually installed

	* apport/crashdb_impl/launchpad.py: [1562] launchpad.py: Drop explicit
	temporary cache dir, launchpadlib does that automatically now. Thanks
	to Marco Rodriguez!

=== 1.8.1 ===
2009-09-03  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* setup.py: [1561] release 1.8.1

	* apport/ui.py: [1560] apport/ui.py: Remove debugging leftover

	* apport/fileutils.py: [1559] fileutils.py, likely_packaged():
	Partially revert r1554, only ignore /var/lib; we need /var/crash for
	the test suite

	* NEWS: [1558] update NEWS for 1.8.1

	* data/general-hooks/generic.py: [1557] data/general-hooks/generic.py:
	Check $HOME, not /home for enough space. (LP: #422658)

	* apport/crashdb_impl/launchpad.py: [1556] launchpad.py: Intercept
	httplib2.ServerNotFoundError as well, to avoid crashes when being
	offline. (LP: #396276)

	* cli/apport-cli: [1555] apport-cli: Save reports with .apport
	extension instead of .txt. Thanks to Steve Beattie! (LP: #401983)

	* apport/fileutils.py: [1554] fileutils.py, likely_packaged(): Ignored
	crashes in /var, packages don't ship executables there, and it creates
	false positives. (LP: #414368)

	* backends/packaging-apt-dpkg.py: [1553] packaging-apt-dpkg.py,
	get_modified_files(): Fix crash with empty lines. (LP: #408280)

	* backends/packaging-apt-dpkg.py: [1552] 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)

	* apport/hookutils.py: [1551] hookutils.py, attach_gconf(): Fix crash
	with keys which do not have a schema default. (LP: #422277)

	* apport/crashdb_impl/launchpad.py: [1550] launchpad.py: Remove LP
	#353805 workaround, seems fixed now

	* apport/crashdb_impl/launchpad.py: [1549] launchpad.py: Talk to
	staging if $APPORT_STAGING is set

	* apport/crashdb_impl/launchpad.py: [1548] launchpad.py: Explicitly
	supply content_type for addAttachment, current wadllib requires it
	now.

2009-09-02  Martin Pitt <martin.pitt@canonical.com>

	* apport_python_hook.py: [1547] apport_python_hook.py: Paper over
	inexplicable import error. (LP: #348250)

	* apport_python_hook.py: [1546] apport_python_hook.py: Protect against
	nonexisting sys.argv. (LP: #418051)

	* apport/ui.py: [1545] apport/ui.py, load_report(): Check that report
	has ProblemType field. (LP: #198543)

	* apport/ui.py: [1544] 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)

	* po/fi.po: [1543] fi.po: Fix mistranslation of &Cancel. (LP: #355303)

	* gtk/apport-gtk,
	* kde/apport-kde: [1542] apport-{gtk,kde}: Check for having $DISPLAY
	at startup to avoid crashes. (LP: #411276)

	* apport/report.py: [1541] report.py, add_gdb_info(): Fix race
	condition in unlink_core, thanks to Tommi Komulainen! (LP: #397945)

	* apport/ui.py: [1540] ui.py, load_report(): Robustify check whether
	program is still installed. (LP: #329184)

2009-08-31  Martin Pitt <martin.pitt@canonical.com>

	* backends/packaging-apt-dpkg.py,
	* bin/apport-retrace: [1539] packaging-apt-dpkg.py,
	install_retracing_packages(): Install package for
	ExecutablePath/InterpreterPath if missing; this can happen with
	package hooks which reassing package

2009-08-28  Kees Cook <kees@outflux.net>

	* apport/report.py: [1538] flip glibc variable to upstream
	__abort_msg, filter hex addresses from assertion dup checker

2009-08-27  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/launchpad.py: [1537] launchpad.py: Add a comment
	when marking a bug as a duplicate.

=== 1.8 ===
2009-08-26  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* setup.py: [1536] release 1.8

	* NEWS: [1535] update NEWS

	* apport/ui.py: [1534] ui.py: Drop test_run_crash_assert(), current
	implementation cannot work

	* apport/report.py: [1533] report.py, crash_signature(): Handle
	assertion failures

	* apport/report.py: [1532] report.py, standard_title(): Handle
	assertion failures

	* NEWS,
	* apport/report.py,
	* apport/ui.py,
	* bin/apport: [1531] 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 requires your
	glibc to have this patch:
	http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=48dcd0ba  This
	implements an Ubuntu blueprint:
	https://blueprints.launchpad.net/ubuntu/+spec/security-karmic-apport-
	abort

	* test/crash: [1530] test/crash: remove some dead code

	* test/crash: [1529] test/crash: robustify waiting for test process to
	execv()

2009-08-25  James Westby <james.westby@canonical.com>

	* apport/fileutils.py: [1528] Allow uid to be a string.

	* bin/kernel_oops: [1527] kerneloops will now pass a checksum as the
	first argument.  Use that as part of the path if given so that
	duplicate reports aren't presented to the user.

2009-08-24  Martin Pitt <martin.pitt@canonical.com>

	* apport/hookutils.py: [1526] hookutils.py, attach_wifi(): Include
	modem-manager syslog messages in WifiSyslog

	* apport/hookutils.py: [1525] hookutils.py, attach_hardware(): Add
	command_available method, and use it to add prtconf and pccardctl
	output if those commands are available.

2009-08-21  Kees Cook <kees@outflux.net>

	* apport/crashdb_impl/launchpad.py: [1524] mark kernel crash reports
	as private, thanks to Matt Zimmerman (LP: #417059)

2009-08-08  Martin Pitt <martin.pitt@canonical.com>

	* apport/hookutils.py: [1523] hookutils.py: Add attach_wifi()

	* kde/apport-kde: [1522] apport-kde: PEP-8 compatible docstrings

	* kde/apport-kde: [1521] apport-kde: Fix quotes

2009-08-08  Martin Pitt <martin.pitt@canonical.com>

	* kde/userpass.ui: Added.

	* kde/apport-kde: Modified.

	[1520] merge Caio's KDE implementation of ui_question_userpass()

2009-08-06  Martin Pitt <martin.pitt@canonical.com>

	* apport/report.py: [1519] report.py, add_hooks_info(): Add optional
	package/srcpackage argument

=== 1.7 ===
2009-08-05  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* setup.py: [1518] release 1.7

2009-08-05  Martin Pitt <martin.pitt@canonical.com>

	* doc/symptoms.txt: Added.

	[1517] add symptom documentation

2009-08-05  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/launchpad.py: [1516] launchpad.py: Fix project
	bug filing in test suite to work with current launchpad

	* apport/crashdb_impl/launchpad.py: [1515] launchpad.py: Fix bug
	filing in test suite to work with current launchpad

	* NEWS,
	* apport/ui.py: [1514] add support for symptoms

2009-08-04  Martin Pitt <martin.pitt@canonical.com>

	* gtk/apport-gtk: [1513] apport-gtk: Fix ordering of choices

2009-07-22  Martin Pitt <martin.pitt@canonical.com>

	* apport/REThread.py,
	* apport/chroot.py,
	* apport/crashdb.py,
	* apport/fileutils.py,
	* apport/hookutils.py,
	* apport/report.py,
	* apport/ui.py,
	* problem_report.py: [1512] PEP-8 compatible docstrings

	* backends/packaging-apt-dpkg.py: [1511] backends/packaging-apt-
	dpkg.py: robustify against glibc vs. eglibc

	* apport/crashdb.py,
	* apport/ui.py: [1510] merge Caio's credentials API branch

	* bin/package_hook: [1509] bin/package_hook: Fix crash for
	subdirectories in log dir. (LP: #332350)

	* test/hooks: [1508] test/hooks: Check package_hook behavior for
	subdirectories in log dir. Reproduces LP #332350

2009-07-19  Martin Pitt <martin.pitt@canonical.com>

	* doc/package-hooks.txt: [1507] doc/package-hooks.txt: Document
	allowed chars in report keys

2009-07-16  Martin Pitt <martin.pitt@canonical.com>

	* apport/ui.py: [1506] ui.py: Show precise error message for damaged
	reports

=== 1.6 ===
2009-07-15  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* setup.py: [1505] release 1.6

	* apport/ui.py: [1504] 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: [1503] apport/hookutils.py, pci_devices():
	Deliver all matching devices, not just the last one. (LP: #398906)

	* test/hooks: [1502] test/hooks: Fix up for kernel hook now calling
	add_os_info()

	* NEWS: [1501] update NEWS

	* NEWS,
	* apport/report.py,
	* backends/packaging-apt-dpkg.py,
	* bin/apport-retrace,
	* bin/kernel_crashdump: [1500] add support for kernel crashes  -
	apport/report.py: Add add_kernel_crash_info() to reprocess a
	"KernelCrash" problem type with the "crash" program. -
	apport/report.py: Add crash signature calculation for kernel crashes.
	- backends/packaging-apt-dpkg.py: Add _install_debug_kernel() to
	special-case fetching kernel ddebs, and call it in
	install_retracing_packages(). - bin/apport-retrace: Call
	add_kernel_crash_info() and update sanity   checks for kernel crashes.
	- bin/kernel_crashdump: Call add_os_info() right in the hook.  Thanks
	to Michael Vogt!

	* apport/hookutils.py: [1499] hookutils.py, _get_module_license():
	Return "invalid" if modinfo fails, so that they do not count as
	"free". (LP: #341720)

	* apport/report.py: [1498] report.py: Update thread stack trace checks
	to also work with recent gdb

2009-07-12  Martin Pitt <martin.pitt@canonical.com>

	* backends/packaging-apt-dpkg.py: [1497] packaging-apt-dpkg.py:
	Support additional custom native origins in /etc/apport/native-
	origins.d/ . (LP: #386052)

	* backends/packaging-apt-dpkg.py: [1496] packaging-apt-dpkg.py: Drop
	PPA origin hack, launchpad behaves properly now

	* gtk/apport-gtk: [1495] apport-gtk: Avoid focus stealing when being
	called without arguments (i. e. auto-launched). LP: #396243)

2009-07-10  Martin Pitt <martin.pitt@canonical.com>

	* kde/apport-kde: [1494] apport-kde: Use standard gettext again

2009-07-07  Kees Cook <kees@outflux.net>

	* AUTHORS: [1493] add myself to authors file

	* data/general-hooks/parse_segv.py: [1492] fixes handling of PC
	lacking disassembly due to invalid memory location.

2009-06-30  Martin Pitt <martin.pitt@canonical.com>

	* backends/packaging-apt-dpkg.py: [1491] packaging-apt-dpkg.py: Fix
	install_retracing_packages() for pre-0.7.9 python-apt API

2009-06-29  Matt Zimmerman <mdz@canonical.com>

	* apport/report.py: [1490] Sort the list of dependencies so it's
	easier to scan (LP: #391021)

=== 1.5 ===
2009-06-29  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* setup.py: [1489] release 1.5

	* apport/crashdb_impl/launchpad.py: [1488] launchpad.py: Add another
	workaround for the "412 Precondition failed" bug (LP#336866)

	* apport/crashdb_impl/launchpad.py: [1487] launchpad.py,
	get_fixed_version(): Fix crash on obsolete source packages

2009-06-27  Martin Pitt <martin.pitt@canonical.com>

	* .bzrignore: [1486] add some built files to .bzrignore

	* NEWS,
	* setup.py,
	* test/run: [1485] auto-detect packaging backend

	* test/hooks: [1484] test/hooks: Update key name for moved test script

2009-06-27  Martin Pitt <martin.pitt@canonical.com>

	* test: Added.

	* NEWS,
	* setup.py: Modified.

	* run-tests: Renamed to test/run and modified.
	* test-apport: Renamed to test/crash.
	* test-crash-digger: Renamed to test/crash-digger.
	* test-hooks: Renamed to test/hooks.

	[1483] Move all test scripts into test/, to unclutter source tree

2009-06-27  Martin Pitt <martin.pitt@canonical.com>

	* data,
	* data/icons,
	* data/icons/scalable,
	* data/icons/scalable/apps,
	* data/icons/scalable/mimetypes,
	* data/icons/scalable/mimetypes/text-x-apport.svg: Added.

	* doc/Makefile,
	* gtk/Makefile,
	* kde/Makefile,
	* po/Makefile,
	* po/Makevars,
	* po/POTFILES.in: Removed.

	* NEWS,
	* setup.py: Modified.

	* apport/apport.svg: Renamed to data/icons/scalable/apps/apport.svg.
	* general-hooks: Renamed to data/general-hooks.
	* package-hooks: Renamed to data/package-hooks.

	[1482] throw away complicated and incomplete build system, use
	DistUtilsExtra.auto

2009-06-27  Martin Pitt <martin.pitt@canonical.com>

	* kde/apport-kde,
	* po/Makefile: [1481] apport-kde: Use standard _() instead of i18n()

=== 1.4 ===
2009-06-26  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* setup.py: [1480] release 1.4

	* test-hooks: [1479] test-hooks: update for r1477

	* NEWS: [1478] update NEWS

	* bin/kernel_crashdump: [1477] bin/kernel_crashdump: Use packaging API
	properly

2009-06-23  Martin Pitt <martin.pitt@canonical.com>

	* apport/ui.py: [1476] ui.py: Do not reject non-distro package reports
	if report sets CrashDB (for third-party destination). (LP: #391015)

2009-06-19  Martin Pitt <martin.pitt@canonical.com>

	* gtk/apport-gtk.ui: [1475] gtk/apport-gtk.ui: Drop invalid icon
	reference. (LP: #389064)

2009-06-16  Martin Pitt <martin.pitt@canonical.com>

	* apport/ui.py: [1474] apport/ui.py, run_report_bug(): Clean up PID
	information collection

2009-06-14  Martin Pitt <martin.pitt@canonical.com>

	* po/ar.po,
	* po/be.po,
	* po/bg.po,
	* po/bs.po,
	* po/ca.po,
	* po/cs.po,
	* po/da.po,
	* po/de.po,
	* po/el.po,
	* po/eo.po,
	* po/es.po,
	* po/et.po,
	* po/eu.po,
	* po/fi.po,
	* po/fr.po,
	* po/ga.po,
	* po/gl.po,
	* po/he.po,
	* po/hi.po,
	* po/hr.po,
	* po/hu.po,
	* po/id.po,
	* po/is.po,
	* po/it.po,
	* po/ja.po,
	* po/ko.po,
	* po/ku.po,
	* po/lo.po,
	* po/lt.po,
	* po/lv.po,
	* po/mk.po,
	* po/ms.po,
	* po/nb.po,
	* po/nds.po,
	* po/nl.po,
	* po/oc.po,
	* po/pl.po,
	* po/pt.po,
	* po/pt_BR.po,
	* po/ro.po,
	* po/ru.po,
	* po/sk.po,
	* po/sl.po,
	* po/sq.po,
	* po/sv.po,
	* po/ta.po,
	* po/th.po,
	* po/tr.po,
	* po/uk.po,
	* po/zh_CN.po,
	* po/zh_TW.po: [1473] merge translations, update German translations

	* gtk/apport-gtk.ui: [1472] apport-gtk.ui: Drop erroneous translatable
	flag from stock buttons

	* po/Makefile: [1471] po/Makefile: add --keyword for kde string
	markers

2009-06-14  Martin Pitt <martin.pitt@canonical.com>

	* kde,
	* kde/Makefile,
	* kde/apport-kde,
	* kde/apport-kde-mime.desktop.in,
	* kde/apport-kde-mimelnk.desktop.in,
	* kde/apport-kde.desktop.in,
	* kde/bugreport.ui,
	* kde/choices.ui,
	* kde/error.ui,
	* kde/progress.ui: Added.

	* qt4,
	* qt4/Makefile,
	* qt4/apport-qt,
	* qt4/apport-qt-mime.desktop.in,
	* qt4/apport-qt-mimelnk.desktop.in,
	* qt4/apport-qt.desktop.in,
	* qt4/bugreport.ui,
	* qt4/choices.ui,
	* qt4/error.ui,
	* qt4/progress.ui: Removed.

	* AUTHORS,
	* NEWS,
	* man/apport-cli.1,
	* po/Makefile,
	* po/POTFILES.in,
	* setup.py: Modified.

	[1470] Merge Richard's KDE frontend, replacing Qt4 one

2009-06-12  Martin Pitt <martin.pitt@canonical.com>

	* gtk/apport-gtk.ui: [1469] apport-gtk.ui: Make details window
	resizable, and lower default size, so that it will fit on small
	screens. (LP: #365517)

	* apport/hookutils.py: [1468] hookutils.py, command_output(): Force
	LC_MESSAGES=C, to avoid translated output in bug reports. (LP:
	#383230)

2009-06-11  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* backends/packaging-apt-dpkg.py: [1467] packaging-apt-dpkg.py: Add
	backwards compatibility code for python-apt < 0.7.9 to not break
	backportability

=== 1.3 ===
2009-06-10  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* setup.py: [1466] release 1.3

	* NEWS: [1465] NEWS formatting

2009-06-10  Martin Pitt <martin.pitt@canonical.com>

	* qt4/choices.ui: Added.

	* NEWS,
	* apport/report.py,
	* apport/ui.py,
	* cli/apport-cli,
	* doc/package-hooks.txt,
	* gtk/apport-gtk,
	* gtk/apport-gtk.ui,
	* qt4/apport-qt,
	* test-hooks: Modified.

	[1464] merge interactive hooks branch

2009-06-10  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/launchpad.py: [1463] launchpad.py: delete core
	dump from invalid bug reports

2009-06-09  Martin Pitt <martin.pitt@canonical.com>

	* .bzrignore: Added.

	[1462] add .bzrignore

2009-06-04  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/launchpad.py: [1461] launchpad.py, download():
	Download VarLogDistupgrade log. (LP: #383655)

	* apport/crashdb_impl/launchpad.py: [1460] launchpad.py: Fix crash if
	auth credentials are in current directory

	* general-hooks/parse_segv.py: [1459] merge parse_segv.py improvements
	from Kees

2009-06-03  Martin Pitt <martin.pitt@canonical.com>

	* apport/ui.py: [1458] ui.py: Do not overwrite report["Title"] if it
	is already set by a hook.

	* run-tests: [1457] run-tests: Replace hardcoded Python path with
	dynamically detected path

2009-06-03  Martin Pitt <martin.pitt@canonical.com>

	* general-hooks/parse_segv.py: Added.

	* NEWS,
	* run-tests: Modified.

	[1456] add segfault analysis hook for quick segv reviews

2009-06-03  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/launchpad.py: [1455] launchpad.py: Fix crash for
	unset titles

2009-06-02  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* doc/data-format.tex,
	* problem_report.py: [1454] problem_report.py: Allow dashes and
	underscores in key names. Update doc/data-format.tex accordingly. (LP:
	#380811)

	* apport/crashdb_impl/launchpad.py: [1453] launchpad.py: More robust
	download(), fixes other part of LP: #382589

	* apport/crashdb_impl/launchpad.py: [1452] launchpad.py: Also fetch
	DpkgTerminalLog.gz. (LP: #382589)

2009-06-01  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* apport/hookutils.py: [1451] add
	apport.hookutils.root_command_output()

2009-05-28  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/launchpad.py: [1450] launchpad.py: Repair
	support for extra tags

	* apport/crashdb_impl/launchpad.py: [1449] launchpad.py: Do not
	overwrite report['Title']

	* apport/crashdb_impl/launchpad.py: [1448] launchpad.py: download
	DpkgTerminalLog.txt

2009-05-27  Martin Pitt <martin.pitt@canonical.com>

	* general-hooks/generic.py: [1447] general-hooks/generic.py: Do not
	report problems with low free space on / or /home. (LP: #381047)

2009-05-26  Martin Pitt <martin.pitt@canonical.com>

	* apport/ui.py: [1446] ui.py: Check UnreportableReason for
	run_report_bug() as well. (LP: #361359)

	* NEWS,
	* apport/ui.py: [1445] Drop "UnsupportableReason" field, it is too
	similar to UnreportableReason and just confusing.

2009-05-20  Martin Pitt <martin.pitt@canonical.com>

	* cli/apport-cli: [1444] apport-cli: Fix report saving in "bug report"
	mode. (LP: #353253)

=== 1.2.1 ===
2009-05-15  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* setup.py: [1443] release 1.2.1

	* NEWS: [1442] update NEWS

	* po/ar.po,
	* po/be.po,
	* po/bg.po,
	* po/bs.po,
	* po/ca.po,
	* po/cs.po,
	* po/da.po,
	* po/de.po,
	* po/el.po,
	* po/eo.po,
	* po/es.po,
	* po/et.po,
	* po/eu.po,
	* po/fi.po,
	* po/fr.po,
	* po/ga.po,
	* po/gl.po,
	* po/he.po,
	* po/hi.po,
	* po/hr.po,
	* po/hu.po,
	* po/id.po,
	* po/is.po,
	* po/it.po,
	* po/ja.po,
	* po/ko.po,
	* po/ku.po,
	* po/lo.po,
	* po/lt.po,
	* po/lv.po,
	* po/mk.po,
	* po/ms.po,
	* po/nb.po,
	* po/nds.po,
	* po/nl.po,
	* po/oc.po,
	* po/pl.po,
	* po/pt.po,
	* po/pt_BR.po,
	* po/ro.po,
	* po/ru.po,
	* po/sk.po,
	* po/sl.po,
	* po/sq.po,
	* po/sv.po,
	* po/ta.po,
	* po/th.po,
	* po/tr.po,
	* po/uk.po,
	* po/zh_CN.po,
	* po/zh_TW.po: [1441] merge translations, update German translation

	* po/POTFILES.in,
	* setup.py: [1440] Update setup.py and POTFILES.in for .glade -> .ui
	renaming

=== 1.2.0 ===
2009-05-15  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* setup.py: [1439] release 1.2.0

	* NEWS: [1438] update NEWS with changes made so far

2009-05-15  Martin Pitt <martin.pitt@canonical.com>

	* gtk/apport-gtk.ui: Added.

	* gtk/apport-gtk.glade: Removed.

	* gtk/apport-gtk: Modified.

	[1437] gtk/: Convert from libglade to gtk.Builder

2009-05-15  Martin Pitt <martin.pitt@canonical.com>

	* apport/hookutils.py: [1436] hookutils: replace hal stuff with udev
	attach_hardware(): Attach udev log and DB instead of hal. Drop hal
	related functions.

2009-05-13  Martin Pitt <martin.pitt@canonical.com>

	* backends/packaging-apt-dpkg.py: [1435] packaging-apt-dpkg.py: Fix
	another crash

	* backends/packaging-apt-dpkg.py: [1434] packaging-apt-dpkg.py: Drop
	obsolete symbol "_record"

	* backends/packaging-apt-dpkg.py: [1433] packaging-apt-dpkg.py: Fix
	syntax error

	* backends/packaging-apt-dpkg.py: [1432] packaging-apt-dpkg.py: Drop
	remaining obsolete symbol _lookupRecord()

2009-05-11  Martin Pitt <martin.pitt@canonical.com>

	* backends/packaging-apt-dpkg.py: [1431] packaging-apt-dpkg.py,
	get_modified_files(): Do not show package list file as modified if the
	package is not installed. (LP: #364533)

	* backends/packaging-apt-dpkg.py: [1430] packaging-apt-dpkg.py,
	is_distro_package(): Fix crash if package is not installed

	* apport/report.py: [1429] report.py, add_package_info(): Fix crash if
	package is not installed

	* backends/packaging-apt-dpkg.py: [1428] packaging-apt-dpkg.py,
	get_version(): Properly raise ValueError for existing, but uninstalled
	packages.

	* backends/packaging-apt-dpkg.py: [1427] packaging-apt-dpkg.py:
	Replace deprecated python-apt properties with current ones (>= 0.7.9)

2009-05-05  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/launchpad.py: [1426] launchpad: fix exception
	class name

2009-04-30  Martin Pitt <martin.pitt@canonical.com>

	* bin/apportcheckresume: [1425] * bin/apportcheckresume: the suspend
	_and_ hibernate logs are both in   pm-suspend.log. *
	bin/apportcheckresume: remove redunant check for file before attaching
	stress log.

	* apport/hookutils.py: [1424] hookutils.py: Drop
	/proc/version_signature collection, it is Ubuntu specific

=== 1.1.1 ===
2009-04-30  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* setup.py: [1423] release 1.1.1

	* NEWS: [1422] update NEWS

	* etc/cron.daily/apport: [1421] 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

2009-04-28  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/launchpad.py: [1420] launchpad.py: consider
	socket errors when connecting as transient

2009-04-24  Martin Pitt <martin.pitt@canonical.com>

	* apport/report.py: [1419] report.py, test_add_gdb_info_script(): More
	robust method of generating core dump, fixes test suite

	* apport/report.py: [1418] report.py: Fix test suite for r1416

2009-04-23  Martin Pitt <martin.pitt@canonical.com>

	* apport/report.py: [1417] 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)

	* apport/report.py,
	* apport/ui.py: [1416] ui.py: Detect invalid PIDs (such as for kernel
	processes) and give a friendly error message. (LP: #360608)

	* apport/report.py: [1415] report.py, add_proc_info(): Only add
	ProcAttrCurrent if it is not "unconfined".

	* apport/crashdb_impl/launchpad.py: [1414] launchpad.py: Send and read
	Date: field again, reverting r1128; it is useful after all. (LP:
	#349139)

2009-04-21  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/launchpad.py: [1413] launchpad.py: support older
	wadllib API where bug.date_created was a string instead of a datetime
	object

2009-04-20  Martin Pitt <martin.pitt@canonical.com>

	* apport/hookutils.py: [1412] hookutils.py: add docstring for
	attach_hardware()

=== 1.1 ===
2009-04-20  Martin Pitt <martin.pitt@canonical.com>

	* NEWS,
	* setup.py: [1411] release 1.1

	* do-release: [1410] do-release: clean bzr tree

	* do-release: [1409] do-release: grep version from NEWS

	* do-release: [1408] do-release: add date to NEWS

	* NEWS: [1407] NEWS: update to current trunk

2009-04-20  Martin Pitt <martin.pitt@canonical.com>

	* preloadlib,
	* preloadlib/Makefile,
	* preloadlib/README,
	* preloadlib/libapport.c: Removed.

	* test-apport: Modified.

	[1406] remove preloadlib; it's undermaintained, and not really useful
	any more these days

2009-04-20  Martin Pitt <martin.pitt@canonical.com>

	* po/ar.po,
	* po/be.po,
	* po/bg.po,
	* po/bs.po,
	* po/ca.po,
	* po/cs.po,
	* po/da.po,
	* po/el.po,
	* po/eo.po,
	* po/es.po,
	* po/et.po,
	* po/eu.po,
	* po/fi.po,
	* po/fr.po,
	* po/ga.po,
	* po/gl.po,
	* po/he.po,
	* po/hi.po,
	* po/hr.po,
	* po/hu.po,
	* po/id.po,
	* po/is.po,
	* po/it.po,
	* po/ja.po,
	* po/ko.po,
	* po/ku.po,
	* po/lo.po,
	* po/lt.po,
	* po/lv.po,
	* po/mk.po,
	* po/ms.po,
	* po/nb.po,
	* po/nds.po,
	* po/nl.po,
	* po/oc.po,
	* po/pl.po,
	* po/pt.po,
	* po/pt_BR.po,
	* po/ro.po,
	* po/ru.po,
	* po/sk.po,
	* po/sl.po,
	* po/sq.po,
	* po/sv.po,
	* po/ta.po,
	* po/th.po,
	* po/tr.po,
	* po/uk.po,
	* po/zh_CN.po,
	* po/zh_TW.po: Added.

	[1405] Add translations from Launchpad

2009-04-20  Martin Pitt <martin.pitt@canonical.com>

	* po/de.po: [1404] de.po: fix glitch

	* README: [1403] README: link to homepage and point to doc/

	* use-local: [1402] use-local: add comment about purpose

2009-04-20  Martin Pitt <martin.pitt@canonical.com>

	* README: Added.

	[1401] add README file

2009-04-20  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/launchpad.py: [1400] launchpad.py: remove
	reference to LP#353784, it is not a bug

	* apport/crashdb_impl/launchpad.py: [1399] launchpad.py: For multiple
	fixed tasks, just take the first one; best we can do

	* apport/crashdb_impl/launchpad.py: [1398] launchpad.py: Consider
	"wontfix" bugs as invalid, too

2009-04-15  Martin Pitt <martin.pitt@canonical.com>

	* setup.py: [1397] setup.py: install mimetypes/text-x-apport.svg icon
	symlink

2009-04-15  Martin Pitt <martin.pitt@canonical.com>

	* etc/default/apport.default: Renamed to etc/default/apport.

	[1396] fix name of default file

2009-04-11  Martin Pitt <martin.pitt@canonical.com>

	* NEWS: Added.

	[1395] add NEWS, with 1.0

2009-04-11  Martin Pitt <martin.pitt@canonical.com>

	* setup.py: [1394] setup.py: clean po/mo/

	* TODO: [1393] TODO: remove obsolete items

	* TODO: [1392] TODO: Remove Ubuntu specific issues

	* TODO: [1391] TODO item

	* apport/report.py: [1390] add new field Report.pid which gets set on
	add_proc_info() and can be used by hooks

	* TODO: [1389] drop implemented stuff from TODO

2009-04-11  Martin Pitt <martin.pitt@canonical.com>

	* general-hooks/generic.py: Added.

	* apport/hookutils.py,
	* apport/report.py,
	* run-tests: Modified.

	[1388] move determination of nonfree kernel modules from core code to
	generic hook

2009-04-11  Martin Pitt <martin.pitt@canonical.com>

	* AUTHORS: [1387] update AUTHORS

2009-04-11  Martin Pitt <martin.pitt@canonical.com>

	* backends/packaging_opensuse.py: Removed.

	[1386] Remove backends/packaging_opensuse.py, it is not appropriate
	for trunk.  OpenSUSE, when merging this, please use  "bzr revert
	backends/packaging_opensuse.py" and merge the empty change, so that it
	does not get lost in the future.

2009-04-11  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/multipartpost_handler.py: Added.

	* apport/crashdb_impl/launchpad.py: Modified.

	[1385] switch apport.crashdb_impl.launchpad from python-launchpad-bugs
	to launchpadlib

2009-04-11  Martin Pitt <martin.pitt@canonical.com>

	* apport/hookutils.py: [1384] apport/hookutils.py, attach_alsa(): Add
	codec information

	* apport/hookutils.py: [1383] apport/hookutils.p, path_to_key():
	Translate more invalid characters

	* apport/hookutils.py: [1382] apport/hookutils.py, attach_alsa(): Add
	fuser info and dmesg

	* apport/hookutils.py: [1381] apport/hookutils.py: Extend
	package_versions to accept globs.

	* apport/packaging.py,
	* backends/packaging-apt-dpkg.py,
	* backends/packaging_rpm.py: [1380] add packaging.package_name_glob()
	interface and apt implementation

	* backends/packaging-apt-dpkg.py: [1379] backends/packaging-apt-
	dpkg.py: move apt cache accessors around

	* apport/packaging.py: [1378] apport/packaging.py: Clean up docstrings
	and make them PEP-8 conformant

	* apport/hookutils.py: [1377] apport/hookutils.py:   - Factor out
	package_versions() to generate a simple text listing of relevant
	package versions and use it in attach_printing()  - Add new function
	attach_relevant_packages() to attach version information    (and
	perhaps eventually run hooks?) for related packages

2009-04-07  Martin Pitt <martin.pitt@canonical.com>

	* backends/packaging-apt-dpkg.py: [1376] backends/packaging-apt-
	dpkg.py: add missing shutil import

	* apport/hookutils.py: [1375] hookutils.py: Drop attach_conffiles(),
	it is dpkg specific

2009-04-07  Martin Pitt <martin.pitt@canonical.com>

	* do-release: Added.

	[1374] Add do-release script.  This should not be merged into distro
	branches, since it is only useful for upstream.

=== 1.0 ===
2009-04-07  Martin Pitt <martin.pitt@canonical.com>

	* setup.py: [1373] release 1.0

	* setup.py: [1372] setup.py: upgrade description

	* setup.py: [1371] setup.py: add version

2009-04-07  Martin Pitt <martin.pitt@canonical.com>

	* apport.init.fedora,
	* apport.init.opensuse,
	* apport.spec.fedora,
	* apport.spec.opensuse,
	* backends/packaging_fedora.py,
	* debian,
	* debian/apport-gtk.install,
	* debian/apport-qt.install,
	* debian/apport-retrace.install,
	* debian/apport-retrace.manpages,
	* debian/apport.README.Debian,
	* debian/apport.examples,
	* debian/apport.install,
	* debian/apport.links,
	* debian/apport.logrotate,
	* debian/apport.manpages,
	* debian/changelog,
	* debian/compat,
	* debian/control,
	* debian/copyright,
	* debian/local,
	* debian/local/apport-chroot,
	* debian/local/apport-chroot.1,
	* debian/local/apport-collect,
	* debian/local/apport-collect.1,
	* debian/local/setup-apport-retracer,
	* debian/local/ubuntu-bug,
	* debian/local/ubuntu-bug.1,
	* debian/local/ubuntu-fat-chroot,
	* debian/pycompat,
	* debian/python-apport.install,
	* debian/python-apport.postinst,
	* debian/python-problem-report.install,
	* debian/pyversions,
	* debian/rules,
	* general-hooks/automatix.py,
	* general-hooks/ubuntu.py,
	* package-hooks/source_linux.py,
	* python-apport.spec.opensuse: Removed.

	* etc/apport/crashdb.conf,
	* run-tests: Modified.

	[1370] Turn branch into a real upstream trunk.  This commit removes
	all distribution specific stuff. It keeps the general RPM and apt
	packaging backends, as well as the Launchpad CrashDatabase
	implementation, since they apply to more than just one distribution.
	If you merge this into the existing opensuse/ubuntu/fedora branches,
	revert the deletion of the files you need!

=== 0.149 ===
2009-04-07  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1369] releasing version 0.149

	* debian/changelog: [1368] changelog annotations

	* debian/changelog,
	* man/apport-retrace.1: [1367] man/apport-retrace.1: Drop reference to
	"apt", simply talk about package installation.

	* debian/changelog,
	* debian/local/apport-chroot: [1366] debian/local/apport-chroot: If
	multiple distro IDs point to the same chroot, do not upgrade them more
	than once with "upgrade all".

2009-04-06  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog,
	* debian/local/setup-apport-retracer: [1365] setup-apport-retracer:
	fix crashdb.conf path

	* debian/changelog,
	* debian/local/setup-apport-retracer: [1364] debian/local/setup-
	apport-retracer: Update apport-chroot path for above change.

2009-04-05  Martin Pitt <martin.pitt@canonical.com>

	* apport/hookutils.py,
	* debian/changelog: [1363] apport/hookutils.py, files_in_package():
	Replace dpkg-query call with packaging.get_files(), to avoid
	Debianism.

2009-04-05  Martin Pitt <martin.pitt@canonical.com>

	* debian/apport-retrace.install,
	* debian/apport-retrace.manpages,
	* debian/changelog,
	* setup.py: Modified.

	* bin/apport-chroot: Renamed to debian/local/apport-chroot.
	* man/apport-chroot.1: Renamed to debian/local/apport-chroot.1.

	[1362] Move bin/apport-chroot and man/apport-chroot.1 to debian/local,
	since they are totally Debian/Ubuntu specific.

2009-04-05  Martin Pitt <martin.pitt@canonical.com>

	* bin/apport-chroot,
	* bin/apport-retrace,
	* debian/changelog: [1361] bin/apport-retrace: Rename option --no-dpkg
	to --no-pkg and update bin/apport-chroot accordingly.

	* apport/packaging.py,
	* backends/packaging-apt-dpkg.py,
	* bin/apport-retrace,
	* debian/changelog: [1360] 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.

	* debian/apport.install: [1359] fix conffile installation

	* debian/changelog,
	* setup.py: [1358] setup.py: Fix homepage URL.

	* debian/changelog,
	* problem_report.py: [1357] problem_report.py, man/apport-unpack.1:
	Fix description of .crash file syntax (RFC822, not "Debian control").

	* debian/changelog,
	* setup.py: [1356] setup.py: Move *.mo generation/installation into
	my_install_data class, for cleanliness.

2009-04-05  Martin Pitt <martin.pitt@canonical.com>

	* etc/apport,
	* etc/apport/blacklist.d: Added.

	* debian/changelog,
	* run-tests,
	* setup.py: Modified.

	* crashdb.conf: Renamed to etc/apport/crashdb.conf.
	* doc/README.blacklist: Renamed to
	  etc/apport/blacklist.d/README.blacklist.

	[1355] Move crashdb.conf and doc/README.blacklist to etc/, to simplify
	setup.py.

2009-04-05  Martin Pitt <martin.pitt@canonical.com>

	* etc,
	* etc/cron.daily,
	* etc/cron.daily/apport,
	* etc/default,
	* etc/default/apport.default,
	* etc/init.d,
	* etc/init.d/apport: Added.

	* debian/apport.cron.daily,
	* debian/apport.default,
	* debian/apport.init: Removed.

	* debian/apport.install,
	* debian/changelog,
	* setup.py: Modified.

	[1354] 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.

2009-04-04  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog,
	* man/apport-unpack.1: [1353] man/apport-unpack.1: Fix description of
	.crash file syntax (RFC822, not "Debian control").

=== 0.148 ===
2009-04-01  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1352] releasing version 0.148

	* bin/kernel_oops,
	* debian/changelog: [1351] 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)

	* bin/apport-retrace,
	* debian/changelog: [1350] 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)

	* apport/hookutils.py,
	* debian/changelog,
	* general-hooks/ubuntu.py: [1349] apport/hookutils.py: Move
	attach_media_build() to general-hooks/ubuntu.py, since it is Ubuntu
	specific.

	* debian/changelog,
	* debian/local/ubuntu-bug,
	* debian/local/ubuntu-bug.1: [1348] 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.

2009-03-30  Matt Zimmerman <mdz@perseus>

	* bin/apportcheckresume,
	* debian/changelog: [1347] bin/apportcheckresume: Use
	attach_file_if_exists rather than attach_file to avoid spurious error
	messages about non-existent log files (LP: #351973)

2009-03-30  Matt Zimmerman <mdz@perseus>

	* general-hooks/ubuntu.py: Added.

	* apport/hookutils.py,
	* debian/changelog: Modified.

	[1346] * 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)

=== 0.147 ===
2009-03-30  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1345] releasing version 0.147

	* bin/apportcheckresume,
	* debian/apport.init,
	* debian/changelog: [1344] * 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)

=== 0.146 ===
2009-03-27  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1343] releasing version 0.146

	* bin/apport-retrace,
	* debian/changelog: [1342] 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.

	* bin/crash-digger,
	* debian/changelog,
	* test-crash-digger: [1341] 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.

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1340] 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)

	* apport/crashdb.py,
	* debian/changelog: [1339] apport/crashdb.py, get_crashdb(): Print
	syntax errors from parsing conf.d/*.conf to stderr.

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1338] 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_impl/launchpad.py,
	* debian/changelog: [1337] apport/crashdb_impl/launchpad.py: Add test
	case: Update a bug report which got marked as a duplicate during
	processing. This reproduces #349407.

2009-03-26  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog,
	* debian/local/ubuntu-fat-chroot: [1336] 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.

	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [1335] backends/packaging-apt-dpkg.py: When
	unpacking source trees, try "debian/rules setup" last, since it is the
	least common variant.

	* debian/changelog,
	* debian/local/ubuntu-bug.1: [1334] debian/local/ubuntu-bug.1: Add
	missing documentation of the case of specifying a path name.

	* debian/changelog,
	* debian/local/ubuntu-bug.1: [1333] 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)

2009-03-25  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb.py,
	* debian/changelog: [1332] apport/crashdb.py,
	duplicate_db_consolidate(): Add logging about removing invalidated
	bugs from the duplicate database, now that this actually works.

	* debian/changelog,
	* debian/local/apport-collect,
	* debian/local/apport-collect.1: [1331] 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/ui.py,
	* debian/changelog: [1330] 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)

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1329] launchpad.py: test Python reporting and tag
	handling

2009-03-13  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/launchpad.py: [1328] launchpad.py test suite:
	fix typo in variable name

2009-03-12  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/launchpad.py: [1327] launchpad.py: shallow test
	of get_fixed_version()

	* apport/crashdb.py,
	* apport/crashdb_impl/launchpad.py,
	* apport/crashdb_impl/memory.py,
	* debian/changelog: [1326] * 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/crashdb_impl/launchpad.py,
	* debian/changelog: [1325] apport/crashdb_impl/launchpad.py: Add
	initial test suite, performing data upload, bug reporting, report
	download, and report updating. This happens on staging.launchpad.net.

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1324] apport/crashdb_impl/launchpad.py: Fully
	enable operation with staging.launchpad.net.

	* apport/report.py,
	* debian/changelog: [1323] 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.

=== 0.145 ===
2009-03-10  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1322] releasing version 0.145

	* debian/changelog,
	* general-hooks/automatix.py: [1321] general-hooks/automatix.py:
	Refuse to send bug reports when ultamatix is installed.

	* apport_python_hook.py,
	* debian/changelog: [1320] 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)

	* debian/changelog,
	* debian/local/apport-collect: [1319] 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/crashdb_impl/launchpad.py,
	* debian/changelog: [1318] apport/crashdb_impl/launchpad.py: Fix typo
	in previous upload.

=== 0.144 ===
2009-03-10  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1317] releasing version 0.144

	* bin/apport-retrace,
	* debian/changelog: [1316] 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.

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1315] apport/crashdb_impl/launchpad.py,
	mark_retrace_failed(): If report is invalid, remove CoreDump.gz and
	other attachments.

=== 0.143 ===
2009-03-09  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1314] releasing version 0.143

	* apport/report.py,
	* debian/changelog: [1313] apport/report.py, anonymize(): Move user
	name anonymization into the "non-root" case as well; fixes
	uninitialized variable. (LP: #338847)

2009-03-06  Martin Pitt <martin.pitt@canonical.com>

	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [1312] 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)

	* debian/apport.README.Debian,
	* debian/changelog: [1311] debian/apport.README.Debian: Document how
	to temporarily and permanently enable crash interception.

=== 0.142 ===
2009-03-05  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1310] releasing version 0.142

	* apport/report.py: [1309] report.py: fix silly typo

	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [1308] backends/packaging-apt-dpkg.py,
	_get_mirror(): Only consider http:// mirrors for fetching Contents.gz.
	(LP: #315797)

	* debian/apport.default,
	* debian/apport.init,
	* debian/changelog: [1307] 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)

	* debian/changelog: [1306] close a related bug in changelog

	* apport/report.py,
	* debian/changelog: [1305] 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.

	* apport/report.py,
	* debian/changelog: [1304] apport/report.py, anonymize(): Fix crash
	when processing root-owned reports. (LP: #338033)

	* apport/REThread.py,
	* apport/chroot.py,
	* apport/fileutils.py,
	* apport/report.py,
	* apport/ui.py,
	* apport_python_hook.py,
	* backends/packaging-apt-dpkg.py,
	* backends/packaging_opensuse.py,
	* backends/packaging_rpm.py,
	* debian/changelog,
	* problem_report.py,
	* test-apport,
	* test-hooks: [1303] Remove redundant verbiage from test suite
	docstrings.

	* apport/ui.py,
	* debian/changelog: [1302] apport/ui.py, load_report(): Clearer error
	message if report file does not exist. (LP: #204198)

	* debian/changelog,
	* debian/local/ubuntu-bug: [1301] debian/local/ubuntu-bug: Fix
	invocation with "--help". (LP: #305841)

	* apport/report.py,
	* debian/changelog: [1300] apport/report.py: Slight robustification of
	test_add_gdb_info_script() test case.

	* apport/ui.py,
	* debian/changelog: [1299] 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/ui.py,
	* debian/changelog: [1298] 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)

	* apport/report.py,
	* debian/changelog: [1297] apport/report.py, _gen_stacktrace_top():
	Fix parsing of stacktraces with some addresses missing. Add test
	cases. (LP: #269133)

	* apport/hookutils.py,
	* debian/changelog: [1296] * 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.

2009-03-03  Martin Pitt <martin.pitt@canonical.com>

	* apport/report.py,
	* debian/changelog: [1295] apport/report.py: Do not include
	lsb_release's stderr in the DistroRelease: output.

=== 0.141 ===
2009-03-02  Kees Cook <kees@outflux.net>

	* debian/changelog: [1294] releasing version 0.141

	* apport/hookutils.py,
	* debian/changelog: [1293] apport/hookutils.py: Add cups error log to
	attach_printing()

=== 0.140 ===
2009-03-02  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1292] releasing version 0.140

	* debian/changelog,
	* run-tests: [1291] run-tests: Only check for local packaging_impl.py
	if running local tests. This unbreaks running tests from
	/usr/share/apport/testsuite/.

	* debian/changelog,
	* debian/python-apport.install,
	* debian/python-problem-report.install: [1290] debian/python-{apport
	,problem-report}.install: Fix site-packages ? *-packages.

=== 0.139 ===
2009-03-02  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1289] releasing version 0.139

	* apport/hookutils.py,
	* debian/changelog: [1288] apport/hookutils.py, hal_dump_udi(): Filter
	out serial numbers.  (Mentioned in LP #107103)

2009-02-26  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog,
	* debian/local/apport-collect: [1287] 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)

	* debian/changelog,
	* debian/local/apport-collect,
	* debian/local/apport-collect.1: [1286] 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.

2009-02-25  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog,
	* debian/rules: [1285] debian/rules: Supply --install-layout=deb to
	setup.py.

	* apport/report.py,
	* debian/changelog: [1284] apport/report.py, anonymize(): Do not
	anonymize "root". (Side issue in LP #333542)

=== 0.138 ===
2009-02-24  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1283] releasing version 0.138

	* apport/hookutils.py,
	* debian/changelog: [1282] apport/hookutils.py: Add attach_printing().
	Thanks to Brian Murray for the initial patch! (LP: #333582)

	* apport/crashdb_impl/memory.py,
	* apport/ui.py,
	* bin/apport,
	* bin/crash-digger,
	* debian/changelog: [1281] Replace all instances of using an
	exception's .message attribute with str(exception), since message is
	deprecated in Python 2.6.

	* apport/hookutils.py,
	* backends/packaging_rpm.py,
	* debian/changelog: [1280] apport/hookutils.py,
	backends/packaging_rpm.py: Convert usage of md5 module (which is
	deprecated in 2.6) to hashlib.

	* debian/changelog,
	* debian/control,
	* debian/rules: [1279] Set python-version to all, include symlinks in
	the package.

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1278] 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.

=== 0.136 ===
2009-02-24  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1277] releasing version 0.136

	* debian/changelog,
	* debian/local/apport-collect: [1276] debian/local/apport-collect: Add
	user environment information, too (LANG, PATH, SHELL). (LP: #332578)

	* apport/report.py,
	* bin/apportcheckresume,
	* debian/changelog: [1275] * 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.

=== 0.135 ===
2009-02-23  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1274] releasing version 0.135

	* debian/changelog,
	* test-hooks: [1273] test-hooks: Update dodgy test for uninstalled
	package, libdb4.3-tcl is not available in Jaunty any more.

	* debian/changelog,
	* problem_report.py: [1272] 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/changelog,
	* package-hooks/source_apport.py: [1271] package-
	hooks/source_apport.py: Robustify by using hookutils, and avoid stat
	errors if /var/crash/* does not exist.

	* debian/changelog,
	* debian/local/apport-collect: [1270] debian/local/apport-collect:
	Collect package, OS, and user information as well. (LP: #332578)

	* debian/changelog,
	* problem_report.py: [1269] 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.

=== 0.134 ===
2009-02-20  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1268] releasing version 0.134

	* apport/hookutils.py,
	* debian/changelog: [1267] apport/hookutils.py: Replace tabs with
	spaces.

	* apport/report.py,
	* debian/changelog: [1266] 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/crashdb_impl/launchpad.py,
	* debian/changelog: [1265] apport/crashdb_impl/launchpad.py,
	download(): Download DpkgTerminalLog.txt attachment as well.

	* debian/changelog,
	* debian/local/apport-collect: [1264] debian/local/apport-collect: Do
	not collect information for closed tasks. Thanks for Brian Murray for
	the initial patch! (LP: #331839)

=== 0.133 ===
2009-02-19  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1263] releasing version 0.133

	* apport/hookutils.py,
	* bin/apportcheckresume,
	* debian/changelog: [1262] * 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.

=== 0.132 ===
2009-02-19  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1261] releasing version 0.132

	* debian/changelog,
	* debian/control: [1260] debian/control: Add ${misc:Depends}
	dependencies.

2009-02-19  Martin Pitt <martin.pitt@canonical.com>

	* debian/local/apport-collect,
	* debian/local/apport-collect.1: Added.

	* debian/apport.install,
	* debian/apport.manpages,
	* debian/changelog,
	* debian/control: Modified.

	[1259] * 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.

2009-02-17  Jonathan Riddell <jriddell@canonical.com>

	* debian/changelog,
	* qt4/apport-qt: [1258] Set window icon in apport-qt

=== 0.131 ===
2009-02-16  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1257] releasing version 0.131

	* debian/changelog,
	* po/de.po: [1256] Update German translations.

	* apport/ui.py,
	* debian/changelog: [1255] apport/ui.py: Drop some bogus translatable
	strings.

	* cli/apport-cli,
	* debian/changelog,
	* qt4/apport-qt: [1254] cli/apport-cli, qt4/apport-qt: Unify string
	with apport-gtk.

	* debian/changelog,
	* po/Makefile: [1253] po/Makefile: Fix merge-po rule to actually work
	again.

	* bin/apportcheckresume,
	* bin/kernel_oops,
	* cli/apport-cli,
	* debian/changelog,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade,
	* qt4/apport-qt: [1252] 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.

=== 0.130 ===
2009-02-12  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1251] releasing version 0.130

	* bin/apportcheckresume,
	* debian/changelog: [1250] * 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.

	* bin/apport-retrace,
	* debian/changelog: [1249] 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)

	* apport/crashdb_impl/memory.py,
	* debian/changelog: [1248] apport/crashdb_impl/memory.py: Improve
	docstrings of test suite.

	* bin/crash-digger,
	* debian/changelog: [1247] bin/crash-digger: Revert catching "database
	is locked" errors during consolidation, since it just hides more
	fundamental errors.

2009-02-05  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1246] crashdb_impl/launchpad.py: Tag bugs with
	the architecture they are being reported on.

2009-02-02  Martin Pitt <martin.pitt@canonical.com>

	* bin/kernel_crashdump,
	* debian/changelog: [1245] bin/kernel_crashdump: Don't crash if
	vmcore.log does not exist.

=== 0.129 ===
2009-01-26  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1244] releasing version 0.129

	* apport/crashdb.py,
	* debian/changelog: [1243] 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.

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1242] apport/crashdb_impl/launchpad.py: Request
	bug lists with batch size 300, for slight speedup of consolidation.

	* bin/dupdb-admin,
	* debian/changelog: [1241] dupdb-admin: Add new command "consolidate".

	* bin/crash-digger,
	* debian/changelog: [1240] bin/crash-digger: Create a backup of the
	duplicates database right after initializing it (which verifies
	integrity).

	* apport/crashdb.py,
	* apport/crashdb_impl/memory.py,
	* debian/changelog: [1239] 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/apportcheckresume,
	* debian/changelog: [1238] 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_impl/launchpad.py,
	* apport/ui.py,
	* debian/changelog: [1237] * 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)

2009-01-20  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog,
	* doc/package-hooks.txt: [1236] doc/package-hooks.txt: Point out
	apport.hookutils.

	* bin/apport,
	* debian/changelog: [1235] 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!

	* debian/changelog,
	* debian/local/ubuntu-fat-chroot: [1234] debian/local/ubuntu-fat-
	chroot: Symlink /target -> /, to work for crashes which appear in
	/target during installation.

	* bin/apport-retrace,
	* debian/changelog: [1233] bin/apport-retrace: Do not mark bugs as
	invalid after they are already marked as a duplicate, since that does
	not work in Launchpad.

	* bin/apport-retrace,
	* debian/changelog: [1232] bin/apport-retrace: Log broken reports.

	* bin/apport-retrace,
	* debian/changelog: [1231] typo fixes

=== 0.128 ===
2009-01-19  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1230] releasing version 0.128

	* bin/apport-retrace: [1229] apport-retrace: improve error message

	* bin/apport-retrace: [1228] apport-retrace: more robustification of
	r1226

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1227] 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).

	* bin/apport-retrace,
	* debian/changelog: [1226] 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.

	* bin/apport-retrace,
	* debian/changelog: [1225] bin/apport-retrace: Call Cache.open() after
	Cache.update().

	* apport/ui.py,
	* debian/changelog: [1224] * apport/ui.py: Introduce new configuration
	option "thirdparty" and * ignore the is_distro_package() check if it
	is set to true.

=== 0.127 ===
2009-01-13  Steve Langasek <steve.langasek@canonical.com>

	* bin/apportcheckresume: Added.

	* debian/apport.init,
	* debian/apport.install,
	* debian/changelog,
	* setup.py: Modified.

	[1223] bin/apportcheckresume, debian/apport.init: integrate with pm-
	utils to detect suspend/resume failures.  Thanks to Steve Conklin and
	Andy Whitcroft.  LP: #316419.

=== 0.126 ===
2009-01-09  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1222] releasing version 0.126

	* bin/apport-retrace,
	* debian/changelog: [1221] bin/apport-retrace: Exit with zero for bugs
	which do not have a core dump, so that it does not completely stop the
	retracers.

	* bin/apport-chroot,
	* debian/changelog: [1220] 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.

=== 0.125 ===
2009-01-09  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1219] releasing version 0.125

	* bin/crash-digger,
	* debian/changelog,
	* test-crash-digger: [1218] * 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

2009-01-08  Martin Pitt <martin.pitt@canonical.com>

	* bin/apport-retrace,
	* debian/changelog: [1217] bin/apport-retrace: Do not put outdated
	-dbgsym comments into the bug comments.

	* bin/apport-chroot,
	* debian/changelog: [1216] bin/apport-chroot: Exit with apport-
	retraces' exit status, to propagate errors upwards to crash-digger.

=== 0.124 ===
2009-01-08  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1215] releasing version 0.124

	* debian/apport.default,
	* debian/changelog: [1214] debian/apport.default: Enable by default
	again for Jaunty. Let the flood begin!

	* bin/apport-retrace: [1213] apport-retrace: useful stack trace is
	enough, does not need to be perfect

	* bin/apport-retrace,
	* debian/changelog: [1212] bin/apport-retrace: Update the apt cache
	before looking for, and installing packages. (Part of UbuntuSpec
	:apport-retracer-maintenance)

	* bin/apport-retrace,
	* debian/changelog,
	* debian/control: [1211] 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)

	* apport/crashdb.py,
	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1210] 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.

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1209] apport/crashdb_impl/launchpad.py: Allow
	using staging for testing.

	* debian/changelog,
	* debian/local/ubuntu-fat-chroot: [1208] 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.

=== 0.123 ===
2009-01-05  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1207] releasing version 0.123

	* apport/report.py,
	* debian/changelog: [1206] apport/report.py, add_proc_environ(): Use
	"PATH=(...)" instead of "PATH: ..." notation, to be consistent with
	other environment variables. Unbreaks the apport test suite.

	* apport/report.py,
	* debian/changelog: [1205] 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,
	* debian/changelog: [1204] 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).

	* bin/apport,
	* debian/changelog: [1203] bin/apport: Remove a previously seen report
	file, so that the following creation with O_EXCL actually works.

	* bin/apport,
	* debian/changelog: [1202] bin/apport: Do not write the report into
	the log file if opening the report file failed; just log the error.

=== 0.122 ===
2009-01-05  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1201] releasing version 0.122

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog,
	* doc/data-format.tex: [1200] 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!

=== 0.121 ===
2008-12-09  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1199] releasing version 0.121

2008-12-02  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1198] fix changelog

2008-12-01  Martin Pitt <martin.pitt@canonical.com>

	* apport/report.py,
	* debian/changelog,
	* doc/data-format.tex: [1197] 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)

	* debian/apport.init,
	* debian/changelog: [1196] debian/apport.init: Make restart actually
	work if the default file was changed. (LP: #292402)

	* debian/apport.init,
	* debian/changelog: [1195] debian/apport.init: Drop long obsolete
	setting of /proc/sys/kernel/crashdump-size.

=== 0.120 ===
2008-11-26  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1194] releasing version 0.120

	* apport/hookutils.py: [1193] hookutils.py: Fix Lspci and Lsusb key
	names

	* apport/report.py: [1192] add_hook_info(): Fix error handling for
	binary hooks, too

	* apport/hookutils.py,
	* debian/changelog: [1191] apport/hookutils.py, _parse_gconf_schema():
	Correctly handle bool values.

	* apport/report.py,
	* debian/changelog: [1190] apport/report.py, add_hooks_info(): Do not
	print an error if a source package hook does not exist.

	* apport/report.py,
	* debian/changelog: [1189] apport/report.py: Also print exceptions
	from binary and source package hooks, not just from common ones.

	* apport/hookutils.py,
	* debian/changelog,
	* package-hooks/source_linux.py: [1188] * 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.

2008-11-21  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/memory.py,
	* apport/ui.py,
	* debian/changelog: [1187] apport/crashdb_impl/memory.py: Use
	example.com, not bug.net, since the latter actually exists now.

2008-11-13  Martin Pitt <martin.pitt@canonical.com>

	* apport_python_hook.py,
	* bin/apport,
	* debian/changelog,
	* problem_report.py: [1186] * apport_python_hook.py, bin/apport:
	Create files in a race free way to   avoid symlink attacks. Thanks to
	Sebastian Kramer <krahmer@novell.com> for   finding them! *
	problem_report.py test suite: Create debugging leftover which left
	/tmp/r   behind.

2008-10-29  Martin Pitt <martin.pitt@canonical.com>

	* apport.init.opensuse,
	* apport.spec.opensuse,
	* apport/report.py,
	* backends/packaging_opensuse.py,
	* backends/packaging_rpm.py,
	* debian/changelog: [1185] * 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/ui.py,
	* debian/changelog: [1184] apport/ui.py: Fix regression introduced in
	in 0.115 for checking successful package name determination.

	* apport/fileutils.py,
	* bin/apport: [1183] fileutils.py, get_config(): Support boolean
	values

	* bin/apport,
	* debian/changelog,
	* debian/control: [1182] 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/fileutils.py,
	* debian/changelog: [1181] 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.

2008-10-29  Martin Pitt <martin.pitt@canonical.com>

	* python-apport.spec.opensuse: Added.

	* apport.spec.opensuse: Modified.

	[1180] merge from opensuse branch

2008-10-29  Martin Pitt <martin.pitt@canonical.com>

	* apport.init.opensuse,
	* apport.spec.opensuse,
	* backends/packaging_opensuse.py: Added.

	* backends/packaging_fedora.py,
	* backends/packaging_rpm.py: Modified.

	* apport.spec: Renamed to apport.spec.fedora.

	[1179] merge from opensuse branch

2008-10-28  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog,
	* man/apport-cli.1: [1178] man/apport-cli.1: Fix "sytem" typo. (LP:
	#288977)

=== 0.119 ===
2008-10-23  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1177] releasing version 0.119

	* debian/apport.default,
	* debian/changelog: [1176] debian/apport.default: Disable Apport by
	default for the final release.

2008-10-15  Matt Zimmerman <mdz@canonical.com>

	* apport/hookutils.py: [1175] Remove unnecessary import of expat

2008-10-13  Matt Zimmerman <mdz@canonical.com>

	* apport/hookutils.py,
	* debian/changelog: [1174] apport/hookutils.py: add attach_gconf()
	function to add non-default gconf settings to a report

=== 0.117 ===
2008-10-07  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1173] releasing version 0.117

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1172] 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)

	* debian/changelog,
	* test-apport: [1171] 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.

	* bin/apport,
	* debian/changelog: [1170] bin/apport: Log that we are ignoring
	SIGABRT, since it is a common cause of confusion.

	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [1169] backends/packaging-apt-dpkg.py,
	is_distro_package(): Fix crash if apt.Cache()[pkg].origins is None.
	(LP: #279353)

=== 0.116 ===
2008-09-26  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1168] releasing version 0.116

	* debian/changelog,
	* debian/local/ubuntu-bug: [1167] 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)

2008-09-21  Martin Pitt <martin.pitt@canonical.com>

	* AUTHORS,
	* cli/apport-cli,
	* debian/changelog,
	* debian/copyright,
	* qt4/apport-qt: [1166] Update AUTHORS and debian/copyright, Michael
	and Troy released their copyright to Canonical. Properly attribute
	them as authors in the respective files.

=== 0.115 ===
2008-09-19  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1165] releasing version 0.115

	* debian/changelog,
	* run-tests: [1164] run-tests: Provide a better error message if
	apport/packaging_impl.py does not exist.

2008-09-19  Martin Pitt <martin.pitt@canonical.com>

	* bin/kernel_oops: Added.

	* apport/report.py,
	* apport/ui.py,
	* debian/apport.install,
	* debian/changelog,
	* doc/data-format.tex,
	* problem_report.py,
	* setup.py,
	* test-hooks: Modified.

	[1163] Add bin/kernel_oops hook to capture a kernel oops (eg. via
	kerneloops)

2008-09-19  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1162] add bug # to changelog

2008-09-19  Matt Zimmerman <mdz@canonical.com>

	* debian/changelog,
	* general-hooks/automatix.py: [1161] Fix automatix.py to not crash
	when automatix isn't installed

	* apport/crashdb_impl/launchpad.py,
	* apport/ui.py,
	* problem_report.py,
	* test-hooks: [1160] Finish renaming Kernel to KernelCrash

	* debian/apport.install: [1159] Finish renaming kernel_hook

	* bin/kernel_crashdump,
	* debian/changelog: [1158] Change kernel crash report type to
	KernelCrash

2008-09-19  Matt Zimmerman <mdz@canonical.com>

	* debian/apport.init,
	* debian/changelog,
	* setup.py,
	* test-hooks: Modified.

	* bin/kernel_hook: Renamed to bin/kernel_crashdump.

	[1157] Rename kernel_hook to kernel_crashdump (there are other kernel
	hooks)

2008-09-19  Matt Zimmerman <mdz@canonical.com>

	* package-hooks/source_linux.py: [1156] Simplify test for Uname

2008-09-18  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1155] 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)

2008-09-14  Martin Pitt <martin.pitt@canonical.com>

	* AUTHORS: [1154] AUTHORS: Troy James Sobotka released copyright to
	Canonical

2008-09-11  Martin Pitt <martin.pitt@canonical.com>

	* apport/report.py,
	* debian/changelog: [1153] 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.

2008-09-08  Martin Pitt <martin.pitt@canonical.com>

	* AUTHORS: Added.

	* debian/changelog: Modified.

	[1152] Add AUTHORS file for collecting the list of major contributors
	and copyright holders.

2008-09-05  Matt Zimmerman <mdz@canonical.com>

	* apport/hookutils.py: [1151] Wrap long lines

	* debian/changelog,
	* debian/local/ubuntu-bug: [1150] Extend ubuntu-bug to accept a path
	as an argument and look up the package name

	* apport/hookutils.py: [1149] Add recent_syslog to hookutils

2008-09-05  Matt Zimmerman <mdz@canonical.com>

	* apport/hookutils.py: Added.

	* debian/changelog: Modified.

	[1148] Add apport/hookutils.py with some convenience functions for
	writing hook scripts (work in progress)

=== 0.114 ===
2008-09-04  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1147] releasing version 0.114

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1146] 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.

2008-09-02  Martin Pitt <martin.pitt@canonical.com>

	* apport/report.py,
	* debian/changelog: [1145] apport/report.py: If a hook crashes with an
	exception, print it to stderr, for easier debugging of hooks.

2008-09-01  Martin Pitt <martin.pitt@canonical.com>

	* doc/crashdb-conf.txt: Added.

	* apport/crashdb.py,
	* apport/ui.py,
	* debian/changelog,
	* doc/package-hooks.txt: Modified.

	[1144] * 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.

2008-09-01  Martin Pitt <martin.pitt@canonical.com>

	* apport/ui.py,
	* debian/changelog: [1143] apport/ui.py: Use preferred browser when
	it's recognized as a Mozilla browser (firefox, seamonkey, flock) or
	Epiphany (LP: #131350)

2008-08-28  Anthony Mercatante <tonio@kubuntu>

	* debian/changelog,
	* debian/control: [1142] aport-qt recommends update-notifier-kde

=== 0.112 ===
2008-08-07  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1141] releasing version 0.112

	* apport/ui.py,
	* debian/changelog: [1140] 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.

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1139] apport/crashdb_impl/launchpad.py: Update
	attachment handling to current python-launchpad-bugs API, thanks
	Markus Korn!

=== 0.111 ===
2008-08-05  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1138] releasing version 0.111

	* debian/changelog,
	* gtk/apport-gtk.glade,
	* qt4/apport-qt: [1137] 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.

	* debian/changelog,
	* debian/control: [1136] debian/control: Bump Standards-Version (no
	required changes).

	* apport/ui.py,
	* debian/changelog: [1135] apport/ui.py: Collect information for
	"ProblemType: Kernel" as well, so that we run the package hook. Adapt
	test suite to cover this.

	* bin/kernel_hook,
	* debian/apport.init,
	* debian/changelog,
	* test-hooks: [1134] * 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: [1133] apport/ui.py: fix self.options.package
	stripping harder

	* apport/ui.py,
	* debian/changelog: [1132] 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.

	* apport/ui.py,
	* debian/changelog: [1131] apport/ui.py, run_report_bug(): Strip
	spaces from package argument.

	* debian/changelog,
	* package-hooks/source_linux.py: [1130] package-hooks/source_linux.py:
	Drop Uname, ProcVersion, and RunningKernelVersion fields, since they
	are all subsumed in the ProcVersionSignature field.

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1129] 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.

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1128] apport/crashdb_impl/launchpad.py: Do not
	write the "Date:" field on upload(), and fetch it from the bug
	metadata in download().

	* debian/changelog,
	* problem_report.py: [1127] problem_report.py, write_mime(): Add new
	"skip_keys" argument to filter out keys. Add test cases.

	* TODO: [1126] some TODO items

	* apport/crashdb_impl/launchpad.py,
	* apport/ui.py,
	* debian/changelog,
	* doc/data-format.tex: [1125] 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.

	* debian/changelog,
	* debian/local/ubuntu-bug: [1124] debian/local/ubuntu-bug: If just one
	argument is given, infer -p/-P from the type of the argument.

	* apport/ui.py,
	* debian/changelog: [1123] apport/ui.py: "Do what I mean" when filing
	a bug against "linux" and report it against the actual kernel package.

2008-07-25  Martin Pitt <martin.pitt@canonical.com>

	* apport/packaging.py,
	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [1122] 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.

2008-07-24  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog,
	* debian/local/ubuntu-bug.1: [1121] debian/local/ubuntu-bug.1: Fix
	documentation of -p, it  specifies the binary package name, not the
	source.

2008-07-24  Martin Pitt <martin.pitt@canonical.com>

	* package-hooks/source_linux.py: Added.

	* debian/changelog: Modified.

	[1120] Add package-hooks/source_linux.py: Package hook for collecting
	kernel related information. By Matt Zimmerman, thank you! (LP:
	#251441)

2008-07-24  Martin Pitt <martin.pitt@canonical.com>

	* apport/report.py,
	* debian/changelog: [1119] 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.

2008-07-23  Martin Pitt <martin.pitt@canonical.com>

	* debian/apport.default,
	* debian/changelog: [1118] debian/apport.default: Enable apport by
	default again, now that we have working retracers.

2008-07-15  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog,
	* debian/local/setup-apport-retracer: [1117] debian/local/setup-
	apport-retracer: Fix installation of python-apt. Also install apt, to
	avoid library version mismatches to python-apt.

	* debian/changelog,
	* debian/local/setup-apport-retracer: [1116] debian/local/setup-
	apport-retracer: Switch to intrepid.

2008-06-13  Martin Pitt <martin.pitt@canonical.com>

	* apport/report.py,
	* debian/changelog,
	* doc/data-format.tex: [1115] * 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!

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1114] * apport/crashdb_impl/launchpad.py: Ignore
	broken LP bug tasks instead of   crashing on them.

2008-05-17  Martin Pitt <martin.pitt@canonical.com>

	* apport/ui.py,
	* debian/changelog: [1113] * apport/ui.py: Fix
	test_run_report_bug_unpackaged_pid() to work with the   installed run-
	tests from the package as well.

	* debian/changelog: [1112] release as 0.110 to intrepid

	* apport_python_hook.py,
	* debian/changelog: [1111] * apport_python_hook.py: Do not create
	reports if Apport is disabled (in   /etc/default/apport). (LP:
	#222260)

	* apport/packaging.py,
	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [1110] * 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.

2008-05-09  Martin Pitt <martin.pitt@canonical.com>

	* bin/crash-digger,
	* debian/changelog: [1109] * 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)

2008-05-08  Martin Pitt <martin.pitt@canonical.com>

	* apport/chroot.py,
	* debian/changelog: [1108] chroot.py: test chmod and chown, too

	* apport/chroot.py: [1107] chroot.py: test rm -r, too

	* apport/chroot.py,
	* debian/changelog: [1106] * 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, mkdir, echo, etc.) with
	absolute/relative paths. This reproduces   the total breakage of
	rm'ing absolute paths in hardy fakechroots.

2008-05-05  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1105] release as 0.109 to intrepid

	* debian/changelog: [1104] add bug number

2008-04-29  Martin Pitt <martin.pitt@canonical.com>

	* apport/report.py,
	* debian/changelog: [1103] * 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.

	* debian/changelog,
	* debian/local/setup-apport-retracer: [1102] * debian/local/setup-
	apport-retracer: Update for some changes in Hardy.

2008-04-16  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1101] release as 0.108 to hardy

	* debian/apport.default,
	* debian/changelog: [1100] * 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.

	* cli/apport-cli,
	* debian/changelog,
	* gtk/apport-gtk,
	* qt4/apport-qt: [1099] * apport-{gtk,qt,cli}: Fix handling of file
	references added by package   hooks. (LP: #205163)

	* apport/REThread.py,
	* apport_python_hook.py,
	* bin/apport-retrace,
	* cli/apport-cli,
	* debian/changelog: [1098] merge bug fixes from Daniel Hahler

	* debian/changelog,
	* po/de.po: [1097] * po/de.po: Fix typo (missing space).

2008-04-08  Martin Pitt <martin.pitt@canonical.com>

	* backends/packaging_rpm.py,
	* debian/changelog: [1096] * backends/packaging_rpm.py: Fix RPM
	platform parsing, thanks to Patryk   Zawadzki! (LP: #213015)

	* backends/packaging_rpm.py,
	* debian/changelog: [1095] * backends/packaging_rpm.py: Fix dependency
	resolution of uname(*) in the   RPM backend. Thanks to Patryk
	Zawadzki! (LP: #213018)

2008-04-06  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1094] release as 0.107 to hardy

	* apport/ui.py,
	* debian/changelog,
	* debian/local/ubuntu-bug.1: [1093] * 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)

2008-04-03  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog,
	* po/Makefile,
	* po/Makevars,
	* po/POTFILES.in: [1092] * 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.

	* debian/changelog,
	* po/de.po: [1091] Update German translations.

	* cli/apport-cli,
	* debian/changelog: [1090] * cli/apport-cli: Add translator comment
	for difficult string. (LP: #210948)

2008-04-01  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1089] release as 0.106 to hardy

	* apport/report.py,
	* apport/ui.py,
	* debian/changelog: [1088] * 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).

2008-03-25  Martin Pitt <martin.pitt@canonical.com>

	* apport_python_hook.py,
	* debian/changelog: [1087] * apport_python_hook.py: Catch IndexError
	for invalid sys.argv[0], too.   (LP: #204940)

2008-03-20  seb128@ubuntu.com

	* debian/changelog,
	* po/Makevars: [1086]   * 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

2008-03-19  Martin Pitt <martin.pitt@canonical.com>

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1085] * apport/crashdb_impl/launchpad.py: Fix
	spelling mistake in p-lp-bugs API   (now corrected there).

2008-03-18  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1084] release as 0.105 to hardy

	* apport_python_hook.py,
	* debian/changelog: [1083] * 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)

	* apport/ui.py,
	* debian/changelog: [1082] * apport/ui.py, run_crash(): Intercept
	other IOErrors, too (such as EISDIR)   and print out proper error
	message instead of crashing. (LP: #201819)

	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [1081] * backends/packaging-apt-dpkg.py,
	get_architecture(): Return 'unknown'   instead of None if package
	architecture cannot be determined.   (LP: #198548)

	* apport/report.py,
	* debian/changelog: [1080] * apport/report.py, anonymize(): Be robust
	against empty user names and only   anonymize fields which can
	potentially contain user specific data.   (LP: #195706)

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1079] * apport/crashdb_impl/launchpad.py: Ignore
	ValueErrors when subscribing a   team, since these are usually due to
	the team already being subscribed.

2008-03-13  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1078] add missing bug number

	* debian/changelog: [1077] release as 0.104 to hardy

	* debian/changelog,
	* gtk/apport-gtk-mime.desktop.in,
	* qt4/apport-qt-mime.desktop.in: [1076] * gtk/apport-gtk-
	mime.desktop.in, qt4/apport-qt-mime.desktop.in: Add a main   category.

	* debian/changelog,
	* debian/control: [1075] * debian/control: Fix wrongly spelt project
	names (Python and GTK+). Thanks   to lintian's scrutiny.

	* debian/control: [1074] debian/control: -XS-Vcs-Bzr -> Vcs-Bzr

	* debian/changelog,
	* debian/control: [1073] * debian/control: Bump Standards-Version (no
	changes necessary).

	* apport/ui.py,
	* debian/changelog,
	* doc/package-hooks.txt: [1072] * 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.

	* apport/report.py,
	* apport/ui.py,
	* debian/changelog: [1071] * 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,
	* debian/changelog: [1070] * 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/report.py,
	* apport/ui.py,
	* debian/changelog: [1069] * 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/ui.py,
	* debian/changelog: [1068] * 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,
	* debian/changelog,
	* problem_report.py: [1067] * 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.

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1066] * apport/crashdb_impl/launchpad.py,
	get_source_version(): re-escape the   package name so that it doesn't
	stumble over '+' and similar characters.

2008-02-25  Martin Pitt <martin.pitt@canonical.com>

	* debian/changelog: [1065] release as .103 to hardy

	* bin/apport-retrace,
	* debian/changelog: [1064] * 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)

	* bin/apport-retrace,
	* debian/changelog: [1063] * bin/apport-retrace: Only update a bug
	report with new attachments if it is   not a duplicate. (LP: #172792)

	* apport/report.py,
	* apport/ui.py,
	* apport_python_hook.py,
	* debian/changelog: [1062] * 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)

	* debian/changelog,
	* problem_report.py: [1061] * problem_report.py(): Make write() work
	for reports with CompressedValues.   Add test case.

	* apport/report.py,
	* debian/changelog,
	* doc/data-format.tex: [1060] * 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.

	* apport/report.py,
	* debian/changelog,
	* doc/data-format.tex: [1059] * apport/report.py: Use uname -srmo, not
	-a, to hide the hostname. (part of   LP #192786)

	* apport/ui.py,
	* debian/changelog: [1058] * 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,
	* debian/changelog: [1057] * 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)

	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [1056] * 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.

2008-02-06  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/apport-unpack,
	* debian/changelog: [1055] * bin/apport-unpack: Print error messages
	instead of crashing for problems   like nonexisting file names passed
	as arguments. (LP: #185273)

	* debian/changelog: [1054] release as 0.102 to hardy

	* apport/ui.py,
	* debian/changelog,
	* man/apport-cli.1: [1053] * apport/ui.py: Waive check for obsolete
	packages if environment defines   $APPORT_IGNORE_OBSOLETE_PACKAGES.
	Document this in the apport-cli manpage.   (LP: #148064)

	* apport/ui.py,
	* cli/apport-cli,
	* debian/changelog: [1052] * 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)

	* bin/apport-checkreports,
	* debian/changelog: [1051] * bin/apport-checkreports: Print out a list
	of program names/packages which   have a pending crash report. (LP:
	#145117)

	* cli/apport-cli,
	* debian/changelog: [1050] * cli/apport-cli: Intercept SIGPIPE when
	calling sensible-pager, to avoid   crash when quitting it prematurely.
	(LP: #153872)

	* apport/ui.py,
	* debian/changelog: [1049] * 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)

	* apport/ui.py,
	* debian/changelog: [1048] * 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)

2008-02-05  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/ui.py,
	* debian/changelog: [1047] * 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)

2008-02-05  Martin Pitt <martin.pitt@ubuntu.com>

	* qt4/apport-qt-mime.desktop.in,
	* qt4/apport-qt-mimelnk.desktop.in: Added.

	* debian/apport-qt.install,
	* debian/changelog,
	* debian/rules,
	* gtk/apport-gtk-mime.desktop.in,
	* qt4/Makefile,
	* qt4/apport-qt.desktop.in: Modified.

	[1046] * .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)

2008-02-05  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/ui.py,
	* debian/changelog: [1045] * apport/ui.py, run_crash(): Catch
	zlib.error on invalidly compressed core   dumps. (LP: #176977)

	* debian/apport.init,
	* debian/changelog: [1044] * debian/apport.init: Do not stop apport in
	any runlevel (LSB header).

	* debian/changelog,
	* debian/rules: [1043] * debian/rules: Use dh_icons instead of
	dh_iconcache.

	* debian/changelog,
	* debian/control,
	* debian/rules,
	* run-tests: [1042] * 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/changelog,
	* problem_report.py: [1041] * 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)

2008-01-23  martin@piware.de

	* debian/changelog: [1040] release as 0.101 to hardy

	* apport/report.py,
	* debian/changelog: [1039] * apport/report.py: Fix
	test_add_gdb_info_load() test case, the temporary   executable was
	already deleted when gdb ran the second time.

2008-01-22  martin@piware.de

	* apport/ui.py,
	* debian/changelog: [1038] * 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)

2007-12-27  martin@piware.de

	* debian/changelog,
	* debian/control: [1037] * debian/control: Add python-xdg dependency
	to apport, since apport-cli   needs it. (LP: #177095)

2007-12-21  martin@piware.de

	* debian/changelog: [1036] release as 0.100 to hardy

	* TODO,
	* debian/apport.init,
	* debian/changelog,
	* use-local: [1035] * 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.

2007-12-21  martin@piware.de

	* apport/elfcore.py: Removed.

	* bin/apport,
	* debian/changelog,
	* test-apport: Modified.

	[1034] * 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.

2007-12-21  martin@piware.de

	* apport/ui.py,
	* debian/changelog: [1033] * 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.

	* apport/ui.py,
	* debian/changelog: [1032] * apport/ui.py: Robostify cleanup of forked
	test processes.

2007-11-30  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* debian/local/setup-apport-retracer: [1031] * debian/local/setup-
	apport-retracer: Update default apt sources to
	http://ddebs.ubuntu.com.

2007-11-27  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1030] * 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/changelog,
	* debian/local/setup-apport-retracer: [1029] * debian/local/setup-
	apport-retracer: Update for hardy.

2007-11-19  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* problem_report.py: [1028] * 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.

2007-10-31  martin@piware.de

	* apport/report.py,
	* debian/changelog,
	* problem_report.py: [1027] * 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)

	* bin/apport,
	* debian/changelog: [1026] * 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)

2007-10-30  martin@piware.de

	* bin/crash-digger,
	* debian/changelog,
	* test-crash-digger: [1025] * bin/crash-digger: Add option --log for
	logging to a file, and   --pidfile/--stop for daemonization. Add test
	cases to test-crash-digger.

2007-10-29  martin@piware.de

	* debian/changelog: [1024] release as 0.99 to hardy

2007-10-28  martin@piware.de

	* run-tests: [1023] run-tests: only check crash-digger in local mode

	* apport/fileutils.py,
	* apport/ui.py,
	* debian/changelog: [1022] * 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!

	* debian/changelog,
	* qt4/apport-qt: [1021] * qt4/apport-qt: Fix Unicode <-> UTF-8
	conversion. Thanks, Daniel Hahler!   (LP: #148177)

	* debian/changelog,
	* gtk/apport-gtk.glade: [1020] * gtk/apport-gtk.glade: Fix title of
	upload progress window to comply to   HIG. Thanks, Bruce Cowan. (LP:
	#144782)

	* apport/ui.py,
	* debian/changelog: [1019] * apport/ui.py, run_crash(): Intercept
	ENOSPC and present a proper error   message. (LP: #145100)

	* cli/apport-cli,
	* debian/changelog: [1018] * 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,
	* debian/changelog: [1017] * apport/ui.py, run_crash(): Intercept CRC
	errors from the info collection   thread, which happens on broken core
	dumps. (LP: #132212)

2007-10-28  martin@piware.de

	* test-crash-digger: Added.

	* debian/changelog,
	* run-tests: Modified.

	[1016] * Add test-crash-digger: Initial test suite for bin/crash-
	digger.

2007-10-28  martin@piware.de

	* bin/crash-digger,
	* debian/changelog: [1015] * bin/crash-digger: Use self.log() more
	consistently, and flush stdout in   log(), so that we do not lose logs
	on output redirection.

	* apport/crashdb_impl/memory.py: [1014] apport/crashdb_impl/memory.py:
	do only mark Python crashes as "needs duplicate check"

2007-10-26  martin@piware.de

	* apport/crashdb_impl/memory.py: [1013] apport/crashdb_impl/memory.py:
	add DistroRelease fields to dummy data

	* apport/crashdb_impl/memory.py,
	* debian/changelog: [1012] * 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.

	* apport/crashdb_impl/memory.py,
	* debian/changelog: [1011] * 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/ui.py,
	* debian/changelog: [1010] * 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_python_hook.py,
	* debian/changelog: [1009] * apport_python_hook.py: Add user info,
	too. Also add check for this to the   test suite. (LP: #145109)

	* cli/apport-cli,
	* debian/changelog,
	* po/de.po,
	* qt4/apport-qt: [1008] * cli/apport-cli, qt4/apport-qt: Fix typo
	'send' -> 'sent'.   (LP: #139288)

2007-10-06  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [1007] release as 0.98 to gutsy

2007-10-04  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1006] * Use bugs.launchpad.net for +filebug and
	+bugs requests. (LP: #138090)

2007-10-01  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/crash-digger,
	* debian/changelog: [1005] * bin/crash-digger: Only consolidate the
	duplicate DB when -i is given (i.   e. usually only on one running
	instance).

	* apport/crashdb_impl/memory.py: [1004] apport/crashdb_impl/memory.py:
	add disabled test case for locking of consolidation

2007-09-10  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [1003] * 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.

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog,
	* debian/control: [1002] * 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,
	* debian/changelog: [1001] * apport/crashdb_impl/launchpad.py, test
	examples: Do not duplicate to bug   #1, that generates a huge amount
	of spam. Use another test bug.

	* debian/changelog,
	* debian/local/setup-apport-retracer: [1000] * debian/local/setup-
	apport-retracer: launchpadBugs -> launchpadbugs   (recently renamed
	Python package in python-launchpad-bugs).

	* TODO: [999] TODO item

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog,
	* debian/control: [998] Merge Markus' and Daniel's porting to new p
	-lp-bugs

2007-08-22  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* debian/local/setup-apport-retracer: [997] * debian/local/setup-
	apport-retracer: Adapt ddeb apt source for the move   from ~pitti to
	~ubuntu-archive.

2007-08-21  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* problem_report.py: [996] * problem_report.py: Coerce
	CompressedValue.__len__() to return an int to   work on Python 2.4,
	too.

	* debian/changelog: [995] release as 0.96 to gutsy

	* apport/crashdb.py,
	* debian/changelog: [994] * apport/crashdb.py: Drop the last argument
	(-1), since it is the default   anyway and did not yet exist on Python
	2.4.

2007-08-21  Martin Pitt <martin.pitt@ubuntu.com>

	* man/apport-chroot.1: Added.

	* debian/apport-retrace.manpages,
	* debian/changelog: Modified.

	[993] add manpage for apport-chroot

2007-08-21  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* problem_report.py: [992] * problem_report.py, write_mime(): Use
	base64 encoding for gzipped   attachments, to not screw up mail
	servers. Thanks to Tim Yamin for this   patch!

	* problem_report.py: [991] problem_report.py: fix syntax for older
	Python versions

2007-08-20  Martin Pitt <martin.pitt@ubuntu.com>

	* man/apport-retrace.1: [990] apport-retrace.1: document --duplicate-
	db

2007-08-15  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/local/setup-apport-retracer: [989] setup-apport-retracer: use
	--print-architecture

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog,
	* debian/local/setup-apport-retracer: [988] *
	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.

	* apport/fileutils.py,
	* debian/changelog: [987] * apport/fileutils.py, find_file_package():
	Try to resolve symlinks in the   directory path. (LP: #125551)

2007-08-15  Martin Pitt <martin.pitt@ubuntu.com>

	* man/apport-cli.1,
	* man/dupdb-admin.1: Added.

	* debian/apport-retrace.manpages,
	* debian/apport.manpages,
	* debian/changelog: Modified.

	[986] * Create man pages for apport-cli, dupdb-admin.

2007-08-11  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [985] release as 0.95 to gutsy

	* debian/changelog,
	* debian/rules: [984] * 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.)

2007-08-11  Martin Pitt <martin.pitt@ubuntu.com>

	* doc/README.blacklist: Added.

	* TODO,
	* apport/report.py,
	* debian/changelog,
	* setup.py: Modified.

	[983] * 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.

2007-08-01  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* general-hooks/automatix.py: [982] * general-hooks/automatix.py:
	Remove hashbang, it's not an executable   script.

2007-07-31  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [981] release as 0.94 to gutsy

	* debian/control: [980] bump p-problem-report dependency

	* apport/ui.py,
	* cli/apport-cli,
	* debian/changelog,
	* gtk/apport-gtk,
	* qt4/apport-qt: [979] * 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)

	* apport/report.py,
	* debian/changelog: [978] * apport/report.py, add_gdb_info(): Make
	function work if CoreDump is a   compressed value.

	* problem_report.py: [977] problem_report.py: Add
	CompressedValue.__len__

	* problem_report.py: [976] problem_report.py: remove property, they
	are broken; add CompressedValue.write()

	* debian/changelog,
	* problem_report.py: [975] * problem_report, write_mime(): Make
	function work for compressed binary   values. Add test case.

	* debian/changelog,
	* problem_report.py: [974] * problem_report, write_mime(): Eliminate
	unnecessary usage of StringIO.

	* problem_report.py: [973] problem_report.py, CompressedValue: add
	default value ctor argument

	* problem_report.py: [972] problem_report.py: Enrich CompressedValue
	interface a bit, add test cases

	* debian/changelog,
	* problem_report.py: [971] * 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.

	* debian/changelog,
	* doc/data-format.tex,
	* problem_report.py: [970] * 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.

	* apport/report.py,
	* debian/changelog: [969] * apport/report.py, test_add_proc_info():
	Fix determination of /bin/zgrep   interpreter.

2007-07-30  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/report.py: [968] fix comment in report.py

	* debian/changelog,
	* problem_report.py: [967] * problem_report.py: Remove support for
	reading bz2 compressed binary data.   That was only relevant during
	edgy's development cycle.

	* apport/crashdb.py,
	* apport/crashdb_impl/launchpad.py,
	* apport/crashdb_impl/memory.py,
	* apport/ui.py,
	* debian/changelog,
	* debian/control: [966] * 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)

	* test-apport: [965] fix test-apport for running packaged apport from
	the test suite

	* debian/changelog,
	* run-tests: [964] * run-tests: In 'local' mode, only explicitly run
	the apt/dpkg   implementation instead of backends/*, since the RPM
	ones don't have tests   yet.

2007-07-30  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/gcc_ice_hook: Added.

	* debian/apport.install,
	* debian/changelog,
	* setup.py,
	* test-hooks: Modified.

	[963] * 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)

2007-07-27  Martin Pitt <martin.pitt@ubuntu.com>

	* test-apport: [962] ./test-apport: fix variable name in lib mode

	* bin/apport,
	* debian/changelog,
	* test-apport: [961] make apport locking safe against symlink attacks,
	add test suite check

	* bin/apport,
	* debian/changelog: [960] * bin/apport: Implement lock file checking
	to avoid running several apport   instances at the same time. (LP:
	#119622)

	* debian/changelog,
	* test-apport: [959] * test-apport: Add check that apport aborts
	immediately if another apport   instance is already running.

	* TODO,
	* apport/report.py,
	* debian/changelog: [958] * apport/report.py, obsolete_packages(): Fix
	crash when apt does not know an   available version of a package. (LP:
	#128176)

	* TODO: [957] remove obsolete TODO item

2007-07-25  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* doc/data-format.tex: [956] * 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.

	* debian/changelog: [955] release as 0.93 to gutsy

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [954] * 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]

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [953] * apport/crashdb_impl/launchpad.py: Fix typo
	in bug comment string.

	* bin/dupdb-admin,
	* debian/changelog: [952] * bin/dupdb-admin, command_dump(): Correctly
	interpret empty version strings   as 'fixed in unknown verrsion', not
	'unfixed'.

	* apport/crashdb.py,
	* debian/changelog: [951] * 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.

2007-07-24  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [950] release as 0.92 to gutsy

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [949] * apport/crashdb_impl/launchpad.py,
	update(): Set bug importance to Medium   if retracing was successful.
	(LP: #106379)

	* apport/report.py,
	* debian/changelog: [948] * 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,
	* debian/changelog: [947] * 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)

	* debian/changelog,
	* preloadlib/Makefile,
	* preloadlib/libapport.c,
	* test-apport: [946] * 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/ui.py,
	* debian/changelog: [945] * apport/ui.py, collect_info(): Collect
	additional information for 'Package'   problem reports, too.

	* apport/ui.py,
	* debian/changelog: [944] * apport/ui.py, test_run_crash_package():
	Check that 'Package' problem   reports collect additional information,
	too.

	* debian/changelog,
	* doc/package-hooks.txt: [943] * 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.

2007-07-24  Martin Pitt <martin.pitt@ubuntu.com>

	* general-hooks,
	* general-hooks/automatix.py: Added.

	* debian/apport.dirs: Removed.

	* debian/apport.install,
	* debian/changelog,
	* setup.py: Modified.

	[942] * Add general-hooks/automatix.py: Refuse to send problem reports
	if   automatix is installed.

2007-07-24  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/ui.py,
	* debian/changelog: [941] * apport/ui.py, __init__(): Intercept
	ImportError, which can happen for   crashes during system upgrades.
	(LP: #124354)

2007-07-23  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/apport-unpack,
	* debian/changelog: [940] * bin/apport-unpack: Fix format string in
	error message.

2007-07-22  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [939] * apport/crashdb_impl/launchpad.py,
	get_unfixed(): Search for 'apport-crash'   tag, not 'apport'.

2007-07-20  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/crash-digger,
	* debian/changelog: [938] * 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.

	* debian/local/ubuntu-fat-chroot: [937] debian/local/ubuntu-fat-
	chroot: remove explicit ucf install, not necessary with diversion

	* debian/changelog,
	* debian/local/setup-apport-retracer: [936] * debian/local/setup-
	apport-retracer: launchpad-crash-digger ->   crash-digger.

	* debian/changelog,
	* debian/local/ubuntu-fat-chroot: [935] * debian/local/ubuntu-fat-
	chroot: Use diversions for the binaries we want to   disable, so that
	chroot upgrades do not trash the modifications.

2007-07-20  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: Modified.

	* bin/ubuntu-fat-chroot: Renamed to debian/local/ubuntu-fat-chroot.

	[934] * Move ubuntu-fat-chroot from bin/ to debian/local/, since it is
	so heavily   Ubuntu specific.

2007-07-20  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/crash-digger,
	* debian/changelog: [933] * 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).

2007-07-14  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [932] release as 0.91 to gutsy

2007-07-14  martin@piware.de

	* TODO,
	* apport/crashdb.py,
	* bin/dupdb-admin,
	* debian/changelog: [931] * 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,
	* apport/crashdb_impl/memory.py,
	* debian/changelog: [930] * 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.

	* debian/changelog: [929] fix changelog typo

	* apport/ui.py,
	* debian/changelog: [928] * apport/ui.py, open_url(): Intercept weird
	race condition for os.close()   trying to close an already invalidated
	fd. (LP: #123180)

	* apport/fileutils.py,
	* debian/changelog: [927] * apport/fileutils.py, likely_packaged():
	Ignore /var/lib/schroot. Add test   case. (LP: #122859)

	* apport/ui.py,
	* debian/changelog: [926] * 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,
	* debian/changelog: [925] * apport/fileutils.py, mark_report_seen():
	Do not crash if the file has   already been deleted underneath us.
	(LP: #122347)

	* apport/ui.py,
	* debian/changelog: [924] * 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)

2007-07-13  martin@piware.de

	* bin/crash-digger,
	* debian/changelog: [923] * bin/crash-digger: Fix dumping of dup db
	after consolidation.

	* apport/crashdb.py,
	* debian/changelog: [922] * apport/crashdb.py,
	duplicate_db_last_consolidation(): Fix timedelta   seconds calculation
	to actually take the days into account, too.

2007-07-13  martin@piware.de

	* bin/dupdb-admin: Added.

	* debian/apport-retrace.install,
	* debian/changelog,
	* setup.py: Modified.

	[921] * Add bin/dupdb-admin: Initial version of duplicate db CLI app;
	can only   dump the db and display consolidation state for now, but
	will grow more   features later. Ship it in apport-retrace.

2007-07-13  martin@piware.de

	* apport/crashdb.py,
	* debian/changelog: [920] * 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.

2007-07-12  martin@piware.de

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [919] * 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_impl/launchpad.py,
	* debian/changelog: [918] * apport/crashdb_impl/launchpad.py,
	close_duplicate(): Delete some   attachments, as specified in apport-
	crash-duplicates spec, and make the   bug public afterwards.

2007-07-11  martin@piware.de

	* TODO: [917] TODO item

2007-07-11  martin@piware.de

	* apport.init.fedora,
	* apport.spec,
	* apport/elfcore.py,
	* backends/packaging_fedora.py,
	* backends/packaging_rpm.py: Added.

	* bin/apport,
	* crashdb.conf,
	* debian/changelog: Modified.

	[916] Merge the fedora branch, thanks a lot to Will Woods
	wwoods@redhat.com>: * 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.

2007-07-10  martin@piware.de

	* bin/apport,
	* debian/changelog: [915] * 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.

	* debian/changelog: [914] release as 0.90 to gutsy

2007-07-10  martin@piware.de

	* debian/apport.dirs: Added.

	* TODO,
	* apport/report.py,
	* debian/changelog,
	* doc/package-hooks.txt: Modified.

	[913] * 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.

2007-07-10  martin@piware.de

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [912] * apport/crashdb_impl/launchpad.py: Simplify
	_subscribe_triaging_team(), now   that we do not differ between main
	and universe policies any more.

	* po/de.po: [911] update po/de.po

	* TODO,
	* cli/apport-cli,
	* debian/changelog: [910] * 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.

	* po/de.po: [909] Fix amgiguous keyboard shortcut in de.po

	* po/de.po: [908] fix format string error in de.po

	* debian/changelog,
	* po/de.po: [907] * po/de.po: Updated for apport-cli.

	* debian/changelog,
	* po/POTFILES.in: [906] * po/POTFILES.in: Add missing cli/apport-cli.

	* po/de.po: [905] po/de.po: Fix typo

	* apport/ui.py,
	* debian/changelog: [904] * apport/ui.py: Do not ask the initial "Do
	you want to report this?"   question when being invoked with --crash-
	file.

2007-07-10  martin@piware.de

	* debian/apport.links: Added.

	* debian/changelog: Modified.

	[903] * Add debian/apport.links: Install an icon symlink for the MIME
	type.

2007-07-10  martin@piware.de

	* xdg-mime,
	* xdg-mime/apport.xml: Added.

	* TODO,
	* debian/apport.install,
	* debian/changelog,
	* debian/rules,
	* setup.py: Modified.

	[902] * Add xdg-mime/apport.xml: XDG MIME type definition for .crash
	files.

2007-07-10  martin@piware.de

	* gtk/apport-gtk-mime.desktop.in: Added.

	* debian/apport-gtk.install,
	* debian/changelog,
	* debian/rules,
	* gtk/Makefile: Modified.

	[901] * 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.

2007-07-09  martin@piware.de

	* TODO,
	* apport/ui.py,
	* debian/changelog: [900] * 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/.

	* apport/report.py,
	* debian/changelog: [899] * 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@redhat.com>!

	* TODO: [898] remove bogus TODO item

2007-07-09  martin@piware.de

	* debian/apport-cli.install: Removed.

	* debian/apport.install,
	* debian/changelog,
	* debian/control: Modified.

	* debian/apport-cli.README.Debian: Renamed to
	  debian/apport.README.Debian and modified.

	[897] * 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.

2007-07-09  martin@piware.de

	* TODO: [896] TODO updates for server needs

2007-07-08  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO: [895] TODO items

2007-07-06  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/ui.py,
	* debian/changelog: [894] * apport/ui.py, load_report(): Catch
	IOError, too. LP: #118827

	* debian/changelog: [893] release as 0.89 to gutsy

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [892] * apport/crashdb_impl/launchpad.py,
	get_distro_release(): Make this function   work with private bugs,
	too, by using p-lp-bugs' safe_urlopen().

	* apport/crashdb_impl/launchpad.py: [891]
	apport/crashdb_impl/launchpad.py, download(): fix description parsing
	harder

2007-07-05  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO,
	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [890] * 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.

	* TODO: [889] remove obsolete TODO

	* TODO: [888] TODO items

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [887] * apport/crashdb_impl/launchpad.py:
	Implement private crash bug handling,   according to
	https://wiki.ubuntu.com/CrashReporting:   - 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.

	* TODO: [886] TODO item

	* apport/crashdb.py,
	* apport/crashdb_impl/launchpad.py,
	* apport/crashdb_impl/memory.py,
	* bin/crash-digger,
	* debian/changelog: [885] * 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/report.py,
	* debian/changelog: [884] * apport/report.py, _read_maps(): Revert
	ptrace hack when maps cannot be   read. maps file is now protected
	based on process ownership, not ptracing.

	* TODO,
	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [883] * backends/packaging-apt-dpkg.py,
	_search_contents(): Fix package name   parsing for non-main
	components. This fixes retracing of e. g. #124111.

	* TODO,
	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [882] * 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.

	* TODO: [881] TODO items

2007-07-04  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [880] * 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).

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [879] * 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.

2007-07-03  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [878] release as 0.88 to gutsy

	* po/de.po: [877] update German translations

	* debian/changelog,
	* gtk/apport-gtk.glade: [876] * gtk/apport-gtk.glade: Mark string as
	translatable. LP: #119621

	* debian/changelog: [875] add bug number to changelog

	* apport/ui.py,
	* debian/changelog: [874] * 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.

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [873] * apport/crashdb_impl/launchpad.py,
	update(): Delete CoreDump.gz attachment   if the retrace was
	successful (i. e. if the report has a crash signature).

	* bin/apport-retrace,
	* debian/changelog,
	* debian/control: [872] * 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.py,
	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [871] * apport/crashdb.py: Add interface
	mark_retrace_failed(). Implement it in
	apport/crashdb_impl/launchpad.py.

	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [870] * backends/packaging-apt-dpkg.py,
	get_source_tree(): Call apt-get source   with --assume-yes to not
	block on VCS confirmations.

	* bin/crash-digger,
	* debian/changelog: [869] * bin/crash-digger: Mark a bug as retraced
	if DistroRelease: cannot be   determined. Those are bugs apport cannot
	handle.

	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [868] * 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.

	* debian/changelog,
	* po/de.po: [867] * po/de.po: Update.

2007-07-02  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [866] release as 0.87 to gutsy

	* apport/report.py,
	* debian/changelog: [865] * 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.

2007-06-28  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [864] release as 0.86 to gutsy

	* debian/changelog,
	* test-apport: [863] * test-apport: Clarify assertion message if
	/var/crash is not empty.

	* apport/report.py,
	* debian/changelog: [862] * 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.

	* debian/changelog,
	* problem_report.py: [861] * 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.

	* bin/apport,
	* debian/changelog: [860] * bin/apport: Enforce non-emptyness of
	CoreDump.

	* debian/changelog,
	* problem_report.py: [859] * 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.

	* debian/changelog,
	* test-apport: [858] * test-apport: Check that apport does not create
	reports for emtpy core   dumps.

2007-06-26  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [857] release as 0.85 to gutsy

2007-06-25  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [856] * 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.

2007-06-20  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/report.py,
	* debian/changelog: [855] * apport/report.py, obsolete_packages(): Do
	not consider virtual packages as   obsolete.

	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [854] * backends/packaging-apt-dpkg.py,
	get_dependencies(): Fix crash when   encountering a virtual package.

2007-06-19  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/apport-chroot,
	* debian/changelog: [853] * bin/apport-chroot, command_upgrade(): Run
	'apt-get clean' before   regenerating the chroot tarball.

	* bin/apport-chroot,
	* debian/changelog: [852] * bin/apport-chroot, command_upgrade():
	Supply -y to 'apt-get upgrade' also   in verbose mode.

	* apport/report.py,
	* debian/changelog: [851] * 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.

	* apport/report.py,
	* debian/changelog: [850] * apport/report.py, crash_signature(): Allow
	':' and '~' as part of function   names to cover C++. Adapt test case
	to cover this.

	* debian/changelog,
	* debian/control: [849] * debian/control: Add dpkg-dev dependency to
	apport-retrace, for getting   dpkg-source.

2007-06-18  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [848] * apport/crashdb_impl/launchpad.py:
	BugList.bugs is already a set, simplify   code a bit.

2007-06-14  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [847] release as 0.84 to gutsy

	* bin/crash-digger: [846] bin/crash-digger: revert accidental changing
	of fill_pool() calling

	* bin/apport-retrace,
	* bin/crash-digger,
	* debian/changelog: [845] * bin/apport-retrace, bin/crash-digger: More
	language cleanup; we should   stop talking about 'bugs' and use
	'crash' consistently.

	* bin/crash-digger,
	* debian/changelog: [844] * bin/crash-digger: Do duplicate checking
	for needs-duplicate-check crash   bugs (such as Python crashes).

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [843] * apport/crashdb_impl/launchpad.py,
	download(): Fetch Traceback.txt, too, so   that we can do duplicate
	checking for Python crashes.

	* apport/crashdb_impl/launchpad.py: [842]
	apport/crashdb_impl/launchpad.py: typo fix

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [841] * apport/crashdb_impl/launchpad.py: Set
	"need-duplicate-check" tag for   Python crashes.

	* apport/crashdb.py,
	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [840] apport/crashdb.py: add get_dup_unchecked()
	and mark_dup_checked(), and implement it for launchpad

2007-06-14  martin@piware.de

	* apport/crashdb.py,
	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: Modified.

	* bin/launchpad-crash-digger: Renamed to bin/crash-digger and
	  modified.

	[839] * apport/crashdb.py: Add two new abstract methods
	get_unretraced() and   mark_retraced(id) to get a list of crashes that
	need to be processed   (retraced) and chalk them off. *
	apport/crashdb_impl/launchpad.py: Implement above methods for
	launchpad   (moving the code from bin/launchpad-crash-digger). * 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).

2007-06-13  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [838]  release as 0.83 to gutsy

	* TODO,
	* apport/crashdb.py,
	* apport/crashdb_impl/launchpad.py,
	* apport/crashdb_impl/memory.py,
	* bin/apport-chroot,
	* bin/apport-retrace,
	* bin/launchpad-crash-digger,
	* debian/changelog,
	* debian/control,
	* debian/pyversions,
	* run-tests: [837] merge crash-dups branch: implements apport-crash-
	duplicates specification

2007-06-12  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/chroot.py,
	* debian/changelog: [836] * 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.

2007-06-11  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/report.py,
	* debian/changelog: [835] * apport/report.py: Fix typo: 'none' ->
	'None'.

2007-06-08  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/packaging.py,
	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [834] * 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/crashdb.py,
	* apport/packaging.py,
	* apport/ui.py,
	* debian/changelog: [833] * apport/crashdb.py, apport/packaging.py,
	apport/ui.py: Use   NotImplementedError instead of Exception in the
	abstract methods.

	* apport/crashdb.py,
	* debian/changelog: [832] * apport/crashdb.py: Separate abstract from
	implemented functions.

	* debian/changelog: [831] release as 0.82 to gutsy

	* apport/report.py,
	* debian/changelog: [830] * 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)

2007-06-07  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* test-apport: [829] * test-apport: Clarify assertion failure message
	when an unexpected core   dump is present.

	* TODO,
	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [828] * apport/crashdb_impl/launchpad.py: Check
	PackageArchitecture for 'all', to   not set a retracer tag 'need-all-
	retrace'.

	* debian/changelog: [827] debian/changelog: improve references to
	apport-better-retracing spec

	* apport/crashdb_impl/launchpad.py,
	* bin/apport-retrace,
	* debian/changelog: [826] * 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.

	* TODO: [825] TODO item

2007-06-05  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/packaging.py,
	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [824] * 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).

2007-06-03  martin@piware.de

	* apport/ui.py,
	* debian/changelog: [823] * apport/ui.py, thread_collect_info(): For
	crashes, call obsolete_packages()   and set UnreportableReason: if
	there are any.

	* apport/report.py,
	* debian/changelog: [822] * 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.

2007-06-02  martin@piware.de

	* TODO,
	* apport/report.py,
	* debian/changelog: [821] * 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
	(part of apport-better-retracing spec). Add various test cases.

	* apport/ui.py,
	* debian/changelog: [820] * apport/ui.py: Fix declaration of the test
	suite's   ui_set_upload_progress(). Funny that this has never been
	triggered before.

	* apport/ui.py,
	* debian/changelog: [819] * 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.

2007-05-31  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/report.py,
	* debian/changelog: [818] * apport/report.py: Add function
	obsolete_packages() to return packages in   Package: and Depends:
	which are not up to date. Add test cases.

	* backends/packaging-apt-dpkg.py: [817] backends/packaging-apt-
	dpkg.py: Simplify get_version() implementation a bit

	* apport/packaging.py,
	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [816] * apport/packaging.py: Add interface
	get_available_version(package). * backends/packaging-apt-dpkg.py:
	Implement get_available_version(), add   shallow test case.

2007-05-29  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [815] fix changelog spacing

	* bin/apport-retrace,
	* debian/changelog,
	* debian/control: [814] * 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.

	* backends/packaging-apt-dpkg.py: [813] backends/packaging-apt-
	dpkg.py: add missing import

	* backends/packaging-apt-dpkg.py: [812] backends/packaging-apt-
	dpkg.py: silence zgrep stderr since we get SIGPIPE errors

	* apport/packaging.py,
	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [811] * 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.

2007-05-27  martin@piware.de

	* bin/ubuntu-fat-chroot: [810] ubuntu-fat-chroot: add apt-get clean

	* TODO: [809] remove TODO item solved with last commit

2007-05-27  martin@piware.de

	* bin/ubuntu-fat-chroot: Added.

	* debian/changelog: Modified.

	[808] * 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.

2007-05-24  Martin Pitt <martin.pitt@ubuntu.com>

	* doc/Makefile: Added.

	* debian/changelog,
	* debian/control,
	* debian/rules,
	* setup.py: Modified.

	[807] * 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.

2007-05-24  Martin Pitt <martin.pitt@ubuntu.com>

	* doc/data-format.tex: Added.

	* debian/changelog: Modified.

	[806] * Add doc/data-format.tex: Documentation of the structure,
	encoding, and   standard keys of the Apport report file format.
	[apport-for-upstreams   blueprint]

2007-05-24  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [805] release as 0.81 to gutsy

	* bin/apport-retrace,
	* debian/changelog: [804] * 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)

	* apport/report.py,
	* debian/changelog: [803] * 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)

	* apport_python_hook.py,
	* debian/changelog: [802] * 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,
	* debian/changelog: [801] * 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/crashdb_impl/launchpad.py,
	* debian/changelog: [800] * 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)

	* bin/apport-retrace,
	* debian/changelog: [799] * 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,
	* debian/changelog: [798] apport/crashdb_impl/launchpad.py: use
	"apport-<problemtype>" tag instead of just "apport"

2007-05-23  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/launchpad-crash-digger,
	* debian/changelog: [797] * 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-chroot,
	* debian/changelog,
	* debian/local/setup-apport-retracer: [796] * 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/apport-chroot,
	* debian/changelog: [795] * bin/apport-chroot: Fix identifier name in
	command_retrace().

	* bin/launchpad-crash-digger,
	* debian/changelog: [794] * bin/launchpad-crash-digger: Supply --auth
	instead of the deprecated   --cookie to apport-chroot.

	* debian/changelog,
	* debian/local/setup-apport-retracer: [793] * debian/local/setup-
	apport-retracer: Install python-libxml2 and python-apt.

	* bin/apport-chroot,
	* debian/changelog: [792] * bin/apport-chroot: Fix symlinks before
	repackaging the chroot tarball in   'install' and 'installdeb' modes.

	* debian/changelog,
	* debian/local/setup-apport-retracer: [791] * 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).

	* TODO: [790] TODO item

2007-05-22  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/crashdb_impl/launchpad.py,
	* debian/changelog: [789] * apport/crashdb_impl/launchpad.py: Tag new
	bugs with 'apport'. This   replaces the former '[apport]' prefixing.

	* apport/report.py,
	* debian/changelog: [788] * apport/report.py: Remove '[apport]'
	default bug title prefix. (LP: #94819)

2007-05-21  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [787] release as 0.80 to gutsy

	* debian/changelog,
	* debian/local/setup-apport-retracer: [786] * 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.

	* debian/changelog,
	* debian/control: [785] * debian/control: Bump some python-apport
	dependencies for the API changes.

2007-05-21  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/crashdb.py,
	* apport/crashdb_impl,
	* apport/crashdb_impl/__init__.py,
	* apport/crashdb_impl/launchpad.py,
	* apport/crashdb_impl/memory.py,
	* crashdb.conf: Added.

	* apport/report.py,
	* apport/ui.py,
	* bin/apport,
	* bin/apport-chroot,
	* bin/apport-retrace,
	* bin/launchpad-crash-digger,
	* debian/changelog,
	* debian/python-apport.install,
	* man/apport-retrace.1,
	* po/de.po,
	* run-tests,
	* setup.py: Modified.

	[784] merge abstract-bugtracker branch

2007-05-21  Martin Pitt <martin.pitt@ubuntu.com>

	* po/Makefile: [783] re-add "include Makevars" in po/Makefile to fix
	mo building

	* cli/apport-cli,
	* debian/changelog,
	* qt4/apport-qt: [782] * cli/apport-cli, qt4/apport-qt: Generalize
	window titles.

	* debian/changelog,
	* gtk/apport-gtk.desktop.in,
	* po/de.po,
	* qt4/apport-qt.desktop.in: [781] * *.desktop.in: Remove 'in Ubuntu'
	from comment.

	* debian/changelog,
	* gtk/apport-gtk.desktop.in,
	* po/Makefile,
	* qt4/apport-qt.desktop.in: [780] * Remove 'X-Ubuntu-Gettext-Domain'
	from *.desktop.in, since langpack.mk will   add it automatically now.

	* debian/changelog,
	* setup.py: [779] Some debranding: * setup.py: Use apport wiki home
	page for 'url'.

	* debian/changelog: [778] release as 0.79 to gutsy

	* bin/kernel_hook,
	* debian/changelog,
	* test-hooks: [777] * bin/kernel_hook, ./test-hooks: Do not rely on
	/proc/version_signature any   more, it's gone in the gutsy kernel.

	* bin/kernel_hook,
	* test-hooks: [776] fix syntax error in bin/kernel_hook, adapt test-
	hooks to recently updated fields in kernel reports

2007-05-21  Martin Pitt <martin.pitt@ubuntu.com>

	* po/Makevars: Added.

	* debian/changelog,
	* po/Makefile: Modified.

	[775] * Add po/Makevars to specify the domain, to make intltool figure
	out the   gettext domain automatically.

2007-05-21  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO: [774] TODO item

	* debian/changelog,
	* debian/rules: [773] * debian/rules: Use langpack.mk for updating the
	.desktop files.

2007-05-10  martin@piware.de

	* bin/kernel_hook,
	* debian/changelog: [772] * 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/changelog,
	* debian/control: [771] * debian/control: Use code.lp.net instead of
	bazaar.lp.net VCS URL.

	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [770] * backends/packaging-apt-dpkg.py: Formally
	make this a subclass of   apport.packaging.PackageInfo.

2007-05-09  martin@piware.de

	* apport/report.py,
	* debian/changelog: [769] * apport/report.py: Change example URLs in
	the testsuite from launchpad to   an artificial ones to avoid the
	impression that it is LP specific.

	* apport/ui.py,
	* debian/changelog,
	* debian/control: [768] * 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.

	* debian/changelog,
	* problem_report.py: [767] * problem_report.py, write_mime(): Drop
	preamble argument, replace it with   an extra_headers dictionary. This
	is much easier to evaluate on clients.

2007-05-07  martin@piware.de

	* debian/changelog,
	* debian/local/setup-apport-retracer: [766] * debian/local/setup-
	apport-retracer: Fix '.' bashism, replace it with   'source'.

2007-05-06  martin@piware.de

	* debian/changelog: [765] release as 0.78 to gutsy

2007-05-05  martin@piware.de

	* cli/apport-cli,
	* debian/changelog,
	* debian/control,
	* gtk/apport-gtk,
	* qt4/apport-qt: [764] * 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().

	* apport/report.py,
	* debian/changelog: [763] * 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.

	* apport/ui.py,
	* debian/changelog: [762] * apport/ui.py, load_report(): Also catch
	zlib.error on invalid reports.   (LP: #103547)

	* apport/ui.py,
	* debian/changelog: [761] * apport/ui.py: Add a comment for
	translators. (LP: #104703)

	* bin/apport,
	* debian/changelog,
	* test-apport: [760] * ./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/report.py,
	* debian/changelog: [759] * apport/report.py, add_gdb_info(): Fix
	crash when Stacktrace could not be   created. (LP: #107853)

2007-05-03  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO,
	* apport/packaging.py,
	* apport/ui.py,
	* backends/packaging-apt-dpkg.py,
	* debian/changelog: [758]  change get_origins(package) ->
	is_distro_package(package)

	* TODO: [757] TODO item

2007-04-27  Martin Pitt <martin.pitt@ubuntu.com>

	* backends/packaging-apt-dpkg.py: Added.

	* backends/packaging-dpkg.py: Removed.

	* debian/changelog,
	* debian/local/setup-apport-retracer,
	* debian/rules: Modified.

	[756] * 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.

2007-04-27  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* debian/control: [755] * debian/control: Remove debianutils
	dependency, it's essential.

	* apport/packaging.py,
	* apport/ui.py,
	* backends/packaging-dpkg.py,
	* debian/changelog,
	* debian/control: [754] * apport/packaging.py, backends/packaging-
	dpkg.py: Add new interface   get_origins(package) which determines the
	origins (distribution/vendor/   repository names) for 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/changelog: [753] release as 0.77 to gutsy

2007-04-23  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* debian/local/setup-apport-retracer: [752] * debian/local/setup-
	apport-retracer: Generalized some feisty specific   bits, set default
	release to gutsy.

2007-04-19  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/chroot.py,
	* debian/changelog: [751] * apport/chroot.py: Fix test suite to work
	with Python 2.4's tarfile module   output format.

	* apport/report.py,
	* debian/changelog: [750] * 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)

2007-04-16  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/report.py,
	* debian/changelog: [749] * apport/report.py: Replace any() call with
	a list comprehension to work   with Python < 2.5. (LP: #104864)

2007-04-12  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [748] release as 0.76 to feisty

	* apport/ui.py,
	* debian/changelog: [747] * apport/ui.py test suite: Unset locale
	related environment variables so   that the tests which check strings
	are not invalidated by translations.

2007-04-12  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* debian/python-apport.install,
	* run-tests,
	* setup.py: Modified.

	* apport/python_hook.py: Renamed to apport_python_hook.py and
	  modified.

	[746] * 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.

2007-04-06  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO: [745] TODO item

2007-04-04  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [744] release as 0.75 to feisty

	* backends/packaging-dpkg.py,
	* debian/changelog: [743] * backends/packaging-dpkg.py,
	get_modified_files(): Ignore empty lines in   broken .md5sums file
	rather than crashing on them. (LP: #102906)

	* apport/report.py,
	* debian/changelog: [742] * 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)

	* debian/changelog: [741] release as 0.74 to feisty

	* debian/changelog,
	* gtk/apport-gtk.glade: [740] * gtk/apport-gtk.glade: Add window
	titles to progress and details dialogs.   (LP: #97640)

	* apport/ui.py,
	* debian/changelog: [739] * apport/ui.py: Fix crash on None
	candiateOrigin from the apt cache object.   (LP: #98961)

	* apport/ui.py,
	* debian/changelog: [738] * apport/ui.py: Ignore SystemError
	exceptions from apt, which happen on   badly formatted source.list
	entries. (LP: #98901)

	* apport/report.py,
	* debian/changelog: [737] * apport/report.py, _check_interpreted():
	Add a whitelist of common   interpreters and check ExecutablePath
	against it. (LP: #102056)

	* apport/report.py,
	* debian/changelog: [736] * apport/report.py,
	test_check_interpreted(): Run gedit test on an actually   existing
	file, reproducing the interpreter confusion reported in #102056.

2007-04-04  martin@piware.de

	* debian/changelog,
	* test-apport: [735] * test-apport: Do not fail on non-empty gdb
	stderr if it only consists of a   single warning (as happens on
	powerpc).

2007-04-02  Martin Pitt <martin.pitt@ubuntu.com>

	* backends/packaging-dpkg.py,
	* debian/changelog,
	* test-hooks: [734] * 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)

2007-03-30  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* problem_report.py: [733] * problem_report.py, write_mime(): Do not
	re-compress keys which already end   in .gz. Add test cases.

	* debian/apport-gtk.install,
	* debian/apport-qt.install,
	* debian/changelog: [732] * debian/apport-{gtk,qt}.install: Do not
	install .desktop files for now,   until we get a proper guided bug
	reporting.

2007-03-29  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [731] release as 0.73 to feisty

	* apport/ui.py,
	* debian/changelog: [730] * 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.

	* bin/apport,
	* debian/changelog,
	* debian/control,
	* test-apport: [729] * 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)

	* debian/changelog,
	* problem_report.py: [728] * 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.

	* debian/changelog: [727] release as 0.72 to feisty

	* debian/changelog,
	* qt4/apport-qt: [726] * qt4/apport-qt: Fix undefined symbol in
	ui_present_package_error().    (LP: #97282)

	* debian/apport-cli.README.Debian: [725] merge spacing fix

	* cli/apport-cli,
	* debian/changelog,
	* gtk/apport-gtk.glade,
	* po/de.po,
	* qt4/apport-qt: [724] * Another grammar fix, thanks to Brian Murray!

2007-03-28  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/apport-cli.README.Debian: Added.

	* debian/changelog,
	* debian/control,
	* debian/local/ubuntu-bug: Modified.

	[723] * 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.

2007-03-28  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/ui.py,
	* debian/changelog: [722] * apport/ui.py: Fix wrong parameter name in
	help message.

2007-03-27  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* debian/control: [721] * debian/control: Add XS-Vcs-Bzr: header.

	* apport/ui.py,
	* bin/launchpad-crash-digger,
	* debian/changelog: [720] * bin/launchpad-crash-digger, apport/ui.py:
	Remove the special case   'powerpc'->'ppc' and use need-powerpc-
	retrace uniformly.

2007-03-27  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/apport-retrace.manpages: Added.

	* debian/apport.manpages,
	* debian/changelog,
	* debian/control: Modified.

	[719] * Move apport-retrace.1 manpage from package apport to apport-
	retrace. Bump   Conflicts/Replaces accordingly.

2007-03-27  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/apport-retrace,
	* debian/changelog: [718] * bin/apport-retrace: Fix error handling in
	fetch_unpack().

	* bin/apport-chroot,
	* debian/changelog: [717] * bin/apport-chroot, command_create():
	Install gpgv.

2007-03-26  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [716] release as 0.71 to feisty

	* apport/ui.py,
	* debian/changelog: [715] * 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)

	* apport/ui.py,
	* debian/changelog,
	* doc/package-hooks.txt: [714] * 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.

	* backends/packaging-dpkg.py,
	* debian/changelog: [713] * 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,
	* debian/changelog: [712] * 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)

	* apport/ui.py,
	* debian/changelog,
	* debian/control: [711] * apport/ui.py, upload_launchpad_blob(): Set
	need-$ARCH-retrace tag in MIME   preamble. Bump p-problem-report
	dependency. (LP: #94790)

	* bin/apport-retrace,
	* debian/changelog: [710] * 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.

	* bin/apport-retrace,
	* debian/changelog: [709] * bin/apport-retrace: In verbose mode,
	display the path of currently   extracting deb.

	* debian/changelog,
	* problem_report.py: [708] * problem_report.py, write_mime(): Add
	optional 'preamble' parameter. Add   test case.

	* cli/apport-cli,
	* debian/changelog,
	* po/de.po,
	* qt4/apport-qt: [707] * cli/apport-cli, qt4/apport-qt: Fix bad
	grammar 'some minutes'.    (LP: #95296)

	* debian/changelog: [706] release as 0.70 to feisty

	* debian/changelog,
	* doc/package-hooks.txt: [705] * doc/package-hooks.txt: Add some
	examples, document source package hook.

2007-03-23  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/apport-retrace,
	* debian/changelog: [704] * bin/apport-retrace: Fix ordering of
	version numbers in warning message.

	* bin/apport-chroot,
	* bin/apport-retrace,
	* debian/changelog: [703] * 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-chroot,
	* debian/changelog: [702] * bin/apport-chroot: Fixed command function
	selection to not abort with   'unknown command' if the DistroRelease:
	was unknown.

	* bin/apport-chroot,
	* debian/changelog: [701] * 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.

	* apport/ui.py: [700] apport/ui.py: mark report as seen when updating
	it with new information

2007-03-23  Martin Pitt <martin.pitt@ubuntu.com>

	* package-hooks,
	* package-hooks/source_apport.py: Added.

	* debian/apport.dirs: Removed.

	* debian/apport.install,
	* debian/changelog,
	* setup.py: Modified.

	[699] * Add package-hooks/source_apport.py: Package hook for apport
	itself.   Include /var/log/apport.log and the status of files in
	/var/crash.

2007-03-23  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/report.py,
	* debian/changelog: [698] * 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.

	* cli/apport-cli,
	* debian/changelog,
	* gtk/apport-gtk.glade,
	* po/de.po,
	* qt4/apport-qt: [697] * Some grammar corrections.

	* TODO,
	* apport/ui.py,
	* debian/changelog: [696] * 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. :)

2007-03-22  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO,
	* bin/apport-chroot,
	* debian/changelog: [695] * apport-chroot: Add forgotten sys.exit(1)
	after printing the error message   about an invalid chroot
	specification.

	* TODO: [694] TODO updates

	* apport/ui.py,
	* debian/changelog,
	* debian/control: [693] * 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)

	* debian/changelog,
	* problem_report.py: [692] * problem_report.py: Add optional parameter
	only_new to write(), which   writes only the get_new() keys. Add test
	case.

	* debian/changelog,
	* problem_report.py: [691] * 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.

	* debian/changelog: [690] add another bug to the changelog

	* apport/report.py,
	* debian/changelog: [689] * 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)

	* apport/REThread.py,
	* apport/chroot.py,
	* apport/fileutils.py,
	* apport/packaging.py,
	* apport/python_hook.py,
	* apport/report.py,
	* backends/packaging-dpkg.py,
	* debian/changelog,
	* problem_report.py: [688] * Remove trailing white space in all Python
	files.

	* apport/chroot.py,
	* apport/fileutils.py,
	* apport/python_hook.py,
	* apport/report.py,
	* backends/packaging-dpkg.py,
	* debian/changelog,
	* problem_report.py: [687] * Replace tabs with spaces in all Python
	files. (LP: #93561)

	* debian/changelog,
	* run-tests: [686] * run-tests: Run tests with python's -tt flag to
	catch whitespace errors.

	* apport/report.py,
	* bin/apport-retrace,
	* debian/changelog: [685] * apport/report.py, add_gdb_info(): Limit
	maximum backtrace depth to 2000 to   avoid infinitely looped stacks
	and gdb crashes. (LP: #94455) * bin/apport-retrace: Add option -R
	/--rebuild-package-info, so that   apport-retrace works on unprocessed
	crash dumps in /var/crash.

2007-03-22  Martin Pitt <martin.pitt@ubuntu.com>

	* cli,
	* cli/apport-cli,
	* debian/apport-cli.install: Added.

	* apport/ui.py,
	* debian/changelog,
	* debian/control,
	* debian/copyright,
	* setup.py: Modified.

	[684] [ 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.

2007-03-21  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* debian/local/setup-apport-retracer: [683] * 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.

	* apport/report.py,
	* bin/apport-retrace,
	* debian/changelog: [682] * 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.

2007-03-20  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* debian/local/setup-apport-retracer: [681] * debian/local/setup-
	apport-retracer: Install libc6-i686{,-dbgsym} into an   x86 chroot, to
	get sane x86 backtraces for crashes in libc.

	* bin/apport-retrace,
	* debian/changelog: [680] * bin/apport-retrace: Mangle bug comment
	with StacktraceTop to not contain   invalid UTF-8, to avoid getting
	Internal Server Errors from LP.

	* bin/launchpad-crash-digger: [679] launchpad-crash-digger: do not
	endlessly loop on failed apport-retrace

2007-03-20  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/launchpad-crash-digger: Added.

	* debian/changelog: Modified.

	[678] * Add bin/launchpad-crash-digger: Daemon for watching out for
	need-$ARCH-retrace tagged Ubuntu bugs in Launchpad and calling
	apport-retrace on them.

2007-03-20  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/apport-chroot,
	* debian/changelog: [677] * bin/apport-chroot: Add option --remove-tag
	and pass it to apport-retrace.

	* apport/chroot.py,
	* debian/changelog: [676] * apport/chroot.py, fix_symlinks(): Convert
	chroot path prefixed absolute   symlinks to relative symlinks to avoid
	fakechroot's weird handling of   absolute symlinks.

	* TODO: [675] TODO item

	* bin/apport-retrace,
	* debian/changelog,
	* debian/control,
	* man/apport-retrace.1: [674] * 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.

2007-03-19  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [673] release as 0.69 to feisty

	* bin/apport,
	* debian/changelog,
	* test-apport: [672] * 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)

2007-03-15  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO: [671] remove TODO item

	* bin/apport-retrace,
	* debian/changelog: [670] revert removal of getch(), that was a red
	herring

	* bin/apport-chroot,
	* debian/changelog: [669] * apport-chroot: Fix 'login' and 'upgrade'
	commands to not require   specifying a chroot map when giving a chroot
	tarball path as argument.

	* bin/apport-chroot,
	* debian/changelog: [668] * apport-chroot: Add command 'installdeb' to
	conveniently install a bunch of   .debs into a chroot.

	* bin/apport-retrace,
	* debian/changelog: [667] * apport-retrace: Remove function getch()
	again, since the termios ioctls do   not always work. This requires
	users to press Enter after y/n.

	* debian/changelog: [666] release as 0.68 to feisty

	* bin/apport-chroot,
	* debian/changelog: [665] * apport-chroot: Add option --confirm-
	attach; if given, call apport-retrace   with --confirm.

	* bin/apport-retrace,
	* debian/changelog: [664] [ 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)

2007-03-14  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* qt4/apport-qt,
	* qt4/error.ui: [663] [ Michael Hofmann ] * qt4/apport-qt: Fix taskbar
	entry, remove an unused method. * qt4/error.ui: Fix icon spacing.

	* debian/changelog: [662] release as 0.67 to feisty

	* debian/changelog,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [661] * gtk/apport-gtk{,.glade}: Fix signal
	handler name of the Cancel button in   the upload progress dialog, so
	that it actually works. (LP: #92115)

	* po/de.po: [660] update German translations

	* debian/changelog,
	* gtk/apport-gtk.glade: [659] * 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

	* bin/apport,
	* debian/changelog,
	* test-apport: [658] * 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)

	* bin/apport-retrace,
	* debian/changelog: [657] * bin/apport-retrace: Fix 'numer' typo. (LP:
	#91680)

	* apport/report.py,
	* debian/changelog: [656] * apport/report.py: Remove undefined call to
	error_log() in   _command_output(), replace it with raising proper
	exceptions.

2007-03-13  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO,
	* debian/changelog,
	* po/de.po: [655] * po/de.po: Update from Rosetta.

2007-03-12  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* debian/local/setup-apport-retracer: [654] * debian/local/setup-
	apport-retracer: Add apt sources for restricted,   universe, and
	multiverse, too.

	* debian/changelog: [653] release as 0.66 to feisty

2007-03-11  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/chroot.py,
	* bin/apport-chroot,
	* bin/apport-retrace,
	* debian/changelog,
	* debian/local/setup-apport-retracer: [652] merge to trunk

2007-03-10  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/apport-retrace: [651] remove some debugging junk

	* bin/apport-chroot,
	* debian/changelog: [650] * bin/apport-chroot: Add --cookie option:
	temporarily symlink cookie into   the chroot and pass it to apport-
	retrace in retrace mode.

	* bin/apport-retrace,
	* debian/changelog,
	* man/apport-retrace.1: [649] * 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.

2007-03-10  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/MultipartPostHandler.py: Removed.

	* apport/ui.py,
	* debian/changelog,
	* debian/control,
	* debian/copyright: Modified.

	[648] * 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().

2007-03-07  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/apport-chroot,
	* debian/changelog: [647] * bin/apport-chroot: Use apt-get options -y
	and --allow-unauthenticated when   installing additional packages.

	* debian/changelog,
	* debian/local/setup-apport-retracer: [646] * 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.

2007-03-06  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [645] release as 0.64 to feisty

	* bin/apport-retrace,
	* debian/changelog: [644] * bin/apport-retrace: Do not complain about
	missing ddebs for Arch: all   packages.

	* bin/apport-chroot,
	* debian/changelog: [643] * bin/apport-chroot: Add a -v/--verbose
	option.

	* bin/apport-chroot,
	* debian/changelog: [642] * 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-retrace,
	* debian/changelog,
	* man/apport-retrace.1: [641] * 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)

	* apport/fileutils.py,
	* debian/changelog: [640] * apport/fileutils.py,
	get_all_{system_,}reports(): Fix file access race   condition. (LP:
	#89977)

	* bin/apport-retrace,
	* debian/changelog: [639] * bin/apport-retrace: Give some additional
	explanation when installing   packages fails. (LP: #89916)

	* apport/report.py,
	* debian/changelog: [638] * apport/report.py, search_bug_patterns():
	Catch all exceptions from   urlopen(), not just IOError. Sometimes
	this fails with funnier errors.   (LP: #89589)

	* apport/report.py,
	* debian/changelog: [637] * 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)

2007-03-05  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/local/setup-apport-retracer: Added.

	* debian/changelog: Modified.

	[636] * 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.

2007-03-05  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/apport-chroot,
	* debian/changelog: [635] * bin/apport-chroot: Install apport-retrace
	into a newly created chroot.

	* bin/apport-chroot,
	* debian/changelog: [634] * bin/apport-chroot: Add 'login' command.

	* debian/changelog: [633] release as 0.63 to feisty

2007-03-05  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/chroot.py,
	* bin/apport-chroot,
	* debian/apport-retrace.install: Added.

	* bin/apport-retrace,
	* debian/apport.install,
	* debian/changelog,
	* debian/control,
	* man/apport-retrace.1,
	* run-tests,
	* setup.py: Modified.

	[632] merge fakechroot branch

2007-03-05  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [631] release as 0.62 to feisty

2007-03-02  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/ui.py: [630] apport/ui.py, create_crash_bug_title(): Arch:all
	matches everywhere, add test case

2007-03-01  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* gtk/apport-gtk.desktop.in,
	* qt4/apport-qt.desktop.in: [629] * gtk/apport-gtk.desktop.in: Only
	show in Gnome and Xfce. * qt4/apport-qt.desktop.in: Only show in KDE.

2007-02-28  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [628] remove stray changelog space

	* debian/apport.install,
	* debian/changelog,
	* setup.py: [627] * 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.

	* debian/changelog,
	* run-tests: [626] * 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.

	* apport/report.py,
	* debian/changelog: [625] * 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.

	* debian/changelog,
	* run-tests,
	* test-hooks: [624] * 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/fileutils.py,
	* apport/report.py,
	* backends/packaging-dpkg.py,
	* debian/changelog: [623] * All test suites: Remove redundant word
	'behaviour' from test descriptions.

	* TODO,
	* apport/ui.py,
	* debian/changelog: [622] * apport/ui.py, create_crash_bug_title():
	Append warning about non-native   package if package architecture does
	not match the system's one.

	* apport/report.py,
	* debian/changelog: [621] * apport/report.py, add_os_info(): Add
	system architecture as   'Architecture:' field.

	* apport/report.py,
	* debian/changelog: [620] * apport/report.py, add_package_info():
	Rename key 'Architecture:' to   'PackageArchitecture:' for clarity.

	* apport/packaging.py,
	* backends/packaging-dpkg.py,
	* debian/changelog: [619] * 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 shallo test case.

	* apport/report.py,
	* debian/changelog: [618] * 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/ui.py,
	* debian/changelog: [617] * apport/ui.py, collect_info(): Use REThread
	instead of Thread and raise   exceptions from it, so that errors
	during info collection actually become   visible.

	* debian/changelog: [616] release as 0.61 to feisty

2007-02-27  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/apport,
	* debian/changelog: [615] * 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.

	* TODO: [614] TODO item

2007-02-26  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [613] release as 0.60 to feisty

	* debian/changelog,
	* qt4/apport-qt: [612] * qt4/apport-qt: Wrap gettext() into an
	unicode(str, 'UTF-8') call,   otherwise all non-ASCII unicode strings
	are broken. (LP: #87757)

	* debian/changelog: [611] remove stray changelog space

	* apport/fileutils.py,
	* apport/ui.py,
	* debian/changelog: [610] * 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)

	* apport/report.py,
	* debian/changelog: [609] * apport/report.py, add_package_info(): Add
	Architecture: field.    (LP: #87424)

	* apport/packaging.py,
	* backends/packaging-dpkg.py,
	* debian/changelog: [608] * 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.

	* debian/changelog,
	* gtk/apport-gtk.glade: [607] * 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)

2007-02-22  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [606] release as 0.59 to feisty

	* apport/report.py,
	* debian/changelog: [605] * 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!

	* debian/changelog,
	* problem_report.py: [604] * problem_report.py test suite: Use
	assertAlmostEqual() when comparing stat   times, since they are floats
	on some systems.

	* debian/changelog,
	* test-apport: [603] * test-apport: Check that the core file written
	by apport is valid. This   uncovers kernel bugs like #87065

	* TODO,
	* bin/apport,
	* debian/changelog,
	* test-apport: [602] * 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.

	* debian/changelog,
	* test-apport: [601] * 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.

	* apport/report.py,
	* debian/changelog: [600] * apport/report.py,
	_check_interpreted_script(): Filter out interpreter   command line
	options. This should make the detection of interpreted   scripts more
	robust. (LP: #87005)

	* apport/report.py,
	* debian/changelog: [599] * apport/report.py: Check that interpreter
	options are discarded in   test_check_interpreted_script(). This
	replicates bug #87005.

2007-02-20  Martin Pitt <martin.pitt@ubuntu.com>

	[598] release as 0.58 to feisty

2007-02-20  Jonathan Riddell <jriddell@ubuntu.com>

	* debian/changelog: [597] add changelog

	* qt4/apport-qt.desktop.in: [596] move kde .desktop file to system
	menu

2007-02-19  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [595] release as 0.57 to feisty

	* apport/ui.py,
	* debian/changelog: [594] * apport/ui.py, open_url(): Remove debugging
	print statement again, now   that we tracked down bug #83974.

	* TODO: [593] TODO item

	* apport/python_hook.py,
	* debian/changelog: [592] * apport/python_hook.py: Resolve symbolic
	links in ExecutablePath.   (LP: #85529)

	* apport/ui.py,
	* debian/changelog: [591] * 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.

	* debian/changelog: [590] fix changelog bug number

	* debian/changelog,
	* gtk/apport-gtk,
	* qt4/apport-qt: [589] * 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,
	* debian/changelog: [588] * apport/ui.py: Ignore KeyError when
	deleting the CoreDump field on sending   a reduced report. This Should
	Not Happen?, but nevertheless did.    (LP: #86007)

	* apport/ui.py,
	* debian/changelog: [587] * 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)

2007-02-15  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [586] release as 0.56 to feisty

	* debian/changelog,
	* qt4/apport-qt: [585] * 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!

2007-02-15  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/local/ubuntu-bug.1: Added.

	* debian/apport.manpages,
	* debian/changelog: Modified.

	[584] * Add debian/local/ubuntu-bug.1: Manpage for ubuntu-bug. Add it
	to   debian/apport.manpages.

2007-02-14  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/ui.py,
	* debian/changelog: [583] * 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)

	* TODO: [582] remove delay TODO item, it does not happen any more

	* debian/changelog: [581] release as 0.55 to feisty

	* apport/ui.py,
	* debian/changelog: [580] * apport/ui.py: Switch from
	edge.launchpad.net to production launchpad.net,   since the necessary
	bits are now there. (LP: #84992)

	* apport/ui.py,
	* debian/changelog: [579] * 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)

	* debian/changelog,
	* gtk/apport-gtk: [578] * gtk/apport-gtk: Generously add some
	gtk.main_iteration() calls to avoid   hanging dialogs, since we do not
	have a main loop.

2007-02-14  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/local,
	* debian/local/ubuntu-bug: Added.

	* TODO,
	* debian/apport.install,
	* debian/changelog: Modified.

	[577] * 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.

2007-02-13  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [576] release as 0.54 to feisty

	* bin/apport,
	* debian/changelog: [575] * bin/apport: Re-enable, now that our kernel
	has been fixed to pipe complete   core dumps to us.

2007-02-12  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [574] release as 0.53 to feisty

	* apport/ui.py,
	* debian/changelog: [573] * apport/ui.py, open_url(): Print URL to
	stdout, so that we can debug the   weirdness in #83974.

	* debian/changelog,
	* gtk/apport-gtk: [572] * gtk/apport-gtk: Do not count the lines of
	fields with binary data. This   particularly avoids long delays with
	huge core dumps. (LP: #81979)

	* debian/changelog,
	* gtk/apport-gtk: [571] * gtk/apport-gtk: Process pending GTK events
	after hiding the info   collection window to avoid a hanging dead
	dialog.

2007-02-09  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/ui.py,
	* debian/changelog: [570] * apport/ui.py, open_url(): Remove some
	accidentally left-over debugging   junk.

	* debian/changelog: [569] release as 0.52 to feisty

	* bin/apport,
	* debian/changelog: [568] * bin/apport: Disable for now, since the
	current kernel produces cropped   core dumps and thus we get totally
	useless crash reports

	* debian/changelog: [567] change bug numbers for official Ubuntu dpkg-
	dev syntax

	* debian/changelog,
	* qt4/apport-qt: [566] * qt4/apport-qt: Do not try to call
	splitlines() on a report value that is a   file reference; just
	display the reference instead. Closes: LP#84196

2007-02-09  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/apport.dirs: Added.

	* debian/changelog: Modified.

	[565] * Add debian/apport.dirs: Ship package-hooks/ directory.

2007-02-09  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* qt4/apport-qt: [564] * qt4/apport-qt: Fix restart button handling.
	Closes: LP#84202

	* bin/apport-retrace,
	* debian/changelog: [563] * 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!

2007-02-09  Martin Pitt <martin.pitt@ubuntu.com>

	* qt4/apport-qt.desktop.in: Added.

	* debian/apport-qt.install,
	* debian/changelog,
	* debian/rules,
	* po/POTFILES.in,
	* qt4/Makefile,
	* qt4/apport-qt: Modified.

	[562] * Add qt4/apport-qt.desktop.in and add it to POTFILES.in.

2007-02-09  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO,
	* debian/changelog,
	* gtk/apport-gtk,
	* qt4/apport-qt: [561] * gtk/apport-gtk, qt4/apport-qt: Fix detection
	of binary data so that the   CoreDump is not displayed as
	incomprehensible gibberish any more.

	* TODO: [560] bc package does not ship md5sums, no check possible,
	remove TODO item

2007-02-09  Martin Pitt <martin.pitt@ubuntu.com>

	* doc,
	* doc/package-hooks.txt: Added.

	* TODO,
	* debian/apport.install,
	* debian/changelog,
	* setup.py: Modified.

	[559] * Add doc/package-hooks.txt: Document per-package hooks, ship in
	package   apport.

2007-02-09  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/report.py,
	* debian/changelog: [558] * apport/report.py: Fix hook directory to be
	/usr/share/apport/package-hooks/,  not /u/s/apport/.

	* TODO: [557] remove solved TODO item

2007-02-08  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [556] release as 0.51 to feisty

	* bin/apport-retrace,
	* debian/changelog,
	* man/apport-retrace.1: [555] * bin/apport-retrace, man/apport-
	retrace.1: Document that report can now be   a LP bug number.

2007-02-08  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/apport.svg: Added.

	* apport/apport.png: Removed.

	* debian/changelog,
	* debian/copyright,
	* debian/rules,
	* setup.py: Modified.

	[554] 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.

2007-02-08  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO,
	* debian/apport-gtk.install,
	* debian/apport.install,
	* debian/changelog,
	* setup.py: Modified.

	* gtk/apport.png: Renamed to apport/apport.png.

	[553] * Move icon from apport-gtk to apport, since it is/can be shared
	between   frontends.

2007-02-08  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/apport-gtk.install,
	* debian/apport.install,
	* debian/changelog,
	* debian/control: [552] * 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).

2007-02-08  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/apport-qt.install: Added.

	* debian/changelog,
	* debian/control,
	* po/POTFILES.in,
	* setup.py: Modified.

	* qt4/apport-qt4: Renamed to qt4/apport-qt.

	[551] * setup.py, debian/control, debian/apport-qt.install: Packaging
	bits for   apport-qt.

2007-02-08  Martin Pitt <martin.pitt@ubuntu.com>

	* qt4,
	* qt4/Makefile,
	* qt4/apport-qt4,
	* qt4/bugreport.ui,
	* qt4/error.ui,
	* qt4/progress.ui: Added.

	* debian/changelog,
	* po/POTFILES.in,
	* po/de.po: Modified.

	[550] New feature: Qt4 GUI implementation: * Added qt4/: Qt4
	implementation of the abstract user interface. Thanks to   Michael
	Hofmann <mh21@piware.de> for that! * debian/copyright: Add Michael as
	copyright holder.

2007-02-08  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO: [549] TODO item

	* debian/changelog: [548] release as 0.50 to feisty

	* debian/changelog,
	* gtk/apport-gtk: [547] * gtk/apport-gtk: Mark '(binary data)' string
	as translatable.

	* TODO: [546] TODO item

	* bin/apport-retrace,
	* debian/changelog,
	* debian/control: [545] * 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.

	* TODO: [544] TODO item

2007-02-07  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* gtk/apport-gtk.glade: [543] * gtk/apport-gtk.glade: Fix 'prolem'
	typo.

2007-02-06  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [542] release as 0.49 to feisty

	* apport/ui.py: [541] remove debugging print statements

	* apport/ui.py,
	* debian/changelog: [540] * 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

	* debian/changelog,
	* gtk/apport-gtk: [539] * gtk/apport-gtk: Do not save/alter crash
	dialog title any more, it's empty   now.

	* apport/python_hook.py,
	* debian/changelog: [538] * apport/python_hook: Do not create a report
	if the binary is ignored. Add   test case. Closes: LP#83566

	* apport/ui.py,
	* debian/changelog: [537] * 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

	* debian/changelog,
	* gtk/apport-gtk.glade: [536] * gtk/apport-gtk.glade: Fix s/send/sent/
	typo. Closes: LP#83061

2007-02-05  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [535] release as 0.48 to feisty

	* debian/changelog,
	* gtk/apport-gtk.glade: [534] * gtk/apport-gtk.glade: Remove window
	titles in alert dialogs to comply with   Gnome HIG. Closes: LP#83123

	* TODO: [533] mono does not trigger apport, remove TODO item

	* bin/apport-retrace: [532] merge apport-retrace bug fix from Kees's
	branch

2007-02-02  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO: [531] TODO item

2007-02-01  Martin Pitt <martin.pitt@ubuntu.com>

	* apport/report.py,
	* debian/changelog: [530] * apport/report.py, add_package_info(): Fix
	crash when the first dependency   is not installed. Closes: LP#82561

	* debian/changelog: [529] restructure changelog

	* debian/changelog,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [528] * gtk/apport-gtk{,.glade}: Add
	implementation for ui_present_kernel_error().

	* apport/ui.py,
	* debian/changelog: [527] * apport/ui.py: Add support for reporting
	ProblemType: Kernel reports, and   add test suite for the workflow.

	* TODO,
	* apport/ui.py,
	* debian/changelog: [526] * 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.

2007-02-01  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/kernel_hook: Added.

	* TODO,
	* debian/apport.install,
	* debian/changelog,
	* setup.py,
	* test-hooks: Modified.

	[525] * 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.

2007-02-01  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO,
	* apport/report.py,
	* debian/changelog: [524] * 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

2007-01-31  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO: [523] TODO item

2007-01-31  Martin Pitt <martin.pitt@ubuntu.com>

	* test-hooks: Added.

	* debian/changelog,
	* run-tests: Modified.

	[522] * Add ./test-hooks: Test suite for the various package hooks
	shipped with   apport. Test the package problem hook for now.

2007-01-31  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* setup.py: [521] * setup.py: Remove version attribute, we do not
	update and use it anyway.

	* bin/apport,
	* debian/changelog: [520] * bin/apport: Call add_os_info(), so that we
	get architecture information   even for 'naked' reports which didn't
	go through UI enrichment.

2007-01-31  Martin Pitt <martin.pitt@ubuntu.com>

	* gtk/Makefile,
	* gtk/apport-gtk.desktop.in: Added.

	* debian/apport-gtk.install,
	* debian/changelog,
	* debian/rules,
	* po/POTFILES.in: Modified.

	[519] * 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.

2007-01-31  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO: [518] TODO item

	* backends/packaging-dpkg.py,
	* debian/changelog: [517] * 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.

	* debian/changelog,
	* debian/control: [516] * debian/control: Add gdb dependency to
	python-apport.

	* bin/apport-retrace,
	* debian/changelog,
	* debian/control: [515] * debian/control: Add missing python-apt
	dependency to apport   (apport-retrace needs it). Thanks to Kees Cook
	for noticing. * 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.

	* debian/changelog: [514] release as 0.46 to feisty

	* bin/package_hook,
	* debian/changelog: [513] * 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

	* debian/changelog,
	* debian/control: [512] * debian/control: Bump dependencies to python-
	apport due to recent changes   in expected return values in some UI
	functions. Closes: LP#82267

2007-01-29  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO: [511] TODO items

2007-01-29  martin@piware.de

	* debian/changelog: [510] release as 0.45 to feisty

2007-01-28  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog,
	* test-apport: [509] * test-apport: Test blacklisting.

	* debian/changelog: [508] add LP bug number to changelog

2007-01-27  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/apport,
	* debian/changelog: [507] * bin/apport: Do nothing if the current
	crash is blacklisted.

	* debian/changelog,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [506] * gtk/apport-gtk{,.glade}: Add a
	blacklist checkbox to the crash   notification dialogs.

	* apport/ui.py,
	* debian/changelog: [505] * 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.

	* apport/report.py,
	* debian/changelog: [504] * apport/report.py, _get_ignore_dom(): Do
	not throw an error for an empty   ignore list file. *

	* TODO: [503] missing dependencies work fine, remove TODO item

	* TODO,
	* apport/ui.py,
	* debian/changelog: [502] * apport/ui.py, create_crash_bug_title():
	Create default bug title for   package reports. Add various test
	cases.

	* bin/package_hook: [501] bin/package_hook: do not crash if no logs
	are given

	* apport/ui.py: [500] use splitlines() instead of split(\n)

	* TODO,
	* apport/ui.py,
	* debian/changelog: [499] * 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/__init__.py,
	* apport/fileutils.py,
	* apport/packaging.py,
	* apport/report.py,
	* bin/package_hook,
	* debian/changelog: [498] * Changed the packaging backend import, so
	that its methods can now be   accessed at apport.packaging instead of
	apport.packging.impl.

	* TODO,
	* backends/packaging-dpkg.py,
	* debian/changelog: [497] * 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).

	* debian/changelog: [496] fix changelog ordering

	* debian/changelog,
	* run-tests: [495] run-tests: Adapt to new core_pattern kernel
	interface

	* apport/fileutils.py,
	* apport/report.py,
	* backends/packaging-dpkg.py,
	* bin/apport-retrace,
	* debian/changelog,
	* problem_report.py: [494] Code cleanups: * Consistently use 'in'/'not
	in' instead of find() for substring searches.

	* apport/report.py,
	* debian/changelog: [493] * apport/report.py: Fix
	test_add_gdb_info_script() to not leave behind a   stray gzip process
	which randomly blocks stdin.

	* apport/report.py,
	* debian/changelog: [492] * apport/report.py, add_package_info(): Do
	not produce stray empty lines for   uninstalled alternative
	dependencies.

	* backends/packaging-dpkg.py,
	* debian/changelog: [491] * backends/packaging-dpkg.py: Fix return
	value of get_modified_files() if   dpkg .list file is missing.

	* apport/report.py,
	* debian/changelog: [490] * apport/report.py test suite: Refactorize
	generation of test crash program   and core dump generation.

	* apport/report.py,
	* debian/changelog: [489] * 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).

	* TODO: [488] TODO item

2007-01-26  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO: [487] TODO items

	* TODO: [486] TODO items

2007-01-25  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/apport,
	* debian/changelog: [485] * apport: Improve logging of exceptions,
	include environment variables.

	* TODO: [484] TODO item

	* debian/changelog,
	* use-local: [483] * use-local: Adapt to new core_pattern kernel
	interface.

	* debian/changelog,
	* test-apport: [482] * 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).

	* apport/report.py,
	* debian/changelog: [481] 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.

	* debian/changelog: [480] structure changelog

	* bin/package_hook,
	* debian/changelog,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [479] * gtk/apport-gtk{,.glade}: GTK
	implementation of ui_present_package_error().

	* apport/ui.py,
	* debian/changelog: [478] * 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.

	* debian/changelog,
	* gtk/apport-gtk: [477] * gtk/apport-gtk: Fix return code for
	restarting the application ('reopen' ->   'restart'). Closes: LP#81422

2007-01-25  Martin Pitt <martin.pitt@ubuntu.com>

	* bin/package_hook: Added.

	* debian/apport.install,
	* debian/changelog,
	* setup.py: Modified.

	[476] * 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.

2007-01-24  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/changelog: [475] release as 0.44 to feisty

	* debian/changelog: [474] brush up the changelog

	* backends/packaging-dpkg.py,
	* debian/changelog: [473] * 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'.

	* apport/ui.py,
	* debian/changelog: [472] * apport/ui.py: Call add_hooks_info() in the
	information collection thread.

	* apport/report.py: [471] apport/report.py: fix test case

	* apport/report.py,
	* debian/changelog: [470] * 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/python_hook.py,
	* debian/changelog: [469] * 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

	* apport/python_hook.py,
	* debian/changelog: [468] * 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,
	* debian/changelog: [467] * apport/python_hook.py: Check for a correct
	ExecutablePath in   test_general().

	* apport/report.py,
	* debian/changelog: [466] * apport/report.py: Add some more test cases
	for _check_interpreted() for   Python scripts.

2007-01-23  Martin Pitt <martin.pitt@ubuntu.com>

	* TODO,
	* backends/packaging-dpkg.py,
	* debian/changelog: [465] * 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,
	* debian/changelog: [464] * backends/packaging-dpkg.py,
	_check_files_md5(): Also accept a md5sum   string in addition to a
	md5sum file.

	* debian/changelog: [463] release as 0.43 to feisty

	* apport/ui.py,
	* debian/changelog: [462] * apport/ui.py, file_report(): Submit a
	default bug title for crash reports.   Closes: LP#79657

	* apport/ui.py,
	* debian/changelog: [461] * 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.

	* debian/changelog: [460] release as 0.42 to feisty

	* TODO: [459] TODO item

	* apport/ui.py,
	* debian/changelog: [458] * apport/ui.py: Add missing 'import pwd'.
	Closes: LP#81033

	* debian/changelog,
	* debian/control: [457] * debian/control: Bump apport's and apport-
	gtk's dependency to python-apport   to make sure that apport.ui is
	available. Closes: LP#81019

	* debian/changelog,
	* gtk/apport-gtk: [456] * gtk/apport-gtk: Add missing 'import
	subprocess.'. Closes: LP#81007

	* debian/changelog,
	* problem_report.py: [455] * 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.

2007-01-22  Martin Pitt <martin.pitt@ubuntu.com>

	* debian/apport.init,
	* debian/changelog: [454] * 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.

	* apport/ui.py,
	* debian/changelog: [453] * apport/ui.py: Fix error message invocation
	for reporting cloakroom upload   failure.

	* TODO,
	* apport/ui.py,
	* debian/changelog: [452] Minor improvements: * apport/ui.py: Get the
	cloakroom ticket number from the   X-Launchpad-Blob-Token HTTP header
	instead of parsing the resulting page.

	* debian/changelog,
	* problem_report.py: [451] * problem_report.py, write_mime(): Make
	sure that multi-line values that go   to the summary are terminated
	with a newline.

	* debian/changelog,
	* gtk/apport-gtk.glade: [450] * gtk/apport-gtk.glade: Fix expand/fill
	attributes so that the expander gets   all the space when resizing the
	window. Closes: LP#80987

	* bin/apport,
	* debian/changelog: [449] * bin/apport: Only unlink the core dump if
	it still exists. Closes: LP#80866

	* apport/ui.py,
	* debian/changelog: [448] * apport/ui.py: Fix crash in the bug pattern
	search thread if we could   not determine a package name. Closes:
	LP#77872

	* debian/changelog: [447] beautify changelog

	* bin/apport,
	* debian/changelog,
	* preloadlib/libapport.c: [446] * 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.

2007-01-22  martin@piware.de

	* bin/apport-retrace,
	* debian/changelog: [445] * bin/apport-retrace: Beautify error message
	when report file is not   accessible. Closes: LP#79568

	* TODO: [444] TODO items

	* debian/changelog: [443] release as 0.41 to feisty

2007-01-22  martin@piware.de

	* apport/MultipartPostHandler.py,
	* apport/REThread.py,
	* apport/ui.py: Added.

	* TODO,
	* debian/apport-gtk.install,
	* debian/changelog,
	* debian/copyright,
	* debian/rules,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade,
	* po/POTFILES.in,
	* po/de.po,
	* run-tests,
	* setup.py: Modified.

	* gtk/apport-gtk.png: Renamed to gtk/apport.png.

	[442] merge cloakroom branch

2007-01-21  martin@piware.de

	* debian/changelog: [441] debian/changelog: remove trailing whitespace

	* apport/report.py,
	* debian/changelog: [440] * apport/report.py: Disassemble 16
	instructions instead of 32 bytes to   become independent of the
	instruction size. Thanks to Kees Cook for the   patch!

	* debian/changelog,
	* gtk/apport-gtk: [439] * 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

	* debian/changelog,
	* debian/control,
	* gtk/apport-gtk: [438] * 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.

2007-01-18  martin@piware.de

	* backends/packaging-dpkg.py,
	* debian/changelog: [437] * 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

2007-01-15  martin@piware.de

	* debian/changelog: [436] release as 0.40 to feisty

	* debian/changelog,
	* debian/control: [435] * debian/control: Add missing python-dev build
	dependency, which is   apparently required for 2.5 now.

2007-01-13  martin@piware.de

	* debian/changelog: [434] release as 0.39 to feisty

2007-01-13  martin@piware.de

	* apport/packaging.py,
	* backends,
	* backends/packaging-dpkg.py: Added.

	* apport/fileutils.py,
	* apport/report.py,
	* debian/changelog,
	* debian/control,
	* debian/rules,
	* run-tests: Modified.

	[433] * 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.

2007-01-12  martin@piware.de

	* debian/changelog: [432] release as 0.38 to feisty

	* debian/changelog,
	* gtk/apport-gtk: [431] * 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.

	* bin/apport-checkreports,
	* debian/changelog: [430] * bin/apport-checkreports: Add option
	--system to check for system crash   reports. Closes: LP#62316

	* apport/fileutils.py,
	* debian/changelog: [429] * 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.

	* debian/changelog,
	* debian/rules: [428] * debian/rules: Build POT file again.

2007-01-10  martin@piware.de

	* COPYING: Added.

	* debian/changelog: Modified.

	[427] * Add ./COPYING: GPL license.

2007-01-08  martin@piware.de

	* debian/changelog: [426] release as 0.37 to feisty

	* apport/report.py,
	* debian/changelog: [425] * 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.

	* debian/changelog,
	* problem_report.py: [424] * 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

2007-01-05  martin@piware.de

	* debian/changelog: [423] release as 0.36 to feisty

	* apport/report.py,
	* debian/changelog: [422] * apport/report.py: Add missing import of
	'time' to test suite.

2007-01-04  martin@piware.de

	* debian/changelog,
	* gtk/apport-gtk: [421] * gtk/apport-gtk: Catch exceptions from
	decoding of damaged reports and   display an error message instead of
	crashing. Closes: LP#77149

	* debian/changelog,
	* gtk/apport-gtk: [420] * gtk/apport-gtk: Properly catch exceptions
	from the bug pattern check   thread to avoid useless backtraces like
	in bug #75160.

	* debian/changelog,
	* gtk/apport-gtk: [419] * gtk/apport-gtk: Catch MemoryError when
	loading a report and display an   error dialog instead of just
	crashing. Closes: LP#76235

	* debian/changelog,
	* debian/control: [418] * debian/control: Add missing python-apport
	dependency 'python-apt', which   is not caught by ${python:Depends}.

	* debian/apport.init,
	* debian/changelog: [417] * debian/apport.init: Use mkdir -p instead
	of install -d, since install is   not in /bin. Thanks to Kees Cook for
	catching this.

	* apport/report.py,
	* bin/apport-retrace,
	* debian/changelog: [416] * 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/changelog,
	* gtk/apport-gtk.glade: [415] * gtk/apport-gtk.glade: Restore vertical
	padding of bug report dialog labels   (another Glade 3 transition
	regression).

	* TODO,
	* debian/changelog,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [414] * 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.

	* TODO,
	* debian/changelog,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [413] * gtk/apport-gtk{,.glade}: Terminate the
	program properly when closing the   progress dialog instead of exiting
	with an exception.

	* TODO,
	* debian/changelog,
	* gtk/apport-gtk.glade: [412] * gtk/apport-gtk.glade: Restore pulse
	step of progress bar (this apparently   got destroyed when saving with
	Glade 3).

2007-01-03  martin@piware.de

	* TODO: [411] TODO item

	* TODO: [410] TODO items

	* debian/changelog: [409] release as 0.35 to feisty

2007-01-02  martin@piware.de

	* debian/changelog,
	* gtk/apport-gtk.glade: [408] * 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.

	* apport/report.py,
	* debian/changelog: [407] * apport/report.py,
	test_search_bug_patterns(): Use security.u.c. instead   of
	archive.u.c., since the latter times out too often.

	* apport/report.py,
	* debian/changelog: [406] * 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).

	* apport/report.py,
	* debian/changelog: [405] * apport/report.py, add_gdb_info(): Strip
	away the 'No symbol table info   available' messages from stack
	traces.

	* apport/report.py: [404] fix add_user_info() to get groups from
	shadow db instead of current process

	* bin/apport,
	* debian/changelog,
	* test-apport: [403] * bin/apport: Call add_user_info(), check
	functionality in test-apport.

	* apport/report.py,
	* debian/changelog: [402] Bug/crash information: * apport/report.py,
	add_user_info(): Add list of system groups that the user   belongs to.

2006-12-29  martin@piware.de

	* debian/changelog,
	* gtk/apport-gtk: [401]   - Refactor creation of temporary report
	file.

2006-12-28  martin@piware.de

	* debian/changelog,
	* gtk/apport-gtk: [400] * 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.

	* debian/changelog,
	* gtk/apport-gtk: [399] * gtk/apport-gtk: Support --file-bug without
	specifying a package or a PID   for filing generic distro bugs.

2006-12-26  martin@piware.de

	* debian/changelog,
	* po/de.po: [398] * po/de.po: Unfuzz some strings.

	* debian/changelog,
	* po/Makefile: [397] Bug fixes: * po/Makefile: Add top_srcdir to work
	with current intltool.

	* debian/changelog: [396] sort current changelog into improvements and
	new features

	* debian/changelog,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [395] * gtk/apport-gtk{,.glade}: Generalize
	some strings to not talk about 'crash'   any more, to make them
	suitable for bug reporting, too.

	* debian/changelog,
	* gtk/apport-gtk: [394] * 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. See
	https://wiki.ubuntu.com/BugReportingTool for details.

	* apport/fileutils.py,
	* debian/changelog,
	* problem_report.py: [393] * Use cStringIO instead of StringIO in
	modules.

	* debian/changelog,
	* problem_report.py: [392] * 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. See
	https://wiki.ubuntu.com/BugReportingTool, 'Data submission' for
	details.

2006-12-24  martin@piware.de

	* debian/changelog,
	* gtk/apport-gtk: [391] * 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.

2006-12-23  martin@piware.de

	* debian/changelog: [390] remove trailing whitespace from changelog

	* TODO,
	* apport/report.py,
	* debian/changelog: [389] * 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.

	* TODO,
	* bin/apport,
	* debian/changelog: [388] * 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/fileutils.py,
	* debian/changelog: [387] * apport/fileutils.py: Split out heuristics
	for determining whether a file   belongs to a package to new function
	likely_packaged() and add test cases.

2006-12-22  martin@piware.de

	* debian/changelog: [386] release as 0.34 to feisty

	* TODO: [385] TODO items

	* bin/apport-retrace,
	* debian/changelog: [384] * bin/apport-retrace: Get along with
	Package:/Dependencies: fields with list   of modified files.

	* apport/report.py,
	* debian/changelog: [383] * apport/report.py, add_package_info():
	Append list of modified package   files to Package: and Dependencies:
	value. Closes: LP#70946

	* apport/fileutils.py,
	* debian/changelog: [382] * apport/fileutils.py: Add check_files_md5()
	and test cases.

2006-12-21  martin@piware.de

	* apport/python_hook.py,
	* debian/changelog: [381] * 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/python_hook.py,
	* debian/changelog,
	* run-tests: [380]   reading until atime != ctime, or the 1.2s timeout
	is reached. * apport/python_hook.py: Add unit test, call that in run-
	tests.

2006-12-20  martin@piware.de

	* apport/fileutils.py,
	* debian/changelog: [379] * 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

2006-12-19  martin@piware.de

	* debian/changelog: [378] release as 0.33 to feisty

2006-12-19  martin@piware.de

	* debian/apport.postinst: Removed.

	* debian/changelog: Modified.

	[377] * Remove debian/apport.postinst: Those cleanups were only
	necessary for   intra-edgy upgrades.

2006-12-19  martin@piware.de

	* debian/python-apport.postinst: Added.

	* debian/changelog: Modified.

	[376] * 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.

2006-12-19  martin@piware.de

	* apport/fileutils.py,
	* apport/report.py: Added.

	* apport_utils.py,
	* debian/python-apport-utils.install: Removed.

	* apport/__init__.py,
	* apport/python_hook.py,
	* bin/apport,
	* bin/apport-checkreports,
	* bin/apport-retrace,
	* debian/changelog,
	* debian/control,
	* gtk/apport-gtk,
	* run-tests,
	* setup.py,
	* test-apport: Modified.

	[375] * 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.

2006-12-18  martin@piware.de

	* debian/changelog,
	* gtk/apport-gtk: [374] * 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.

	* debian/changelog,
	* debian/control,
	* debian/rules: [373] * debian/rules: Convert to cdbs. This fixes the
	dh_pysupport invocation   along the way, too.

	* debian/changelog,
	* debian/rules: [372] * debian/rules: Fix dh_pysupport invocation to
	actually do something.

2006-12-15  martin@piware.de

	* debian/changelog: [371] release as 0.32 to feisty

2006-12-14  martin@piware.de

	* bin/apport-retrace,
	* debian/changelog: [370] * apport-retrace: Use ldd on InterpreterPath
	if present; ldd'ing scripts   will not get us very far. Closes:
	LP#72201

	* debian/changelog,
	* use-local: [369] * use-local: Fix path to apport as well (recently
	moved to bin/).

	* debian/changelog,
	* test-apport: [368] * test-apport: Fix AGENTPATH directory when
	building the preload library   (recently moved to bin/).

2006-12-05  martin@piware.de

	* apport_utils.py,
	* debian/changelog: [367] * 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!

2006-12-05  martin@piware.de

	[366] formally merge already applies fixes from Kees' branch

2006-11-25  martin@piware.de

	* debian/changelog: [365] release as 0.31 to feisty

2006-11-25  martin@piware.de

	* apport/__init__.py: Added.

	[364] add forgotten __init__.py

2006-11-25  martin@piware.de

	* apport_utils.py: [363] apport_utils.py test suite: fix for scripts
	moved to bin/

	* apport_utils.py,
	* debian/changelog: [362] * apport_utils.py: Quiesce gdb error
	messages in test suite.

2006-11-25  martin@piware.de

	* constraints.py: Removed.

	[361] remove constraints.py, we will not need multiple threads in
	apport itself

2006-11-25  martin@piware.de

	* debian/changelog,
	* debian/control: [360] * debian/control: apport now depends on
	python-apport instead of   python-apport-utils.

2006-11-25  martin@piware.de

	* apport,
	* apport/python_hook.py,
	* debian/python-apport.install: Added.

	* debian/changelog,
	* debian/control,
	* setup.py: Modified.

	[359] * Add apport/python_hook.py: Default exception handler for
	Python, to create   apport reports for unhandled exceptions. Thanks to
	Robert Collins   <robert@ubuntu.com> 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.

2006-11-25  martin@piware.de

	* bin: Added.

	* debian/changelog,
	* setup.py: Modified.

	* apport: Renamed to bin/apport.
	* apport-checkreports: Renamed to bin/apport-checkreports.
	* apport-retrace: Renamed to bin/apport-retrace.
	* apport-unpack: Renamed to bin/apport-unpack.

	[358] * Move scripts to bin/ in source package.

2006-11-25  martin@piware.de

	* debian/changelog: [357] release as 0.30 to feisty

	* debian/apport.init,
	* debian/changelog: [356] * debian/apport.init: Change /var/crash
	permissions to 1777, so that custom   crash handlers (in
	Python/Mono/etc.) can put reports there.

	* apport_utils.py,
	* debian/changelog,
	* gtk/apport-gtk: [355] * 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/changelog: [354] remove stray space in changelog

	* apport,
	* apport-retrace,
	* apport-unpack,
	* apport_utils.py,
	* debian/changelog,
	* gtk/apport-gtk,
	* preloadlib/libapport.c,
	* problem_report.py,
	* test-apport: [353] * Convert all tabs in Python source code files to
	spaces to comply to PEP 8.   Thanks to Robert Collins for pointing
	this out.

	* debian/apport.cron.daily,
	* debian/apport.init,
	* debian/changelog: [352] * 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

	* debian/changelog,
	* gtk/apport-gtk.glade: [351] * gtk/apport-gtk.glade: Improve dialog
	title capitalization.    Closes: LP#70652.

	* debian/changelog,
	* test-apport,
	* use-local: [350] * test-apport, use-local: Support both kernel
	2.6.17 and 2.6.19 sysctl names   (crashdump-helper vs. crashdump).

2006-11-06  martin@piware.de

	* debian/changelog: [349] release as 0.29 to feisty

2006-11-05  martin@piware.de

	* debian/changelog,
	* test-apport: [348] * test-apport: Build preload library with core
	piping. No more failed test   suite checks in 'lib' mode.

	* debian/changelog,
	* preloadlib/Makefile,
	* preloadlib/libapport.c: [347] * preloadlib: Support -DPIPE_CORE mode
	which emulates the   pipe-in-core_pattern mode of kernel 2.6.19.

2006-11-04  martin@piware.de

	* debian/changelog,
	* test-apport: [346] * test-apport: Fix EXFAILure of the 'core dump
	works for non-writable cwds'   test case.

	* apport: [345] Fix drop_privileges() for non-root lib mode

	* debian/changelog,
	* test-apport: [344] * test-apport: When using 'lib' mode, point
	APPORT_LOG_FILE to a temporary   file. Print it if the test suite
	fails.

	* apport-retrace,
	* debian/changelog: [343] * apport-retrace: If -c is given, completely
	remove the CoreDump field from   the report instead of setting it to
	'removed'.

	* apport-retrace,
	* debian/changelog,
	* man/apport-retrace.1: [342] * 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.

	* debian/changelog,
	* test-apport: [341] * 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.

	* test-apport: [340] code style fixes

	* apport_utils.py,
	* debian/changelog: [339] * apport_utils.py, find_file_package():
	Terminate fgrep options with '--' to   avoid problems with funny file
	names. Thanks to Kees Cook for spotting   this!

	* apport,
	* apport_utils.py,
	* debian/changelog,
	* test-apport: [338] * 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!

	* debian/changelog,
	* debian/control: [337]   core_pattern' feature. Bump python-problem-
	report dependency to >= 0.29   for this.

	* apport,
	* debian/changelog: [336] * apport: Confine permissions of log file to
	root:adm 0640, just in case.

	* TODO: [335] remove kernel-side TODO items, 2.6.19 pipe-in-
	core_pattern fulfills this quite well

	* apport,
	* debian/changelog: [334] * 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.

	* run-tests: [333] fix new crashdump helper sysctl name in run-tests,
	too

	* debian/changelog,
	* problem_report.py: [332] * 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().

	* debian/changelog,
	* test-apport: [331] * test-apport: Restore cwd even when failing a
	test.

	* debian/apport.init,
	* debian/changelog,
	* test-apport,
	* use-local: [330] * debian/apport.init, test-apport, use-local: Adapt
	to 'crashdump-helper' ->   'crashdump' sysctl renaming in 2.6.19.

2006-10-25  martin@piware.de

	* apport_utils.py: [329] use full path for dpkg-divert

	* apport_utils.py,
	* debian/changelog: [328] * 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

	* apport-retrace,
	* debian/changelog: [327] * apport-retrace: Do not crash if a linked
	library is not a dependency.   Closes: LP#65914

2006-10-09  martin@piware.de

	* debian/changelog: [326] release as 0.28 to edgy

	* apport,
	* debian/changelog: [325] "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.

2006-10-06  martin@piware.de

	* debian/changelog: [324] release as 0.27 to edgy

	* apport_utils.py,
	* debian/changelog: [323] * 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!

	* apport_utils.py,
	* debian/changelog: [322] * 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,
	* debian/changelog: [321] * apport: use os.nice() instead of executing
	'renice'. Thanks to Benoit   Boissinot for noticing.

	* debian/changelog,
	* gtk/apport-gtk: [320] * 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,
	* debian/changelog: [319] * 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).

2006-10-04  martin@piware.de

	* debian/changelog: [318] release as 0.26 to edgy

	* apport_utils.py,
	* debian/changelog: [317] * 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

	* apport-retrace,
	* debian/changelog: [316] * 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.py: [315] fix documentation typo

	* debian/changelog: [314] remove trailing whitespace in changelog

	* apport-retrace,
	* debian/changelog,
	* man/apport-retrace.1: [313] * 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.

2006-10-02  martin@piware.de

	* apport_utils.py,
	* debian/changelog: [312] * apport_utils.py, report_add_gdb_info():
	Add optional parameter 'debugdir'   to specify an alternate debug file
	symbol root directory.

	* apport-retrace,
	* debian/changelog: [311] * 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.

	* debian/changelog: [310] release as 0.25 to edgy

	* apport,
	* debian/changelog: [309] * apport: Set nice level 10 instead of 5.
	Closes: LP#63099

	* apport,
	* debian/changelog: [308] * apport: Register an atexit handler as
	early as possible for unlinking the   core dump if REMOVE_CORE
	environment is set. Closes: LP#62972

	* debian/changelog,
	* preloadlib/libapport.c: [307] * 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.

	* debian/changelog,
	* test-apport: [306] * test-apport, check_crash(): Verify that a crash
	does not leave a core file   behind. (Test for LP#62972)

	* apport_utils.py,
	* debian/changelog: [305] * 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.

	* debian/changelog,
	* debian/control: [304] * Drop apport-gtk's update-notifier dependency
	to a Recommends:.

2006-09-29  martin@piware.de

	* debian/changelog: [303] release as 0.24 to edgy

	* debian/changelog,
	* debian/control: [302] * debian/control: Bumped library dependencies
	of apport-gtk, added   update-notifer dependency.

	* debian/changelog,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [301]   - Change the 'Downloading bug
	patterns...' progress dialog to 'Collecting     information about the
	crash...'.

	* debian/changelog,
	* gtk/apport-gtk: [300] * gtk/apport-gtk:   - Collect
	gdb/packaging/operating system information when the user chooses
	to file a bug and update the apport report.

	* apport_utils.py,
	* debian/changelog: [299] * apport_utils.py, mark_report_seen(): Use
	os.utime() instead of   open()/read() and a timeout for simpler and
	faster operation.

	* apport_utils.py: [298] apport_utils.report_add_gdb_info(): fix to
	work with inline core dumps

	* debian/changelog,
	* problem_report.py: [297] * problem_report.py: Add new method
	ProblemReport.add_to_existing() to   update an already existing
	problem report with new data. Add test case.

	* debian/changelog,
	* problem_report.py: [296] * 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.

	* debian/changelog,
	* problem_report.py: [295] * 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.

	* apport,
	* debian/changelog: [294] * apport: Do not intercept KeyboardInterrupt
	as unhandled exception (only   useful for command line debugging,
	though).

	* TODO,
	* apport,
	* debian/changelog: [293] * 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

	* debian/changelog,
	* test-apport: [292] * 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_utils.py,
	* debian/changelog: [291] * 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.

	* apport,
	* apport_utils.py,
	* debian/changelog: [290] * Move InformationCollector._get_gdb() from
	apport to apport_utils.py   report_add_gdb_info(), and add a test case
	for it.

2006-09-28  martin@piware.de

	* apport,
	* debian/changelog: [289] * 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.

	* debian/changelog: [288] release as 0.23 to edgy

	* debian/changelog: [287] remove trailing whitespace in changelog

	* apport,
	* debian/changelog: [286] * apport: Ignore SIGQUIT. Closes: LP#62511

	* debian/changelog,
	* test-apport: [285] * test-apport: Check that SIGQUIT does not
	generate a report. (Check for    bug #62511).

	* debian/apport.init,
	* debian/changelog: [284] * 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

	* apport,
	* debian/changelog: [283] * apport: Reset signal handler to SIG_IGN in
	the crash signal handler, to   avoid an endless crash/handler loop
	(noticed during debugging LP#61708).

2006-09-19  martin@piware.de

	* debian/changelog: [282] release as 0.22 to edgy

	* apport,
	* debian/changelog,
	* test-apport: [281] * 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

	* apport_utils.py,
	* debian/changelog: [280] * 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_utils.py,
	* test-apport: [279] fix script detection in report_add_proc_info() to
	work with relative script paths

	* test-apport: [278] test-apport: add relative path test case for non-
	packaged script check

	* apport,
	* debian/changelog: [277] * 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,
	* debian/changelog: [276] * 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).

	* debian/changelog,
	* test-apport: [275] * test-apport: Check that non-packaged scripts do
	not generate a report.

	* apport_utils.py,
	* debian/changelog: [274] * apport_utils.py, report_add_proc_info():
	Make 'interpreted script'   detection more general to also work for
	mono programs.

2006-09-15  martin@piware.de

	[273] release as 0.21 to edgy

2006-09-14  martin@piware.de

	* TODO,
	* debian/apport.postinst,
	* debian/changelog,
	* debian/control,
	* debian/rules: [272] * debian/rules: Use 'multiuser' instead of
	'defaults' for dh_installinit.   Clean up the unnecessary rc symlinks
	in postinst and add appropriate   sysv-rc dependency.

2006-09-13  martin@piware.de

	* TODO: [271] TODO item

	* apport,
	* debian/changelog: [270] * apport: Gracefully abort if we cannot
	readlink /proc/pid/exe, instead of   falling over with an exception.
	Closes: LP#59993

	* TODO,
	* debian/changelog,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [269] * 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.

	* TODO,
	* apport,
	* apport_utils.py,
	* debian/changelog: [268] * 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.

	* TODO: [267] TODO items

	* debian/apport.default,
	* debian/changelog: [266] * debian/apport.default: Increase maximum
	core size to 200 MB, to also catch   Firefox and Evolution core dumps.

	* apport,
	* debian/changelog: [265] * apport: Run the complete code under
	control of the general exception   fallback handler.

	* debian/changelog: [264] remove superfluous space from changelog

	* apport,
	* debian/changelog: [263] * apport: Add the executable path to the
	first line of logging.

2006-09-12  martin@piware.de

	* apport,
	* debian/changelog: [262] * 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

2006-09-11  martin@piware.de

	* TODO: [261] TODO item

	* debian/changelog: [260] release as 0.20 to edgy

	* debian/changelog: [259] changelog grammar fix

	* apport,
	* debian/changelog: [258] * 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

2006-09-10  martin@piware.de

	* debian/changelog,
	* test-apport: [257] * test-apport: Fix WCOREDUMP() and pidof checks
	in check_crash().

2006-09-10  martin@piware.de

	* debian/apport.logrotate: Added.

	* debian/changelog,
	* debian/rules: Modified.

	[256] * Add debian/apport.logrotate to add a daily 7-step
	/var/log/apport   log rotation.

2006-09-10  martin@piware.de

	* apport_utils.py,
	* debian/changelog: [255] * 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

2006-09-08  martin@piware.de

	* apport-unpack,
	* debian/changelog,
	* man/apport-unpack.1: [254] * apport-unpack: Support '-' as report
	argument to read from stdin.

	* apport,
	* apport_utils.py,
	* debian/changelog: [253] * 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.

	* TODO,
	* debian/changelog,
	* problem_report.py: [252] * 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.   Adapted regression
	tests accordingly.

	* debian/changelog,
	* problem_report.py: [251] * problem_report.py: Test attaching two
	files instead of one in the   test_write_file() regression check to
	assert correct key sorting.

2006-09-08  martin@piware.de

	* debian/apport.manpages,
	* man,
	* man/apport-retrace.1,
	* man/apport-unpack.1: Added.

	* debian/changelog,
	* debian/rules: Modified.

	[250] * Add manpages for apport-retrace(1) and apport-unpack(1) and
	install them   into apport. Closes: LP#58463

2006-09-08  martin@piware.de

	* TODO: [249] remove TODO item fixed by last commit

	* apport,
	* debian/changelog: [248] * apport: Renice ourself to priority 5 to
	not slow down the user's processes   so heavily.

	* TODO: [247] TODO item

2006-09-05  martin@piware.de

	* debian/changelog: [246] release as 0.19 to edgy

	* debian/changelog,
	* debian/control,
	* gtk/apport-gtk: [245] * apport-gtk: Make use of the new
	report_search_bug_patterns() function and   display appropriate
	instructions on match. Bump python-apport-utils dependency.

	* apport_utils.py: [244] report_search_bug_patterns(): gracefully
	handle invalid REs

2006-09-04  martin@piware.de

	* TODO: [243] TODO: valgrind issue has been settled

	* debian/changelog,
	* test-apport: [242] * test-apport: Fix help message.

	* apport_utils.py,
	* debian/changelog: [241] * 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.

	* TODO: [240] todo item

2006-08-25  martin@piware.de

	* debian/changelog: [239] release as 0.18 to edgy

	* TODO,
	* debian/changelog,
	* problem_report.py: [238] * 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.

	* debian/changelog,
	* gtk/apport-gtk: [237]   - Support new field 'RespawnCommand' to use
	custom respawning command.

	* TODO,
	* debian/changelog,
	* debian/control,
	* gtk/apport-gtk: [236]   - Use the ProcCmdline attibute to restart an
	application; correctly     parsing of all the desktop file is just not
	possible at this point.

	* debian/changelog,
	* run-tests: [235] * run-tests: Check if kernel crash dump helper is
	active, and if so, run   test-apport in kernel mode.

	* apport_utils.py,
	* debian/changelog: [234] * apport_utils.py: Fix the quoting in
	ProcCmdline so that it is fully shell   compatible.

	* TODO,
	* debian/changelog,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade,
	* po/de.po: [233]   - Support new field 'BugDisplayMode: file | list
	(default)'. In 'file'     mode, display the /+filebug page instead of
	/+bugs and change     instructions accordingly.

	* debian/control: [232] bump dependency for
	ProblemReport.has_removed_files()

	* debian/changelog,
	* gtk/apport-gtk.glade,
	* po/de.po: [231]   - 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).

	* TODO,
	* debian/changelog,
	* gtk/apport-gtk: [230]   - Only created reduced report and show the
	radio buttons if there are     actually removed fields.

	* debian/changelog,
	* problem_report.py: [229] * problem_report.py: Add method
	has_removed_fields() to check whether load()   skipped any fields due
	to binary=False. Add test suite check.

	* TODO,
	* debian/changelog,
	* gtk/apport-gtk: [228]   - If the report specifies an explicit
	DesktopFile, use that instead of     trying to figure it out.

	* TODO,
	* debian/changelog,
	* gtk/apport-gtk: [227]   - Do not assume the presence of the
	ExecutablePath key in reports, but     gracefully fall back to
	Package.

	* TODO,
	* debian/changelog,
	* gtk/apport-gtk: [226] * apport-gtk:   - Use pidof's -x option in the
	detection whether the program is already     running to correctly
	handle scripts.

2006-08-24  martin@piware.de

	* TODO: [225] TODO item

2006-08-22  martin@piware.de

	* debian/changelog: [224] release as 0.17 to edgy

2006-08-22  martin@piware.de

	* debian/apport.postinst: Added.

	* debian/changelog: Modified.

	[223] * 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.

2006-08-22  martin@piware.de

	* apport_utils.py,
	* debian/changelog: [222] * apport_utils.py: Add make_report_path(),
	which constructs the canonical   crash report pathname for a given
	report.

	* apport_utils.py,
	* debian/changelog,
	* problem_report.py: [221] * problem_report.py, apport_utils.py:
	Prepend UnitTest classes with '_' so   that they do not appear in the
	help() output.

	* debian/changelog,
	* po/de.po: [220] * po/de.po: Add new translations to make this
	complete again.

2006-08-22  martin@piware.de

	* debian/python-apport-utils.install: Added.

	* apport,
	* apport-checkreports,
	* debian/apport.install,
	* debian/changelog,
	* debian/control,
	* debian/python-problem-report.install,
	* gtk/apport-gtk,
	* setup.py: Modified.

	[219] * 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.

2006-08-22  martin@piware.de

	* debian/changelog,
	* preloadlib/libapport.c: [218] * 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.

	* apport,
	* apport_utils.py,
	* debian/changelog: [217] * 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.

	* apport,
	* apport_utils.py,
	* debian/changelog: [216] * Move operating system information
	collection from apport to new function   report_add_os_info() in
	apport_utils.py, add test suite check.

	* apport,
	* apport_utils.py,
	* debian/changelog: [215] * Move packaging information collection from
	apport to new function   report_add_package_info() in apport_utils.py,
	add test suite check.

2006-08-21  martin@piware.de

	[214] release as 0.16 to edgy

2006-08-21  martin@piware.de

	* TODO,
	* debian/changelog,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [213] * apport-gtk: Offer an alternative small
	report (without the core dump) for   users with slow internet
	connection.

	* test-apport: [212] test-apport: Clean up temporary file

	* apport,
	* debian/changelog: [211] * apport: Replace 0-bytes in ProcCmdline
	with spaces to keep them readable.

	* TODO,
	* apport,
	* debian/changelog: [210] * apport: Immediately exit if the executable
	name starts with /home or /tmp,   to avoid grepping the dpkg database
	in the common developer case.

	* TODO: [209] TODO item

	* apport,
	* debian/changelog: [208] * 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_utils.py: [207] apport_utils.py: robustify subprocess call

	* apport_utils.py,
	* debian/changelog: [206] * 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.

	* debian/changelog,
	* test-apport: [205] *  test-apport: Check that non-packaged binaries
	do not generate a report.

2006-08-20  martin@piware.de

	* TODO: [204] TODO item

	* debian/changelog: [203] release as 15 to edgy

	* debian/changelog,
	* test-apport: [202] * 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.

	* debian/changelog,
	* preloadlib/libapport.c: [201] * preloadlib/libapport.c: Improve
	error checking, some robustification.

	* debian/changelog,
	* test-apport: [200] * test-apport: Check for running apport and test
	executable processes in   check_crash().

	* debian/changelog,
	* test-apport: [199] * test-apport: Delete test report in the cleanup
	handler so that the   kernel-mode test can be run multiple times
	without manual cleanup.

	* apport,
	* debian/changelog: [198] * apport: Filter out all environment
	variables but $SHELL, $PATH, and   locale/language related ones.
	Closes: LP#56846

	* debian/changelog,
	* test-apport: [197] * test-apport: Check that dumped environment only
	contains security   insensitive variables.

2006-08-20  martin@piware.de

	* apport-unpack: Added.

	* debian/apport.install,
	* debian/changelog,
	* setup.py: Modified.

	[196] * 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.

2006-08-18  martin@piware.de

	* debian/changelog: [195] release as 0.14 to edgy

	* test-apport: [194] test-apport: clean up output

	* debian/changelog,
	* preloadlib/libapport.c: [193] * preloadlib/libapport.c: Close stderr
	for apport process.

	* test-apport: [192] test-apport: Check that core dump works for non-
	writable cwds

	* test-apport: [191] apport-test: check flooding

	* apport_utils.py,
	* debian/changelog: [190] * apport_utils.py, delete_report(): Actually
	try to unlink the report before   falling back to truncating it to
	zero bytes.

	* run-tests,
	* test-apport: [189] add kernel mode to test-apport

2006-08-18  martin@piware.de

	* test-apport: Added.

	* debian/changelog,
	* run-tests: Modified.

	[188] * 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.

2006-08-18  martin@piware.de

	* debian/changelog,
	* preloadlib/libapport.c: [187] * preloadlib/libapport.c: Close stdout
	for gcore process.

	* debian/changelog,
	* preloadlib/libapport.c: [186] * 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.

	* apport,
	* debian/changelog: [185] * apport: Quiesce the apt module's
	FutureWarning.

	* apport_utils.py,
	* debian/changelog: [184] * apport_utils.py: Check APPORT_REPORT_DIR
	environment variable for an   alternate crash report directory. This
	is mainly useful for a local test   suite.

	* debian/changelog,
	* preloadlib/libapport.c: [183] * preloadlib/libapport.c: Write core
	dump into cwd instead of /tmp to act   like the current kernel.

	* debian/changelog: [182] release as 0.13 to edgy

	* debian/changelog,
	* debian/control,
	* debian/rules: [181] * Do not run the test suite on build since on
	the buildds modifying   file atimes does not work.

2006-08-17  martin@piware.de

	* debian/changelog: [180] release as 0.12 to edgy

	* debian/changelog,
	* debian/control,
	* debian/rules: [179] * 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).

2006-08-17  martin@piware.de

	* run-tests: Added.

	* debian/changelog: Modified.

	[178] * Add run-tests script which calls all available selftests.

2006-08-17  martin@piware.de

	* TODO,
	* apport,
	* debian/changelog: [177] * 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).

	* apport,
	* debian/changelog: [176] * 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_utils.py,
	* debian/changelog: [175] * apport_utils.py: Add get_recent_crashes()
	and a test suite check for it.

	* TODO: [174] TODO item

	* TODO: [173] TODO item

	* debian/changelog,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [172] * apport-gtk: Make bug report window
	resizable when the details are   expanded. Closes: LP#56672

	* TODO: [171] add TODO item

2006-08-16  martin@piware.de

	* debian/changelog: [170] release as 0.11 to edgy

	* TODO: [169] remove TODO item which is not reproducible

2006-08-16  martin@piware.de

	* debian/apport.default: Added.

	* TODO,
	* debian/apport.init,
	* debian/changelog: Modified.

	[168] * 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.

2006-08-16  martin@piware.de

	* TODO: [167] TODO item

2006-08-15  martin@piware.de

	* TODO: [166] TODO item

2006-08-14  martin@piware.de

	* TODO,
	* apport,
	* debian/changelog: [165]   - transitive_dependencies(): Do not break
	on pure virtual dependencies     (like perl-api-XXX).

	* TODO,
	* apport,
	* debian/changelog: [164]   - Log successful report creation with file
	and package name, to ease     debugging.

	* apport: [163] fix temporary file handling

	* apport: [162] move code comment to where it belongs

	* apport,
	* debian/changelog: [161]   - Clean up handling of temporary files.

	* apport,
	* debian/changelog: [160]   - Do not catch SystemExit in the final
	catch-all-and-log clause (will     become important once we switch to
	master/slave processes).

	* apport,
	* debian/changelog: [159]   - Add missing close() call in
	init_error_log().

	* TODO: [158] TODO items

2006-08-14  martin@piware.de

	* constraints.py: Added.

	[157] add constraints.py to figure out apport workflow

2006-08-14  martin@piware.de

	* apport,
	* debian/changelog: [156] * 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.

	* debian/changelog,
	* gtk/apport-gtk.glade: [155] * gtk/apport-gtk.glade: Remove
	separators from dialogs. Closes: LP#56326

	* TODO: [154] TODO item

	* TODO: [153] TODO items

	* debian/changelog: [152] release as 0.10 to edgy

2006-08-11  martin@piware.de

	* gtk/apport-gtk: [151] fix report iteration in apport-gtk

2006-08-11  martin@piware.de

	* apport-retrace: Added.

	* debian/apport.install,
	* debian/changelog,
	* debian/rules,
	* setup.py: Modified.

	[150] * 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.

2006-08-11  martin@piware.de

	* debian/apport.init,
	* debian/changelog: [149] * debian/apport.init: Add colon to
	description to make output less   confusing.

	* debian/changelog,
	* problem_report.py: [148] ProblemReport: Restructure class to inherit
	from IterableUserDict and throw away all the now obsolete dictionary
	wrapper methods.

	* debian/changelog,
	* problem_report.py: [147]   - Fixed ProblemReport.load() to clean up
	old data, added selftest.

	* debian/changelog,
	* problem_report.py: [146] problem_report.py: Fix writing back binary
	data, adapt test suite to check it

	* debian/changelog,
	* problem_report.py: [145] * problem_report.py:    - Fix precise
	whitespace handling in continuation lines, add selftest.   - Add
	selftest for reading a report, modifying fields, and writing it
	back.

2006-08-10  martin@piware.de

	* apport,
	* debian/changelog: [144] do not try to guess core dump location,
	future kernel will pass the path

	* debian/apport.cron.daily,
	* debian/changelog: [143] * debian/apport.cron.daily: Add -mindepth 1
	to find commands to avoid   attempting to remove the /var/crash/
	directory. Closes: LP#55107

	* apport,
	* apport-checkreports,
	* debian/changelog,
	* preloadlib/libapport.c: [142] * Fix the GPL URLs in source file's
	copyright comments.

	* apport,
	* debian/changelog: [141] * apport:   - Correctly handle relative
	paths to core dumps (use crashed process'     cwd).   - If core dump
	file is not specified as argument, look in the default     location
	(cwd/core).

	* debian/changelog,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [140] * apport-gtk: Show report file size in
	bug report window.

2006-08-09  martin@piware.de

	[139] release as 0.9 to edgy

2006-08-09  martin@piware.de

	* preloadlib/README: Added.

	* debian/changelog: Modified.

	[138] * Add preloadlib/README: Explain how to use the preload library.

2006-08-09  martin@piware.de

	* debian/changelog: [137] changelog whitespace adjustment

2006-08-09  martin@piware.de

	* debian/apport.examples: Added.

	* debian/changelog,
	* debian/rules: Modified.

	[136] * Ship preloadlib/* as examples in package 'apport' for people
	who want to   play with it until the new kernel arrives.

2006-08-09  martin@piware.de

	* preloadlib,
	* preloadlib/Makefile,
	* preloadlib/libapport.c: Added.

	* debian/changelog: Modified.

	[135] * 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!

2006-08-09  martin@piware.de

	* apport,
	* debian/changelog: [134] * 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.

2006-08-08  martin@piware.de

	* apport,
	* debian/changelog: [133] * 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.

	* debian/changelog: [132] release as 0.8 to edgy

	* gtk/apport-gtk: [131] apport-gtk: Mark reports as seen once we
	showed a notification for it

	* debian/changelog: [130] fix changelog typo

	* apport_utils.py: [129] apport_utils.py: add proper implementation
	for mark_report_seen()

	* apport_utils.py,
	* debian/changelog: [128] * apport-utils.py: Add a test suite for all
	exported functions.

	* debian/changelog: [127] fix two changelog typos

	* apport,
	* debian/changelog: [126] * apport.py: Overwrite old reports if they
	are seen.

	* apport,
	* apport_utils.py,
	* debian/changelog: [125] * Replace all usages of '/var/crash' to a
	new global variable in   apport_utils; this is particularly useful for
	test suites.

	* apport_utils.py,
	* debian/changelog,
	* gtk/apport-gtk: [124] * 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.

	* debian/changelog: [123] release as 0.7 to edgy

2006-08-08  martin@piware.de

	* apport-checkreports: Added.

	* debian/apport.install,
	* debian/changelog,
	* setup.py: Modified.

	[122] * 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.

2006-08-08  martin@piware.de

	* apport_utils.py: Added.

	* debian/apport.install,
	* debian/changelog,
	* gtk/apport-gtk,
	* setup.py: Modified.

	[121] * Add apport-utils.py: Factorize out some common code of apport-
	gtk,   possible future frontends, and some backend tools.

2006-08-03  martin@piware.de

	* debian/changelog: [120] release as 0.6 to edgy

	* debian/changelog,
	* debian/control: [119] * Add missing intltool build dependency to fix
	FTBFS.

2006-08-02  martin@piware.de

	* debian/changelog: [118] release as 0.5 to edgy

	* debian/changelog,
	* gtk/apport-gtk: [117] * apport-gtk: Remove the crash report after it
	got displayed. * apport-gtk: Fix exception on startup if no readable
	crash reports exist.

	* debian/changelog: [116] release as 0.4 to edgy

	* gtk/apport-gtk: [115] apport-gtk: implement reopening the crashed
	application

	* gtk/apport-gtk: [114] apport-gtk: use dialog_crash_reopen if we have
	a .desktop file and the crashed program does not run

	* debian/control: [113] add python-xdg dependency

	* gtk/apport-gtk.glade: [112] gtk/apport-gtk.glade: Fix window type

	* gtk/apport-gtk: [111] remove stale debugging print statement

	* po/de.po: [110] po/de.po: add missing strings

	* debian/changelog,
	* po/Makefile: [109] * po/Makefile: Supply '--language=python' to
	intltool-update to properly   extract strings from apport-gtk.

	* gtk/apport-gtk.glade: [108] apport-gtk.glade: fix expander
	properties

	* debian/changelog,
	* po/de.po: [107] * Bring German translations up to date.

	* gtk/apport-gtk.glade: [106] apport-gtk.glade: remove Ubuntu branding

	* gtk/apport-gtk.glade: [105] apport-gtk.glade: mark untranslatable
	strings as such

	* gtk/apport-gtk.glade: [104] remove old UI windows from .glade

	* debian/changelog,
	* debian/rules: [103] * debian/rules: Build .pot file on package build
	for automatic Rosetta   import.

	* debian/changelog,
	* po/Makefile: [102] * po/Makefile: Fix default target to not just
	break. Now it builds the .pot   file.

	* debian/changelog: [101] changelog entry for new UI design

	* gtk/apport-gtk: [100] try to find a matching .desktop file and use
	its name instead of the executable name

	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [99] move heading string from glade to code to
	be able to control it better

2006-08-01  martin@piware.de

	* gtk/apport-gtk.glade: [98] gtk: nasty hack to auto-resize window on
	expander

	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [97] gtk: use window_bugreport on bug
	reporting

	* gtk/apport-gtk: [96] gtk: use the new wizard-style notification
	dialog

	* gtk/apport-gtk.glade: [95] gtk: add new dialogs and windows
	according to new UI specification

2006-07-31  martin@piware.de

	* debian/changelog: [94] release as 0.3 to edgy

	* debian/changelog,
	* debian/rules: [93] * debian/rules: Call setup.py install with --no-
	compile to not ship *.pyc in   debs.

	* debian/changelog,
	* gtk/apport-gtk: [92] * apport-gtk: Use source package name for the
	Malone URL.

	* apport,
	* debian/changelog: [91] * apport: Switch from apt_pkg to apt, add
	SourcePackage: to reports.

	* debian/changelog,
	* debian/control,
	* gtk/apport-gtk: [90] * python-gtk: Do not load binary data (core
	dumps, etc.) to greatly speed up   the GUI. They are just gibberish
	anyway.

	* debian/changelog,
	* debian/rules: [89] * debian/rules: Clean stale *.pyc files.

	* TODO,
	* debian/changelog,
	* problem_report.py: [88] * problem_report.py: Add 'binary' option to
	ProblemReport.load() to   optionally skip binary data.

	* debian/changelog,
	* gtk/apport-gtk: [87] * apport-gtk: Only display reports that the
	user can actually read.

	* debian/changelog,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [86] * apport-gtk: Add button to remove the
	current report (by truncating the   file to zero bytes; a user cannot
	unlink files in /var/crash).

2006-07-30  martin@piware.de

	* debian/changelog,
	* gtk/apport-gtk: [85] * apport-gtk: Ignore 0-sized reports.

	* apport,
	* debian/changelog: [84] * apport: Set proper group for report files
	instead of 'root'.

	* apport,
	* debian/changelog: [83] * apport: Only consider a report as already
	present if it has a non-zero   size.

	* debian/apport.cron.daily,
	* debian/changelog: [82] * debian/apport.cron.daily: Clean away empty
	files everytime.

2006-07-28  martin@piware.de

	* po/de.po: [81] fixed another typo in de.po

	* po/de.po: [80] fixed typo in de.po

	* debian/changelog,
	* debian/rules: [79] * debian/rules clean: Also clean po/.

2006-07-27  martin@piware.de

	* debian/changelog: [78] release as 0.2 to edgy

	* debian/changelog: [77] changelog entry for new apport-gtk package

	* TODO: [76] TODO item

2006-07-27  martin@piware.de

	* debian/apport-gtk.install: Added.

	* debian/control: Modified.

	[75] add apport-gtk packaging

2006-07-27  martin@piware.de

	* debian/python-problem-report.install: Added.

	* debian/apport.install,
	* debian/rules: Modified.

	[74] install into debian/tmp and use more rigorous dh_install

2006-07-27  martin@piware.de

	* gtk/apport-gtk: [73] gtk: load the glade file from the same
	directory as the executable

	* setup.py: [72] setup.py: install i18n and gtk stuff

	* po/Makefile: [71] po/: add build-mo rule

2006-07-27  martin@piware.de

	* po/de.po: Added.

	[70] add German translation

2006-07-27  martin@piware.de

	* gtk/apport-gtk.glade,
	* po/Makefile: [69] fix typo in glade file

2006-07-27  martin@piware.de

	* po,
	* po/Makefile,
	* po/POTFILES.in: Added.

	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: Modified.

	[68] gtk: i18ned

2006-07-27  martin@piware.de

	* gtk/apport-gtk: [67] gtk: expand detail tree rows with less than 5
	lines

	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [66] gtk: display details in a tree

	* gtk/apport-gtk: [65] gtk: implement 'open bug page' button

	* TODO: [64] TODO item

	* TODO,
	* apport,
	* debian/changelog: [63] * apport: Filter out trailing 0-byte from
	ProcCmdline.

	* debian/changelog,
	* problem_report.py: [62] * problem_report.py: Support iterators, add
	test case.

	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [61] gtk: change report file from label to
	text entry

	* gtk/apport-gtk,
	* gtk/apport-gtk.glade: [60] gtk: show package name on general tab

	* gtk/apport-gtk: [59] gtk: load actual reports, implement scroll
	buttons, general information, and crude details

2006-07-27  martin@piware.de

	* TODO: Added.

	[58] add TODO

2006-07-27  martin@piware.de

	* gtk,
	* gtk/apport-gtk,
	* gtk/apport-gtk.glade,
	* gtk/apport-gtk.png: Added.

	[57] add initial GTK frontend bits: glade file, icon, skeleton code

2006-07-27  martin@piware.de

	* debian/apport.cron.daily,
	* debian/changelog: [56] * debian/apport.cron.daily: Do not produce
	error messages if 'find' does not   find any crash reports.

2006-07-24  martin@piware.de

	* debian/changelog: [55] release as 0.1 to edgy

	* debian/control: [54] fix build dependencies

	* debian/control: [53] more suitable package subsections

	* debian/control: [52] add package descriptions

2006-07-24  martin@piware.de

	* debian/apport.cron.daily: Added.

	* debian/rules: Modified.

	[51] add cron.daily job to cleanup old reports

2006-07-24  martin@piware.de

	* debian/changelog,
	* debian/control,
	* debian/copyright,
	* setup.py,
	* use-local: Modified.

	* crash-reporter: Renamed to apport and modified.
	* debian/crash-reporter.init: Renamed to debian/apport.init and
	  modified.
	* debian/crash-reporter.install: Renamed to debian/apport.install and
	  modified.

	[50] give this project a proper name: apport

2006-07-20  martin@piware.de

	* debian/pycompat,
	* debian/pyversions: Added.

	* debian/control,
	* debian/rules: Modified.

	[49] add packaging for the library

2006-07-20  martin@piware.de

	* setup.py: Added.

	[48] add setup.py for the library

2006-07-20  martin@piware.de

	* crash-reporter: [47] add list of transitive dependencies

	* crash-reporter: [46] ignore non-packaged executables

	* problem_report.py: [45] add ProblemReport.has_key()

	* crash-reporter: [44] check for existance of core file before adding
	it to report

	* crash-reporter: [43] clean up temporary work dir creation/removal,
	move it into InformationCollector

	* crash-reporter: [42] do not touch stderr if log file cannot be
	opened

	* problem_report.py: [41] ProblemReport test suite: test writing and
	re-reading a very big random file

	* problem_report.py: [40] fix ProblemReport load() test case

	* problem_report.py: [39] Implement base64/bzip2 decoding in
	ProblemReport.load()

	* problem_report.py: [38] test reading and writing binary file data

2006-07-17  martin@piware.de

	* problem_report.py: [37] more sanity check unittests

	* problem_report.py: [36] fix reading of last field in
	ProblemReport.load()

	* problem_report.py: [35] add unittest for ProblemReport.load()

	* problem_report.py: [34] remove debugging cruft

	* problem_report.py: [33] add sanity checks to
	ProblemReport.__setitem__

	* problem_report.py: [32] problem_report.py: add initial unittest

	* problem_report.py: [31] sort written reports by key, put ProblemType
	first

	* problem_report.py: [30] add optional date argument to ProblemReport
	ctor

	* problem_report.py: [29] first ProblemReport.load() implementation

2006-07-17  martin@piware.de

	* problem_report.py: Added.

	* crash-reporter: Modified.

	[28] create initial library problem_report.py, move write_debcontrol()
	into it

2006-07-17  martin@piware.de

	* crash-reporter: [27] add core dump

	* crash-reporter: [26] create temporary work dir

2006-07-14  martin@piware.de

	* crash-reporter: [25] write_debcontrol(): support files as value

	* crash-reporter: [24] change report key names to match spec, complete
	/proc collection

	* crash-reporter: [23] do not drop privileges before reading /proc, it
	doesn't work

	* crash-reporter: [22] improved logging, some renamings to be safe for
	the signal module

2006-07-13  martin@piware.de

	* crash-reporter: [21] small file descriptor cleanup

	* crash-reporter: [20] catch all exceptions, report errors to stderr
	or to a log file

2006-07-12  martin@piware.de

	* crash-reporter: [19] add unhandled exceptions to report

2006-07-12  martin@piware.de

	* use-local: Added.

	[18] add convenience script to use local crash-reporter version

2006-07-12  martin@piware.de

	* crash-reporter: [17] fix exception catching

2006-07-12  martin@piware.de

	* debian,
	* debian/changelog,
	* debian/compat,
	* debian/control,
	* debian/copyright,
	* debian/crash-reporter.init,
	* debian/crash-reporter.install,
	* debian/rules: Added.

	[16] add initial packaging

2006-07-11  martin@piware.de

	* crash-reporter: [15] write report into file when running as root

2006-07-10  martin@piware.de

	* crash-reporter: [14] redirect gdb stderr to /dev/null

	* crash-reporter: [13] remove empty last line from environment

	* crash-reporter: [12] remove empty lines from stack traces

	* crash-reporter: [11] add stderr option to write_debcontrol(),
	suppress stderr for gdb

	* crash-reporter: [10] drop privileges to target process

	* crash-reporter: [9] get stack trace

	* crash-reporter: [8] determine package and version

	* crash-reporter: [7] consistent return results in error case

	* crash-reporter: [6] factorize safe program output catching

	* crash-reporter: [5] restructure source code and add some section
	comments

	* crash-reporter: [4] factorize safe reading from file

	* crash-reporter: [3] collect uname and lsb_release

	* crash-reporter: [2] format output in debcontrol syntax

2006-07-10  martin@piware.de

	* crash-reporter: Added.

	[1] Initial version, stdout output so far

