← Back to team overview

apport-hackers team mailing list archive

[Merge] lp:~thekorn/apport/telepathy-bugpattern-628748 into lp:apport

 

Markus Korn has proposed merging lp:~thekorn/apport/telepathy-bugpattern-628748 into lp:apport.

Requested reviews:
  Apport upstream developers (apport-hackers)


Added telepathy-butterfly bugpattern for (LP: #628748)
-- 
https://code.launchpad.net/~thekorn/apport/telepathy-bugpattern-628748/+merge/38569
Your team Apport upstream developers is requested to review the proposed merge of lp:~thekorn/apport/telepathy-bugpattern-628748 into lp:apport.
=== added file 'README'
--- README	1970-01-01 00:00:00 +0000
+++ README	2010-10-15 17:01:22 +0000
@@ -0,0 +1,89 @@
+Apport bug patterns for Ubuntu
+==============================
+
+Purpose
+-------
+
+Sometimes a high-visibility crash bug or package installation failure causes a
+tremendous amount of duplicate bugs filed through apport, because
+Launchpad is not insistant enough to guide people to already existing
+similar bugs.
+
+Thus Apport supports patterns which can be matched against a crash (or bug)
+report, and directly guide the user to the existing bug instead of
+filing a new one first.
+
+Most useful fields are certainly Stacktrace, Package/Dependencies (for
+checking particular versions), and ProcCmdline, but in general you can
+match any field that seems useful.
+
+To avoid inventing a new file format and to be able to extend the
+functionality in the future (e. g. other operators than just regexp
+matching) the bug patterns are stored as XML files, named after the
+binary package, currently on [1].
+
+Syntax
+------
+The general syntax is:
+
+    root element := <patterns>
+    patterns := <pattern url="http://bug.url";> *
+    pattern := <re key="report_key">regular expression*</re> +
+
+For example:
+
+    <?xml version="1.0"?>
+    <patterns>
+        <pattern url="https://launchpad.net/bugs/1";>
+            <re key="Foo">ba.*r</re>
+        </pattern>
+        <pattern url="https://launchpad.net/bugs/2";>
+            <re key="Foo">write_(hello|goodbye)</re>
+            <re key="Package">^\S* 1-2$</re> <!-- test for a particular version -->
+        </pattern>
+    </patterns>
+
+The existing bug patterns should provide sufficient examples to
+understand real-world applications.  The patterns for gnome-alsamixer and linux
+both contain good examples.
+
+Files
+-----
+In order to avoid downloading all bug pattern files to the user, the
+pattern files are named after package names. Apport determines the affected
+binary package name, and looks for a file packagename.xml. If that
+does not exists, it falls back to sourcepackagename.xml. Other pattern
+files are *not* considered.
+
+Testing
+-------
+To test that apport is seeing your modified or new bug pattern, you can run
+"./test-local" on a .crash file or a Launchpad bug number. This will match the
+report against all local bug patterns and give the result. Once this is
+working, commit and push them.
+
+Already Reported Bugs
+---------------------
+In the event that there are bugs already reported in Launchpad that match your
+bug pattern you can run "./search-bugs --package linux" to find these bug reports.
+
+For example to search for bugs matching an apport kernel oops:
+
+./search-bugs --package linux --tags apport-kerneloops
+
+These bugs can also automatically consolidated using:
+
+./search-bugs --package linux --tags apport-kerneloops --consolidate
+
+They will then be marked as a duplicate of the bug number in the pattern url.
+
+Rollout
+-------
+Commits to the Launchpad branch are rolled out to
+http://people.canonical.com/~pitti/bugpatterns (where apport will look
+for them) every 15 minutes.
+
+Please double and triple check new patterns here. Badly written
+patterns can easily lead to unifying *all* possible crashes to one
+existing bug!
+

=== renamed file 'README' => 'README.moved'
=== added file 'alacarte.xml'
--- alacarte.xml	1970-01-01 00:00:00 +0000
+++ alacarte.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/205463";>
+        <re key="Traceback">in copyItem</re>
+        <re key="Traceback">IOError: \[Errno 2\] No such file or directory</re>
+    </pattern>
+</patterns>

=== added file 'amsn.xml'
--- amsn.xml	1970-01-01 00:00:00 +0000
+++ amsn.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/420613";>
+        <re key="Title">infosongbird crashed with DBusException in call_blocking</re>
+        <re key="Traceback">DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.mozilla.songbird was not provided by any .service files</re>
+    </pattern>
+</patterns>

=== added file 'apport.xml'
--- apport.xml	1970-01-01 00:00:00 +0000
+++ apport.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/408255";>
+        <re key="Traceback">IOError: \[Errno 21\] Is a directory:</re>
+    </pattern>
+</patterns>

=== added file 'apt-xapian-index.xml'
--- apt-xapian-index.xml	1970-01-01 00:00:00 +0000
+++ apt-xapian-index.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/267330";>
+        <re key="Traceback">OSError: \[Errno 2\] No such file or directory: '\/var\/cache\/apt\/pkgcache.bin'</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/321395";>
+        <re key="Title">crashed with KeyError in iter_paragraphs</re>
+        <re key="Traceback">for key in parser.Section.keys</re>
+        <re key="Traceback">in iter_paragraphs</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/424857";>
+        <re key="Traceback">E:The package lists or status file could not be parsed or opened.</re>
+        <re key="Traceback">SystemError: E:read.*but none left</re>
+    </pattern>
+</patterns>

=== added file 'aptitude.xml'
--- aptitude.xml	1970-01-01 00:00:00 +0000
+++ aptitude.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/515525";>
+        <re key="Signal">6</re>
+        <re key="Title">aptitude assert failure.*double free or corruption</re>
+        <re key="Stacktrace">download_signal_log::Complete</re>
+    </pattern>
+</patterns>

=== added file 'at-spi.xml'
--- at-spi.xml	1970-01-01 00:00:00 +0000
+++ at-spi.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/418743";>
+        <re key="Stacktrace">#1  0x.*in _SmcProcessMessage</re>
+        <re key="Stacktrace">#2  0x.*in IceProcessMessages</re>
+        <re key="Stacktrace">#3  0x.*in process_ice_messages</re>
+        <re key="Stacktrace">#8  0x.*in main</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/420053";>
+        <re key="Stacktrace">#1  0x........ in IceProcessMessages</re>
+        <re key="Stacktrace">#2  0x........ in process_ice_messages</re>
+        <re key="Stacktrace">#8  0x........ in main.*at registry-main\.c</re>
+    </pattern>
+</patterns>

=== added file 'blcr.xml'
--- blcr.xml	1970-01-01 00:00:00 +0000
+++ blcr.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/555729";>
+        <re key="DKMSBuildLog">DKMS make.log for.* kernel 2.6.3[345]</re>
+        <re key="DKMSBuildLog">configure: error: Could not find a directory containing a Linux kernel 2.6.3[345][^ ]* build</re>
+    </pattern>
+</patterns>

=== added file 'brother-cups-wrapper-common.xml'
--- brother-cups-wrapper-common.xml	1970-01-01 00:00:00 +0000
+++ brother-cups-wrapper-common.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/423817";>
+        <re key="Stacktrace">0x.* in \*__GI_abort</re>
+        <re key="Stacktrace">0x.* in \*__GI___fortify_fail</re>
+        <re key="Stacktrace">0x.* in divide_media_token ()</re>
+    </pattern>
+</patterns>

=== added file 'computer-janitor.xml'
--- computer-janitor.xml	1970-01-01 00:00:00 +0000
+++ computer-janitor.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/503727";>
+        <re key="Title">computer-janitor-gtk crashed with KeyError in create_column()</re>
+        <re key="Traceback">KeyError: 'unused_treeview'</re>
+    </pattern>
+</patterns>

=== added file 'computertemp.xml'
--- computertemp.xml	1970-01-01 00:00:00 +0000
+++ computertemp.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/318791";>
+        <re key="Title">crashed with ValueError in parseloginfo</re>
+        <re key="Traceback">loginfo.replace\('\{temp\}'</re>
+        <re key="Traceback">ValueError: invalid literal for int\(\) with base 10: 'XX'</re>
+    </pattern>
+</patterns>

=== added file 'control-center.xml'
--- control-center.xml	1970-01-01 00:00:00 +0000
+++ control-center.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/81923";>
+        <re key="Stacktrace">gnome_theme_details_reread_themes_from_disk</re>    
+    </pattern>
+</patterns>

=== added file 'cron.xml'
--- cron.xml	1970-01-01 00:00:00 +0000
+++ cron.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/447080";>
+        <re key="Stacktrace">pam_vsyslog</re>
+        <re key="Stacktrace">_pam_load_module</re>
+        <re key="Stacktrace">_pam_parse_conf_file</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/518161";>
+        <re key="Stacktrace">pam_strerror</re>
+        <re key="Stacktrace">pam_get_authtok_internal</re>
+        <re key="Stacktrace">_pam_parse_conf_file</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/508083";>
+        <re key="Stacktrace">in __pthread_initialize_minimal_internal</re>
+    </pattern>
+</patterns>

=== added file 'desktopcouch.xml'
--- desktopcouch.xml	1970-01-01 00:00:00 +0000
+++ desktopcouch.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/465216";>
+        <re key="Title">desktopcouch-service crashed with RuntimeError in find_port__linux</re>
+        <re key="Traceback">RuntimeError: Unable to find listening port</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/451767";>
+        <re key="Title">desktopcouch-service crashed with ServerError in _request</re>
+        <re key="Traceback">ServerError: \(401</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/530541";>
+        <re key="Title">desktopcouch-service crashed with RuntimeError in run_couchdb</re>
+        <re key="Traceback">raise RuntimeError\("Couchdb PID%d exited.  Permissions\?"</re>
+    </pattern>
+</patterns>

=== added file 'devicekit-disks.xml'
--- devicekit-disks.xml	1970-01-01 00:00:00 +0000
+++ devicekit-disks.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/452208";>
+        <re key="StacktraceTop">dbus_g_method_return_error</re>    
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/419662";>
+        <re key="AssertionMessage">sk_disk_get_blob: Assertion.*size_t.*uint8_t</re>    
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/419663";>
+        <re key="AssertionMessage">sk_disk_set_blob: Assertion `blob' failed</re>    
+    </pattern>
+</patterns>

=== added file 'fglrx-installer.xml'
--- fglrx-installer.xml	1970-01-01 00:00:00 +0000
+++ fglrx-installer.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/573748";>
+        <re key="DKMSBuildLog">DKMS make.log for.* kernel 2.6.3[345]</re>
+        <re key="DKMSBuildLog">utsrelease.h: No such file or directory</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/642518";>
+        <re key="DKMSBuildLog">/var/lib/dkms/fglrx/8.723.1/build/2.6.x/kcl_ioctl.c: In function ‘KCL_IOCTL_AllocUserSpace32’:</re>
+        <re key="DKMSBuildLog">/var/lib/dkms/fglrx/8.723.1/build/2.6.x/kcl_ioctl.c:196: error: implicit declaration of function ‘compat_alloc_user_space’</re>
+        <re key="Tags">lucid</re>
+    </pattern>
+</patterns>

=== added file 'firefox-3.0.xml'
--- firefox-3.0.xml	1970-01-01 00:00:00 +0000
+++ firefox-3.0.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/192888";>
+	<re key="ExecutablePath">/usr/lib/firefox-.*/firefox</re>
+	<re key="ProcMaps">libflashsupport.so</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/278095";>
+	<re key="ExecutablePath">/usr/lib/firefox-.*/firefox</re>
+	<re key="ProcMaps">libspi.so</re>
+    <re key="Stacktrace">#0  0x........ in getenv</re>
+    <re key="Stacktrace">#3  0x........ in exit</re>
+    </pattern>
+</patterns>

=== added file 'firefox.xml'
--- firefox.xml	1970-01-01 00:00:00 +0000
+++ firefox.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/69003";>
+	<re key="ExecutablePath">/usr/lib/firefox/firefox-bin</re>
+	<re key="Stacktrace">#10000.*</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/14911";>
+	<re key="ExecutablePath">/usr/lib/firefox/firefox-bin</re>
+	<re key="ProcMaps">libflashplayer.so</re>
+	<re key="Signal">11</re>
+	<re key="Registers">ip.*0xffffe410</re>
+	<re key="Stacktrace">#5 0x00000000</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/192888";>
+	<re key="ExecutablePath">/usr/lib/firefox/firefox-bin</re>
+	<re key="ProcMaps">libflashsupport.so</re>
+    </pattern>
+</patterns>

=== added file 'foomatic-filters.xml'
--- foomatic-filters.xml	1970-01-01 00:00:00 +0000
+++ foomatic-filters.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/440426";>
+        <re key="Stacktrace">#0.*_nl_intern_locale_data</re>
+        <re key="Stacktrace">#1  0x.* in _nl_load_locale</re>
+        <re key="Stacktrace">#2  0x.* in _nl_find_locale</re>
+    </pattern>
+</patterns>

=== added file 'gaim.xml'
--- gaim.xml	1970-01-01 00:00:00 +0000
+++ gaim.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/85069";>
+        <re key="Traceback">self\._connection.send_message_with_reply_and_block</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/72204";>
+        <re key="Stacktrace">#1.*msn_session_find_slplink</re>    
+    </pattern>
+</patterns>

=== added file 'glunarclock.xml'
--- glunarclock.xml	1970-01-01 00:00:00 +0000
+++ glunarclock.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/459389";>
+        <re key="Title">glunarclock-applet-2 crashed with SIGSEGV in strcmp</re>
+        <re key="Stacktrace">strcmp</re>
+        <re key="Stacktrace">glunarclock_applet_factory</re>
+    </pattern>
+</patterns>

=== added file 'gnome-alsamixer.xml'
--- gnome-alsamixer.xml	1970-01-01 00:00:00 +0000
+++ gnome-alsamixer.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/448180";>
+        <re key="Stacktrace">#0  .*gam_mixer_show_props_dialog .*\s*at gam-mixer\.c:596</re>
+        <re key="Stacktrace">#(26|32) 0x.* in main .* at gam-main\.c:56</re>
+    </pattern>
+</patterns>

=== added file 'gnome-bluetooth.xml'
--- gnome-bluetooth.xml	1970-01-01 00:00:00 +0000
+++ gnome-bluetooth.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/456200";>
+        <re key="Signal">11</re>
+        <re key="Title">bluetooth-sendto crashed with SIGSEGV in strcmp</re>
+        <re key="Stacktrace">in obex_agent_request</re>
+    </pattern>
+</patterns>

=== added file 'gnome-disk-utility.xml'
--- gnome-disk-utility.xml	1970-01-01 00:00:00 +0000
+++ gnome-disk-utility.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/418300";>
+        <re key="StacktraceTop">gdu_pool_get_devices</re>
+    </pattern>
+</patterns>

=== added file 'gnome-keyring.xml'
--- gnome-keyring.xml	1970-01-01 00:00:00 +0000
+++ gnome-keyring.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/405667";>
+    <re key="Signal">5</re>
+    <re key="Title">gnome-keyring-daemon crashed with signal 5 in g_thread_join()</re>
+    </pattern>
+</patterns>

=== added file 'gnome-menus.xml'
--- gnome-menus.xml	1970-01-01 00:00:00 +0000
+++ gnome-menus.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/503983";>
+        <re key="Title">update-gnome-menus-cache crashed with Error in setlocale</re>
+        <re key="Traceback">unsupported locale setting</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/504785";>
+        <re key="Title">update-gnome-menus-cache crashed with IndexError in _parse</re>
+        <re key="Traceback">plural = v\[1\].split\('plural='\)\[1\]</re>
+        <re key="Traceback">IndexError: list index out of range</re>
+    </pattern>
+</patterns>

=== added file 'gnome-mount.xml'
--- gnome-mount.xml	1970-01-01 00:00:00 +0000
+++ gnome-mount.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/122673";>
+    <re key="Signal">11</re>
+    <re key="Stacktrace">g_datalist_id_set_data_full</re>
+    </pattern>
+</patterns>

=== added file 'gnome-settings-daemon.xml'
--- gnome-settings-daemon.xml	1970-01-01 00:00:00 +0000
+++ gnome-settings-daemon.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/509478";>
+        <re key="Title">gnome-settings-daemon crashed with signal 5 in xkl_process_error</re>
+        <re key="Signal">5</re>
+        <re key="Stacktrace">configure_crtc</re>
+    </pattern>
+</patterns>

=== added file 'gnome-utils.xml'
--- gnome-utils.xml	1970-01-01 00:00:00 +0000
+++ gnome-utils.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/335432";>
+        <re key="Signal">5</re>
+        <re key="Stacktrace">BadWindow \(invalid Window parameter\)</re>
+        <re key="Title">gnome-screenshot crashed with signal 5 in gdk_x_error</re>
+    </pattern>
+</patterns>

=== added file 'gvfs.xml'
--- gvfs.xml	1970-01-01 00:00:00 +0000
+++ gvfs.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/252174";>
+        <re key="Signal">11</re>
+        <re key="Title">gvfsd-trash crashed with SIGSEGV in g_main_context_.*</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/251910";>
+        <re key="Signal">11</re>
+        <re key="Title">gvfsd-trash crashed with SIGSEGV in g_idle_funcs()</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/436871";>
+        <re key="Signal">11</re>
+        <re key="Stacktrace">#0  gdu_pool_get_presentables.*at gdu-pool\.c</re>
+    </pattern>
+</patterns>

=== added file 'gwibber.xml'
--- gwibber.xml	1970-01-01 00:00:00 +0000
+++ gwibber.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <!-- pre-pattern bugs -->
+    <pattern url="https://bugs.launchpad.net/ubuntu/+source/gwibber/+bug/522538";>
+        <re key="Traceback">File "/usr/lib/pymodules/python2.6/httplib2/__init__.py", line 750, in connect</re>
+        <re key="Title">gwibber-service crashed with error in connect</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/ubuntu/+source/gwibber/+bug/552227";>
+        <re key="Traceback">KeyError: 'username'</re>
+        <re key="Traceback">in get_account_data</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/ubuntu/+source/gwibber/+bug/444654";>
+        <re key="Title">gwibber crashed with AttributeError in action</re>
+        <re key="Traceback">AttributeError: '(dbus.String|dict)' object has no attribute '(get_client|text)'</re>
+    </pattern>
+</patterns>

=== added file 'jockey.xml'
--- jockey.xml	1970-01-01 00:00:00 +0000
+++ jockey.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/403955";>
+        <re key="Traceback">org.freedesktop.DBus.Error.NoReply: Did not receive a reply.</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/275659";>
+        <re key="Traceback">org.freedesktop.DBus.Error.TimedOut: Activation of com.ubuntu.DeviceDriver timed out</re>
+    </pattern>
+</patterns>

=== added file 'libflickrnet2.1.5-cil.xml'
--- libflickrnet2.1.5-cil.xml	1970-01-01 00:00:00 +0000
+++ libflickrnet2.1.5-cil.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/182130";>
+	<re key="DpkgTerminalLog">Assembly.*policy.2.1.FlickrNet.dll does not exist</re>
+    </pattern>
+</patterns>

=== added file 'liferea.xml'
--- liferea.xml	1970-01-01 00:00:00 +0000
+++ liferea.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/4732";>
+	<re key="ExecutablePath">/usr/bin/liferea-bin</re>
+	<re key="Signal">11</re>
+	<re key="Stacktrace">#1.*_gdk_x11_convert_to_format</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/4732";>
+	<re key="ExecutablePath">/usr/bin/liferea-bin</re>
+	<re key="Signal">11</re>
+	<re key="Stacktrace">#1.*gtk_cell_renderer_pixbuf_new</re>
+    </pattern>
+</patterns>

=== added file 'linux.xml'
--- linux.xml	1970-01-01 00:00:00 +0000
+++ linux.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/292159";>
+        <re key="DpkgTerminalLog">\nupdate-initramfs is disabled</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/252900";>
+        <re key="ProcCmdLine">loop=/hostname/disks/home/username.disk</re>
+	<re key="ErrorMessage">^unable to make backup link of.*before installing new version: Operation not permitted$</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/269539";>
+        <re key="DpkgTerminalLog">The file `/var/run/grub/menu.lst.ucf-new' has a record of the failed merge of the configuration file.</re>
+    </pattern>
+    <pattern url="https://wiki.ubuntu.com/KernelTeam/DebuggingUpdateErrors";>
+        <re key="DpkgTerminalLog">\n short read in buffer_copy</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/bugs/386042";>
+        <re key="DpkgTerminalLog">/usr/share/debconf/confmodule: line 42: printf: write error: Broken pipe</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/bugs/407420";>
+        <re key="DpkgTerminalLog">Running depmod.\nFailed to run depmod</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/bugs/417222";>
+        <re key="DpkgTerminalLog">/boot/grub/menu.lst: Operation not supported</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/bugs/422536";>
+        <re key="OopsText">EDAC amd64: WARNING: ECC is NOT currently enabled by the BIOS. Module will NOT be loaded.</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/bugs/433365";>
+        <re key="OopsText">mark_buffer_dirty</re>
+        <re key="OopsText">ext2_sync_fs</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/bugs/432860";>
+        <re key="OopsText">inotify_remove_from_idr</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/bugs/437258";>
+        <re key="OopsText">NULL pointer dereference</re>
+        <re key="OopsText">apparmor_bprm_set_creds</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/bugs/452814";>
+        <re key="OopsText">WARNING: at /build/buildd/linux-2.6.31/net/ipv4/tcp.c:1408 tcp_recvmsg</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/bugs/452814";>
+        <re key="CurrentDmesg">option: option_instat_callback: error -108</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/bugs/442053";>
+        <re key="OopsText">ipaq_open\+0x1fd/0x570</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/bugs/429662";>
+        <re key="OopsText">_request_firmware\+0x1f3/0x250</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/bugs/430011";>
+        <re key="OopsText">__ticket_spin_lock\+0x8/0x20</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/bugs/430361";>
+        <re key="OopsText">WARNING: sysfs attribute hotkey_enable is deprecated and will be removed</re>
+    </pattern>
+</patterns>

=== added file 'mail-notification.xml'
--- mail-notification.xml	1970-01-01 00:00:00 +0000
+++ mail-notification.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/351260";>
+        <re key="Stacktrace">#0  0x.* in mn_mail_icon_set_tip</re>
+        <re key="Stacktrace">#1  0x.* in mn_shell_update_tooltip</re>
+    </pattern>
+</patterns>

=== added file 'msttcorefonts.xml'
--- msttcorefonts.xml	1970-01-01 00:00:00 +0000
+++ msttcorefonts.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/431217";>
+        <re key="DpkgTerminalLog">sourceforge\.net.*failed: Connection timed out</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/508974";>
+        <re key="DpkgTerminalLog">failedmirror=hivelocity\.dl\.sourceforge\.net</re>
+        <re key="DpkgTerminalLog">Sobrepasadas las 20 redirecciones</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/508974";>
+        <re key="DpkgTerminalLog">failedmirror=hivelocity\.dl\.sourceforge\.net</re>
+        <re key="DpkgTerminalLog">20 redirections exceeded</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/508974";>
+        <re key="VarLogDistupgradeTermlog">failedmirror=hivelocity\.dl\.sourceforge\.net</re>
+        <re key="VarLogDistupgradeTermlog">Sobrepasadas las 20 redirecciones</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/508974";>
+        <re key="VarLogDistupgradeTermlog">failedmirror=hivelocity\.dl\.sourceforge\.net</re>
+        <re key="VarLogDistupgradeTermlog">20 redirections exceeded</re>
+    </pattern>
+</patterns>

=== added file 'nautilus.xml'
--- nautilus.xml	1970-01-01 00:00:00 +0000
+++ nautilus.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/362342";>
+        <re key="Stacktrace">#0  .*g_list_remove.*\n.*glist\.c:338</re>
+        <re key="Title">nautilus crashed with SIGSEGV in g_list_remove()</re>
+    </pattern>
+</patterns>

=== added file 'network-manager.xml'
--- network-manager.xml	1970-01-01 00:00:00 +0000
+++ network-manager.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/85113";>
+        <re key="Signal">^5</re>
+        <re key="Stacktrace">#0.*main</re>    
+    </pattern>
+</patterns>

=== added file 'notification-daemon.xml'
--- notification-daemon.xml	1970-01-01 00:00:00 +0000
+++ notification-daemon.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/122637";>
+    <re key="Signal">5</re>
+    <re key="Stacktrace">g_logv</re>
+    </pattern>
+</patterns>

=== added file 'nspluginwrapper.xml'
--- nspluginwrapper.xml	1970-01-01 00:00:00 +0000
+++ nspluginwrapper.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/192888";>
+	<re key="ExecutablePath">/usr/lib/nspluginwrapper.*npviewer.bin</re>
+	<re key="ProcMaps">libflashsupport.so</re>
+    </pattern>
+</patterns>

=== added file 'ntfs-config.xml'
--- ntfs-config.xml	1970-01-01 00:00:00 +0000
+++ ntfs-config.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/529403";>
+        <re key="Title">ntfs-config crashed with AttributeError in add_section</re>
+        <re key="Traceback">in on_close_clicked</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/516826";>
+        <re key="Title">ntfs-config crashed with AttributeError in add_section</re>
+        <re key="Traceback">in on_ok_clicked</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/507831";>
+        <re key="Title">ntfs-config crashed with AttributeError in add_section</re>
+        <re key="Traceback">in on_auto_clicked</re>
+    </pattern>
+</patterns>

=== added file 'pitivi.xml'
--- pitivi.xml	1970-01-01 00:00:00 +0000
+++ pitivi.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/537619";>
+        <re key="Title">pitivi crashed with TypeError in do_simple_paint()</re>
+        <re key="Traceback">TypeError: Required argument 'cr' \(pos 1\) not found</re>
+    </pattern>
+</patterns>

=== added file 'playonlinux.xml'
--- playonlinux.xml	1970-01-01 00:00:00 +0000
+++ playonlinux.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/392513";>
+        <re key="Title">guiv3.py crashed with IndexError in AutoReload()</re>
+        <re key="Traceback">IndexError: list index out of range</re>
+    </pattern>
+</patterns>

=== added file 'plymouth.xml'
--- plymouth.xml	1970-01-01 00:00:00 +0000
+++ plymouth.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/537262";>
+	<re key="ExecutablePath">/sbin/plymouthd</re>
+	<re key="Tags">shutdown-hang</re>
+    </pattern>
+    <pattern url="https://bugs.launchpad.net/ubuntu/+source/plymouth/+bug/553745";>
+	<re key="Title">plymouthd crashed with SIGSEGV in ply_event_loop_process_pending_events()</re>
+    </pattern>
+</patterns>

=== added file 'postgresql-8.4.xml'
--- postgresql-8.4.xml	1970-01-01 00:00:00 +0000
+++ postgresql-8.4.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/264336";>
+        <re key="DpkgTerminalLog">The PostgreSQL server failed to start. Please check the log output</re>
+        <re key="DpkgTerminalLog">FATAL:</re>
+        <re key="DpkgTerminalLog">shmget\(key=.*\)\.</re>
+        <re key="Tags">apport-package</re>
+    </pattern>
+</patterns>

=== added file 'pymsn.xml'
--- pymsn.xml	1970-01-01 00:00:00 +0000
+++ pymsn.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/343233";>
+        <re key="Title">crashed with ValueError in parse</re>
+        <re key="Traceback">ValueError: need more than 1 value to unpack</re>
+        <re key="Traceback">msnp2p</re>
+    </pattern>
+</patterns>

=== added file 'python-central.xml'
--- python-central.xml	1970-01-01 00:00:00 +0000
+++ python-central.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/192992";>
+        <re key="Traceback">ValueError: error parsing Python-Version attribute</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/192992";>
+        <re key="Traceback">pycentral.*byte_compile</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/192992";>
+        <re key="DpkgTerminalLog">pycentral.*byte_compile</re>
+    </pattern>
+</patterns>

=== added file 'qemulator.xml'
--- qemulator.xml	1970-01-01 00:00:00 +0000
+++ qemulator.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/321955";>
+        <re key="Traceback">IndexError: could not find tree path</re>
+        <re key="Traceback">in on_comboboxCDromdrive_changed</re>
+    </pattern>
+</patterns>

=== added file 'rhythmbox-ubuntuone-music-store.xml'
--- rhythmbox-ubuntuone-music-store.xml	1970-01-01 00:00:00 +0000
+++ rhythmbox-ubuntuone-music-store.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/608341";>
+        <re key="Package">0\.1\.1-0ubuntu1$</re>
+    </pattern>
+</patterns>

=== added file 'sbackup.xml'
--- sbackup.xml	1970-01-01 00:00:00 +0000
+++ sbackup.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/311429";>
+	<re key="Title">simple-backup-config.py crashed with NoOptionError in get</re>
+	<re key="Traceback">NoOptionError: No option 'stop_if_no_target' in section: 'general'</re>
+    </pattern>
+</patterns>

=== added file 'screenlets.xml'
--- screenlets.xml	1970-01-01 00:00:00 +0000
+++ screenlets.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/238841";>
+        <re key="Traceback">line 461, in on_draw</re>
+    </pattern>
+</patterns>

=== added file 'seahorse-plugins.xml'
--- seahorse-plugins.xml	1970-01-01 00:00:00 +0000
+++ seahorse-plugins.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/429322";>
+        <re key="AssertionMessage">ERROR:iop-profiles.c:606:IOP_generate_profiles: assertion failed:</re>
+        </pattern>
+</patterns>

=== added file 'search-bugs'
--- search-bugs	1970-01-01 00:00:00 +0000
+++ search-bugs	2010-10-15 17:01:22 +0000
@@ -0,0 +1,144 @@
+#!/usr/bin/python
+# Author: Brian Murray <brian@xxxxxxxxxxxxx>
+# Copyright (C) 2009 Canonical, Ltd.
+# License: GPLv3
+#
+# Given a package name and some criteria query Launchpad for a bug list
+# then check each bug against the package's bug pattern
+#
+# missing the ability to search for no tags
+
+from apport.crashdb import get_crashdb
+from launchpadlib.launchpad import Launchpad, EDGE_SERVICE_ROOT
+from launchpadlib.credentials import Credentials
+from launchpadlib.errors import HTTPError
+
+import apport
+import optparse
+import sys
+import os
+import tempfile
+
+def connect(use_edge=True):
+    cachedir = os.path.expanduser('~/.launchpadlib/cache')
+    if not os.path.exists(cachedir):
+        os.makedirs(cachedir,0700)
+
+    if use_edge:
+        root = EDGE_SERVICE_ROOT
+        credfile = os.path.expanduser('~/.launchpadlib/credentials')
+    else:
+        root = 'https://api.launchpad.net/beta/'
+        credfile = os.path.expanduser('~/.launchpadlib/credentials-lpnet')
+    try:
+        credentials = Credentials()
+        credentials.load(open(credfile))
+        launchpad = Launchpad(credentials, root, cachedir)
+    except IOError:
+        launchpad = Launchpad.get_token_and_login(sys.argv[0], root, cachedir)
+        credfd = tempfile.NamedTemporaryFile(dir=os.path.dirname(credfile))
+        launchpad.credentials.save(credfd)
+        os.link(credfd.name, credfile)
+        credfd.close()
+    return launchpad
+
+def mark_as_duplicate(master_number, bug):
+    comment="Thank you for taking the time to report this bug and helping to make Ubuntu better. This particular bug has already been reported and is a duplicate of bug %s, so it is being marked as such. Please look at the other bug report to see if there is any missing information that you can provide, or to see if there is a workaround for the bug.  Additionally, any further discussion regarding the bug should occur in the other report.  Please continue to report any other bugs you may find." % (master_number)
+    master = lp.bugs[master_number]
+    if bug.duplicates:
+        for duplicate in bug.duplicates:
+            mark_as_duplicate(master_number, duplicate)
+            print 'Taking care of a bug with duplicates'
+        mark_as_duplicate(master_number, bug)
+    else:
+        for task in bug.bug_tasks:
+            task.transitionToStatus(status='Confirmed')
+        bug.newMessage(content=comment, subject='') 
+        bug.markAsDuplicate(duplicate_of=master)
+        print 'Modified LP: #%s' % ( task.bug.id )
+
+parser = optparse.OptionParser(usage="usage: %prog -p PACKAGE -t TAGS [options]")
+parser.add_option("-p", "--package", help="Filter on PACKAGE", dest="package", metavar="PACKAGE")
+parser.add_option("-s", "--status", help="Filter on STATUS", dest="status", metavar="STATUS")
+parser.add_option("-t", "--tags", help="Filter on TAGS", dest="tags", metavar="TAGS")
+parser.add_option("-d", "--dupes", help="Include duplicates in search", dest="dupes", action="store_true")
+parser.add_option("-q", "--quiet", help="Only print bug numbers", dest="quiet", action="store_true")
+parser.add_option("-a", "--all", help="Check all package bugs", dest="all", action="store_true")
+parser.add_option("-k", "--keywords", help="Search for KEYWORDS", dest="keywords", metavar="KEYWORDS")
+parser.add_option("-C", "--consolidate", help="Mark bugs as duplicate of master bug in pattern", dest="consolidate", action="store_true")
+
+(opt, args) = parser.parse_args()
+
+# Connect to Launchpad
+lp = connect()
+
+status_list = []
+tags_list = []
+ubuntu = lp.distributions['ubuntu']
+
+valid_status = ['New', 'Incomplete', 'Invalid', "Won't Fix", 'Confirmed', 'Triaged', 'In Progress', 'Fix Committed', 'Fix Released', 'Unknown']
+if not opt.status:
+    status_list = ['New', 'Incomplete', 'Confirmed', 'Triaged', 'In Progress', 'Fix Committed' ]
+elif opt.status:
+    if opt.status not in valid_status:
+        print >> sys.stderr, ("Invalid status '%s'. Aborting") % (opt.status)
+        sys.exit(1)
+    else:
+        status_list.append(opt.status)
+
+if opt.package:
+    package = ubuntu.getSourcePackage(name='%s' % opt.package)
+elif not opt.package:
+    print >> sys.stderr, ("A package is required.")
+    sys.exit(1)
+
+if opt.tags:
+    tags_list.append(opt.tags)
+elif not opt.tags:
+    print >> sys.stderr, ("Tags are required at this point in time.  Aborting")
+    sys.exit(1)
+
+if opt.dupes:
+    dupes = False
+elif not opt.dupes:
+    dupes = True
+
+if opt.keywords:
+    tasks = package.searchTasks(search_text=opt.keywords,status=status_list,order_by='-datecreated',tags=tags_list,omit_duplicates=dupes)
+else:
+    tasks = package.searchTasks(status=status_list,order_by='-datecreated',tags=tags_list,omit_duplicates=dupes)
+
+for task in tasks:
+    # they should be retraced first
+    if 'need-i386-retrace' in task.bug.tags or 'need-amd64-retrace' in task.bug.tags:
+        continue
+    db = get_crashdb(None)
+    try:
+        report = db.download(task.bug.id)
+    except AssertionError, error:
+        print "LP: #%s: %s" % ( task.bug.id, error )
+        continue
+    except Exception, error:
+        print "LP: #%s: %s" % ( task.bug.id, error )
+        continue
+  
+    try: 
+        match = report.search_bug_patterns('.')
+    except AssertionError, error:
+        print "%s" % error
+        continue
+
+    if match and not opt.quiet:
+        # this should handle wiki urls somehow
+        master_number = match.split('/')[-1]
+        if str(master_number) == str(task.bug.id) and not opt.all:
+            print "Reached master bug LP: #%s" % master_number
+            break
+        print 'LP: #%s: Matched bug pattern: %s' % ( task.bug.id, match )
+        if opt.consolidate:
+            if task.bug.duplicate_of:
+                print 'LP: #%s is already a duplicate of another bug' % (bug.id)
+                break
+            mark_as_duplicate(master_number, task.bug)
+    elif match and opt.quiet:
+        print '%s' % ( task.bug.id )

=== added file 'software-center.xml'
--- software-center.xml	1970-01-01 00:00:00 +0000
+++ software-center.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/455861";>
+        <re key="Traceback">aptdaemon\/debconf.py", line 109, in _accept_connection</re>
+        <re key="Traceback">error: \[Errno 9\] Bad file descriptor</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/494899";>
+        <re key="Title">software-center crashed with NoSectionError in set</re>
+        <re key="Traceback">ConfigParser.py", line 377, in set</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/499392";>
+        <re key="Title">software-center crashed with TypeError in call_async</re>
+        <re key="Traceback">TypeError: Don't know how which D-Bus type to use to encode type "NoneType"</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/506050";>
+        <re key="Traceback">TypeError: can't convert return value to desired type</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/508436";>
+        <re key="Traceback">in getEffectiveLevel</re>
+        <re key="Traceback">ImportError: PyGI support not enabled</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/496058";>
+        <re key="Traceback">got an unexpected keyword argument 'exit_handler'</re>
+        <re key="Traceback">on_menuitem_software_sources_activate</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/523341";>
+        <re key="Traceback">in do_render</re>
+        <re key="Traceback">AttributeError: 'NoneType' object has no attribute 'get_animation_len'</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/523420";>
+        <re key="Title">ValueError in on_transactions_changed</re>
+        <re key="Traceback">ValueError: row sequence has wrong length</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/531780";>
+        <re key="Title">crashed with AttributeError in __str__</re>
+        <re key="Traceback">AttributeError: 'NoneType' object has no attribute 'name'</re>
+        <re key="Traceback">navhistory.py</re>
+        <re key="Traceback">details.append</re>
+    </pattern>
+    <!-- <pattern url="http://launchpad.net/bugs/503824";>
+        <re key="Title">ImportError in getEffectiveLevel</re>
+        <re key="Traceback">appdetailsview.py.*check_thumb_gtk</re>
+        <re key="Traceback">ImportError: PyGI support not enabled</re>
+    </pattern> -->
+</patterns>

=== added file 'splashy.xml'
--- splashy.xml	1970-01-01 00:00:00 +0000
+++ splashy.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/328089";>
+        <re key="Title">failed to install/upgrade:.*/etc/lsb-base-logging.sh.*lsb-base</re>
+    </pattern>
+</patterns>

=== added file 'sun-java6-bin.xml'
--- sun-java6-bin.xml	1970-01-01 00:00:00 +0000
+++ sun-java6-bin.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/303609";>
+        <re key="DpkgTerminalLog">user did not accept the sun-dlj-v1-1 license</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/522383";>
+        <re key="DpkgTerminalLog">debconf: \(Cannot connect to /tmp/aptdaemon-[0-9a-zA-Z]{6}/debconf.socket</re>
+    </pattern>
+</patterns>

=== added file 'sun-java6-doc.xml'
--- sun-java6-doc.xml	1970-01-01 00:00:00 +0000
+++ sun-java6-doc.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/85969";>
+        <re key="DpkgTerminalLog">Abort installation of JDK documentation</re>
+    </pattern>
+</patterns>

=== added file 'sun-java6-jre.xml'
--- sun-java6-jre.xml	1970-01-01 00:00:00 +0000
+++ sun-java6-jre.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/303609";>
+        <re key="DpkgTerminalLog">user did not accept the sun-dlj-v1-1 license</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/522383";>
+        <re key="DpkgTerminalLog">debconf: \(Cannot connect to /tmp/aptdaemon-[0-9a-zA-Z]{6}/debconf.socket</re>
+    </pattern>
+</patterns>

=== added file 'system-config-printer.xml'
--- system-config-printer.xml	1970-01-01 00:00:00 +0000
+++ system-config-printer.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/438793";>
+        <re key="Title">system-config-printer.py crashed with GError in populateList</re>
+        <re key="Traceback">GError: Icon 'emblem-default' not present in theme</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/520466";>
+        <re key="Title">system-config-printer.py crashed with AttributeError in send_reply</re>
+        <re key="Traceback">asyncipp.py</re>
+        <re key="Traceback">AttributeError: '_IPPConnectionThread' object has no attribute '_reply_handler'</re>
+    </pattern>
+</patterns>

=== added file 'system-config-samba.xml'
--- system-config-samba.xml	1970-01-01 00:00:00 +0000
+++ system-config-samba.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/224599";>
+        <re key="Traceback">SystemError:.*/etc/libuser.conf</re>    
+    </pattern>
+</patterns>

=== added file 'telepathy-butterfly.xml'
--- telepathy-butterfly.xml	1970-01-01 00:00:00 +0000
+++ telepathy-butterfly.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/401028";>
+        <re key="Traceback">in b64decode</re>
+        <re key="Traceback">raise TypeError\(msg\)</re>
+        <re key="Traceback">TypeError: Incorrect padding</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/391912";>
+        <re key="Traceback">in _dispatch_command</re>
+        <re key="Traceback">ParseError: Invalid MSNObject</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/194494";>
+        <re key="Traceback">switchboard_manager.py.*__on_message_undelivered</re>
+        <re key="Traceback">NotImplementedError</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/459366";>
+	<re key="Traceback">TypeError: Expected a string or unicode object</re>
+	<re key="Traceback">emit_signal</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/430768";>
+	<re key="Traceback">self._status == IoStatus.OPEN</re>
+	<re key="Traceback">AssertionError: 1</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/343233";>
+        <re key="Title">crashed with ValueError in parse</re>
+        <re key="Traceback">ValueError: need more than 1 value to unpack</re>
+        <re key="Traceback">msnp2p</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/464902";>
+	<re key="Traceback">NotImplementedError</re>
+	<re key="Traceback">switchboard_manager.py.*__on_user_invitation_failed</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/450951";>
+        <re key="Title">telepathy-butterfly crashed with KeyError in __getitem__\(\)</re>
+        <re key="Traceback">session = self\._sessions\[session_id\]</re>
+        <re key="Traceback">KeyError: \d+</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/628748";>
+        <re key="Title">telepathy\-butterfly crashed with KeyError in parse\(\)</re>
+        <re key="Traceback">KeyError: 'Location'</re>
+    </pattern>
+</patterns>

=== added file 'test-local'
--- test-local	1970-01-01 00:00:00 +0000
+++ test-local	2010-10-15 17:01:22 +0000
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+
+import sys
+
+import apport
+from apport.crashdb import get_crashdb
+
+if len(sys.argv) != 2:
+    print >> sys.stderr, 'Usage: %s <.crash file or bug number>' % sys.argv[0]
+    sys.exit(1)
+
+if sys.argv[1].isdigit():
+    db = get_crashdb(None)
+    report = db.download(sys.argv[1])
+    #report.write(open('/tmp/report.crash', 'w'))
+else:
+    report = apport.Report()
+    try:
+        f = open(sys.argv[1])
+    except IOError, e:
+        print >> sys.stderr, 'Cannot open report file: %s' % str(e)
+    report.load(f)
+    f.close()
+
+match = report.search_bug_patterns('.')
+
+if match:
+    print 'LP: #%s: Matched bug pattern: %s' % ( sys.argv[1], match )
+else:
+    print 'LP: #%s: No match' % sys.argv[1]

=== added file 'tex-common.xml'
--- tex-common.xml	1970-01-01 00:00:00 +0000
+++ tex-common.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/581145";>
+        <re key="DpkgTerminalLog">No packages found matching texlive-base</re>
+    </pattern>
+</patterns>

=== added file 'ubiquity.xml'
--- ubiquity.xml	1970-01-01 00:00:00 +0000
+++ ubiquity.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/398614";>
+        <re key="Traceback">XStartupError: X server exited with return code 1</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/234835";>
+        <re key="OriginalTitle">ubiquity crashed with InstallStepError in configure_ma</re>
+        <re key="Traceback">InstallStepError: MigrationAssistantApply failed with code 2</re>
+    </pattern>
+</patterns>

=== added file 'ubuntuone-client.xml'
--- ubuntuone-client.xml	1970-01-01 00:00:00 +0000
+++ ubuntuone-client.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,76 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <!-- pre-pattern bugs -->
+    <pattern url="http://launchpad.net/bugs/368626";>
+        <re key="UbuntuOneSyncdaemonExceptionsLog">UnicodeDecodeError</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/467397";>
+        <re key="UbuntuOneOAuthLoginLog">KeyError: 'ROUND_CEiLiNG'</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/387308";>
+        <re key="UbuntuOneOAuthLoginLog">\[Errno socket error\] \[Errno (1|8)\] _ssl.c</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/455544";>
+        <re key="UbuntuOneUserSyncdaemonConfig">on = True</re>
+        <re key="UbuntuOneUserSyncdaemonConfig">(read|write)_limit = -1</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/480069";>
+        <re key="UbuntuOneSyncdaemonExceptionsLog">AttributeError: 'WaitForCondition' object has no attribute 'share_id'</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/517505";>
+        <re key="UbuntuOneSyncdaemonExceptionsLog">AttributeError:.*object has no attribute '_upgrade_metadata_6'</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/457147";>
+        <re key="UbuntuOneSyncdaemonExceptionsLog">BadTransition: State.* can't handle the SYS_CONNECTION_MADE event</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/458393";>
+        <re key="UbuntuOneSyncdaemonExceptionsLog">BadTransition: State.*can't handle the SYS_SERVER_RESCAN_DONE event</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/478653";>
+        <re key="UbuntuOneSyncdaemonExceptionsLog">BadTransition: State.*can't handle the SYS_OAUTH_ERROR event</re>
+    </pattern>
+    <!--
+    Disabled until we figure out how to detect it properly
+    <pattern url="http://launchpad.net/bugs/506559";>
+        <re key="UbuntuOneSyncdaemonExceptionsLog">File ".*file_shelf.py".*in _load_pickle</re>
+        <re key="UbuntuOneSyncdaemonExceptionsLog">KeyError</re>
+    </pattern>
+    -->
+    <pattern url="http://launchpad.net/bugs/414371";>
+        <re key="UbuntuOneSyncdaemonExceptionsLog">IOError: \[Errno 13\].*'.*syncdaemon/(fsm|metadata).*'</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/522030";>
+        <re key="UbuntuOneSyncdaemonExceptionsLog">OSError: \[Errno 1\].*'.*ubuntuone/shares'</re>
+    </pattern>
+    <!-- /pre-pattern bugs -->
+    <pattern url="http://launchpad.net/bugs/462828";>
+        <re key="Package">ubuntuone-client 1.0.2-0ubuntu1</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/528203";>
+        <re key="Title">failed to install/upgrade: trying to overwrite '/usr/lib/ubuntuone-client/ubuntuone-login', which is also in package ubuntuone-client</re>
+    </pattern>
+    <!-- Duplicate pattern due to the mistake in apport hook -->
+    <pattern url="http://launchpad.net/bugs/537610";>
+        <re key="UbuntuOneSyncdaemonExceptionsLog">ValueError: (Read|Write) limit must be greater than 0</re>
+        <re key="UbuntuOneSyncdaemonConfig">on = False</re>
+        <re key="UbuntuOneSyncdaemonConfig">(read|write)_limit = 0</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/537610";>
+        <re key="UbuntuOneSyncdaemonExceptionsLog">ValueError: (Read|Write) limit must be greater than 0</re>
+        <re key="UbuntuOneUserSyncdaemonConfig">on = False</re>
+        <re key="UbuntuOneUserSyncdaemonConfig">(read|write)_limit = 0</re>
+    </pattern>
+    <!-- /Duplicate pattern due to the mistake in apport hook -->
+    <pattern url="http://launchpad.net/bugs/553232";>
+        <re key="Title">AttributeError in handle_bw_controls_changed</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/562286";>
+        <re key="UbuntuOneOAuthLoginLog">Token was not successfully retrieved: data was</re>
+        <re key="UbuntuOneOAuthLoginLog">&lt;title&gt;Ubuntu One : Home&lt;/title&gt;</re>
+        <re key="Title">ubuntuone-login crashed with AttributeError in from_token_and_callback\(\)</re>
+    </pattern>
+    <pattern url="http://launchpad.net/bugs/554561";>
+        <re key="Title">ubuntuone-syncdaemon crashed with AttributeError in _upgrade_metadata_3</re>
+    </pattern>
+</patterns>

=== added file 'update-manager.xml'
--- update-manager.xml	1970-01-01 00:00:00 +0000
+++ update-manager.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/519882";>
+        <re key="Title">update-manager crashed with CacheExceptionDpkgInterrupted in __init__\(\)</re>
+        <re key="Traceback">CacheExceptionDpkgInterrupted: E:dpkg</re>
+        <re key="Tags">apport-crash</re>
+        <re key="Tags">lucid</re>  
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/341503";>
+        <re key="Title">update-manager crashed with SystemError in requiredDownload</re>
+        <re key="Traceback">pm.GetArchives</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/350988";>
+        <re key="Title">update-manager crashed with RuntimeError in .module.</re>
+        <re key="Traceback">RuntimeError: could not open display</re>
+    </pattern>
+</patterns>

=== added file 'update-notifier.xml'
--- update-notifier.xml	1970-01-01 00:00:00 +0000
+++ update-notifier.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/403192";>
+        <re key="Stacktrace">gdu_pool_get_devices</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/467875";>
+        <re key="Stacktrace">in pkgCache::FindPkg</re>
+        <re key="Stacktrace">at pkgcache.cc:189</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/340479";>
+        <re key="Title">apt_check.py crashed with SIGSEGV in pkgCacheGenerator::MergeList</re>
+        <re key="StacktraceTop">pkgCacheGenerator::MergeList</re>
+    </pattern>
+    <pattern url="https://launchpad.net/bugs/440498";>
+        <re key="Title">apt_check.py crashed with SIGSEGV in pkgCacheGenerator::ListParser::NewDepends</re>
+        <re key="Stacktrace">pkgCacheGenerator::ListParser::NewDepends</re>
+    </pattern>
+</patterns>

=== added file 'upstart-compat-sysv.xml'
--- upstart-compat-sysv.xml	1970-01-01 00:00:00 +0000
+++ upstart-compat-sysv.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/273761";>
+        <re key="ProcCmdline">(tel)?init u</re>
+	<re key="Package">^upstart(-compat-sysv)? 0.3.9-7$</re>
+    </pattern>
+</patterns>

=== added file 'upstart.xml'
--- upstart.xml	1970-01-01 00:00:00 +0000
+++ upstart.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/273761";>
+        <re key="ProcCmdline">(tel)?init u</re>
+	<re key="Package">^upstart(-compat-sysv)? 0.3.9-7$</re>
+    </pattern>
+</patterns>

=== added file 'util-linux.xml'
--- util-linux.xml	1970-01-01 00:00:00 +0000
+++ util-linux.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/539515";>
+	<re key="ProcCmdline">mount /media/floppy0</re>
+	<re key="Tags">shutdown-hang</re>
+    </pattern>
+</patterns>

=== added file 'virtkey.xml'
--- virtkey.xml	1970-01-01 00:00:00 +0000
+++ virtkey.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="https://launchpad.net/bugs/648695";>
+        <re key="DpkgTerminalLog">file does not exist: /usr/lib/python2.6/dist-packages/python_virtkey-0.60.0.egg-info</re>
+        <re key="Tags">maverick</re>
+    </pattern>
+</patterns>

=== added file 'xfstt.xml'
--- xfstt.xml	1970-01-01 00:00:00 +0000
+++ xfstt.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/433146";>
+        <re key="AssertionMessage">buffer overflow detected \*\*\*: /usr/bin/xfstt terminated</re>
+    </pattern>
+</patterns>

=== added file 'xorg-server.xml'
--- xorg-server.xml	1970-01-01 00:00:00 +0000
+++ xorg-server.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/447159";>
+        <re key="Title">Xorg assert failure: X: ..\/..\/src\/i830_batchbuffer.h:79: intel_batch_emit_dword</re>
+        <re key="Stacktrace">I810AllocateGARTMemory</re>
+    </pattern>
+</patterns>

=== added file 'yelp.xml'
--- yelp.xml	1970-01-01 00:00:00 +0000
+++ yelp.xml	2010-10-15 17:01:22 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<patterns>
+    <pattern url="http://launchpad.net/bugs/528169";>
+        <re key="Title">yelp crashed with signal 5 in _XError</re>
+        <re key="Stacktrace">buf = "RenderBadPicture \(invalid Picture parameter\)"</re>
+    </pattern>
+</patterns>