Merge lp:~barry/apport/lp1566975 into lp:~apport-hackers/apport/trunk
- lp1566975
- Merge into trunk
Status: | Superseded |
---|---|
Proposed branch: | lp:~barry/apport/lp1566975 |
Merge into: | lp:~apport-hackers/apport/trunk |
Diff against target: |
11658 lines (+10789/-390) 65 files modified
.bzr-builddeb/default.conf (+2/-0) .bzrignore (+1/-0) apport/crashdb_impl/launchpad.py (+6/-1) apport/hookutils.py (+4/-4) apport/ui.py (+12/-1) backends/packaging-apt-dpkg.py (+6/-0) backends/packaging_rpm.py (+0/-272) bin/apport-bug (+16/-1) data/general-hooks/clickinfo.py (+44/-0) data/general-hooks/cloud_archive.py (+34/-0) data/general-hooks/powerpc.py (+105/-0) data/general-hooks/ubuntu-gnome.py (+36/-0) data/general-hooks/ubuntu.py (+507/-0) data/general-hooks/wayland_session.py (+9/-0) data/iwlwifi_error_dump (+1/-1) data/package-hooks/source_debian-installer.py (+59/-0) data/package-hooks/source_linux-nexus7.py (+25/-0) data/package-hooks/source_linux.py (+134/-0) data/package-hooks/source_ubiquity.py (+155/-0) debhelper/apport.pm (+10/-0) debhelper/dh_apport (+83/-0) debian/apport-gtk.install (+2/-0) debian/apport-kde.install (+9/-0) debian/apport-noui.dirs (+1/-0) debian/apport-noui.install (+1/-0) debian/apport-noui.path (+9/-0) debian/apport-noui.postinst (+7/-0) debian/apport-noui.prerm (+9/-0) debian/apport-noui.service (+7/-0) debian/apport-noui.upstart (+13/-0) debian/apport-retrace.install (+5/-0) debian/apport-valgrind.install (+2/-0) debian/apport.install (+36/-0) debian/apport.links (+4/-0) debian/apport.logrotate (+9/-0) debian/apport.maintscript (+1/-0) debian/apport.postinst (+10/-0) debian/apport.upstart (+58/-0) debian/changelog (+8967/-0) debian/clean (+2/-0) debian/compat (+1/-0) debian/control (+242/-0) debian/copyright (+15/-0) debian/dh-apport.install (+2/-0) debian/dh-apport.manpages (+1/-0) debian/python-apport.install (+2/-0) debian/python-problem-report.install (+1/-0) debian/python3-apport.install (+2/-0) debian/python3-problem-report.install (+1/-0) debian/rules (+44/-0) debian/source/format (+1/-0) debian/tests/control (+19/-0) debian/tests/upstream-system (+16/-0) debian/watch (+2/-0) do-release (+0/-33) etc/apport/blacklist.d/apport (+1/-0) etc/apport/crashdb.conf (+18/-14) gtk/apport-gtk.desktop.in (+1/-0) kde/apport-kde-mime.desktop.in (+1/-0) kde/apport-kde.desktop.in (+1/-0) problem_report.py (+2/-3) test/test_backend_apt_dpkg.py (+3/-2) test/test_backend_rpm.py (+0/-57) test/test_problem_report.py (+10/-0) test/test_ui_kde.py (+2/-1) |
To merge this branch: | bzr merge lp:~barry/apport/lp1566975 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Apport upstream developers | Pending | ||
Review via email: mp+291143@code.launchpad.net |
This proposal has been superseded by a proposal from 2016-04-06.
Commit message
Description of the change
This fixes the AssertionError by using a regular expression and adding : to the list of acceptable characters. It adds a test and prints the failing value when the assertion triggers.
Unmerged revisions
- 2508. By Barry Warsaw
-
Fix LP: #1566975
- 2507. By Martin Pitt
-
releasing package apport version 2.20.1-0ubuntu1
- 2506. By Martin Pitt
-
new upstream release 2.20.1
- 2505. By Martin Pitt
-
releasing package apport version 2.20-0ubuntu3
- 2504. By Martin Pitt
-
Relax report.
test_add_ gdb_info gdb warning check, as this changed with gdb
7.10.90. - 2503. By Martin Pitt
-
releasing package apport version 2.20-0ubuntu2
- 2502. By Martin Pitt
-
Fix signal_
crashes. test_modify_ after_start test when running as root. - 2501. By Martin Pitt
-
releasing package apport version 2.20-0ubuntu1
- 2500. By Martin Pitt
-
Install new systemd units into apport package.
- 2499. By Martin Pitt
-
Add python3-systemd recommendation to apport, to make crash report
generation work in containers.
Preview Diff
1 | === added directory '.bzr-builddeb' |
2 | === added file '.bzr-builddeb/default.conf' |
3 | --- .bzr-builddeb/default.conf 1970-01-01 00:00:00 +0000 |
4 | +++ .bzr-builddeb/default.conf 2016-04-06 16:42:48 +0000 |
5 | @@ -0,0 +1,2 @@ |
6 | +[BUILDDEB] |
7 | +merge = True |
8 | |
9 | === modified file '.bzrignore' |
10 | --- .bzrignore 2015-05-13 09:23:59 +0000 |
11 | +++ .bzrignore 2016-04-06 16:42:48 +0000 |
12 | @@ -1,4 +1,5 @@ |
13 | apport/packaging_impl.py |
14 | +debhelper/dh_apport.1 |
15 | doc/*.aux |
16 | doc/*.log |
17 | doc/*.pdf |
18 | |
19 | === modified file 'apport/crashdb_impl/launchpad.py' |
20 | --- apport/crashdb_impl/launchpad.py 2015-12-08 08:43:49 +0000 |
21 | +++ apport/crashdb_impl/launchpad.py 2016-04-06 16:42:48 +0000 |
22 | @@ -134,7 +134,12 @@ |
23 | return self.__launchpad |
24 | |
25 | if Launchpad is None: |
26 | - sys.stderr.write('ERROR: The launchpadlib Python %s module is not installed. This functionality is not available.\n' % sys.version[0]) |
27 | + if _python2: |
28 | + sys.stderr.write('ERROR: The python-launchpadlib package is not installed. This functionality is not available.\n') |
29 | + else: |
30 | + # this is a bit strange here, but it is the main user-visible reason why we end up here |
31 | + sys.stderr.write('ERROR: You need to use apport-collect for updating an existing bug\n') |
32 | + |
33 | sys.exit(1) |
34 | |
35 | if self.options.get('launchpad_instance'): |
36 | |
37 | === modified file 'apport/hookutils.py' |
38 | --- apport/hookutils.py 2016-01-26 09:20:58 +0000 |
39 | +++ apport/hookutils.py 2016-04-06 16:42:48 +0000 |
40 | @@ -62,7 +62,7 @@ |
41 | new key with '_' appended will be added instead. |
42 | |
43 | If the contents is valid UTF-8, or force_unicode is True, then the value |
44 | - will a string, otherwise it will be bytes. |
45 | + will be a string, otherwise it will be bytes. |
46 | ''' |
47 | if not key: |
48 | key = path_to_key(path) |
49 | @@ -365,7 +365,7 @@ |
50 | |
51 | def command_output(command, input=None, stderr=subprocess.STDOUT, |
52 | keep_locale=False, decode_utf8=True): |
53 | - '''Try to execute given command (array) and return its stdout. |
54 | + '''Try to execute given command (list) and return its stdout. |
55 | |
56 | In case of failure, a textual error gets returned. This function forces |
57 | LC_MESSAGES to C, to avoid translated output in bug reports. |
58 | @@ -404,7 +404,7 @@ |
59 | |
60 | |
61 | def root_command_output(command, input=None, stderr=subprocess.STDOUT, decode_utf8=True): |
62 | - '''Try to execute given command (array) as root and return its stdout. |
63 | + '''Try to execute given command (list) as root and return its stdout. |
64 | |
65 | This passes the command through pkexec, unless the caller is already root. |
66 | |
67 | @@ -715,7 +715,7 @@ |
68 | if 'AuditLog' not in report and os.path.exists('/var/run/auditd.pid'): |
69 | attach_root_command_outputs(report, {'AuditLog': 'egrep "' + mac_regex + '" /var/log/audit/audit.log'}) |
70 | |
71 | - attach_file(report, '/proc/version_signature', 'ProcVersionSignature') |
72 | + attach_file_if_exists(report, '/proc/version_signature', 'ProcVersionSignature') |
73 | attach_file(report, '/proc/cmdline', 'ProcCmdline') |
74 | |
75 | for match in re.findall(aa_re, report.get('KernLog', '') + report.get('AuditLog', '')): |
76 | |
77 | === modified file 'apport/ui.py' |
78 | --- apport/ui.py 2016-03-31 14:13:13 +0000 |
79 | +++ apport/ui.py 2016-04-06 16:42:48 +0000 |
80 | @@ -296,7 +296,12 @@ |
81 | if not response['report']: |
82 | return |
83 | |
84 | - apport.fileutils.mark_report_upload(report_file) |
85 | + # We don't want to send crashes to the crash database for binaries |
86 | + # that changed since the crash happened. See LP: #1039220 for |
87 | + # details. |
88 | + if '_MarkForUpload' in self.report and \ |
89 | + self.report['_MarkForUpload'] != 'False': |
90 | + apport.fileutils.mark_report_upload(report_file) |
91 | # We check for duplicates and unreportable crashes here, rather |
92 | # than before we show the dialog, as we want to submit these to the |
93 | # crash database, but not Launchpad. |
94 | @@ -948,6 +953,8 @@ |
95 | If a symptom script is given, this will be run first (used by |
96 | run_symptom()). |
97 | ''' |
98 | + self.report['_MarkForUpload'] = 'True' |
99 | + |
100 | # check if we already ran (we might load a processed report), skip if so |
101 | if (self.report.get('ProblemType') == 'Crash' and 'Stacktrace' in self.report) or (self.report.get('ProblemType') != 'Crash' and 'Dependencies' in self.report): |
102 | |
103 | @@ -982,6 +989,7 @@ |
104 | cur_time = int(os.stat(self.report['ExecutablePath']).st_mtime) |
105 | |
106 | if orig_time != cur_time: |
107 | + self.report['_MarkForUpload'] = 'False' |
108 | self.report['UnreportableReason'] = ( |
109 | _('The problem happened with the program %s which changed ' |
110 | 'since the crash occurred.') % self.report['ExecutablePath']) |
111 | @@ -1032,12 +1040,15 @@ |
112 | self.report['UnreportableReason'] = '%s\n\n%s' % ( |
113 | _('This problem report is damaged and cannot be processed.'), |
114 | repr(e)) |
115 | + self.report['_MarkForUpload'] = 'False' |
116 | except ValueError: # package does not exist |
117 | self.report['UnreportableReason'] = _('The report belongs to a package that is not installed.') |
118 | + self.report['_MarkForUpload'] = 'False' |
119 | except Exception as e: |
120 | apport.error(repr(e)) |
121 | self.report['UnreportableReason'] = _('An error occurred while attempting to ' |
122 | 'process this problem report:') + '\n\n' + str(e) |
123 | + self.report['_MarkForUpload'] = 'False' |
124 | |
125 | if 'UnreportableReason' in self.report or not self.check_report_crashdb(): |
126 | self.ui_stop_info_collection_progress() |
127 | |
128 | === modified file 'backends/packaging-apt-dpkg.py' |
129 | --- backends/packaging-apt-dpkg.py 2015-11-06 20:53:37 +0000 |
130 | +++ backends/packaging-apt-dpkg.py 2016-04-06 16:42:48 +0000 |
131 | @@ -192,6 +192,12 @@ |
132 | for o in pkg.candidate.origins: |
133 | if o.origin == distro_name: |
134 | return True |
135 | + |
136 | + # on Ubuntu system-image we might not have any /var/lib/apt/lists |
137 | + if set([o.origin for o in pkg.candidate.origins]) == set(['']) and \ |
138 | + os.path.exists('/etc/system-image/channel.ini'): |
139 | + return True |
140 | + |
141 | return False |
142 | |
143 | def is_native_origin_package(self, package): |
144 | |
145 | === removed file 'backends/packaging_rpm.py' |
146 | --- backends/packaging_rpm.py 2015-07-02 16:13:23 +0000 |
147 | +++ backends/packaging_rpm.py 1970-01-01 00:00:00 +0000 |
148 | @@ -1,272 +0,0 @@ |
149 | -'''A partial apport.PackageInfo class implementation for RPM. |
150 | - |
151 | -Used as a base class for Fedora, RHEL, openSUSE, SUSE Linux, and many other |
152 | -distributions. |
153 | -''' |
154 | - |
155 | -# Copyright (C) 2007 Red Hat Inc. |
156 | -# Copyright (C) 2008 Nikolay Derkach |
157 | -# Author: Will Woods <wwoods@redhat.com>, Nikolay Derkach <nderkach@gmail.com> |
158 | -# |
159 | -# This program is free software; you can redistribute it and/or modify it |
160 | -# under the terms of the GNU General Public License as published by the |
161 | -# Free Software Foundation; either version 2 of the License, or (at your |
162 | -# option) any later version. See http://www.gnu.org/copyleft/gpl.html for |
163 | -# the full text of the license. |
164 | - |
165 | -# N.B. There's some distro-specific bits in here (e.g. is_distro_package()). |
166 | -# So this is actually an abstract base class (or a template, if you like) for |
167 | -# RPM-based distributions. |
168 | -# A proper implementation needs to (at least) set official_keylist to a list |
169 | -# of GPG keyids used by official packages. You might have to extend |
170 | -# is_distro_package() as well, if you don't sign all your official packages |
171 | -# (cough cough Fedora rawhide cough) |
172 | - |
173 | -# It'd be convenient to use rpmUtils from yum, but I'm trying to keep this |
174 | -# class distro-agnostic. |
175 | -import rpm, hashlib, os, stat, subprocess |
176 | - |
177 | - |
178 | -class RPMPackageInfo: |
179 | - '''Partial apport.PackageInfo class implementation for RPM, as |
180 | - found in Fedora, RHEL, CentOS, etc.''' |
181 | - |
182 | - # Empty keylist. Should contain a list of key ids (8 lowercase hex digits). |
183 | - # e.g. official_keylist = ('30c9ecf8','4f2a6fd2','897da07a','1ac70ce6') |
184 | - official_keylist = () |
185 | - |
186 | - def __init__(self): |
187 | - self.ts = rpm.TransactionSet() # connect to the rpmdb |
188 | - self._mirror = None |
189 | - |
190 | - def get_version(self, package): |
191 | - '''Return the installed version of a package.''' |
192 | - hdr = self._get_header(package) |
193 | - if hdr is None: |
194 | - raise ValueError |
195 | - # Note - "version" here seems to refer to the full EVR, so.. |
196 | - if not hdr['e']: |
197 | - return hdr['v'] + '-' + hdr['r'] |
198 | - if not hdr['v'] or not hdr['r']: |
199 | - return None |
200 | - else: |
201 | - return hdr['e'] + ':' + hdr['v'] + '-' + hdr['r'] |
202 | - |
203 | - def get_available_version(self, package): |
204 | - '''Return the latest available version of a package.''' |
205 | - # used in report.py, which is used by the frontends |
206 | - raise NotImplementedError('method must be implemented by distro-specific RPMPackageInfo subclass') |
207 | - |
208 | - def get_dependencies(self, package): |
209 | - '''Return a list of packages a package depends on.''' |
210 | - hdr = self._get_header(package) |
211 | - # parse this package's Requires |
212 | - reqs = [] |
213 | - for r in hdr['requires']: |
214 | - if r.startswith('rpmlib') or r.startswith('uname('): |
215 | - continue # we've got rpmlib, thanks |
216 | - if r[0] == '/': # file requires |
217 | - req_heads = self._get_headers_by_tag('basenames', r) |
218 | - else: # other requires |
219 | - req_heads = self._get_headers_by_tag('provides', r) |
220 | - for rh in req_heads: |
221 | - rh_envra = self._make_envra_from_header(rh) |
222 | - if rh_envra not in reqs: |
223 | - reqs.append(rh_envra) |
224 | - return reqs |
225 | - |
226 | - def get_source(self, package): |
227 | - '''Return the source package name for a package.''' |
228 | - hdr = self._get_header(package) |
229 | - return hdr['sourcerpm'] |
230 | - |
231 | - def get_architecture(self, package): |
232 | - '''Return the architecture of a package. |
233 | - |
234 | - This might differ on multiarch architectures (e. g. an i386 Firefox |
235 | - package on a x86_64 system)''' |
236 | - # Yeah, this is kind of redundant, as package is ENVRA, but I want |
237 | - # to do this the right way (in case we change what 'package' is) |
238 | - hdr = self._get_header(package) |
239 | - return hdr['arch'] |
240 | - |
241 | - def get_files(self, package): |
242 | - '''Return list of files shipped by a package.''' |
243 | - hdr = self._get_header(package) |
244 | - files = [] |
245 | - for (f, mode) in zip(hdr['filenames'], hdr['filemodes']): |
246 | - if not stat.S_ISDIR(mode): |
247 | - files.append(f) |
248 | - return files |
249 | - |
250 | - def get_modified_files(self, package): |
251 | - '''Return list of all modified files of a package.''' |
252 | - hdr = self._get_header(package) |
253 | - |
254 | - files = hdr['filenames'] |
255 | - mtimes = hdr['filemtimes'] |
256 | - md5s = hdr['filemd5s'] |
257 | - |
258 | - modified = [] |
259 | - for i in xrange(len(files)): |
260 | - # Skip files we're not tracking md5s for |
261 | - if not md5s[i]: |
262 | - continue |
263 | - # Skip files we can't read |
264 | - if not os.access(files[i], os.R_OK): |
265 | - continue |
266 | - # Skip things that aren't real files |
267 | - s = os.stat(files[i]) |
268 | - if not stat.S_ISREG(s.st_mode): |
269 | - continue |
270 | - # Skip things that haven't been modified |
271 | - if mtimes[i] == s.st_mtime: |
272 | - continue |
273 | - # Oh boy, an actual possibly-modified file. Check the md5sum! |
274 | - if not self._checkmd5(files[i], md5s[i]): |
275 | - modified.append(files[i]) |
276 | - |
277 | - return modified |
278 | - |
279 | - def get_file_package(self, file, uninstalled=False, map_cachedir=None, |
280 | - release=None, arch=None): |
281 | - '''Return the package a file belongs to. |
282 | - |
283 | - Return None if the file is not shipped by any package. |
284 | - |
285 | - If uninstalled is True, this will also find files of uninstalled |
286 | - packages; this is very expensive, though, and needs network access and |
287 | - lots of CPU and I/O resources. In this case, map_cachedir can be set to |
288 | - an existing directory which will be used to permanently store the |
289 | - downloaded maps. If it is not set, a temporary directory will be used. |
290 | - Also, release and arch can be set to a foreign release/architecture |
291 | - instead of the one from the current system. |
292 | - ''' |
293 | - # The policy for handling files which belong to multiple packages depends on the distro |
294 | - raise NotImplementedError('method must be implemented by distro-specific RPMPackageInfo subclass') |
295 | - |
296 | - def get_system_architecture(self): |
297 | - '''Return the architecture of the system, in the notation used by the |
298 | - particular distribution.''' |
299 | - rpmarch = subprocess.Popen(['rpm', '--eval', '%_target_cpu'], |
300 | - stdout=subprocess.PIPE) |
301 | - arch = rpmarch.communicate()[0].strip() |
302 | - return arch |
303 | - |
304 | - def is_distro_package(self, package): |
305 | - '''Check if a package is a genuine distro package (True) or comes from |
306 | - a third-party source.''' |
307 | - # This is a list of official keys, set by the concrete subclass |
308 | - if not self.official_keylist: |
309 | - raise Exception('Subclass the RPM implementation for your distro!') |
310 | - hdr = self._get_header(package) |
311 | - if not hdr: |
312 | - return False |
313 | - # Check the GPG sig and key ID to see if this package was signed |
314 | - # with an official key. |
315 | - if hdr['siggpg']: |
316 | - # Package is signed |
317 | - keyid = hdr['siggpg'][13:17].encode('hex') |
318 | - if keyid in self.official_keylist: |
319 | - return True |
320 | - return False |
321 | - |
322 | - def set_mirror(self, url): |
323 | - '''Explicitly set a distribution mirror URL for operations that need to |
324 | - fetch distribution files/packages from the network. |
325 | - |
326 | - By default, the mirror will be read from the system configuration |
327 | - files.''' |
328 | - # FIXME C&P from apt-dpkg implementation, might move to subclass |
329 | - self._mirror = url |
330 | - |
331 | - def get_source_tree(self, srcpackage, dir, version=None): |
332 | - '''Download given source package and unpack it into dir (which should |
333 | - be empty). |
334 | - |
335 | - This also has to care about applying patches etc., so that dir will |
336 | - eventually contain the actually compiled source. |
337 | - |
338 | - If version is given, this particular version will be retrieved. |
339 | - Otherwise this will fetch the latest available version. |
340 | - |
341 | - Return the directory that contains the actual source root directory |
342 | - (which might be a subdirectory of dir). Return None if the source is |
343 | - not available.''' |
344 | - # Used only by apport-retrace. |
345 | - raise NotImplementedError('method must be implemented by distro-specific RPMPackageInfo subclass') |
346 | - |
347 | - def compare_versions(self, ver1, ver2): |
348 | - '''Compare two package versions. |
349 | - |
350 | - Return -1 for ver < ver2, 0 for ver1 == ver2, and 1 for ver1 > ver2.''' |
351 | - # Used by crashdb.py (i.e. the frontends) |
352 | - # I could duplicate stringToVersion/compareEVR from rpmUtils.misc, |
353 | - # but I hate duplicating code. So if you don't want to require rpmUtils |
354 | - # you can implement this function yourself. Probably you've got |
355 | - # equivalent code in whatever your distro uses instead of yum anyway. |
356 | - raise NotImplementedError('method must be implemented by distro-specific RPMPackageInfo subclass') |
357 | - |
358 | - def package_name_glob(self, glob): |
359 | - '''Return known package names which match given glob.''' |
360 | - |
361 | - raise NotImplementedError('TODO') |
362 | - |
363 | - # |
364 | - # Internal helper methods. These are only single-underscore, so you can use |
365 | - # use them in extending/overriding the methods above in your subclasses |
366 | - # |
367 | - |
368 | - def _get_headers_by_tag(self, tag, arg): |
369 | - '''Get a list of RPM headers by doing dbMatch on the given tag and |
370 | - argument.''' |
371 | - matches = self.ts.dbMatch(tag, arg) |
372 | - if matches.count() == 0: |
373 | - raise ValueError('Could not find package with %s: %s' % (tag, arg)) |
374 | - return [m for m in matches] |
375 | - |
376 | - def _get_header(self, envra): |
377 | - '''Get the RPM header that matches the given ENVRA.''' |
378 | - |
379 | - querystr = envra |
380 | - qlen = len(envra) |
381 | - while qlen > 0: |
382 | - mi = impl.ts.dbMatch('name', querystr) |
383 | - hdrs = [m for m in mi] |
384 | - if len(hdrs) > 0: |
385 | - # yay! we found something |
386 | - # Unless there's some rpmdb breakage, you should have one header |
387 | - # here. If you do manage to have two rpms with the same ENVRA, |
388 | - # who cares which one you get? |
389 | - h = hdrs[0] |
390 | - break |
391 | - |
392 | - # remove the last char of querystr and retry the search |
393 | - querystr = querystr[0:len(querystr) - 1] |
394 | - qlen = qlen - 1 |
395 | - |
396 | - if qlen == 0: |
397 | - raise ValueError('No headers found for this envra: %s' % envra) |
398 | - return h |
399 | - |
400 | - def _make_envra_from_header(self, h): |
401 | - '''Generate an ENVRA string from an rpm header''' |
402 | - |
403 | - nvra = "%s-%s-%s.%s" % (h['n'], h['v'], h['r'], h['arch']) |
404 | - if h['e']: |
405 | - envra = "%s:%s" % (h['e'], nvra) |
406 | - else: |
407 | - envra = nvra |
408 | - return envra |
409 | - |
410 | - def _checkmd5(self, filename, filemd5): |
411 | - '''Internal function to check a file's md5sum''' |
412 | - |
413 | - m = hashlib.md5() |
414 | - f = open(filename) |
415 | - data = f.read() |
416 | - f.close() |
417 | - m.update(data) |
418 | - return (filemd5 == m.hexdigest()) |
419 | - |
420 | -impl = RPMPackageInfo() |
421 | |
422 | === modified file 'bin/apport-bug' |
423 | --- bin/apport-bug 2015-02-06 07:27:47 +0000 |
424 | +++ bin/apport-bug 2016-04-06 16:42:48 +0000 |
425 | @@ -11,11 +11,26 @@ |
426 | # option) any later version. See http://www.gnu.org/copyleft/gpl.html for |
427 | # the full text of the license. |
428 | |
429 | +# Explicitly set the PATH to that of ENV_SUPATH in /etc/login.defs. We need do |
430 | +# this so that confined applications using ubuntu-browsers.d/ubuntu-integration |
431 | +# cannot abuse the environment to escape AppArmor confinement via this script |
432 | +# (LP: #1045986). This can be removed once AppArmor supports environment |
433 | +# filtering (LP: #1045985) |
434 | +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
435 | + |
436 | +if [ "${0%-collect}" != "$0" ]; then |
437 | + prefix=python |
438 | + if ! python -c 'import apport' 2>/dev/null; then |
439 | + echo "You need to run 'sudo apt-get install python-apport' for apport-collect to work." >&2 |
440 | + exit 1 |
441 | + fi |
442 | +fi |
443 | + |
444 | # locate path of a particular program |
445 | find_program() { |
446 | for p in /usr/local/bin /usr/bin /usr/local/share/apport /usr/share/apport; do |
447 | if [ -x $p/$1 ]; then |
448 | - RET="$p/$1" |
449 | + RET="$prefix $p/$1" |
450 | return |
451 | fi |
452 | done |
453 | |
454 | === added file 'data/general-hooks/clickinfo.py' |
455 | --- data/general-hooks/clickinfo.py 1970-01-01 00:00:00 +0000 |
456 | +++ data/general-hooks/clickinfo.py 2016-04-06 16:42:48 +0000 |
457 | @@ -0,0 +1,44 @@ |
458 | +''' |
459 | +Determine rudimentary package and version information for click packages to |
460 | +enable bucketing on the Error Tracker. |
461 | + |
462 | +Copyright (C) 2014 Canonical Ltd. |
463 | +Author: Brian Murray <brian@canonical.com> |
464 | + |
465 | +This program is free software; you can redistribute it and/or modify it |
466 | +under the terms of the GNU General Public License as published by the |
467 | +Free Software Foundation; either version 2 of the License, or (at your |
468 | +option) any later version. See http://www.gnu.org/copyleft/gpl.html for |
469 | +the full text of the license. |
470 | +''' |
471 | + |
472 | +import subprocess |
473 | + |
474 | + |
475 | +def add_info(report, ui): |
476 | + exec_path = report.get('ExecutablePath') |
477 | + if not exec_path: |
478 | + return |
479 | + if not exec_path.startswith('/opt/click.ubuntu.com') and \ |
480 | + not exec_path.startswith('/usr/share/click/preinstalled'): |
481 | + return |
482 | + # indicate that the crash is from a click package so the Error Tracker |
483 | + # will not ask for a core dump |
484 | + report['ClickPackage'] = "True" |
485 | + click_info = subprocess.Popen(['click', 'info', exec_path], |
486 | + stdout=subprocess.PIPE, |
487 | + universal_newlines=True) |
488 | + out = click_info.communicate()[0] |
489 | + for line in out.splitlines(): |
490 | + if 'name' in line: |
491 | + package = line.strip(' ,').split(': ')[1] |
492 | + package = package.replace('"', '') |
493 | + if 'version' in line: |
494 | + version = line.strip(' ,').split(': ')[1] |
495 | + version = version.replace('"', '') |
496 | + if 'architecture' in line: |
497 | + pkg_arch = line.strip(' ,').split(': ')[1] |
498 | + pkg_arch = pkg_arch.replace('"', '') |
499 | + report['Package'] = '%s %s' % (package, version) |
500 | + report['SourcePackage'] = package |
501 | + report['PackageArchitecture'] = pkg_arch |
502 | |
503 | === added file 'data/general-hooks/cloud_archive.py' |
504 | --- data/general-hooks/cloud_archive.py 1970-01-01 00:00:00 +0000 |
505 | +++ data/general-hooks/cloud_archive.py 2016-04-06 16:42:48 +0000 |
506 | @@ -0,0 +1,34 @@ |
507 | +''' |
508 | +Redirect reports on packages from the Ubuntu Cloud Archive to the |
509 | +launchpad cloud-archive project. |
510 | + |
511 | +Copyright (C) 2013 Canonical Ltd. |
512 | +Author: James Page <james.page@ubuntu.com> |
513 | + |
514 | +This program is free software; you can redistribute it and/or modify it |
515 | +under the terms of the GNU General Public License as published by the |
516 | +Free Software Foundation; either version 2 of the License, or (at your |
517 | +option) any later version. See http://www.gnu.org/copyleft/gpl.html for |
518 | +the full text of the license. |
519 | +''' |
520 | +from apport import packaging |
521 | + |
522 | + |
523 | +def add_info(report, ui): |
524 | + package = report.get('Package') |
525 | + if not package: |
526 | + return |
527 | + package = package.split()[0] |
528 | + try: |
529 | + if '~cloud' in packaging.get_version(package) and \ |
530 | + packaging.get_package_origin(package) == 'Canonical': |
531 | + report['CrashDB'] = '''{ |
532 | + "impl": "launchpad", |
533 | + "project": "cloud-archive", |
534 | + "bug_pattern_url": "http://people.canonical.com/~ubuntu-archive/bugpatterns/bugpatterns.xml", |
535 | + }''' |
536 | + except ValueError as e: |
537 | + if 'does not exist' in str(e): |
538 | + return |
539 | + else: |
540 | + raise e |
541 | |
542 | === added file 'data/general-hooks/powerpc.py' |
543 | --- data/general-hooks/powerpc.py 1970-01-01 00:00:00 +0000 |
544 | +++ data/general-hooks/powerpc.py 2016-04-06 16:42:48 +0000 |
545 | @@ -0,0 +1,105 @@ |
546 | +# This hook collects logs for Power systems and more specific logs for Pseries, |
547 | +# PowerNV platforms. |
548 | +# |
549 | +# Author: Thierry FAUCK <thierry@linux.vnet.ibm.com> |
550 | +# |
551 | +# This program is free software; you can redistribute it and/or modify |
552 | +# it under the terms of the GNU General Public License as published by |
553 | +# the Free Software Foundation; either version 2 of the License, or |
554 | +# (at your option) any later version. |
555 | +# |
556 | +# This program is distributed in the hope that it will be useful, |
557 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
558 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
559 | +# GNU General Public License for more details. |
560 | +# |
561 | +# You should have received a copy of the GNU General Public License |
562 | +# along with this program; if not, write to the Free Software |
563 | +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
564 | + |
565 | +import os, os.path, platform, tempfile, subprocess |
566 | + |
567 | +from apport.hookutils import command_output, attach_root_command_outputs, attach_file, attach_file_if_exists, command_available |
568 | + |
569 | +'''IBM Power System related information''' |
570 | + |
571 | + |
572 | +def add_tar(report, dir, key): |
573 | + (fd, f) = tempfile.mkstemp(prefix='apport.', suffix='.tar') |
574 | + os.close(fd) |
575 | + subprocess.call(['tar', 'chf', f, dir]) |
576 | + if os.path.getsize(f) > 0: |
577 | + report[key] = (f, ) |
578 | + # NB, don't cleanup the temp file, it'll get read later by the apport main |
579 | + # code |
580 | + |
581 | + |
582 | +def add_info(report, ui): |
583 | + arch = platform.machine() |
584 | + if arch not in ['ppc64', 'ppc64le']: |
585 | + return |
586 | + |
587 | + is_kernel = report['ProblemType'].startswith('Kernel') or 'linux' in report.get('Package') |
588 | + |
589 | + try: |
590 | + with open('/proc/cpuinfo', 'r') as fp: |
591 | + contents = fp.read() |
592 | + ispSeries = 'pSeries' in contents |
593 | + isPowerNV = 'PowerNV' in contents |
594 | + isPowerKVM = 'emulated by qemu' in contents |
595 | + except IOError: |
596 | + ispSeries = False |
597 | + isPowerNV = False |
598 | + isPowerKVM = False |
599 | + |
600 | + if ispSeries or isPowerNV: |
601 | + if is_kernel: |
602 | + add_tar(report, '/proc/device-tree/', 'DeviceTree.tar') |
603 | + attach_file(report, '/proc/misc', 'ProcMisc') |
604 | + attach_file(report, '/proc/locks', 'ProcLocks') |
605 | + attach_file(report, '/proc/loadavg', 'ProcLoadAvg') |
606 | + attach_file(report, '/proc/swaps', 'ProcSwaps') |
607 | + attach_file(report, '/proc/version', 'ProcVersion') |
608 | + report['cpu_smt'] = command_output(['ppc64_cpu', '--smt']) |
609 | + report['cpu_cores'] = command_output(['ppc64_cpu', '--cores-present']) |
610 | + report['cpu_coreson'] = command_output(['ppc64_cpu', '--cores-on']) |
611 | + # To be executed as root |
612 | + if is_kernel: |
613 | + attach_root_command_outputs(report, { |
614 | + 'cpu_runmode': 'ppc64_cpu --run-mode', |
615 | + 'cpu_freq': 'ppc64_cpu --frequency', |
616 | + 'cpu_dscr': 'ppc64_cpu --dscr', |
617 | + 'nvram': 'cat /dev/nvram', |
618 | + }) |
619 | + attach_file_if_exists(report, '/var/log/platform') |
620 | + |
621 | + if ispSeries and not isPowerKVM: |
622 | + attach_file(report, '/proc/ppc64/lparcfg', 'ProcLparCfg') |
623 | + attach_file(report, '/proc/ppc64/eeh', 'ProcEeh') |
624 | + attach_file(report, '/proc/ppc64/systemcfg', 'ProcSystemCfg') |
625 | + report['lscfg_vp'] = command_output(['lscfg', '-vp']) |
626 | + report['lsmcode'] = command_output(['lsmcode', '-A']) |
627 | + report['bootlist'] = command_output(['bootlist', '-m', 'both', '-r']) |
628 | + report['lparstat'] = command_output(['lparstat', '-i']) |
629 | + if command_available('lsvpd'): |
630 | + report['lsvpd'] = command_output(['lsvpd', '--debug']) |
631 | + if command_available('lsvio'): |
632 | + report['lsvio'] = command_output(['lsvio', '-des']) |
633 | + if command_available('servicelog'): |
634 | + report['servicelog_dump'] = command_output(['servicelog', '--dump']) |
635 | + if command_available('servicelog_notify'): |
636 | + report['servicelog_list'] = command_output(['servicelog_notify', '--list']) |
637 | + if command_available('usysattn'): |
638 | + report['usysattn'] = command_output(['usysattn']) |
639 | + if command_available('usysident'): |
640 | + report['usysident'] = command_output(['usysident']) |
641 | + if command_available('serv_config'): |
642 | + report['serv_config'] = command_output(['serv_config', '-l']) |
643 | + |
644 | + if isPowerNV: |
645 | + add_tar(report, '/proc/ppc64/', 'ProcPpc64.tar') |
646 | + attach_file_if_exists(report, '/sys/firmware/opal/msglog') |
647 | + if os.path.exists('/var/log/dump'): |
648 | + report['VarLogDump_list'] = command_output(['ls', '-l', '/var/log/dump']) |
649 | + if is_kernel: |
650 | + add_tar(report, '/var/log/opal-elog', 'OpalElog.tar') |
651 | |
652 | === added file 'data/general-hooks/ubuntu-gnome.py' |
653 | --- data/general-hooks/ubuntu-gnome.py 1970-01-01 00:00:00 +0000 |
654 | +++ data/general-hooks/ubuntu-gnome.py 2016-04-06 16:42:48 +0000 |
655 | @@ -0,0 +1,36 @@ |
656 | +'''Bugs and crashes for the Ubuntu GNOME flavour. |
657 | + |
658 | +Copyright (C) 2013 Canonical Ltd. |
659 | +Author: Martin Pitt <martin.pitt@ubuntu.com> |
660 | + |
661 | +This program is free software; you can redistribute it and/or modify it |
662 | +under the terms of the GNU General Public License as published by the |
663 | +Free Software Foundation; either version 2 of the License, or (at your |
664 | +option) any later version. See http://www.gnu.org/copyleft/gpl.html for |
665 | +the full text of the license. |
666 | +''' |
667 | + |
668 | + |
669 | +def add_info(report, ui): |
670 | + # redirect reports against PPA packages to ubuntu-gnome project |
671 | + if '[origin: LP-PPA-gnome3-team-gnome3' in report.get('Package', ''): |
672 | + report['CrashDB'] = '''{ |
673 | + "impl": "launchpad", |
674 | + "project": "ubuntu-gnome", |
675 | + "bug_pattern_url": "http://people.canonical.com/~ubuntu-archive/bugpatterns/bugpatterns.xml", |
676 | + "dupdb_url": "http://phillw.net/ubuntu-gnome/apport_duplicates/", |
677 | + }''' |
678 | + |
679 | + # using the staging PPA? |
680 | + if 'LP-PPA-gnome3-team-gnome3-staging' in report['Package']: |
681 | + report.setdefault('Tags', '') |
682 | + report['Tags'] += ' gnome3-staging' |
683 | + |
684 | + # using the next PPA? |
685 | + if 'LP-PPA-gnome3-team-gnome3-next' in report['Package']: |
686 | + report.setdefault('Tags', '') |
687 | + report['Tags'] += ' gnome3-next' |
688 | + |
689 | + if '[origin: LP-PPA-gnome3-team-gnome3' in report.get('Dependencies', ''): |
690 | + report.setdefault('Tags', '') |
691 | + report['Tags'] += ' gnome3-ppa' |
692 | |
693 | === added file 'data/general-hooks/ubuntu.py' |
694 | --- data/general-hooks/ubuntu.py 1970-01-01 00:00:00 +0000 |
695 | +++ data/general-hooks/ubuntu.py 2016-04-06 16:42:48 +0000 |
696 | @@ -0,0 +1,507 @@ |
697 | +'''Attach generally useful information, not specific to any package. |
698 | + |
699 | +Copyright (C) 2009 Canonical Ltd. |
700 | +Authors: Matt Zimmerman <mdz@canonical.com>, |
701 | + Brian Murray <brian@ubuntu.com> |
702 | + |
703 | +This program is free software; you can redistribute it and/or modify it |
704 | +under the terms of the GNU General Public License as published by the |
705 | +Free Software Foundation; either version 2 of the License, or (at your |
706 | +option) any later version. See http://www.gnu.org/copyleft/gpl.html for |
707 | +the full text of the license. |
708 | +''' |
709 | + |
710 | +import re, os, os.path, time, sys, subprocess |
711 | + |
712 | +import apport.packaging |
713 | +import apport.hookutils |
714 | +import problem_report |
715 | +from apport import unicode_gettext as _ |
716 | +from glob import glob |
717 | + |
718 | +if sys.version < '3': |
719 | + from urlparse import urljoin |
720 | + from urllib2 import urlopen |
721 | + (urljoin, urlopen) # pyflakes |
722 | +else: |
723 | + from urllib.parse import urljoin |
724 | + from urllib.request import urlopen |
725 | + |
726 | + |
727 | +def add_info(report, ui): |
728 | + add_release_info(report) |
729 | + |
730 | + add_kernel_info(report) |
731 | + |
732 | + add_cloud_info(report) |
733 | + |
734 | + add_proposed_info(report) |
735 | + |
736 | + try: |
737 | + report['ApportVersion'] = apport.packaging.get_version('apport') |
738 | + except ValueError: |
739 | + # might happen on local installs |
740 | + pass |
741 | + |
742 | + if report.get('ProblemType') == 'Package': |
743 | + # every error report regarding a package should have package manager |
744 | + # version information |
745 | + apport.hookutils.attach_related_packages(report, ['dpkg', 'apt']) |
746 | + check_for_disk_error(report) |
747 | + # check to see if the real root on a persistent media is full |
748 | + if 'LiveMediaBuild' in report: |
749 | + st = os.statvfs('/cdrom') |
750 | + free_mb = st.f_bavail * st.f_frsize / 1000000 |
751 | + if free_mb < 10: |
752 | + report['UnreportableReason'] = 'Your system partition has less than \ |
753 | +%s MB of free space available, which leads to problems using applications \ |
754 | +and installing updates. Please free some space.' % (free_mb) |
755 | + |
756 | + match_error_messages(report) |
757 | + |
758 | + for attachment in ['DpkgTerminalLog', 'VarLogDistupgradeApttermlog']: |
759 | + if attachment in report: |
760 | + log_file = get_attachment_contents(report, attachment) |
761 | + untrimmed_dpkg_log = log_file |
762 | + check_attachment_for_errors(report, attachment) |
763 | + trimmed_log = get_attachment_contents(report, attachment) |
764 | + trimmed_log = trimmed_log.split('\n') |
765 | + lines = [] |
766 | + for line in untrimmed_dpkg_log.splitlines(): |
767 | + if line not in trimmed_log: |
768 | + lines.append(str(line)) |
769 | + elif line in trimmed_log: |
770 | + trimmed_log.remove(line) |
771 | + dpkg_log_without_error = '\n'.join(lines) |
772 | + |
773 | + # crash reports from live system installer often expose target mount |
774 | + for f in ('ExecutablePath', 'InterpreterPath'): |
775 | + if f in report and report[f].startswith('/target/'): |
776 | + report[f] = report[f][7:] |
777 | + |
778 | + # Allow filing update-manager bugs with obsolete packages |
779 | + if report.get('Package', '').startswith('update-manager'): |
780 | + os.environ['APPORT_IGNORE_OBSOLETE_PACKAGES'] = '1' |
781 | + |
782 | + # file bugs against OEM project for modified packages |
783 | + if 'Package' in report: |
784 | + v = report['Package'].split()[1] |
785 | + oem_project = get_oem_project(report) |
786 | + if oem_project and ('common' in v or oem_project in v): |
787 | + report['CrashDB'] = 'canonical-oem' |
788 | + |
789 | + if 'Package' in report: |
790 | + package = report['Package'].split()[0] |
791 | + if package: |
792 | + apport.hookutils.attach_conffiles(report, package, ui=ui) |
793 | + |
794 | + # do not file bugs against "upgrade-system" if it is not installed (LP#404727) |
795 | + if package == 'upgrade-system' and 'not installed' in report['Package']: |
796 | + report['UnreportableReason'] = 'You do not have the upgrade-system package installed. Please report package upgrade failures against the package that failed to install, or against upgrade-manager.' |
797 | + |
798 | + if 'Package' in report: |
799 | + package = report['Package'].split()[0] |
800 | + if package: |
801 | + apport.hookutils.attach_upstart_overrides(report, package) |
802 | + apport.hookutils.attach_upstart_logs(report, package) |
803 | + |
804 | + # build a duplicate signature tag for package reports |
805 | + if report.get('ProblemType') == 'Package': |
806 | + |
807 | + if 'DpkgTerminalLog' in report: |
808 | + # this was previously trimmed in check_attachment_for_errors |
809 | + termlog = report['DpkgTerminalLog'] |
810 | + elif 'VarLogDistupgradeApttermlog' in report: |
811 | + termlog = get_attachment_contents(report, 'VarLogDistupgradeApttermlog') |
812 | + else: |
813 | + termlog = None |
814 | + if termlog: |
815 | + # for packages that run update-grub include /etc/default/grub |
816 | + UPDATE_BOOT = ['friendly-recovery', 'linux', 'memtest86+', |
817 | + 'plymouth', 'ubuntu-meta', 'virtualbox-ose'] |
818 | + ug_failure = r'/etc/kernel/post(inst|rm)\.d/zz-update-grub exited with return code [1-9]+' |
819 | + mkconfig_failure = r'/usr/sbin/grub-mkconfig.*/etc/default/grub: Syntax error' |
820 | + if re.search(ug_failure, termlog) or re.search(mkconfig_failure, termlog): |
821 | + if report['SourcePackage'] in UPDATE_BOOT: |
822 | + apport.hookutils.attach_default_grub(report, 'EtcDefaultGrub') |
823 | + dupe_sig = '' |
824 | + PKG_MSGS = ('Authenticating', 'De-configuring', 'Examining', |
825 | + 'Installing ', 'Preparing', 'Processing triggers', 'Purging', |
826 | + 'Removing', 'Replaced', 'Replacing', 'Setting up', |
827 | + 'Unpacking', 'Would remove') |
828 | + for line in termlog.split('\n'): |
829 | + if line.startswith(PKG_MSGS): |
830 | + dupe_sig = '%s\n' % line |
831 | + continue |
832 | + dupe_sig += '%s\n' % line |
833 | + if 'dpkg: error' in dupe_sig and line.startswith(' '): |
834 | + if 'trying to overwrite' in line: |
835 | + conflict_pkg = re.search('in package (.*) ', line) |
836 | + if conflict_pkg and not apport.packaging.is_distro_package(conflict_pkg.group(1)): |
837 | + report['UnreportableReason'] = _('An Ubuntu package has a file conflict with a package that is not a genuine Ubuntu package.') |
838 | + add_tag(report, 'package-conflict') |
839 | + if [d for d in PKG_MSGS if d in dupe_sig]: |
840 | + report['DuplicateSignature'] = dupe_sig |
841 | + # the duplicate signature should be the first failure |
842 | + break |
843 | + if dupe_sig: |
844 | + if dpkg_log_without_error.find(dupe_sig) != -1: |
845 | + report['UnreportableReason'] = _('You have already encountered this package installation failure.') |
846 | + |
847 | + |
848 | +def match_error_messages(report): |
849 | + # There are enough of these now that it is probably worth refactoring... |
850 | + # -mdz |
851 | + if report.get('ProblemType') == 'Package': |
852 | + if 'failed to install/upgrade: corrupted filesystem tarfile' in report.get('Title', ''): |
853 | + report['UnreportableReason'] = 'This failure was caused by a corrupted package download or file system corruption.' |
854 | + |
855 | + if 'is already installed and configured' in report.get('ErrorMessage', ''): |
856 | + report['SourcePackage'] = 'dpkg' |
857 | + |
858 | + |
859 | +def check_attachment_for_errors(report, attachment): |
860 | + if report.get('ProblemType') == 'Package': |
861 | + wrong_grub_msg = _('''Your system was initially configured with grub version 2, but you have removed it from your system in favor of grub 1 without configuring it. To ensure your bootloader configuration is updated whenever a new kernel is available, open a terminal and run: |
862 | + |
863 | + sudo apt-get install grub-pc |
864 | +''') |
865 | + |
866 | + trim_dpkg_log(report) |
867 | + log_file = get_attachment_contents(report, attachment) |
868 | + |
869 | + if 'DpkgTerminalLog' in report \ |
870 | + and re.search(r'^Not creating /boot/grub/menu.lst as you wish', report['DpkgTerminalLog'], re.MULTILINE): |
871 | + grub_hook_failure = True |
872 | + else: |
873 | + grub_hook_failure = False |
874 | + |
875 | + if report['Package'] not in ['grub', 'grub2']: |
876 | + # linux-image postinst emits this when update-grub fails |
877 | + # https://wiki.ubuntu.com/KernelTeam/DebuggingUpdateErrors |
878 | + grub_errors = [r'^User postinst hook script \[.*update-grub\] exited with value', |
879 | + r'^run-parts: /etc/kernel/post(inst|rm).d/zz-update-grub exited with return code [1-9]+', |
880 | + r'^/usr/sbin/grub-probe: error'] |
881 | + |
882 | + for grub_error in grub_errors: |
883 | + if attachment in report and re.search(grub_error, log_file, re.MULTILINE): |
884 | + # File these reports on the grub package instead |
885 | + grub_package = apport.packaging.get_file_package('/usr/sbin/update-grub') |
886 | + if grub_package is None or grub_package == 'grub' and 'grub-probe' not in log_file: |
887 | + report['SourcePackage'] = 'grub' |
888 | + if os.path.exists('/boot/grub/grub.cfg') and grub_hook_failure: |
889 | + report['UnreportableReason'] = wrong_grub_msg |
890 | + else: |
891 | + report['SourcePackage'] = 'grub2' |
892 | + |
893 | + if report['Package'] != 'initramfs-tools': |
894 | + # update-initramfs emits this when it fails, usually invoked from the linux-image postinst |
895 | + # https://wiki.ubuntu.com/KernelTeam/DebuggingUpdateErrors |
896 | + if attachment in report and re.search(r'^update-initramfs: failed for ', log_file, re.MULTILINE): |
897 | + # File these reports on the initramfs-tools package instead |
898 | + report['SourcePackage'] = 'initramfs-tools' |
899 | + |
900 | + if report['Package'] in ['emacs22', 'emacs23', 'emacs-snapshot', 'xemacs21']: |
901 | + # emacs add-on packages trigger byte compilation, which might fail |
902 | + # we are very interested in reading the compilation log to determine |
903 | + # where to reassign this report to |
904 | + regex = r'^!! Byte-compilation for x?emacs\S+ failed!' |
905 | + if attachment in report and re.search(regex, log_file, re.MULTILINE): |
906 | + for line in log_file.split('\n'): |
907 | + m = re.search(r'^!! and attach the file (\S+)', line) |
908 | + if m: |
909 | + path = m.group(1) |
910 | + apport.hookutils.attach_file_if_exists(report, path) |
911 | + |
912 | + if report['Package'].startswith('linux-image-') and attachment in report: |
913 | + # /etc/kernel/*.d failures from kernel package postinst |
914 | + m = re.search(r'^run-parts: (/etc/kernel/\S+\.d/\S+) exited with return code \d+', log_file, re.MULTILINE) |
915 | + if m: |
916 | + path = m.group(1) |
917 | + package = apport.packaging.get_file_package(path) |
918 | + if package: |
919 | + report['SourcePackage'] = package |
920 | + report['ErrorMessage'] = m.group(0) |
921 | + if package == 'grub-pc' and grub_hook_failure: |
922 | + report['UnreportableReason'] = wrong_grub_msg |
923 | + else: |
924 | + report['UnreportableReason'] = 'This failure was caused by a program which did not originate from Ubuntu' |
925 | + |
926 | + error_message = report.get('ErrorMessage') |
927 | + corrupt_package = 'This failure was caused by a corrupted package download or file system corruption.' |
928 | + out_of_memory = 'This failure was caused by the system running out of memory.' |
929 | + |
930 | + if 'failed to install/upgrade: corrupted filesystem tarfile' in report.get('Title', ''): |
931 | + report['UnreportableReason'] = corrupt_package |
932 | + |
933 | + if 'dependency problems - leaving unconfigured' in error_message: |
934 | + report['UnreportableReason'] = 'This failure is a followup error from a previous package install failure.' |
935 | + |
936 | + if 'failed to allocate memory' in error_message: |
937 | + report['UnreportableReason'] = out_of_memory |
938 | + |
939 | + if 'cannot access archive' in error_message: |
940 | + report['UnreportableReason'] = corrupt_package |
941 | + |
942 | + if re.search(r'(failed to read|failed in write|short read) on buffer copy', error_message): |
943 | + report['UnreportableReason'] = corrupt_package |
944 | + |
945 | + if re.search(r'(failed to read|failed to write|failed to seek|unexpected end of file or stream)', error_message): |
946 | + report['UnreportableReason'] = corrupt_package |
947 | + |
948 | + if re.search(r'(--fsys-tarfile|dpkg-deb --control) returned error exit status 2', error_message): |
949 | + report['UnreportableReason'] = corrupt_package |
950 | + |
951 | + if attachment in report and re.search(r'dpkg-deb: error.*is not a debian format archive', log_file, re.MULTILINE): |
952 | + report['UnreportableReason'] = corrupt_package |
953 | + |
954 | + if 'is already installed and configured' in report.get('ErrorMessage', ''): |
955 | + # there is insufficient information in the data currently gathered |
956 | + # so gather more data |
957 | + report['SourcePackage'] = 'dpkg' |
958 | + report['AptdaemonVersion'] = apport.packaging.get_version('aptdaemon') |
959 | + apport.hookutils.attach_file_if_exists(report, '/var/log/dpkg.log', 'DpkgLog') |
960 | + apport.hookutils.attach_file_if_exists(report, '/var/log/apt/term.log', 'AptTermLog') |
961 | + # gather filenames in /var/crash to see if there is one for dpkg |
962 | + reports = glob('/var/crash/*') |
963 | + if reports: |
964 | + report['CrashReports'] = apport.hookutils.command_output( |
965 | + ['stat', '-c', '%a:%u:%g:%s:%y:%x:%n'] + reports) |
966 | + add_tag(report, 'already-installed') |
967 | + |
968 | + |
969 | +def check_for_disk_error(report): |
970 | + devs_to_check = [] |
971 | + if 'Dmesg.txt' not in report and 'CurrentDmesg.txt' not in report: |
972 | + return |
973 | + if 'Df.txt' not in report: |
974 | + return |
975 | + df = report['Df.txt'] |
976 | + device_error = False |
977 | + for line in df: |
978 | + line = line.strip('\n') |
979 | + if line.endswith('/') or line.endswith('/usr') or line.endswith('/var'): |
980 | + # without manipulation it'd look like /dev/sda1 |
981 | + device = line.split(' ')[0].strip('0123456789') |
982 | + device = device.replace('/dev/', '') |
983 | + devs_to_check.append(device) |
984 | + dmesg = report.get('CurrentDmesg.txt', report['Dmesg.txt']) |
985 | + for line in dmesg: |
986 | + line = line.strip('\n') |
987 | + if 'I/O error' in line: |
988 | + # no device in this line |
989 | + if 'journal commit I/O error' in line: |
990 | + continue |
991 | + for dev in devs_to_check: |
992 | + if re.search(dev, line): |
993 | + error_device = dev |
994 | + device_error = True |
995 | + break |
996 | + if device_error: |
997 | + report['UnreportableReason'] = 'This failure was caused by a hardware error on /dev/%s' % error_device |
998 | + |
999 | + |
1000 | +def add_kernel_info(report): |
1001 | + # This includes the Ubuntu packaged kernel version |
1002 | + apport.hookutils.attach_file_if_exists(report, '/proc/version_signature', 'ProcVersionSignature') |
1003 | + |
1004 | + |
1005 | +def add_release_info(report): |
1006 | + # https://bugs.launchpad.net/bugs/364649 |
1007 | + media = '/var/log/installer/media-info' |
1008 | + apport.hookutils.attach_file_if_exists(report, media, 'InstallationMedia') |
1009 | + |
1010 | + # if we are running from a live system, add the build timestamp |
1011 | + apport.hookutils.attach_file_if_exists( |
1012 | + report, '/cdrom/.disk/info', 'LiveMediaBuild') |
1013 | + if os.path.exists('/cdrom/.disk/info'): |
1014 | + report['CasperVersion'] = apport.packaging.get_version('casper') |
1015 | + |
1016 | + # https://wiki.ubuntu.com/FoundationsTeam/Specs/OemTrackingId |
1017 | + apport.hookutils.attach_file_if_exists( |
1018 | + report, '/var/lib/ubuntu_dist_channel', 'DistributionChannelDescriptor') |
1019 | + |
1020 | + release_codename = apport.hookutils.command_output(['lsb_release', '-sc'], stderr=None) |
1021 | + if release_codename.startswith('Error'): |
1022 | + release_codename = None |
1023 | + else: |
1024 | + add_tag(report, release_codename) |
1025 | + |
1026 | + if os.path.exists(media): |
1027 | + mtime = os.stat(media).st_mtime |
1028 | + human_mtime = time.strftime('%Y-%m-%d', time.gmtime(mtime)) |
1029 | + delta = time.time() - mtime |
1030 | + report['InstallationDate'] = 'Installed on %s (%d days ago)' % (human_mtime, delta / 86400) |
1031 | + |
1032 | + log = '/var/log/dist-upgrade/main.log' |
1033 | + if os.path.exists(log): |
1034 | + mtime = os.stat(log).st_mtime |
1035 | + human_mtime = time.strftime('%Y-%m-%d', time.gmtime(mtime)) |
1036 | + delta = time.time() - mtime |
1037 | + |
1038 | + # Would be nice if this also showed which release was originally installed |
1039 | + report['UpgradeStatus'] = 'Upgraded to %s on %s (%d days ago)' % (release_codename, human_mtime, delta / 86400) |
1040 | + else: |
1041 | + report['UpgradeStatus'] = 'No upgrade log present (probably fresh install)' |
1042 | + |
1043 | + # check for system-image version on phablet builds |
1044 | + if apport.hookutils.command_available('system-image-cli'): |
1045 | + report['SystemImageInfo'] = '%s' % apport.hookutils.command_output( |
1046 | + ['system-image-cli', '-i'], stderr=None) |
1047 | + |
1048 | + |
1049 | +def add_proposed_info(report): |
1050 | + '''Tag if package comes from -proposed''' |
1051 | + |
1052 | + if 'Package' not in report: |
1053 | + return |
1054 | + try: |
1055 | + (package, version) = report['Package'].split()[:2] |
1056 | + except ValueError: |
1057 | + print('WARNING: malformed Package field: ' + report['Package']) |
1058 | + return |
1059 | + |
1060 | + apt_cache = subprocess.Popen(['apt-cache', 'showpkg', package], |
1061 | + stdout=subprocess.PIPE, |
1062 | + universal_newlines=True) |
1063 | + out = apt_cache.communicate()[0] |
1064 | + if apt_cache.returncode != 0: |
1065 | + print('WARNING: apt-cache showpkg %s failed' % package) |
1066 | + return |
1067 | + |
1068 | + found_proposed = False |
1069 | + found_updates = False |
1070 | + found_security = False |
1071 | + for line in out.splitlines(): |
1072 | + if line.startswith(version + ' ('): |
1073 | + if '-proposed_' in line: |
1074 | + found_proposed = True |
1075 | + if '-updates_' in line: |
1076 | + found_updates = True |
1077 | + if '-security' in line: |
1078 | + found_security = True |
1079 | + |
1080 | + if found_proposed and not found_updates and not found_security: |
1081 | + add_tag(report, 'package-from-proposed') |
1082 | + |
1083 | + |
1084 | +def add_cloud_info(report): |
1085 | + # EC2 and Ubuntu Enterprise Cloud instances |
1086 | + ec2_instance = False |
1087 | + for pkg in ('ec2-init', 'cloud-init'): |
1088 | + try: |
1089 | + if apport.packaging.get_version(pkg): |
1090 | + ec2_instance = True |
1091 | + break |
1092 | + except ValueError: |
1093 | + pass |
1094 | + if ec2_instance: |
1095 | + metadata_url = 'http://169.254.169.254/latest/meta-data/' |
1096 | + ami_id_url = urljoin(metadata_url, 'ami-id') |
1097 | + |
1098 | + try: |
1099 | + ami = urlopen(ami_id_url, timeout=5).read() |
1100 | + except: |
1101 | + ami = None |
1102 | + |
1103 | + if ami and ami.startswith(b'ami'): |
1104 | + add_tag(report, 'ec2-images') |
1105 | + fields = {'Ec2AMIManifest': 'ami-manifest-path', |
1106 | + 'Ec2Kernel': 'kernel-id', |
1107 | + 'Ec2Ramdisk': 'ramdisk-id', |
1108 | + 'Ec2InstanceType': 'instance-type', |
1109 | + 'Ec2AvailabilityZone': 'placement/availability-zone'} |
1110 | + |
1111 | + report['Ec2AMI'] = ami |
1112 | + for key, value in fields.items(): |
1113 | + try: |
1114 | + report[key] = urlopen(urljoin(metadata_url, value), timeout=5).read() |
1115 | + except: |
1116 | + report[key] = 'unavailable' |
1117 | + else: |
1118 | + add_tag(report, 'uec-images') |
1119 | + |
1120 | + |
1121 | +def add_tag(report, tag): |
1122 | + report.setdefault('Tags', '') |
1123 | + report['Tags'] += ' ' + tag |
1124 | + |
1125 | + |
1126 | +def get_oem_project(report): |
1127 | + '''Determine OEM project name from Distribution Channel Descriptor |
1128 | + |
1129 | + Return None if it cannot be determined or does not exist. |
1130 | + ''' |
1131 | + dcd = report.get('DistributionChannelDescriptor', None) |
1132 | + if dcd and dcd.startswith('canonical-oem-'): |
1133 | + return dcd.split('-')[2] |
1134 | + return None |
1135 | + |
1136 | + |
1137 | +def trim_dpkg_log(report): |
1138 | + '''Trim DpkgTerminalLog to the most recent installation session.''' |
1139 | + |
1140 | + if 'DpkgTerminalLog' not in report: |
1141 | + return |
1142 | + if not report['DpkgTerminalLog'].strip(): |
1143 | + report['UnreportableReason'] = '/var/log/apt/term.log does not contain any data' |
1144 | + return |
1145 | + lines = [] |
1146 | + dpkg_log = report['DpkgTerminalLog'] |
1147 | + if isinstance(dpkg_log, bytes): |
1148 | + trim_re = re.compile(b'^\(.* ... \d+ .*\)$') |
1149 | + start_re = re.compile(b'^Log started:') |
1150 | + else: |
1151 | + trim_re = re.compile('^\(.* ... \d+ .*\)$') |
1152 | + start_re = re.compile('^Log started:') |
1153 | + for line in dpkg_log.splitlines(): |
1154 | + if start_re.match(line) or trim_re.match(line): |
1155 | + lines = [] |
1156 | + continue |
1157 | + lines.append(line) |
1158 | + # If trimming the log file fails, return the whole log file. |
1159 | + if not lines: |
1160 | + return |
1161 | + if isinstance(lines[0], str): |
1162 | + report['DpkgTerminalLog'] = '\n'.join(lines) |
1163 | + else: |
1164 | + report['DpkgTerminalLog'] = '\n'.join([str(line.encode('utf-8')) for line in lines]) |
1165 | + |
1166 | + |
1167 | +def get_attachment_contents(report, attachment): |
1168 | + if isinstance(report[attachment], problem_report.CompressedValue): |
1169 | + contents = report[attachment].get_value().decode('UTF-8') |
1170 | + else: |
1171 | + contents = report[attachment] |
1172 | + return contents |
1173 | + |
1174 | +if __name__ == '__main__': |
1175 | + import sys |
1176 | + |
1177 | + # for testing: update report file given on command line |
1178 | + if len(sys.argv) != 2: |
1179 | + sys.stderr.write('Usage for testing this hook: %s <report file>\n' % sys.argv[0]) |
1180 | + sys.exit(1) |
1181 | + |
1182 | + report_file = sys.argv[1] |
1183 | + |
1184 | + report = apport.Report() |
1185 | + with open(report_file, 'rb') as f: |
1186 | + report.load(f) |
1187 | + report_keys = set(report.keys()) |
1188 | + |
1189 | + new_report = report.copy() |
1190 | + add_info(new_report, None) |
1191 | + |
1192 | + new_report_keys = set(new_report.keys()) |
1193 | + |
1194 | + # Show differences |
1195 | + changed = 0 |
1196 | + for key in sorted(report_keys | new_report_keys): |
1197 | + if key in new_report_keys and key not in report_keys: |
1198 | + print('+%s: %s' % (key, new_report[key])) |
1199 | + changed += 1 |
1200 | + elif key in report_keys and key not in new_report_keys: |
1201 | + print('-%s: (deleted)' % key) |
1202 | + changed += 1 |
1203 | + print('%d items changed' % changed) |
1204 | |
1205 | === added file 'data/general-hooks/wayland_session.py' |
1206 | --- data/general-hooks/wayland_session.py 1970-01-01 00:00:00 +0000 |
1207 | +++ data/general-hooks/wayland_session.py 2016-04-06 16:42:48 +0000 |
1208 | @@ -0,0 +1,9 @@ |
1209 | +'''Detect if the current session is running under wayland''' |
1210 | + |
1211 | +import os |
1212 | + |
1213 | + |
1214 | +def add_info(report, ui): |
1215 | + if os.environ.get('WAYLAND_DISPLAY'): |
1216 | + report.setdefault('Tags', '') |
1217 | + report['Tags'] += ' wayland-session' |
1218 | |
1219 | === modified file 'data/iwlwifi_error_dump' |
1220 | --- data/iwlwifi_error_dump 2015-09-24 12:19:28 +0000 |
1221 | +++ data/iwlwifi_error_dump 2016-04-06 16:42:48 +0000 |
1222 | @@ -24,7 +24,7 @@ |
1223 | sys.exit(1) |
1224 | |
1225 | pr = apport.Report('KernelCrash') |
1226 | -apport.add_package(apport.packaging.get_kernel_package()) |
1227 | +pr.add_package(apport.packaging.get_kernel_package()) |
1228 | pr['Title'] = 'iwlwifi firmware error' |
1229 | pr.add_os_info() |
1230 | |
1231 | |
1232 | === added file 'data/package-hooks/source_debian-installer.py' |
1233 | --- data/package-hooks/source_debian-installer.py 1970-01-01 00:00:00 +0000 |
1234 | +++ data/package-hooks/source_debian-installer.py 2016-04-06 16:42:48 +0000 |
1235 | @@ -0,0 +1,59 @@ |
1236 | +'''Apport package hook for the Debian installer. |
1237 | + |
1238 | +Copyright (C) 2011 Canonical Ltd. |
1239 | +Authors: Colin Watson <cjwatson@ubuntu.com>, |
1240 | + Brian Murray <brian@ubuntu.com>''' |
1241 | + |
1242 | +import os |
1243 | +from apport.hookutils import attach_hardware, command_available, command_output, attach_root_command_outputs |
1244 | + |
1245 | + |
1246 | +def add_installation_log(report, ident, name): |
1247 | + if os.path.exists('/var/log/installer/%s' % name): |
1248 | + f = '/var/log/installer/%s' % name |
1249 | + elif os.path.exists('/var/log/%s' % name): |
1250 | + f = '/var/log/%s' % name |
1251 | + else: |
1252 | + return |
1253 | + |
1254 | + if os.access(f, os.R_OK): |
1255 | + report[ident] = (f,) |
1256 | + else: |
1257 | + attach_root_command_outputs(report, {ident: "cat '%s'" % f}) |
1258 | + |
1259 | + |
1260 | +def add_info(report): |
1261 | + attach_hardware(report) |
1262 | + |
1263 | + report['DiskUsage'] = command_output(['df']) |
1264 | + report['MemoryUsage'] = command_output(['free']) |
1265 | + |
1266 | + if command_available('dmraid'): |
1267 | + attach_root_command_outputs(report, {'DmraidSets': 'dmraid -s', |
1268 | + 'DmraidDevices': 'dmraid -r'}) |
1269 | + if command_available('dmsetup'): |
1270 | + attach_root_command_outputs(report, {'DeviceMapperTables': 'dmsetup table'}) |
1271 | + |
1272 | + try: |
1273 | + installer_version = open('/var/log/installer/version') |
1274 | + for line in installer_version: |
1275 | + if line.startswith('ubiquity '): |
1276 | + # File these reports on the ubiquity package instead |
1277 | + report['SourcePackage'] = 'ubiquity' |
1278 | + break |
1279 | + installer_version.close() |
1280 | + except IOError: |
1281 | + pass |
1282 | + |
1283 | + add_installation_log(report, 'DIPartman', 'partman') |
1284 | + add_installation_log(report, 'DISyslog', 'syslog') |
1285 | + |
1286 | + |
1287 | +if __name__ == '__main__': |
1288 | + report = {} |
1289 | + add_info(report) |
1290 | + for key in report: |
1291 | + if isinstance(report[key], type('')): |
1292 | + print('%s: %s' % (key, report[key].split('\n', 1)[0])) |
1293 | + else: |
1294 | + print('%s: %s' % (key, type(report[key]))) |
1295 | |
1296 | === added file 'data/package-hooks/source_linux-nexus7.py' |
1297 | --- data/package-hooks/source_linux-nexus7.py 1970-01-01 00:00:00 +0000 |
1298 | +++ data/package-hooks/source_linux-nexus7.py 2016-04-06 16:42:48 +0000 |
1299 | @@ -0,0 +1,25 @@ |
1300 | +'''Apport package hook for the Linux nexus7 kernel. |
1301 | + |
1302 | +(c) 2012 Canonical Ltd. |
1303 | +Author: Martin Pitt <martin.pitt@canonical.com> |
1304 | + |
1305 | +This program is free software; you can redistribute it and/or modify it |
1306 | +under the terms of the GNU General Public License as published by the |
1307 | +Free Software Foundation; either version 2 of the License, or (at your |
1308 | +option) any later version. See http://www.gnu.org/copyleft/gpl.html for |
1309 | +the full text of the license. |
1310 | +''' |
1311 | + |
1312 | + |
1313 | +def add_info(report, ui): |
1314 | + # direct bugs to the ubuntu-nexus7 project |
1315 | + report['CrashDB'] = '''{"impl": "launchpad", |
1316 | + "project": "ubuntu-nexus7", |
1317 | + "bug_pattern_url": "http://people.canonical.com/~ubuntu-archive/bugpatterns/bugpatterns.xml", |
1318 | + }''' |
1319 | + |
1320 | + # collect information from original kernel hook |
1321 | + report.add_hooks_info(ui, srcpackage='linux') |
1322 | + |
1323 | + # add additional tags |
1324 | + report['Tags'] += ' mobile nexus7' |
1325 | |
1326 | === added file 'data/package-hooks/source_linux.py' |
1327 | --- data/package-hooks/source_linux.py 1970-01-01 00:00:00 +0000 |
1328 | +++ data/package-hooks/source_linux.py 2016-04-06 16:42:48 +0000 |
1329 | @@ -0,0 +1,134 @@ |
1330 | +'''Apport package hook for the Linux kernel. |
1331 | + |
1332 | +(c) 2008 Canonical Ltd. |
1333 | +Contributors: |
1334 | +Matt Zimmerman <mdz@canonical.com> |
1335 | +Martin Pitt <martin.pitt@canonical.com> |
1336 | +Brian Murray <brian@canonical.com> |
1337 | + |
1338 | +This program is free software; you can redistribute it and/or modify it |
1339 | +under the terms of the GNU General Public License as published by the |
1340 | +Free Software Foundation; either version 2 of the License, or (at your |
1341 | +option) any later version. See http://www.gnu.org/copyleft/gpl.html for |
1342 | +the full text of the license. |
1343 | +''' |
1344 | + |
1345 | +import os.path, re |
1346 | +import apport |
1347 | +import apport.hookutils |
1348 | + |
1349 | +SUBMIT_SCRIPT = "/usr/bin/kerneloops-submit" |
1350 | + |
1351 | + |
1352 | +def add_info(report, ui): |
1353 | + |
1354 | + # If running an upstream kernel, instruct reporter to file bug upstream |
1355 | + abi = re.search("-(.*?)-", report['Uname']) |
1356 | + if abi and (abi.group(1) == '999' or re.search("^0\d", abi.group(1))): |
1357 | + ui.information("It appears you are currently running a mainline kernel. It would be better to report this bug upstream at http://bugzilla.kernel.org/ so that the upstream kernel developers are aware of the issue. If you'd still like to file a bug against the Ubuntu kernel, please boot with an official Ubuntu kernel and re-file.") |
1358 | + report['UnreportableReason'] = 'The running kernel is not an Ubuntu kernel' |
1359 | + return |
1360 | + |
1361 | + version_signature = report.get('ProcVersionSignature', '') |
1362 | + if not version_signature.startswith('Ubuntu ') and 'CrashDB' not in report: |
1363 | + report['UnreportableReason'] = 'The running kernel is not an Ubuntu kernel' |
1364 | + return |
1365 | + |
1366 | + # Prevent reports against the linux-meta family, redirect to the main package. |
1367 | + if report['SourcePackage'].startswith('linux-meta'): |
1368 | + report['SourcePackage'] = report['SourcePackage'].replace('linux-meta', 'linux', 1) |
1369 | + |
1370 | + report.setdefault('Tags', '') |
1371 | + |
1372 | + # Tag up back ported kernel reports for easy identification |
1373 | + if report['SourcePackage'].startswith('linux-lts-'): |
1374 | + report['Tags'] += ' qa-kernel-lts-testing' |
1375 | + |
1376 | + apport.hookutils.attach_hardware(report) |
1377 | + apport.hookutils.attach_alsa(report) |
1378 | + apport.hookutils.attach_wifi(report) |
1379 | + apport.hookutils.attach_file(report, '/proc/fb', 'ProcFB') |
1380 | + |
1381 | + staging_drivers = re.findall("(\w+): module is from the staging directory", |
1382 | + report['CurrentDmesg']) |
1383 | + if staging_drivers: |
1384 | + staging_drivers = list(set(staging_drivers)) |
1385 | + report['StagingDrivers'] = ' '.join(staging_drivers) |
1386 | + report['Tags'] += ' staging' |
1387 | + # Only if there is an existing title prepend '[STAGING]'. |
1388 | + # Changed to prevent bug titles with just '[STAGING] '. |
1389 | + if report.get('Title'): |
1390 | + report['Title'] = '[STAGING] ' + report.get('Title') |
1391 | + |
1392 | + apport.hookutils.attach_file_if_exists(report, "/etc/initramfs-tools/conf.d/resume", key="HibernationDevice") |
1393 | + |
1394 | + uname_release = os.uname()[2] |
1395 | + lrm_package_name = 'linux-restricted-modules-%s' % uname_release |
1396 | + lbm_package_name = 'linux-backports-modules-%s' % uname_release |
1397 | + |
1398 | + apport.hookutils.attach_related_packages(report, [lrm_package_name, lbm_package_name, 'linux-firmware']) |
1399 | + |
1400 | + if ('Failure' in report and report['Failure'] == 'oops' and |
1401 | + 'OopsText' in report and os.path.exists(SUBMIT_SCRIPT)): |
1402 | + # tag kerneloopses with the version of the kerneloops package |
1403 | + apport.hookutils.attach_related_packages(report, ['kerneloops-daemon']) |
1404 | + oopstext = report['OopsText'] |
1405 | + dupe_sig1 = None |
1406 | + dupe_sig2 = None |
1407 | + for line in oopstext.splitlines(): |
1408 | + if line.startswith('BUG:'): |
1409 | + bug = re.compile('at [0-9a-f]+$') |
1410 | + dupe_sig1 = bug.sub('at location', line) |
1411 | + rip = re.compile('^[RE]?IP:') |
1412 | + if re.search(rip, line): |
1413 | + loc = re.compile('\[<[0-9a-f]+>\]') |
1414 | + dupe_sig2 = loc.sub('location', line) |
1415 | + if dupe_sig1 and dupe_sig2: |
1416 | + report['DuplicateSignature'] = '%s %s' % (dupe_sig1, dupe_sig2) |
1417 | + # it's from kerneloops, ask the user whether to submit there as well |
1418 | + if ui: |
1419 | + # Some OopsText begin with "--- [ cut here ] ---", so remove it |
1420 | + oopstext = re.sub("---.*\n", "", oopstext) |
1421 | + first_line = re.match(".*\n", oopstext) |
1422 | + ip = re.search("(R|E)?IP\:.*\n", oopstext) |
1423 | + kernel_driver = re.search("(R|E)?IP(:| is at) .*\[(.*)\]\n", oopstext) |
1424 | + call_trace = re.search("Call Trace(.*\n){,10}", oopstext) |
1425 | + oops = '' |
1426 | + if first_line: |
1427 | + oops += first_line.group(0) |
1428 | + if ip: |
1429 | + oops += ip.group(0) |
1430 | + if call_trace: |
1431 | + oops += call_trace.group(0) |
1432 | + if kernel_driver: |
1433 | + report['Tags'] += ' kernel-driver-%s' % kernel_driver.group(3) |
1434 | + # 2012-01-13 - disable submission question as kerneloops.org is |
1435 | + # down |
1436 | + # if ui.yesno("This report may also be submitted to " |
1437 | + # "http://kerneloops.org/ in order to help collect aggregate " |
1438 | + # "information about kernel problems. This aids in identifying " |
1439 | + # "widespread issues and problematic areas. A condensed " |
1440 | + # "summary of the Oops is shown below. Would you like to submit " |
1441 | + # "information about this crash to kerneloops.org?" |
1442 | + # "\n\n%s" % oops): |
1443 | + # text = report['OopsText'] |
1444 | + # proc = subprocess.Popen(SUBMIT_SCRIPT, stdin=subprocess.PIPE) |
1445 | + # proc.communicate(text) |
1446 | + elif 'Failure' in report and ('resume' in report['Failure'] or |
1447 | + 'suspend' in report['Failure']): |
1448 | + crash_signature = report.crash_signature() |
1449 | + if crash_signature: |
1450 | + report['DuplicateSignature'] = crash_signature |
1451 | + |
1452 | + if report.get('ProblemType') == 'Package': |
1453 | + # in case there is a failure with a grub script |
1454 | + apport.hookutils.attach_related_packages(report, ['grub-pc']) |
1455 | + |
1456 | +if __name__ == '__main__': |
1457 | + r = apport.Report() |
1458 | + r.add_proc_info() |
1459 | + r.add_os_info() |
1460 | + r['ProcVersionSignature'] = 'Ubuntu 3.4.0' |
1461 | + add_info(r, None) |
1462 | + for k, v in r.items(): |
1463 | + print('%s: %s' % (k, v)) |
1464 | |
1465 | === added file 'data/package-hooks/source_ubiquity.py' |
1466 | --- data/package-hooks/source_ubiquity.py 1970-01-01 00:00:00 +0000 |
1467 | +++ data/package-hooks/source_ubiquity.py 2016-04-06 16:42:48 +0000 |
1468 | @@ -0,0 +1,155 @@ |
1469 | +'''Apport package hook for the ubiquity live CD installer. |
1470 | + |
1471 | +Copyright (C) 2009 Canonical Ltd. |
1472 | +Authors: Colin Watson <cjwatson@ubuntu.com>, |
1473 | + Brian Murray <brian@ubuntu.com>''' |
1474 | + |
1475 | +import apport.hookutils |
1476 | +import os.path |
1477 | +import re |
1478 | + |
1479 | + |
1480 | +def add_installation_log(report, ident, name): |
1481 | + f = False |
1482 | + for try_location in ('/var/log/installer/%s', |
1483 | + '/var/log/%s', |
1484 | + '/var/log/upstart/%s'): |
1485 | + if os.path.exists(try_location % name): |
1486 | + f = try_location % name |
1487 | + break |
1488 | + if not f: |
1489 | + return |
1490 | + |
1491 | + if os.access(f, os.R_OK): |
1492 | + with open(f, 'rb') as f: |
1493 | + report[ident] = f.read().decode('UTF-8', 'replace') |
1494 | + elif os.path.exists(f): |
1495 | + apport.hookutils.attach_root_command_outputs(report, {ident: "cat '%s'" % f}) |
1496 | + |
1497 | + |
1498 | +def prepare_duplicate_signature(syslog, collect_grub, collect_trace): |
1499 | + collect = '' |
1500 | + for line in syslog.split('\n'): |
1501 | + if collect_grub: |
1502 | + if 'grub-installer:' in line and collect == "": |
1503 | + collect = ' '.join(line.split(' ')[4:]) + '\n' |
1504 | + continue |
1505 | + elif 'grub-installer:' in line and collect != "": |
1506 | + collect += ' '.join(line.split(' ')[4:]) + '\n' |
1507 | + continue |
1508 | + if not collect_trace and collect != '': |
1509 | + return collect |
1510 | + if 'Traceback (most recent call last):' in line and \ |
1511 | + collect_grub: |
1512 | + collect += ' '.join(line.split(' ')[5:]) + '\n' |
1513 | + continue |
1514 | + if 'Traceback (most recent call last):' in line and \ |
1515 | + not collect_grub: |
1516 | + collect = ' '.join(line.split(' ')[5:]) + '\n' |
1517 | + continue |
1518 | + if len(line.split(' ')[5:]) == 1 and 'Traceback' in collect: |
1519 | + if collect != '': |
1520 | + return collect |
1521 | + if 'Traceback' not in collect: |
1522 | + continue |
1523 | + collect += ' '.join(line.split(' ')[5:]) + '\n' |
1524 | + |
1525 | + |
1526 | +def add_info(report, ui): |
1527 | + add_installation_log(report, 'UbiquitySyslog', 'syslog') |
1528 | + syslog = report['UbiquitySyslog'] |
1529 | + if 'Buffer I/O error on device' in syslog: |
1530 | + if re.search('Attached .* CD-ROM (\w+)', syslog): |
1531 | + cd_drive = re.search('Attached .* CD-ROM (\w+)', syslog).group(1) |
1532 | + cd_error = re.search('Buffer I/O error on device %s' % cd_drive, syslog) |
1533 | + else: |
1534 | + cd_error = None |
1535 | + if cd_error: |
1536 | + ui.information("The system log from your installation contains an error. The specific error commonly occurs when there is an issue with the media from which you were installing. This can happen when your media is dirty or damaged or when you've burned the media at a high speed. Please try cleaning the media and or burning new media at a lower speed. In the event that you continue to encounter these errors it may be an issue with your CD / DVD drive.") |
1537 | + raise StopIteration |
1538 | + if 'I/O error, dev' in syslog: |
1539 | + # check for either usb stick (install media) or hard disk I/O errors |
1540 | + if re.search('I/O error, dev (\w+)', syslog): |
1541 | + error_disk = re.search('I/O error, dev (\w+)', syslog).group(1) |
1542 | + mount = apport.hookutils.command_output(['grep', '%s' % error_disk, '/proc/mounts']) |
1543 | + if 'target' in mount: |
1544 | + ui.information("The system log from your installation contains an error. The specific error commonly occurs when there is an issue with the disk to which you are trying to install Ubuntu. It is recommended that you back up important data on your disk and investigate the situation. Measures you might take include cehcking cable connections for your disks and using software tools to investigate the health of your hardware.") |
1545 | + raise StopIteration |
1546 | + if 'cdrom' in mount: |
1547 | + ui.information("The system log from your installation contains an error. The specific error commonly occurs when there is an issue with the media from which you were installing. Please try creating the USB stick you were installing from again or try installing from a different USB stick.") |
1548 | + raise StopIteration |
1549 | + if 'SQUASHFS error: Unable to read' in syslog: |
1550 | + ui.information("The system log from your installation contains an error. The specific error commonly occurs when there is an issue with the media from which you were installing. This can happen when your media is dirty or damaged or when you've burned the media at a high speed. Please try cleaning the media and or burning new media at a lower speed. In the event that you continue to encounter these errors it may be an issue with your CD / DVD drive.") |
1551 | + raise StopIteration |
1552 | + |
1553 | + if 'Kernel command line' in syslog: |
1554 | + install_cmdline = re.search('Kernel command line: (.*)', syslog).group(1) |
1555 | + else: |
1556 | + install_cmdline = None |
1557 | + if install_cmdline: |
1558 | + report['InstallCmdLine'] = install_cmdline |
1559 | + |
1560 | + if 'Traceback' not in report: |
1561 | + collect_grub = False |
1562 | + collect_trace = False |
1563 | + if 'grub-install ran successfully' not in syslog and 'grub-installer:' in syslog: |
1564 | + collect_grub = True |
1565 | + if 'Traceback' in syslog: |
1566 | + collect_trace = True |
1567 | + if report['ProblemType'] != 'Bug' and collect_grub or \ |
1568 | + report['ProblemType'] != 'Bug' and collect_trace: |
1569 | + duplicate_signature = prepare_duplicate_signature(syslog, collect_grub, collect_trace) |
1570 | + if duplicate_signature: |
1571 | + report['DuplicateSignature'] = duplicate_signature |
1572 | + if collect_grub: |
1573 | + report['SourcePackage'] = 'grub-installer' |
1574 | + |
1575 | + match = re.search('ubiquity.*Ubiquity (.*)\n', syslog) |
1576 | + if match: |
1577 | + match = match.group(1) |
1578 | + report.setdefault('Tags', '') |
1579 | + if match: |
1580 | + report['Tags'] += ' ubiquity-%s' % match.split()[0] |
1581 | + |
1582 | + # tag bug reports where people choose to "upgrade" their install of Ubuntu |
1583 | + if re.search('UpgradeSystem\(\) was called with safe mode', syslog): |
1584 | + report['Tags'] += ' ubiquity-upgrade' |
1585 | + |
1586 | + add_installation_log(report, 'UbiquityPartman', 'partman') |
1587 | + |
1588 | + debug_log = '/var/log/installer/debug' |
1589 | + debug_mode = False |
1590 | + if os.path.exists(debug_log): |
1591 | + try: |
1592 | + fp = open(debug_log, 'r') |
1593 | + except (OSError, IOError): |
1594 | + pass |
1595 | + else: |
1596 | + with fp: |
1597 | + for line in fp: |
1598 | + if line.startswith('debconf (developer)'): |
1599 | + debug_mode = True |
1600 | + break |
1601 | + if debug_mode: |
1602 | + response = ui.yesno("The debug log file from your installation would help us a lot but includes the password you used for your user when installing Ubuntu. Do you want to include this log file?") |
1603 | + if response is None: |
1604 | + raise StopIteration |
1605 | + if response: |
1606 | + add_installation_log(report, 'UbiquityDebug', 'debug') |
1607 | + else: |
1608 | + add_installation_log(report, 'UbiquityDebug', 'debug') |
1609 | + |
1610 | + add_installation_log(report, 'UbiquityDm', 'dm') |
1611 | + add_installation_log(report, 'UpstartUbiquity', 'ubiquity.log') |
1612 | + |
1613 | + # add seed name as Tag so we know which image was used |
1614 | + with open('/proc/cmdline', 'r') as f: |
1615 | + cmdline = f.read() |
1616 | + match = re.search('([^/]+)\.seed', cmdline) |
1617 | + if match: |
1618 | + report['Tags'] += ' ' + match.group(1) |
1619 | + |
1620 | + add_installation_log(report, 'Casper', 'casper.log') |
1621 | + add_installation_log(report, 'OemConfigLog', 'oem-config.log') |
1622 | + if 'OemConfigLog' in report: |
1623 | + report['Tags'] += ' oem-config' |
1624 | |
1625 | === added directory 'debhelper' |
1626 | === added file 'debhelper/apport.pm' |
1627 | --- debhelper/apport.pm 1970-01-01 00:00:00 +0000 |
1628 | +++ debhelper/apport.pm 2016-04-06 16:42:48 +0000 |
1629 | @@ -0,0 +1,10 @@ |
1630 | +#!/usr/bin/perl |
1631 | +# debhelper sequence file for apport |
1632 | + |
1633 | +use warnings; |
1634 | +use strict; |
1635 | +use Debian::Debhelper::Dh_Lib; |
1636 | + |
1637 | +insert_after("dh_bugfiles", "dh_apport"); |
1638 | + |
1639 | +1; |
1640 | |
1641 | === added file 'debhelper/dh_apport' |
1642 | --- debhelper/dh_apport 1970-01-01 00:00:00 +0000 |
1643 | +++ debhelper/dh_apport 2016-04-06 16:42:48 +0000 |
1644 | @@ -0,0 +1,83 @@ |
1645 | +#!/usr/bin/perl -w |
1646 | + |
1647 | +=head1 NAME |
1648 | + |
1649 | +dh_installapport - install apport package hooks |
1650 | + |
1651 | +=cut |
1652 | + |
1653 | +use strict; |
1654 | + |
1655 | +use Debian::Debhelper::Dh_Lib; |
1656 | + |
1657 | +=head1 SYNOPSIS |
1658 | + |
1659 | +B<dh_apport> [S<B<debhelper options>>] |
1660 | + |
1661 | +=head1 DESCRIPTION |
1662 | + |
1663 | +dh_apport is a debhelper program that installs apport package hooks into |
1664 | +package build directories. |
1665 | + |
1666 | +=head1 FILES |
1667 | + |
1668 | +=over 4 |
1669 | + |
1670 | +=item debian/I<package>.apport |
1671 | + |
1672 | +Installed into /usr/share/apport/package-hooks/I<package>.py in the package |
1673 | +build directory. This file is used to control apport's bug filing for this |
1674 | +package. |
1675 | + |
1676 | +=item debian/source.apport |
1677 | + |
1678 | +Installed into /usr/share/apport/package-hooks/source_I<src>.py (where |
1679 | +I<src> is the current source package name) in the package build directory of |
1680 | +the first package dh_apport is told to act on. By default, this is the first |
1681 | +binary package in debian/control, but if you use -p, -i, or -a flags, it |
1682 | +will be the first package specified by those flags. This file is used to |
1683 | +control apport's bug filing for all binary packages built by this source |
1684 | +package. |
1685 | + |
1686 | +=back |
1687 | + |
1688 | +=cut |
1689 | + |
1690 | +init(); |
1691 | + |
1692 | +foreach my $package (@{$dh{DOPACKAGES}}) { |
1693 | + next if is_udeb($package); |
1694 | + |
1695 | + my $tmp=tmpdir($package); |
1696 | + my $hooksdir="$tmp/usr/share/apport/package-hooks"; |
1697 | + my $file=pkgfile($package,"apport"); |
1698 | + |
1699 | + if ($file ne '') { |
1700 | + if (! -d $hooksdir) { |
1701 | + doit("install","-d",$hooksdir); |
1702 | + } |
1703 | + doit("install","-p","-m644",$file,"$hooksdir/$package.py"); |
1704 | + } |
1705 | + |
1706 | + if (-e "debian/source.apport" && $package eq $dh{FIRSTPACKAGE}) { |
1707 | + if (! -d $hooksdir) { |
1708 | + doit("install","-d",$hooksdir); |
1709 | + } |
1710 | + my $src=sourcepackage(); |
1711 | + doit("install","-p","-m644","debian/source.apport","$hooksdir/source_$src.py"); |
1712 | + } |
1713 | +} |
1714 | + |
1715 | +=head1 SEE ALSO |
1716 | + |
1717 | +L<debhelper(1)> |
1718 | + |
1719 | +This program is a part of apport. |
1720 | + |
1721 | +=head1 AUTHOR |
1722 | + |
1723 | +Colin Watson <cjwatson@ubuntu.com> |
1724 | + |
1725 | +Copyright (C) 2009 Canonical Ltd., licensed under the GNU GPL v2 or later. |
1726 | + |
1727 | +=cut |
1728 | |
1729 | === added directory 'debian' |
1730 | === added file 'debian/apport-gtk.install' |
1731 | --- debian/apport-gtk.install 1970-01-01 00:00:00 +0000 |
1732 | +++ debian/apport-gtk.install 2016-04-06 16:42:48 +0000 |
1733 | @@ -0,0 +1,2 @@ |
1734 | +usr/share/apport/*gtk* |
1735 | +usr/share/applications/*gtk* |
1736 | |
1737 | === added file 'debian/apport-kde.install' |
1738 | --- debian/apport-kde.install 1970-01-01 00:00:00 +0000 |
1739 | +++ debian/apport-kde.install 2016-04-06 16:42:48 +0000 |
1740 | @@ -0,0 +1,9 @@ |
1741 | +usr/share/apport/*kde* |
1742 | +usr/share/apport/progress.ui |
1743 | +usr/share/apport/error.ui |
1744 | +usr/share/apport/bugreport.ui |
1745 | +usr/share/apport/choices.ui |
1746 | +usr/share/apport/userpass.ui |
1747 | +usr/share/apport/spinner.gif |
1748 | +usr/share/applications/apport-kde-mime.desktop |
1749 | +usr/share/applications/apport-kde-mimelnk.desktop usr/share/mimelnk/text |
1750 | |
1751 | === added file 'debian/apport-noui.dirs' |
1752 | --- debian/apport-noui.dirs 1970-01-01 00:00:00 +0000 |
1753 | +++ debian/apport-noui.dirs 2016-04-06 16:42:48 +0000 |
1754 | @@ -0,0 +1,1 @@ |
1755 | +/var/lib/apport |
1756 | |
1757 | === added file 'debian/apport-noui.install' |
1758 | --- debian/apport-noui.install 1970-01-01 00:00:00 +0000 |
1759 | +++ debian/apport-noui.install 2016-04-06 16:42:48 +0000 |
1760 | @@ -0,0 +1,1 @@ |
1761 | +debian/apport-noui.path /lib/systemd/system |
1762 | |
1763 | === added file 'debian/apport-noui.path' |
1764 | --- debian/apport-noui.path 1970-01-01 00:00:00 +0000 |
1765 | +++ debian/apport-noui.path 2016-04-06 16:42:48 +0000 |
1766 | @@ -0,0 +1,9 @@ |
1767 | +[Unit] |
1768 | +Description=Process error reports when automatic reporting is enabled (file watch) |
1769 | +ConditionPathExists=/var/lib/apport/autoreport |
1770 | + |
1771 | +[Path] |
1772 | +PathExistsGlob=/var/crash/*.crash |
1773 | + |
1774 | +[Install] |
1775 | +WantedBy=paths.target |
1776 | |
1777 | === added file 'debian/apport-noui.postinst' |
1778 | --- debian/apport-noui.postinst 1970-01-01 00:00:00 +0000 |
1779 | +++ debian/apport-noui.postinst 2016-04-06 16:42:48 +0000 |
1780 | @@ -0,0 +1,7 @@ |
1781 | +#!/bin/sh |
1782 | + |
1783 | +set -e |
1784 | + |
1785 | +touch /var/lib/apport/autoreport |
1786 | + |
1787 | +#DEBHELPER# |
1788 | |
1789 | === added file 'debian/apport-noui.prerm' |
1790 | --- debian/apport-noui.prerm 1970-01-01 00:00:00 +0000 |
1791 | +++ debian/apport-noui.prerm 2016-04-06 16:42:48 +0000 |
1792 | @@ -0,0 +1,9 @@ |
1793 | +#!/bin/sh |
1794 | + |
1795 | +set -e |
1796 | + |
1797 | +if [ "$1" = remove ]; then |
1798 | + rm -f /var/lib/apport/autoreport |
1799 | +fi |
1800 | + |
1801 | +#DEBHELPER# |
1802 | |
1803 | === added file 'debian/apport-noui.service' |
1804 | --- debian/apport-noui.service 1970-01-01 00:00:00 +0000 |
1805 | +++ debian/apport-noui.service 2016-04-06 16:42:48 +0000 |
1806 | @@ -0,0 +1,7 @@ |
1807 | +[Unit] |
1808 | +Description=Process error reports when automatic reporting is enabled |
1809 | +ConditionPathExists=/var/lib/apport/autoreport |
1810 | + |
1811 | +[Service] |
1812 | +Type=oneshot |
1813 | +ExecStart=/usr/share/apport/whoopsie-upload-all |
1814 | |
1815 | === added file 'debian/apport-noui.upstart' |
1816 | --- debian/apport-noui.upstart 1970-01-01 00:00:00 +0000 |
1817 | +++ debian/apport-noui.upstart 2016-04-06 16:42:48 +0000 |
1818 | @@ -0,0 +1,13 @@ |
1819 | +description "Process error reports when automatic reporting is enabled" |
1820 | +author "Evan Dandrea <evan.dandrea@canonical.com>" |
1821 | + |
1822 | +start on ( |
1823 | + file FILE=/var/crash/*.crash EVENT=create |
1824 | +) |
1825 | + |
1826 | + |
1827 | +instance $MATCH |
1828 | +script |
1829 | + [ -e /var/lib/apport/autoreport ] || exit 0 |
1830 | + /lib/udev/watershed /usr/share/apport/whoopsie-upload-all |
1831 | +end script |
1832 | |
1833 | === added file 'debian/apport-retrace.install' |
1834 | --- debian/apport-retrace.install 1970-01-01 00:00:00 +0000 |
1835 | +++ debian/apport-retrace.install 2016-04-06 16:42:48 +0000 |
1836 | @@ -0,0 +1,5 @@ |
1837 | +usr/bin/apport-retrace |
1838 | +usr/bin/dupdb-admin |
1839 | +usr/bin/crash-digger |
1840 | +usr/share/man/man1/apport-retrace.1 |
1841 | +usr/share/man/man1/dupdb-admin.1 |
1842 | |
1843 | === added file 'debian/apport-valgrind.install' |
1844 | --- debian/apport-valgrind.install 1970-01-01 00:00:00 +0000 |
1845 | +++ debian/apport-valgrind.install 2016-04-06 16:42:48 +0000 |
1846 | @@ -0,0 +1,2 @@ |
1847 | +usr/bin/apport-valgrind |
1848 | +usr/share/man/man1/apport-valgrind.1 |
1849 | |
1850 | === added file 'debian/apport.install' |
1851 | --- debian/apport.install 1970-01-01 00:00:00 +0000 |
1852 | +++ debian/apport.install 2016-04-06 16:42:48 +0000 |
1853 | @@ -0,0 +1,36 @@ |
1854 | +etc |
1855 | +lib/udev/ |
1856 | +lib/systemd/ |
1857 | +usr/share/apport/apport |
1858 | +usr/share/apport/apport-checkreports |
1859 | +usr/share/apport/package_hook |
1860 | +usr/share/apport/kernel_crashdump |
1861 | +usr/share/apport/kernel_oops |
1862 | +usr/share/apport/gcc_ice_hook |
1863 | +usr/share/apport/apportcheckresume |
1864 | +usr/share/apport/unkillable_shutdown |
1865 | +usr/share/apport/dump_acpi_tables.py |
1866 | +usr/share/apport/is-enabled |
1867 | +usr/share/apport/java_uncaught_exception |
1868 | +usr/share/apport/recoverable_problem |
1869 | +usr/share/apport/root_info_wrapper |
1870 | +usr/share/apport/whoopsie-upload-all |
1871 | +usr/share/apport/iwlwifi_error_dump |
1872 | +usr/share/doc/apport |
1873 | +usr/share/locale |
1874 | +usr/share/icons |
1875 | +usr/share/mime |
1876 | +usr/share/polkit-1 |
1877 | +usr/share/apport/package-hooks |
1878 | +usr/share/apport/general-hooks |
1879 | +usr/share/man/man1/apport-unpack.1 |
1880 | +usr/share/man/man1/apport-bug.1 |
1881 | +usr/share/man/man1/apport-cli.1 |
1882 | +usr/bin/apport-cli |
1883 | +usr/bin/apport-unpack |
1884 | +usr/bin/apport-bug |
1885 | +usr/bin/apport-collect |
1886 | +usr/lib/pm-utils |
1887 | +../../java/apport.jar usr/share/apport/ |
1888 | +../../java/crash.jar usr/share/apport/testsuite/ |
1889 | +../../java/crash.class usr/share/apport/testsuite/ |
1890 | |
1891 | === added file 'debian/apport.links' |
1892 | --- debian/apport.links 1970-01-01 00:00:00 +0000 |
1893 | +++ debian/apport.links 2016-04-06 16:42:48 +0000 |
1894 | @@ -0,0 +1,4 @@ |
1895 | +/usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-meta.py |
1896 | +/usr/bin/apport-bug /usr/bin/ubuntu-bug |
1897 | +/usr/share/man/man1/apport-bug.1.gz /usr/share/man/man1/ubuntu-bug.1.gz |
1898 | +/usr/share/man/man1/apport-bug.1.gz /usr/share/man/man1/apport-collect.1.gz |
1899 | |
1900 | === added file 'debian/apport.logrotate' |
1901 | --- debian/apport.logrotate 1970-01-01 00:00:00 +0000 |
1902 | +++ debian/apport.logrotate 2016-04-06 16:42:48 +0000 |
1903 | @@ -0,0 +1,9 @@ |
1904 | +/var/log/apport.log { |
1905 | + daily |
1906 | + rotate 7 |
1907 | + delaycompress |
1908 | + compress |
1909 | + notifempty |
1910 | + missingok |
1911 | +} |
1912 | + |
1913 | |
1914 | === added file 'debian/apport.maintscript' |
1915 | --- debian/apport.maintscript 1970-01-01 00:00:00 +0000 |
1916 | +++ debian/apport.maintscript 2016-04-06 16:42:48 +0000 |
1917 | @@ -0,0 +1,1 @@ |
1918 | +rm_conffile /etc/apport/native-origins.d/lts-q-backports 2.5.1-0ubuntu8~ |
1919 | |
1920 | === added file 'debian/apport.postinst' |
1921 | --- debian/apport.postinst 1970-01-01 00:00:00 +0000 |
1922 | +++ debian/apport.postinst 2016-04-06 16:42:48 +0000 |
1923 | @@ -0,0 +1,10 @@ |
1924 | +#!/bin/sh |
1925 | +set -e |
1926 | + |
1927 | +if [ "$1" = configure ]; then |
1928 | + # directory is required for package failures even if apport is disabled and |
1929 | + # thus the upstart job does not run |
1930 | + mkdir -p -m 1777 /var/crash |
1931 | +fi |
1932 | + |
1933 | +#DEBHELPER# |
1934 | |
1935 | === added file 'debian/apport.upstart' |
1936 | --- debian/apport.upstart 1970-01-01 00:00:00 +0000 |
1937 | +++ debian/apport.upstart 2016-04-06 16:42:48 +0000 |
1938 | @@ -0,0 +1,58 @@ |
1939 | +# apport - automatic crash report generation |
1940 | +# |
1941 | +# While this job is active, core dumps will captured by apport and |
1942 | +# used to generate automatic crash reports. |
1943 | + |
1944 | +description "automatic crash report generation" |
1945 | + |
1946 | +start on runlevel [2345] |
1947 | +stop on runlevel [!2345] |
1948 | + |
1949 | +env enabled=1 |
1950 | + |
1951 | +pre-start script |
1952 | + # don't start in containers |
1953 | + systemd-detect-virt --quiet --container && exit 0 || true |
1954 | + |
1955 | + . /etc/default/apport |
1956 | + [ "$enabled" = "1" ] || [ "$force_start" = "1" ] || exit 0 |
1957 | + |
1958 | + mkdir -p -m 1777 /var/crash |
1959 | + |
1960 | + # check for kernel crash dump, convert it to apport report |
1961 | + if [ -e /var/crash/vmcore ] || [ -n "`ls /var/crash | egrep ^[0-9]{12}$`" ] |
1962 | + then |
1963 | + /usr/share/apport/kernel_crashdump || true |
1964 | + fi |
1965 | + |
1966 | + # check for incomplete suspend/resume or hibernate |
1967 | + if [ -e /var/lib/pm-utils/status ] |
1968 | + then |
1969 | + /usr/share/apport/apportcheckresume || true |
1970 | + rm -f /var/lib/pm-utils/status |
1971 | + rm -f /var/lib/pm-utils/resume-hang.log |
1972 | + fi |
1973 | + |
1974 | + echo "|/usr/share/apport/apport %p %s %c %P" > /proc/sys/kernel/core_pattern |
1975 | + echo 2 > /proc/sys/fs/suid_dumpable |
1976 | +end script |
1977 | + |
1978 | +post-stop script |
1979 | + # don't stop in containers |
1980 | + systemd-detect-virt --quiet --container && exit 0 || true |
1981 | + |
1982 | + # Check for a hung resume. If we find one try and grab everything |
1983 | + # we can to aid in its discovery |
1984 | + if [ -e /var/lib/pm-utils/status ] |
1985 | + then |
1986 | + ps -wwef > /var/lib/pm-utils/resume-hang.log |
1987 | + fi |
1988 | + |
1989 | + if [ "`dd if=/proc/sys/kernel/core_pattern count=1 bs=1 2>/dev/null`" != "|" ] |
1990 | + then |
1991 | + exit 1 |
1992 | + else |
1993 | + echo 0 > /proc/sys/fs/suid_dumpable |
1994 | + echo "core" > /proc/sys/kernel/core_pattern |
1995 | + fi |
1996 | +end script |
1997 | |
1998 | === added file 'debian/changelog' |
1999 | --- debian/changelog 1970-01-01 00:00:00 +0000 |
2000 | +++ debian/changelog 2016-04-06 16:42:48 +0000 |
2001 | @@ -0,0 +1,8967 @@ |
2002 | +apport (2.20.1-0ubuntu1) xenial; urgency=medium |
2003 | + |
2004 | + * New upstream release. Changes since our previous snapshot: |
2005 | + - crash-digger: Untag bugs which cannot be retraced instead of stopping |
2006 | + crash-digger. This led to too many pointless manual restarts on broken bug |
2007 | + reports. |
2008 | + * Disambiguate overly generic Python exceptions in duplicate signature |
2009 | + computation: dbus-glib's DBusException wraps a "real" server-side |
2010 | + exception, so add the class of that to disambiguate different crashes; |
2011 | + for OSError that is not a known subclass like FileNotFoundError, add the |
2012 | + errno. (LP: #989819) |
2013 | + |
2014 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 31 Mar 2016 16:16:37 +0200 |
2015 | + |
2016 | +apport (2.20-0ubuntu3) xenial; urgency=medium |
2017 | + |
2018 | + * Relax report.test_add_gdb_info gdb warning check, as this changed with gdb |
2019 | + 7.10.90. |
2020 | + |
2021 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 16 Feb 2016 08:41:10 +0100 |
2022 | + |
2023 | +apport (2.20-0ubuntu2) xenial; urgency=medium |
2024 | + |
2025 | + * Fix signal_crashes.test_modify_after_start test when running as root. |
2026 | + |
2027 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 15 Feb 2016 11:49:56 +0100 |
2028 | + |
2029 | +apport (2.20-0ubuntu1) xenial; urgency=medium |
2030 | + |
2031 | + * New upstream release. |
2032 | + - Reimplement forwarding crashes into a container, via activating the new |
2033 | + apport-forward.socket in the container and handing over the core dump |
2034 | + fd. This is a much safer way than the original implementation with |
2035 | + nsexec. Thanks Stéphane Graber! (LP: #1445064) |
2036 | + * Drop long-obsolete sysv-rc dependency. |
2037 | + * Add python3-systemd recommendation to apport, to make crash report |
2038 | + generation work in containers. |
2039 | + * Install new systemd units into apport package. |
2040 | + |
2041 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sun, 14 Feb 2016 13:41:36 +0100 |
2042 | + |
2043 | +apport (2.19.4-0ubuntu2) xenial; urgency=medium |
2044 | + |
2045 | + * debian/apport.upstart: Call systemd-detect-virt instead of the |
2046 | + Ubuntu specific running-in-container wrapper. (LP: #1539016) |
2047 | + |
2048 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 28 Jan 2016 14:58:06 +0100 |
2049 | + |
2050 | +apport (2.19.4-0ubuntu1) xenial; urgency=medium |
2051 | + |
2052 | + * New upstream bug fix release: |
2053 | + - Fix fileutils.test_find_package_desktopfile test for symlinks and other |
2054 | + unowned files in /usr/share/applications/. |
2055 | + - Fix ui.test_run_crash_anonymity test case to not fail if the base64 |
2056 | + encoded core dump happens to contain the user name, as that's just by |
2057 | + chance. - Fix test_hooks.py for unreleased gcc versions which have a |
2058 | + different --version format. |
2059 | + - hookutils.py, attach_hardware(): Stop attaching /var/log/udev. This was |
2060 | + an upstart-ism, mostly redundant with the udev db and is not being |
2061 | + written under systemd. (LP: #1537211) |
2062 | + * etc/apport/crashdb.conf: Enable crash reports on Launchpad for xenial. |
2063 | + |
2064 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 26 Jan 2016 15:37:44 +0100 |
2065 | + |
2066 | +apport (2.19.3-0ubuntu3) xenial; urgency=medium |
2067 | + |
2068 | + * data/general-hooks/powerpc.py: Add support to collect more data on |
2069 | + PowerNV. (LP: #1499226) Thanks to Kamalesh Babulal for the patch. |
2070 | + |
2071 | + -- Brian Murray <brian@ubuntu.com> Tue, 12 Jan 2016 17:06:29 -0800 |
2072 | + |
2073 | +apport (2.19.3-0ubuntu2) xenial; urgency=medium |
2074 | + |
2075 | + * Fix fileutils.test_find_package_desktopfile test for symlinks and other |
2076 | + unowned files in /usr/share/applications/. (Cherry-picked from trunk.) |
2077 | + |
2078 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 10 Dec 2015 10:31:19 +0100 |
2079 | + |
2080 | +apport (2.19.3-0ubuntu1) xenial; urgency=medium |
2081 | + |
2082 | + * New upstream microrelease: |
2083 | + - apt/dpkg: Fix source record lookup in install_packages. Thanks Brian |
2084 | + Murray! |
2085 | + - hookutils.py, attach_gsettings_schema(): Don't replace the schema |
2086 | + variable; fixes attaching relocatable schemas. Thanks Sébastien Bacher! |
2087 | + - generic hook: Limit JournalErrors to the 1.000 last lines. This avoids |
2088 | + long report load times when processes cause massive log spew. |
2089 | + (LP: #1516947) |
2090 | + - Add key filtering to ProblemReport.load(). |
2091 | + - Don't read the entire report when determining the CrashCounter. This |
2092 | + avoids long delays for existing large reports. |
2093 | + - test_python_crashes.py: Be less sensitive to the precise names of |
2094 | + gvfs-metadata D-Bus service files. |
2095 | + - Move backend_apt_dpkg -dbgsym test cases to Ubuntu 15.10. |
2096 | + - Tests: Move to unittest's builtin "mock" module. |
2097 | + |
2098 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 08 Dec 2015 09:49:00 +0100 |
2099 | + |
2100 | +apport (2.19.2-0ubuntu9) xenial; urgency=medium |
2101 | + |
2102 | + * If trimming the DpkgTerminalLog file fails, keep the whole log file in the |
2103 | + report. (LP: #1522849) |
2104 | + |
2105 | + -- Brian Murray <brian@ubuntu.com> Mon, 07 Dec 2015 09:19:37 -0800 |
2106 | + |
2107 | +apport (2.19.2-0ubuntu8) xenial; urgency=medium |
2108 | + |
2109 | + * No-change rebuild against fixed debhelper. |
2110 | + |
2111 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 25 Nov 2015 06:21:22 +0100 |
2112 | + |
2113 | +apport (2.19.2-0ubuntu7) xenial; urgency=medium |
2114 | + |
2115 | + * data/general-hooks/ubuntu.py: resolve Traceback when parsing |
2116 | + DpkgTerminalError and using python2. |
2117 | + |
2118 | + -- Brian Murray <brian@ubuntu.com> Tue, 24 Nov 2015 11:35:10 -0800 |
2119 | + |
2120 | +apport (2.19.2-0ubuntu6) xenial; urgency=medium |
2121 | + |
2122 | + * Add Conflicts/Replaces/Provides: core-dump-handler, to ensure mutual |
2123 | + uninstallability with systemd-coredump and corekeeper. |
2124 | + |
2125 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 13 Nov 2015 11:20:31 +0100 |
2126 | + |
2127 | +apport (2.19.2-0ubuntu5) xenial; urgency=medium |
2128 | + |
2129 | + * data/general-hooks/ubuntu.py: ensure that dpkg_log_without_error is a |
2130 | + string. |
2131 | + |
2132 | + -- Brian Murray <brian@ubuntu.com> Mon, 09 Nov 2015 09:12:03 -0800 |
2133 | + |
2134 | +apport (2.19.2-0ubuntu4) xenial; urgency=medium |
2135 | + |
2136 | + * data/general-hooks/ubuntu.py: For package installation failures, build a |
2137 | + DuplicateSignature from the dpkg terminal log as using the package, |
2138 | + version, and dpkg ErrorMessage ended up being too generic. |
2139 | + |
2140 | + -- Brian Murray <brian@ubuntu.com> Fri, 06 Nov 2015 09:14:29 -0800 |
2141 | + |
2142 | +apport (2.19.2-0ubuntu3) xenial; urgency=medium |
2143 | + |
2144 | + * apport: Fix comparison against SIGQUIT to work for current Python |
2145 | + versions. (Cherry-picked from upstream). |
2146 | + |
2147 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 04 Nov 2015 14:06:22 -0600 |
2148 | + |
2149 | +apport (2.19.2-0ubuntu2) xenial; urgency=medium |
2150 | + |
2151 | + * apport/ui.py: set "_MarkForUpload" field to False for cases where the |
2152 | + apport report is damaged, about a not installed package, or when an |
2153 | + error occurred processing the report. (LP: #1512902) |
2154 | + |
2155 | + -- Brian Murray <brian@ubuntu.com> Tue, 03 Nov 2015 15:44:18 -0800 |
2156 | + |
2157 | +apport (2.19.2-0ubuntu1) xenial; urgency=medium |
2158 | + |
2159 | + * New upstream release. Changes since previous snapshot: |
2160 | + - SECURITY FIX: When determining the path of a Python module for a program |
2161 | + like "python -m module_name", avoid actually importing and running the |
2162 | + module; this could lead to local root privilege escalation. Thanks to |
2163 | + Gabriel Campana for discovering this and the fix! |
2164 | + (CVE-2015-1341, LP: #1507480) |
2165 | + - test_backend_apt_dpkg.py: Reset internal apt caches between tests. |
2166 | + Avoids random test failures due to leaking paths from previous test |
2167 | + cases. |
2168 | + * debian/control: Adjust Vcs-Bzr: for xenial branch. |
2169 | + * debian/control: Drop obsolete XS-Testsuite: header. |
2170 | + |
2171 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 27 Oct 2015 14:33:28 +0100 |
2172 | + |
2173 | +apport (2.19.1-0ubuntu3) wily; urgency=medium |
2174 | + |
2175 | + * Disable Launchpad crash upload for final Ubuntu 15.10. |
2176 | + * Fix backend_apt_dpkg.test_install_packages_system for recent "Fall back to |
2177 | + direct Launchpad ddeb download" fix. coreutils-dbgsym should now always be |
2178 | + available independent of whether the local system has ddeb apt sources. |
2179 | + (Cherry-picked from trunk). |
2180 | + |
2181 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 19 Oct 2015 08:48:25 +0200 |
2182 | + |
2183 | +apport (2.19.1-0ubuntu2) wily; urgency=medium |
2184 | + |
2185 | + * apt/dpkg: Don't mark packages downloaded from Launchpad for installation |
2186 | + by apt. Thanks Brian Murray. (Cherry-picked from trunk.) |
2187 | + |
2188 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 08 Oct 2015 08:04:12 +0200 |
2189 | + |
2190 | +apport (2.19.1-0ubuntu1) wily; urgency=medium |
2191 | + |
2192 | + [ Martin Pitt ] |
2193 | + * New upstream release: |
2194 | + - Consistently intercept "report file already exists" errors in all writers |
2195 | + of report files (package_hook, kernel_crashdump, and similar) to avoid |
2196 | + unhandled exceptions on those. (LP: #1500450) |
2197 | + - apt/dpkg: Fall back to direct Launchpad ddeb download if we can't find it |
2198 | + in the apt cache. Thanks Brian Murray! (LP: #1500557) |
2199 | + - doc/data-format.tex: Clarify that key names are being treated as case |
2200 | + sensitive (unlike RFC822). |
2201 | + |
2202 | + [ Brian Murray ] |
2203 | + * data/iwlwifi_error_dump: fix add_package call. (LP: #1496268) |
2204 | + |
2205 | + [ Sebastien Bacher ] |
2206 | + * data/package-hooks/sources_ubiquity.py: Don't try decode() a str |
2207 | + (LP: #1501773). |
2208 | + |
2209 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 07 Oct 2015 10:58:13 +0200 |
2210 | + |
2211 | +apport (2.19-0ubuntu1) wily; urgency=medium |
2212 | + |
2213 | + * New upstream release: |
2214 | + - apport: Drop re-nicing. This might decrease the time a user has to wait |
2215 | + for apport to finish the core dump for a crashed/hanging foreground |
2216 | + process. (See LP #1278780) |
2217 | + - kernel_crashdump: Enforce that the log/dmesg files are not a symlink. |
2218 | + This prevents normal users from pre-creating a symlink to the |
2219 | + predictable .crash file, and thus triggering a "fill up disk" DoS attack |
2220 | + when the .crash report tries to include itself. Thanks to halfdog for |
2221 | + discovering this! (CVE-2015-1338, part of LP #1492570) |
2222 | + - SECURITY FIX: Fix all writers of report files (package_hook, |
2223 | + kernel_crashdump, and similar) to open the report file exclusively, |
2224 | + i. e. fail if they already exist. This prevents privilege escalation |
2225 | + through symlink attacks. Note that this will also prevent overwriting |
2226 | + previous reports with the same same. Thanks to halfdog for discovering |
2227 | + this! (CVE-2015-1338, LP: #1492570) |
2228 | + - apport: Ignore process restarts from systemd's watchdog. Their traces |
2229 | + are usually useless as they don't have any information about the actual |
2230 | + reasaon why processes hang (like VM suspends or kernel lockups with bad |
2231 | + hardware) (LP: #1433320) |
2232 | + |
2233 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 24 Sep 2015 14:41:54 +0200 |
2234 | + |
2235 | +apport (2.18.1-0ubuntu1) wily; urgency=medium |
2236 | + |
2237 | + * New upstream bug fix release. Changes since our previous snapshot: |
2238 | + - packaging.py: Only consider first word in /etc/os-release's NAME value. |
2239 | + This works around Debian's inconsistent value. (LP: #1408245) |
2240 | + - Unify and simplify Package: field generation in kernel_crashdump, |
2241 | + kernel_oops, and package_hook by using the new Report.add_package() |
2242 | + method. (LP: #1485787) |
2243 | + - sandboxutils.py, make_sandbox(): Make "Cannot find package which ships |
2244 | + Executable/InterpreterPath" fatal, to save some unnecessary package |
2245 | + unpack cycles. (LP: #1487174) |
2246 | + * etc/apport/crashdb.conf: Enable crash reports on Launchpad for wily. |
2247 | + Really late, sorry about that! |
2248 | + |
2249 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 10 Sep 2015 11:48:46 +0200 |
2250 | + |
2251 | +apport (2.18-0ubuntu9) wily; urgency=medium |
2252 | + |
2253 | + * Revert changes to data/package_hook to include the package version. This |
2254 | + just hides the problem that somewhere during whoopsie add_package_info() |
2255 | + is not called. (See LP #1485787) |
2256 | + * packaging-apt-dpkg.py, is_distro_package(): If there is no origin and |
2257 | + /etc/system-image/channel.ini exists, assume the package is from a |
2258 | + read-only system image and accept it as distro package. With this we don't |
2259 | + need /var/lib/apt/lists/ indexes any more just to confirm the origin. |
2260 | + (LP: #1489410) |
2261 | + * Merge fixes from trunk: |
2262 | + - whoopsie-upload-all: Intercept OSError too (e. g. "No space left on |
2263 | + device"). (LP: #1476258) |
2264 | + - apport-retrace: Only consider the file name of a source file, not its |
2265 | + path; the latter often contains parts like "../" or directories which are |
2266 | + specific to a build machine. This fixes most broken StacktraceSource |
2267 | + results. (LP: #1462491) |
2268 | + |
2269 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 31 Aug 2015 11:35:54 +0200 |
2270 | + |
2271 | +apport (2.18-0ubuntu8) wily; urgency=medium |
2272 | + |
2273 | + * data/package-hooks/source_ubiquity.py: resolve tracebacks parsing syslog |
2274 | + and adding the debug log file. |
2275 | + |
2276 | + -- Brian Murray <brian@ubuntu.com> Fri, 28 Aug 2015 10:03:59 -0700 |
2277 | + |
2278 | +apport (2.18-0ubuntu7) wily; urgency=medium |
2279 | + |
2280 | + * data/package_hook: When creating a Package problem write the version of |
2281 | + the package to the report. (LP: #1485787) |
2282 | + |
2283 | + -- Brian Murray <brian@ubuntu.com> Mon, 17 Aug 2015 15:40:39 -0700 |
2284 | + |
2285 | +apport (2.18-0ubuntu6) wily; urgency=medium |
2286 | + |
2287 | + * Drop apport-noui from test dependencies, as whoopsie interferes with the |
2288 | + test crashes while the test suite runs. (LP: #1478115) |
2289 | + * Restore whoopsie dependency of apport-noui. |
2290 | + * apport-noui.service: Add missing Type=oneshot, to fix restart limits with |
2291 | + crashes happening in rapid succession. |
2292 | + * Merge test fixes from trunk. |
2293 | + * data/package-hooks/source_linux.py: Fix PEP-8 error. |
2294 | + |
2295 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 10 Aug 2015 11:25:07 +0200 |
2296 | + |
2297 | +apport (2.18-0ubuntu5) wily; urgency=medium |
2298 | + |
2299 | + * apport-noui: Remove the dependency on whoopsie as it causes test failures. |
2300 | + |
2301 | + -- Brian Murray <brian@ubuntu.com> Fri, 24 Jul 2015 13:23:03 -0700 |
2302 | + |
2303 | +apport (2.18-0ubuntu4) wily; urgency=medium |
2304 | + |
2305 | + * whoopsie-upload-all: restore import of apport.fileutils which seems to |
2306 | + resolve some test failures. |
2307 | + |
2308 | + -- Brian Murray <brian@ubuntu.com> Thu, 23 Jul 2015 12:17:01 -0700 |
2309 | + |
2310 | +apport (2.18-0ubuntu3) wily; urgency=medium |
2311 | + |
2312 | + * apport-noui: Depend on watershed and whoopsie since whoopsie-upload-all |
2313 | + requires whoopsie to upload crashes. |
2314 | + * apport-noui.upstart: Utilize watershed to only launch one instance of |
2315 | + whoopsie-upload-all. |
2316 | + * apport-noui.paths: When monitoring /var/crash switch to PathExistsGlob |
2317 | + since PathChanged will cause whoopsie-upload-all to run more often e.g. |
2318 | + when .upload and .uploaded files are created. |
2319 | + |
2320 | + -- Brian Murray <brian@ubuntu.com> Mon, 20 Jul 2015 14:09:23 -0700 |
2321 | + |
2322 | +apport (2.18-0ubuntu2) wily; urgency=medium |
2323 | + |
2324 | + * Fix PEP-8 error in test/test_backend_apt_dpkg.py. |
2325 | + |
2326 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 17 Jul 2015 11:43:37 +0200 |
2327 | + |
2328 | +apport (2.18-0ubuntu1) wily; urgency=medium |
2329 | + |
2330 | + * New upstream release. Changes since our last merge from trunk: |
2331 | + - apport-gtk: Use GtkWidget::valign property instead of GtkMisc::yalign |
2332 | + which is deprecated in GTK 3.16. Thanks Iain Lane. |
2333 | + - sandboxutils, make_sandbox(): Don't exit with 0 (success) if the |
2334 | + ExecutablePath does not exist. (LP: #1462469) |
2335 | + - sandboxutils, make_sandbox(): Fix second round of package installs to go |
2336 | + into permanent root dir as well. |
2337 | + - apt/dpkg install_packages(): If a requested package version is not |
2338 | + available from apt in the given archive, try to download it from |
2339 | + Launchpad. Thanks to Brian Murray! |
2340 | + - kerneloops: Fix crash when determining the version of a custom kernel. |
2341 | + Thanks Brian Murray. (LP: #1468154) |
2342 | + - apt/dpkg install_packages(): Ignore -dbg packages whose descriptions |
2343 | + contain "transitional". (LP: #1469635) |
2344 | + - Keep "[origin: ...]" information in Package: and Dependencies: fields |
2345 | + for native-origins.d/ origins, so that it's possible to retrace them. |
2346 | + Thanks Brian Murray! (LP: #1470572) |
2347 | + - Add support for retracing with discovering and enabling foreign |
2348 | + Launchpad PPA origins, as specified in reports' Package:/Dependencies: |
2349 | + fields. Thanks Brian Murray! |
2350 | + - hookutils.attach_wifi(): Shorten value of CRDA if iw isn't available on |
2351 | + the system. Thanks Brian Murray. |
2352 | + - Fix wrong assertion in crashdb.test_check_duplicate() which surfaces |
2353 | + under Python 3.5. (LP: #1474539) |
2354 | + * test/test_backend_apt_dpkg.py: Disable new test assertion for |
2355 | + unity-services-dbgsym, which doesn't currently work in the autopkgtest |
2356 | + (but works fine in trunk and on the retracers). To be investigated. |
2357 | + |
2358 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 17 Jul 2015 11:03:21 +0200 |
2359 | + |
2360 | +apport (2.17.3-0ubuntu4) wily; urgency=medium |
2361 | + |
2362 | + * apport-gtk.ui: Use "valign" to align the icon on the crash dialog. |
2363 | + "yalign" is deprecated with GTK 3.16 and the consequent warning causes a |
2364 | + testsuite failure. Cherry-pick from upstream MP. |
2365 | + |
2366 | + -- Iain Lane <iain@orangesquash.org.uk> Fri, 05 Jun 2015 11:52:04 +0100 |
2367 | + |
2368 | +apport (2.17.3-0ubuntu3) wily; urgency=medium |
2369 | + |
2370 | + * Merge from trunk: |
2371 | + - Fix backend_apt_dpkg.test_install_packages_permanent_sandbox test to |
2372 | + restore proxy settings at the right time. |
2373 | + |
2374 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 28 May 2015 16:01:34 +0200 |
2375 | + |
2376 | +apport (2.17.3-0ubuntu2) wily; urgency=medium |
2377 | + |
2378 | + * Merge from trunk: |
2379 | + - Fix backend_apt_dpkg.test_install_packages_permanent_sandbox test to |
2380 | + more carefully restore the environment and apt config. |
2381 | + - Enable suid_dumpable in the init.d script to also get Apport reports |
2382 | + about suid, unreadable, and otherwise protected binaries. These will be |
2383 | + "system reports" owned and readable by root only. |
2384 | + - init.d script: Fix tab usage inconsistencies. |
2385 | + |
2386 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 28 May 2015 10:05:40 +0200 |
2387 | + |
2388 | +apport (2.17.3-0ubuntu1) wily; urgency=medium |
2389 | + |
2390 | + * New upstream release: |
2391 | + - SECURITY UPDATE: When /proc/sys/fs/suid_dumpable is enabled, crashing a |
2392 | + program that is suid root or not readable for the user would create |
2393 | + root-owned core files in the current directory of that program. Creating |
2394 | + specially crafted core files in /etc/logrotate.d or similar could then |
2395 | + lead to arbitrary code execution with root privileges. |
2396 | + Now core files do not get written for these kinds of programs, in |
2397 | + accordance with the intention of core(5). |
2398 | + Thanks to Sander Bos for discovering this issue! |
2399 | + (CVE-2015-1324, LP: #1452239) |
2400 | + - SECURITY UPDATE: When writing a core dump file for a crashed packaged |
2401 | + program, don't close and reopen the .crash report file but just rewind |
2402 | + and re-read it. This prevents the user from modifying the .crash report |
2403 | + file while "apport" is running to inject data and creating crafted core |
2404 | + dump files. In conjunction with the above vulnerability of writing core |
2405 | + dump files to arbitrary directories this could be exploited to gain root |
2406 | + privileges. |
2407 | + Thanks to Philip Pettersson for discovering this issue! |
2408 | + (CVE-2015-1325, LP: #1453900) |
2409 | + - apportcheckresume: Fix "occured" typo, thanks Matthew Paul Thomas. |
2410 | + (LP: #1448636) |
2411 | + - signal_crashes test: Fix test_crash_setuid_* to look at whether |
2412 | + suid_dumpable was enabled. |
2413 | + - test/run: Run UI tests under dbus-launch, newer GTK versions require this |
2414 | + now. |
2415 | + |
2416 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 20 May 2015 16:58:35 +0200 |
2417 | + |
2418 | +apport (2.17.2-0ubuntu2) wily; urgency=medium |
2419 | + |
2420 | + [ Brian Murray ] |
2421 | + * Update Vcs information in debian/control. |
2422 | + * general-hooks/ubuntu.py: update checks for corrupt packages. |
2423 | + |
2424 | + [ Martin Pitt ] |
2425 | + * Disable KDE tests for the time being. apport-kde consistently crashes |
2426 | + in PyQT5 since vivid (LP #1442512), don't block package migration on this. |
2427 | + |
2428 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 18 May 2015 08:36:07 +0200 |
2429 | + |
2430 | +apport (2.17.2-0ubuntu1) vivid; urgency=medium |
2431 | + |
2432 | + * New upstream bug fix release: |
2433 | + - SECURITY UPDATE: Disable crash forwarding to containers. The previous |
2434 | + fix in 2.17.1 was not sufficient against all attack scenarios. By |
2435 | + binding to specially crafted sockes, a normal user program could forge |
2436 | + arbitrary entries in /proc/net/unix. We cannot currently rely on a |
2437 | + kernel-side solution for this; this feature will be re-enabled once it |
2438 | + gets re-done to be secure. (LP: #1444518) |
2439 | + - apport-kde: Fix crash when showing byte array values. Thanks Jonathan |
2440 | + Riddell. (LP: #1443659) |
2441 | + - Really create a better duplicate signature for recoverable problems, |
2442 | + using ExecutablePath. Thanks Brian Murray. (LP: #1316763) |
2443 | + * Disable Launchpad crash upload for final Ubuntu 15.04. |
2444 | + |
2445 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 16 Apr 2015 17:51:18 -0500 |
2446 | + |
2447 | +apport (2.17.1-0ubuntu2) vivid; urgency=medium |
2448 | + |
2449 | + * Fix crash in kde frontend LP: #1443659 |
2450 | + |
2451 | + -- Jonathan Riddell <jriddell@ubuntu.com> Wed, 15 Apr 2015 13:29:04 +0200 |
2452 | + |
2453 | +apport (2.17.1-0ubuntu1) vivid; urgency=medium |
2454 | + |
2455 | + * New upstream bug fix release: |
2456 | + - SECURITY UPDATE: Fix root privilege escalation through crash forwarding |
2457 | + to containers. |
2458 | + Version 2.13 introduced forwarding a crash to a container's apport. By |
2459 | + crafting a specific file system structure, entering it as a namespace |
2460 | + ("container"), and crashing something in it, a local user could access |
2461 | + arbitrary files on the host system with root privileges. |
2462 | + Thanks to Stéphane Graber for discovering and fixing this! |
2463 | + (CVE-2015-1318, LP: #1438758) |
2464 | + - apport-kde tests: Fix imports to make tests work again. |
2465 | + - Fix UnicodeDecodeError on parsing non-ASCII environment variables. |
2466 | + - apport: use the proper pid when calling apport in another PID namespace. |
2467 | + Thanks Brian Murray. (LP: #1300235) |
2468 | + |
2469 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 14 Apr 2015 09:10:17 -0500 |
2470 | + |
2471 | +apport (2.17-0ubuntu2) vivid; urgency=medium |
2472 | + |
2473 | + * Update apport-kde runtime dependencies. It requires pyqt5 not |
2474 | + pykde4 LP: #1439784 |
2475 | + |
2476 | + -- Harald Sitter <sitter@kde.org> Fri, 10 Apr 2015 10:52:34 +0200 |
2477 | + |
2478 | +apport (2.17-0ubuntu1) vivid; urgency=medium |
2479 | + |
2480 | + * New upstream release. Changes since our last snapshot: |
2481 | + - general-hooks/generic.py: Add systemd journal warnings and errors to the |
2482 | + new "JournalErrors" field. |
2483 | + |
2484 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 31 Mar 2015 09:25:40 +0200 |
2485 | + |
2486 | +apport (2.16.2-0ubuntu5) vivid; urgency=medium |
2487 | + |
2488 | + * KDE: Port Apport to Qt 5 LP: #1436328 |
2489 | + |
2490 | + -- Jonathan Riddell <jriddell@ubuntu.com> Fri, 27 Mar 2015 15:09:19 +0100 |
2491 | + |
2492 | +apport (2.16.2-0ubuntu4) vivid; urgency=medium |
2493 | + |
2494 | + * general-hooks/ubuntu.py: for reports where the ProblemType is Package |
2495 | + always include information about the apt and dpkg versions. |
2496 | + |
2497 | + -- Brian Murray <brian@ubuntu.com> Fri, 20 Mar 2015 13:23:45 -0700 |
2498 | + |
2499 | +apport (2.16.2-0ubuntu3) vivid; urgency=medium |
2500 | + |
2501 | + * package-hooks/source_linux.py: Don't check BootDmesg for staging drivers |
2502 | + anymore since it is no longer included in the crash report. (LP: #1430168) |
2503 | + |
2504 | + -- Brian Murray <brian@ubuntu.com> Wed, 11 Mar 2015 12:57:05 -0700 |
2505 | + |
2506 | +apport (2.16.2-0ubuntu2) vivid; urgency=medium |
2507 | + |
2508 | + * Merge from trunk: |
2509 | + - Adjust signal_crashes.test_crash_setuid_{keep,drop} for systemd. |
2510 | + |
2511 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 09 Mar 2015 11:32:18 +0100 |
2512 | + |
2513 | +apport (2.16.2-0ubuntu1) vivid; urgency=medium |
2514 | + |
2515 | + * New upstream bug fix release: |
2516 | + - ProblemReport: Set a timestamp of 0 in gzip compressed fields; they are |
2517 | + meaningless and cause unnecessary jitter in the output. |
2518 | + - launchpad backend: Fix unclosed file in upload(). |
2519 | + - launchpad backend: Fix wrong use of filter() with Python 3. |
2520 | + - launchpad backend download(): Try to convert textual values from byte |
2521 | + arrays into into strings. |
2522 | + - ui.py, collect_info(): Fix crash on bug pattern checking with broken |
2523 | + gzipped values. (LP: #1345653) |
2524 | + - hookutils, attach_drm_info(): Avoid UnicodeDecodeErrors in Python 3 when |
2525 | + reading binary files. Thanks Chad Miller. (LP: #1425254) |
2526 | + - apport-gtk: Update legacy icon names to modern GTK ones, to fix icons |
2527 | + under GNOME. Thanks Scott Sanbar. (LP: #1422176) |
2528 | + - Move backend_apt_dpkg testsuite to use Ubuntu 14.04 LTS. |
2529 | + - hookutils, attach_dmesg(): Only attach dmesg as CurrentDmesg, drop |
2530 | + BootDmesg as /var/log/dmesg is upstart specific and thus not reliably |
2531 | + correct any more. |
2532 | + - hookutils, recent_syslog(): Read system logs from the journal when |
2533 | + running under systemd, and fall back to /var/log/syslog if not. |
2534 | + - hookutils, attach_mac_events(): Read kernel violation messages from |
2535 | + dmesg instead of /var/log/kern.log, as that's specific to rsyslog and |
2536 | + its configuration. |
2537 | + |
2538 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 02 Mar 2015 11:37:32 +0100 |
2539 | + |
2540 | +apport (2.16.1-0ubuntu2) vivid; urgency=medium |
2541 | + |
2542 | + * Merge from trunk: |
2543 | + - hookutils.in_session_of_problem(): Check $XDG_SESSION_ID and |
2544 | + /run/systemd/sessions instead of the cgroup, as the latter does not work |
2545 | + under cgmanager. |
2546 | + |
2547 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Feb 2015 12:52:00 +0100 |
2548 | + |
2549 | +apport (2.16.1-0ubuntu1) vivid; urgency=medium |
2550 | + |
2551 | + * New upstream release: |
2552 | + - Set gettext translation domain in setup.cfg, so that tools like |
2553 | + dh_translations pick it up and show correct polkit translations. |
2554 | + Thanks to Aron Xu! (LP: #1306857) |
2555 | + - Report.get_logind_session(): Check $XDG_SESSION_ID and |
2556 | + /run/systemd/sessions instead of the cgroup, as the latter does not work |
2557 | + under cgmanager. |
2558 | + |
2559 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Feb 2015 11:39:05 +0100 |
2560 | + |
2561 | +apport (2.16-0ubuntu1) vivid; urgency=medium |
2562 | + |
2563 | + * New upstream release: |
2564 | + - Add a new method ProblemReport.extract_keys() which writes binary keys |
2565 | + (which can be very large) directly to files without loading them all |
2566 | + into memory first. Use that in apport-unpack. Thanks Louis Bouchard! |
2567 | + (LP: #1307413) |
2568 | + - launchpad backend: Work with Python 3, now that launchpadlib exists for |
2569 | + Python 3. (LP: #1153671) |
2570 | + - apport-bug, apport-gtk: Also check for $WAYLAND_SESSION, to use |
2571 | + apport-gtk instead of apport-cli under Wayland. Thanks Tim Lunn. |
2572 | + (LP: #1418766) |
2573 | + - apport-gtk: When running under Wayland, avoid Gdk/Wnck operation for |
2574 | + setting crash window modal to the PID of the crashed window; these only |
2575 | + work under X11. |
2576 | + - Don't install the test suite any more, to save 1 MB of installed space. |
2577 | + It can be run out of trunk easily enough, and distributions can install |
2578 | + it from tests/ if they desire. |
2579 | + - hookutils, attach_root_command_outputs(): Fix UnicodeDecodeError crash |
2580 | + for non-textual values. (LP: #1370259) |
2581 | + - ui.py: Only provide a UI to hooks if the crash db will accept the |
2582 | + report. This avoids asking questions if the report is merely sent to |
2583 | + whoopsie for Ubuntu stable releases. Thanks Brian Murrary. |
2584 | + (LP: #1084979) |
2585 | + - whoopsie-upload-all: Add package information to the report before |
2586 | + calling package hooks. Thanks Brian Murray. |
2587 | + - Fix check for available terminal when checking whether to display the |
2588 | + "Examine locally" button. |
2589 | + * Add general hook for detecting Wayland sessions and tagging them with |
2590 | + "wayland-session". Thanks Timm Lunn! (LP: #1418262) |
2591 | + * debian/tests/upstream-system: Copy tests from source tree, as |
2592 | + /usr/share/apport/testsuite/ does not exist any more. |
2593 | + |
2594 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 06 Feb 2015 10:11:30 +0100 |
2595 | + |
2596 | +apport (2.15.1-0ubuntu4) vivid; urgency=medium |
2597 | + |
2598 | + * data/whoopsie-upload-all: need to add package information to the report |
2599 | + before we can add package specific information to it. |
2600 | + |
2601 | + -- Brian Murray <brian@ubuntu.com> Mon, 26 Jan 2015 10:06:06 -0800 |
2602 | + |
2603 | +apport (2.15.1-0ubuntu3) vivid; urgency=medium |
2604 | + |
2605 | + * etc/apport/crashdb.conf: Enable crash reports on Launchpad for vivid. |
2606 | + |
2607 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 26 Jan 2015 17:57:03 +0100 |
2608 | + |
2609 | +apport (2.15.1-0ubuntu2) vivid; urgency=medium |
2610 | + |
2611 | + * Add systemd units for apport-noui. |
2612 | + * Merge from trunk: |
2613 | + - hookutils, attach_root_command_outputs(): Fix UnicodeDecodeError crash |
2614 | + for non-textual values. (LP: #1370259) |
2615 | + |
2616 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 08 Jan 2015 17:33:12 +0100 |
2617 | + |
2618 | +apport (2.15.1-0ubuntu1) vivid; urgency=medium |
2619 | + |
2620 | + * New upstream release. Changes since last snapshot: |
2621 | + - apt/dpkg _search_contents(): Check HTTP last-modified header to avoid |
2622 | + re-downloading Contents.gz every day unless it actually changed. Thanks |
2623 | + Brian Murray! |
2624 | + - apport-gtk: Drop properties which are deprecated in GTK 3.14. |
2625 | + * debian/tests/control: Wrap dependencies. |
2626 | + * debian/tests/control: Add gnome-icon-theme; fixes running tests with GTK |
2627 | + 3.14. |
2628 | + |
2629 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 19 Dec 2014 07:45:30 +0100 |
2630 | + |
2631 | +apport (2.15-0ubuntu3) vivid; urgency=medium |
2632 | + |
2633 | + * Merge further test robustification and translation updates from trunk. |
2634 | + |
2635 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 16 Dec 2014 11:01:20 +0100 |
2636 | + |
2637 | +apport (2.15-0ubuntu2) vivid; urgency=medium |
2638 | + |
2639 | + * Merge from trunk: |
2640 | + - Robustify report.test_get_timestamp test. |
2641 | + - Robustify signal_crashes.test_limit_size test. |
2642 | + |
2643 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 04 Dec 2014 09:19:29 +0100 |
2644 | + |
2645 | +apport (2.15-0ubuntu1) vivid; urgency=medium |
2646 | + |
2647 | + * New upstream release. Changes since our snapshot: |
2648 | + - recoverable_problem: Handle the parent process going away while we're |
2649 | + attempting to read from proc. |
2650 | + - apport-retrace: Stop considering a package download error as transient; it |
2651 | + can too easily lead to unnoticed eternal retry loops. |
2652 | + - whoopsie-upload-all: Refactor to behave more reliably in case of overlapping |
2653 | + crash processing. Thanks Steve Langasek and Brian Murray. (LP: #1354318) |
2654 | + - whoopsie-upload-all: Remove crash reports that have a core dump which is |
2655 | + broken and cannot be processed by gdb. Thanks Brian Murray. (LP: #1376374) |
2656 | + - When core size exceeds the limit (3/4 of available memory) and thus the core |
2657 | + dump is skipped, log this to /var/log/apport.log. (LP: #1387835) |
2658 | + - apport-gtk: Fix jump-to-top on first click of the details treeview. Thanks |
2659 | + Marius Gedminas. (LP: #1387328) |
2660 | + - apport-retrace: Fix location of cached Contents.gz when using --sandbox-dir. |
2661 | + (LP: #1394798) |
2662 | + - Fix backend_apt_dpkg.test_install_packages_permanent_sandbox test case with |
2663 | + proxy env variables with latest apt. |
2664 | + * Update Vcs-Bzr: for vivid branch. |
2665 | + * debian/tests: Drop obsolete workarounds, use allow-stderr. |
2666 | + * Bump Standards-Version to 3.9.6 (no changes necessary). |
2667 | + |
2668 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 02 Dec 2014 14:51:59 +0100 |
2669 | + |
2670 | +apport (2.14.7-0ubuntu10) vivid; urgency=medium |
2671 | + |
2672 | + * data/whoopsie-upload-all: confirm that the crash file exists before trying |
2673 | + to remove it. (LP: #1384358) |
2674 | + |
2675 | + -- Brian Murray <brian@ubuntu.com> Mon, 03 Nov 2014 17:01:55 -0800 |
2676 | + |
2677 | +apport (2.14.7-0ubuntu9) vivid; urgency=medium |
2678 | + |
2679 | + * data/general_hooks/clickinfo.py: Created a hook to determine package |
2680 | + and version information for executables that are from click packages. |
2681 | + |
2682 | + -- Brian Murray <brian@ubuntu.com> Fri, 31 Oct 2014 14:41:14 -0700 |
2683 | + |
2684 | +apport (2.14.7-0ubuntu8) utopic; urgency=medium |
2685 | + |
2686 | + * etc/init.d/apport: Stop setting $PATH in the init.d script. It breaks |
2687 | + assumptions from /lib/lsb/init-functions.d/ which might call other tools |
2688 | + which are not in /bin; also, we generally shouldn't meddle with $PATH in |
2689 | + individual scripts. (LP: #1372665) |
2690 | + |
2691 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 20 Oct 2014 14:51:41 -0400 |
2692 | + |
2693 | +apport (2.14.7-0ubuntu7) utopic; urgency=medium |
2694 | + |
2695 | + * Disable Launchpad crash upload for final Ubuntu 14.10. |
2696 | + |
2697 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 15 Oct 2014 15:37:02 +0200 |
2698 | + |
2699 | +apport (2.14.7-0ubuntu6) utopic; urgency=medium |
2700 | + |
2701 | + * data/recoverable_problem: Fix a Traceback with how the ValueError was |
2702 | + matched. (LP: #1345569) |
2703 | + |
2704 | + -- Brian Murray <brian@ubuntu.com> Mon, 13 Oct 2014 10:02:21 -0700 |
2705 | + |
2706 | +apport (2.14.7-0ubuntu5) utopic; urgency=medium |
2707 | + |
2708 | + [ Evan Dandrea] |
2709 | + * data/recoverable_problem: Handle the parent process going away while |
2710 | + we're attempting to read from proc. (LP: #1345569) |
2711 | + |
2712 | + -- Brian Murray <brian@ubuntu.com> Tue, 07 Oct 2014 15:26:30 -0700 |
2713 | + |
2714 | +apport (2.14.7-0ubuntu4) utopic; urgency=medium |
2715 | + |
2716 | + * data/whoopsie-upload-all: remove crash reports that have a core dump |
2717 | + which is broken and cannot be processed by gdb. (LP: #1376374) |
2718 | + |
2719 | + -- Brian Murray <brian@ubuntu.com> Tue, 07 Oct 2014 14:48:28 -0700 |
2720 | + |
2721 | +apport (2.14.7-0ubuntu3) utopic; urgency=medium |
2722 | + |
2723 | + [ Steve Langasek ] |
2724 | + * Refactor apport-noui/whoopsie-upload-all to behave more reliably in |
2725 | + case of overlapping crash processing (LP: #1354318): |
2726 | + - debian/apport-noui.upstart: refactor to make this an 'instance' job |
2727 | + for each incoming .crash file, and drop the racy handling of non-root |
2728 | + .crash files (as well as the unnecessary 'env MATCH' line). |
2729 | + - data/whoopsie-upload-all: refactor report processing to ensure that |
2730 | + whoopsie-upload-all can be called multiple times in parallel without |
2731 | + causing any .crash file to be processed more than once. |
2732 | + - data/whoopsie-upload-all: handle setting ownership of files in |
2733 | + process_report() instead of relying on this script being called by a |
2734 | + particular user. |
2735 | + - data/whoopsie-upload-all: don't spin in wait_uploaded() watching for |
2736 | + .uploaded files if the corresponding .upload file has been removed out |
2737 | + from under us. |
2738 | + - data/whoopsie-upload-all: by default, return immediately instead of |
2739 | + waiting to see if whoopsie processes all of the crashes. |
2740 | + |
2741 | + [ Brian Murray ] |
2742 | + * data/whoopsie-upload-all: indicate that all reports have been uploaded |
2743 | + even those that were marked for upload earlier. |
2744 | + |
2745 | + -- Brian Murray <brian@ubuntu.com> Thu, 02 Oct 2014 08:33:49 -0700 |
2746 | + |
2747 | +apport (2.14.7-0ubuntu2) utopic; urgency=medium |
2748 | + |
2749 | + [ Brian Murray ] |
2750 | + * data/general-hooks/ubuntu.py: check to see if system-image-cli is |
2751 | + available rather than if /etc/system-image/client.ini exists. |
2752 | + |
2753 | + [ Martin Pitt ] |
2754 | + * ui.py: Robustify check if apport-retrace is installed. This brings back |
2755 | + the "Examine locally" UI option. (LP: #1358734) (Cherry-picked from |
2756 | + trunk). |
2757 | + |
2758 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 04 Sep 2014 12:30:27 +0200 |
2759 | + |
2760 | +apport (2.14.7-0ubuntu1) utopic; urgency=medium |
2761 | + |
2762 | + * New upstream release: |
2763 | + - Fix interpretation of core dump ulimits: they are in bytes, not KiB. |
2764 | + (LP: #1346497) |
2765 | + - apport-retrace: Don't require specifying an operation; default to |
2766 | + updating the given .crash file. (LP: #1361242) |
2767 | + - Write report even on UnreportableReasons, so that whoopsie can still |
2768 | + upload them. (LP: #1360417) |
2769 | + - apt/dpkg install_packages(): Write a "packages.txt" into sandbox root |
2770 | + directory to keep track of installed packages and their versions. |
2771 | + Prerequisite for LP #1352591. |
2772 | + - apt/dpkg install_packages(): Avoid re-downloading/installing packages |
2773 | + which are already installed into a permanent sandbox. Prerequisite for |
2774 | + LP #1352591. |
2775 | + - sandboxutils.py, make_sandbox(): Drop check for already existing files |
2776 | + when dynamically resolving libraries and ExecutablePaths; with that, |
2777 | + these packages would never get updated in a permanent sandbox. The new |
2778 | + version tracking from above now takes care of that. (LP: #1352591) |
2779 | + - Fix report.test_add_proc_info test to stop assuming that pid 1 is named |
2780 | + "init", as one can specify a different one on the kernel command line. |
2781 | + - report.py, add_gdb_info(): Check for truncated core dumps, and set |
2782 | + UnreportableReason and raise an IOError on them. Handle this in |
2783 | + apport-retrace and whoopsie-upload-all to fail properly instead of |
2784 | + silently producing broken Stacktraces. (LP: #1354571) |
2785 | + |
2786 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 29 Aug 2014 12:38:54 +0200 |
2787 | + |
2788 | +apport (2.14.6-0ubuntu2) utopic; urgency=medium |
2789 | + |
2790 | + * Cherry-pick from trunk: Adjust backend_apt_dpkg.test_get_file_package() |
2791 | + test: newer util-linux versions do not provide /etc/blkid.tab any more. |
2792 | + |
2793 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 19 Aug 2014 10:38:44 +0200 |
2794 | + |
2795 | +apport (2.14.6-0ubuntu1) utopic; urgency=medium |
2796 | + |
2797 | + * New upstream bug fix release: |
2798 | + - general-hooks/generic.py: Fix hook crash if there are non-distro |
2799 | + libraries and no user interface. |
2800 | + - collect_info(): Don't assume that reports have a ProblemType. Fixes |
2801 | + crashes with apport-collect. (LP: #1325729) |
2802 | + - apport-retrace: Declare -s/-g/-o as mutually exclusive, to get proper |
2803 | + error messages instead of silent misbehaviour. (LP: #1352450) |
2804 | + - apport-gtk: Drop usage of deprecated GTK stock items. (LP: #1348116) |
2805 | + |
2806 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 18 Aug 2014 07:57:16 +0200 |
2807 | + |
2808 | +apport (2.14.5-0ubuntu4) utopic; urgency=medium |
2809 | + |
2810 | + [ Steve Langasek ] |
2811 | + * Fix invalid shebang lines for apport-noui maintainer scripts which I |
2812 | + somehow overlooked. |
2813 | + |
2814 | + [ Martin Pitt ] |
2815 | + * Add data/general-hooks/powerpc.py: Collect some PowerPC[64] information. |
2816 | + Thanks to Thierry FAUCK! (LP: #1336462) |
2817 | + |
2818 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 08 Aug 2014 15:13:16 +0200 |
2819 | + |
2820 | +apport (2.14.5-0ubuntu3) utopic; urgency=medium |
2821 | + |
2822 | + * apport-noui: make the package installation automatically enable |
2823 | + autosubmission, which doesn't currently work on the phone without it; |
2824 | + and update the package description accordingly. LP: #1351137. |
2825 | + |
2826 | + -- Steve Langasek <steve.langasek@ubuntu.com> Fri, 01 Aug 2014 15:06:49 -0700 |
2827 | + |
2828 | +apport (2.14.5-0ubuntu2) utopic; urgency=medium |
2829 | + |
2830 | + * data/general-hooks/ubuntu.py: Check for /etc/system-image/client.ini |
2831 | + instead of /var/log/system-image/client.log since the latter is only |
2832 | + readable by root. |
2833 | + |
2834 | + -- Brian Murray <brian@ubuntu.com> Tue, 29 Jul 2014 13:20:54 -0700 |
2835 | + |
2836 | +apport (2.14.5-0ubuntu1) utopic; urgency=medium |
2837 | + |
2838 | + * New upstream bug fix release. Changes since last snapshot: |
2839 | + - apt/dpkg get_file_package(): If checking for uninstalled packages, don't |
2840 | + use package information from the host system, but always look it up in |
2841 | + the correct indexes. Otherwise this returns wrong results when files |
2842 | + move to a different package between releases. Thanks Brian Murray! |
2843 | + (LP: #1336062) |
2844 | + - apt/dpkg install_packages(): Disable fetching apt translation indexes, |
2845 | + to save some bandwidth. |
2846 | + - whoopsie-upload-all: Ignore crash reports with incomplete core dumps |
2847 | + instead of crashing on them. Thanks Brian Murray. (LP: #1329520) |
2848 | + - etc/default/apport: Fix comment to use "service" instead of calling the |
2849 | + init.d script directly. |
2850 | + - whoopsie-upload-all: Collect hooks information to gather ApportVersion, |
2851 | + NonfreeKernelModules, and SystemImageInfo. Do this before collecting |
2852 | + package data to minimize hook run time. (LP: #1349579) |
2853 | + - Adjust report.test_get_logind_session test to work with systemd >= 205. |
2854 | + - Fix report.test_check_interpreted_twistd test to skip instead of fail if |
2855 | + twisted is not installed. |
2856 | + |
2857 | + * Drop automatix.py general hook. Automatix is long gone. |
2858 | + * etc/apport/blacklist.d/apport: Drop long obsolete npviewer/npplayer |
2859 | + entries. |
2860 | + * Drop unnecessary python-gi build dependency. |
2861 | + * Drop python-twisted-core build dependency. It's just used for one test, |
2862 | + and will still run in autopkgtest. (Avoids current twisted |
2863 | + uninstallability in main) |
2864 | + |
2865 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 29 Jul 2014 12:26:23 +0200 |
2866 | + |
2867 | +apport (2.14.4-0ubuntu3) utopic; urgency=medium |
2868 | + |
2869 | + * In apport-kde recommend gdb-minimal before gdb |
2870 | + LP: #1347565 "apport recommends gdb" |
2871 | + |
2872 | + -- Jonathan Riddell <jriddell@ubuntu.com> Wed, 23 Jul 2014 12:35:16 +0200 |
2873 | + |
2874 | +apport (2.14.4-0ubuntu2) utopic; urgency=medium |
2875 | + |
2876 | + * Merge from trunk: |
2877 | + - apport-bug: Stop checking the autoreport flag and calling |
2878 | + whoopsie-upload-all; these two are different tasks, and that breaks bug |
2879 | + reporting. (LP: #1339663) |
2880 | + |
2881 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 10 Jul 2014 17:18:33 +0200 |
2882 | + |
2883 | +apport (2.14.4-0ubuntu1) utopic; urgency=medium |
2884 | + |
2885 | + * New upstream bug fix release: |
2886 | + - Adjust code to match latest pep8 checker. |
2887 | + - Report.crash_signature_addresses(): Drop kernel architecture from |
2888 | + StacktraceAddressSignature field. It isn't useful there (at most the ELF |
2889 | + architecture, but we don't really need that either). This makes it |
2890 | + easier to regenerate broken signatures from existing reports on |
2891 | + different architectures. (LP: #1336565) |
2892 | + * Fix PEP-8 errors in Ubuntu hooks. |
2893 | + |
2894 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 03 Jul 2014 06:50:06 +0200 |
2895 | + |
2896 | +apport (2.14.3-0ubuntu2) utopic; urgency=medium |
2897 | + |
2898 | + * Turn on Launchpad crash submission for the devel series. |
2899 | + |
2900 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 18 Jun 2014 15:40:26 +0200 |
2901 | + |
2902 | +apport (2.14.3-0ubuntu1) utopic; urgency=medium |
2903 | + |
2904 | + * New upstream bug fix release: |
2905 | + - Add kernel package version to the various kernel-related hooks. Thanks |
2906 | + Brian Murray. (LP: #1316845) |
2907 | + - Use package name in duplicate signature for recoverable problems. Thanks |
2908 | + Brian Murray. (LP: #1316763) |
2909 | + - Have whoopsie-upload-all upload recoverable problems. Thanks Brian |
2910 | + Murray. (LP: #1319099) |
2911 | + |
2912 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 30 May 2014 15:35:53 +0200 |
2913 | + |
2914 | +apport (2.14.2-0ubuntu4) utopic; urgency=medium |
2915 | + |
2916 | + * data/package-hooks/source_linux.py: create a duplicate signature for |
2917 | + suspend resume failures. (LP: #1316841) |
2918 | + |
2919 | + -- Brian Murray <brian@ubuntu.com> Fri, 16 May 2014 09:46:51 -0700 |
2920 | + |
2921 | +apport (2.14.2-0ubuntu3) utopic; urgency=medium |
2922 | + |
2923 | + * debian/apport-noui.upstart: remove early exit (LP: #1235436) |
2924 | + * debian/apport-noui.dirs: create /var/lib/apport (LP: #1235436) |
2925 | + |
2926 | + -- Brian Murray <brian@ubuntu.com> Wed, 14 May 2014 12:26:39 -0700 |
2927 | + |
2928 | +apport (2.14.2-0ubuntu2) utopic; urgency=medium |
2929 | + |
2930 | + * Merge "backend_apt_dpkg.test_install_packages_versioned: Fix namespacing |
2931 | + of ver" fix from trunk, to better debug the autopkgtest failure on i386. |
2932 | + |
2933 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 02 May 2014 17:30:39 +0200 |
2934 | + |
2935 | +apport (2.14.2-0ubuntu1) utopic; urgency=medium |
2936 | + |
2937 | + * New upstream release: |
2938 | + - Move error handling for invalid .crash files into collect_info(), so |
2939 | + that it also applies when using the "Show Details..." button in the UI. |
2940 | + Otherwise the UI just hangs eternally at this point when encountering |
2941 | + broken core dumps. (LP: #1282349) |
2942 | + - apt/dpkg install_packages(): Try to install the requested package |
2943 | + version instead of always picking the most recent one. This should |
2944 | + improve retracing results for older crash reports. Thanks to Brian |
2945 | + Murray for inspiring this. |
2946 | + - sandboxutils.py, make_sandbox(): When determining packages to install |
2947 | + from ProcMaps, look up and use the package versions from the reporter, |
2948 | + to improve retracing results. Thanks Brian Murray for the initial patch! |
2949 | + - iwlwifi_error_dump: Make reports private, and subscribe |
2950 | + canonical-kernel-team. Thanks Seth Forshee. (LP: #1313818) |
2951 | + - signal_crashes test: Time out after 5 seconds if the test process does |
2952 | + not terminate on the specified signal, to avoid eternal hangs. |
2953 | + - signal_crashes test: Ensure that we don't inherit an ignored SIGQUIT |
2954 | + from the caller. |
2955 | + * Switch Vcs-* to utopic branch. |
2956 | + * Add build-essential test dependency, some tests call gcc. |
2957 | + * Install iwl_wifi_error_dump and corresponding udev rules. (Second part of |
2958 | + LP: #1313818) |
2959 | + |
2960 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 30 Apr 2014 14:07:17 +0200 |
2961 | + |
2962 | +apport (2.14.1-0ubuntu3) trusty; urgency=medium |
2963 | + |
2964 | + * Cherry-pick from trunk: Delay the import of the glob and re modules in the |
2965 | + python apport hook, and only import them when needed. Speeds up |
2966 | + interpreter startup time by 50%. (LP: #1307684) |
2967 | + |
2968 | + -- Matthias Klose <doko@ubuntu.com> Tue, 15 Apr 2014 08:42:00 +0200 |
2969 | + |
2970 | +apport (2.14.1-0ubuntu2) trusty; urgency=medium |
2971 | + |
2972 | + * etc/apport/crashdb.conf: Disable Launchpad crash/kernel reports for |
2973 | + the final release. Only report to http://errors.ubuntu.com from now on. |
2974 | + |
2975 | + -- Brian Murray <brian@ubuntu.com> Thu, 10 Apr 2014 14:26:24 -0700 |
2976 | + |
2977 | +apport (2.14.1-0ubuntu1) trusty; urgency=medium |
2978 | + |
2979 | + * New upstream bug fix release: |
2980 | + - Fix FileNotFoundError from temporary launchpadlib cache dir cleanup. |
2981 | + (LP: #1300474) |
2982 | + - ui.py, open_url(): Skip any Python cleanup/atexit handlers in the forked |
2983 | + xdg-open child, to avoid calling them twice. (Side issue of LP #1300474 |
2984 | + and #1282713) |
2985 | + - apport-kde: Work around crash in sip by skipping the destructors of SIP |
2986 | + objects. Thanks Rohan Garg! (LP: #1282713) |
2987 | + |
2988 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 04 Apr 2014 15:34:06 +0100 |
2989 | + |
2990 | +apport (2.14-0ubuntu1) trusty; urgency=medium |
2991 | + |
2992 | + * New upstream release: |
2993 | + - Add KernelCrash reports when iwlwifi encounters a firmware error (via |
2994 | + the "error_dump" uevent and the new iwlwifi_error_dump helper). Thanks |
2995 | + Seth Forshee! |
2996 | + - launchpad: Really use a temporary launchpadlib cache dir by default. |
2997 | + This avoids piling up gigabytes of useless cached data over time, which |
2998 | + also tends to break every now and then. |
2999 | + - Fix crash in logind session detection. Thanks Dimitri Ledkov! |
3000 | + (LP: #1296026) |
3001 | + |
3002 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 31 Mar 2014 11:47:19 +0200 |
3003 | + |
3004 | +apport (2.13.3-0ubuntu1) trusty; urgency=medium |
3005 | + |
3006 | + [ Martin Pitt ] |
3007 | + * New upstream release: |
3008 | + - etc/cron.daily/apport: Cleanup .drkonqi files after 7 days. Thanks Harald |
3009 | + Sitter. |
3010 | + - ui.py: Try to grab session D-BUS address from user's session when being |
3011 | + called through pkexec. (LP: #1287460) |
3012 | + |
3013 | + [ Brian Murray ] |
3014 | + * data/package-hooks/source_linux.py: ensure dupe_sig1 and dupe_sig2 are |
3015 | + None if they are not found |
3016 | + |
3017 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 07 Mar 2014 16:34:45 +0100 |
3018 | + |
3019 | +apport (2.13.2-0ubuntu5) trusty; urgency=medium |
3020 | + |
3021 | + * data/package-hooks/source_linux.py: remove line feed from |
3022 | + DuplicateSignature as it causes issues on the error tracker |
3023 | + |
3024 | + -- Brian Murray <brian@ubuntu.com> Tue, 18 Feb 2014 13:36:50 -0800 |
3025 | + |
3026 | +apport (2.13.2-0ubuntu4) trusty; urgency=medium |
3027 | + |
3028 | + * data/kernel_oops: include the package version in addition to the name |
3029 | + |
3030 | + -- Brian Murray <brian@ubuntu.com> Fri, 14 Feb 2014 14:09:39 -0800 |
3031 | + |
3032 | +apport (2.13.2-0ubuntu3) trusty; urgency=medium |
3033 | + |
3034 | + * package-hooks/source_linux.py: create a DuplicateSignature for kernel |
3035 | + oops reports thereby allowing them to be bucketed and consolidated in |
3036 | + the Ubuntu error tracker |
3037 | + |
3038 | + -- Brian Murray <brian@ubuntu.com> Thu, 13 Feb 2014 14:33:07 -0800 |
3039 | + |
3040 | +apport (2.13.2-0ubuntu2) trusty; urgency=medium |
3041 | + |
3042 | + * Merge from trunk: |
3043 | + - Fix backend_apt_dpkg.test_get_file_package_uninstalled test that got |
3044 | + broken in the previous release. |
3045 | + |
3046 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 27 Jan 2014 15:21:06 +0100 |
3047 | + |
3048 | +apport (2.13.2-0ubuntu1) trusty; urgency=medium |
3049 | + |
3050 | + * New upstream bug fix release: |
3051 | + - Fix crash if systemd cgroup is unreadable in /sys, such as in |
3052 | + containers. (LP: #1270783) |
3053 | + - apt/dpkg: Also consider Contents.gz from updates/security/proposed |
3054 | + pockets, so that e. g. apport-retrace works for crash reports with files |
3055 | + that are new in those. Thanks to Brian Murray for the initial patch. |
3056 | + (LP: #1271258) |
3057 | + - Only drop internal/private keys (starting with '_') from uploading to |
3058 | + the crash DB and from the UI report views, but not already when updating |
3059 | + the report. (LP: #1272505) |
3060 | + - data/apport: Fix stdout/stderr initialization of the error log, don't |
3061 | + close the original fd after dup2'ing as it is usually already fd 1. This |
3062 | + makes Apport work with Python 3.4. (LP: #1272355) |
3063 | + - Adjust report tests to work with Python 3.4 (LP: #1272355) |
3064 | + |
3065 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 27 Jan 2014 11:33:51 +0100 |
3066 | + |
3067 | +apport (2.13.1-0ubuntu2) trusty; urgency=medium |
3068 | + |
3069 | + * debian/apport.upstart: Use running-in-container instead of checking init's |
3070 | + environment. |
3071 | + * Re-enable Launchpad crash reports for Trusty. (LP: #1271887) |
3072 | + |
3073 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 24 Jan 2014 17:34:56 +0100 |
3074 | + |
3075 | +apport (2.13.1-0ubuntu1) trusty; urgency=medium |
3076 | + |
3077 | + * New upstream release: |
3078 | + - Fix report.test_get_timestamp test for running in other time zones. |
3079 | + - Fix erroneous "gdb-multiarch not installed" warnings in ui tests. |
3080 | + - Fix ui.test_run_crash_older_session test for running as root. |
3081 | + - Fix ui.test_run_crash_older_session for different file system file |
3082 | + orders. |
3083 | + |
3084 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 10 Jan 2014 10:58:54 +0100 |
3085 | + |
3086 | +apport (2.13-0ubuntu1) trusty; urgency=medium |
3087 | + |
3088 | + * New upstream release. Changes since our previous merge: |
3089 | + - Do not report keys starting with '_' to the crash database. This can be |
3090 | + used for keeping private keys in .crash files between crash and report |
3091 | + time, or to store data between hooks etc., without cluttering reports. |
3092 | + - UI: In "run all pending crashes" mode, skip reports that happened during |
3093 | + logout in a desktop (specifically, logind) session; they are |
3094 | + uninteresting and confusing to see at the next login. (LP: #1033932) |
3095 | + They can still be reported manually with running the .crash file |
3096 | + directly, but this sufficiently reduces the need to explicitly flag |
3097 | + whether the report concerns a logout crash. (LP: #1067646) |
3098 | + - Add support for PID namespaces (Linux containers): Crashes originating |
3099 | + from a container on a system running a >= 3.12 kernel will be |
3100 | + automatically redirected to apport inside the container, or ignored if |
3101 | + apport is not installed in the container. Thanks to Stéphane Graber! |
3102 | + - Print a warning when trying to retrace a report from a foreign |
3103 | + architecture and gdb-multiarch is not installed. (LP: #1239395) |
3104 | + - etc/init.d/apport: Don't change core_pattern when running in a |
3105 | + container, as this influences the host and other containers, too. |
3106 | + * apport/ui.py: Rename "MarkForUpload" whoopsie hack field to |
3107 | + "_MarkForUpload" and remove delta from launchpad.py. Fields starting with |
3108 | + '_' are now considered private. |
3109 | + * debian/apport.upstart: Add "%P" macro to core_pattern, to enable Linux |
3110 | + container handling with upstart. |
3111 | + * debian/apport.upstart: Don't change core_pattern when running in a |
3112 | + container, as this influences the host and other containers, too. |
3113 | + (LP: #1267728) |
3114 | + |
3115 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 10 Jan 2014 09:07:07 +0100 |
3116 | + |
3117 | +apport (2.12.7-0ubuntu6) trusty; urgency=medium |
3118 | + |
3119 | + * Merge from trunk: |
3120 | + - setup.py: Make updating of hashbangs work when building without Java, |
3121 | + and also apply it on bin/. |
3122 | + * Bump Standards-Version to 3.9.5, no changes necessary. |
3123 | + |
3124 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 07 Jan 2014 18:41:12 +0100 |
3125 | + |
3126 | +apport (2.12.7-0ubuntu5) trusty; urgency=low |
3127 | + |
3128 | + * Modify the location of apport/autoreport from /etc to /var/lib to be more |
3129 | + compatible with phablet images. Remove instance from apport-noui upstart |
3130 | + job. (LP: #1235436) |
3131 | + |
3132 | + -- Brian Murray <brian@ubuntu.com> Mon, 06 Jan 2014 13:00:41 -0800 |
3133 | + |
3134 | +apport (2.12.7-0ubuntu4) trusty; urgency=medium |
3135 | + |
3136 | + * In python3 (unlike python2) file object does not have "splitlines()" |
3137 | + method, instead one iterate over the lines in the file directly. (LP: |
3138 | + #1265735) |
3139 | + |
3140 | + -- Dimitri John Ledkov <xnox@ubuntu.com> Fri, 03 Jan 2014 08:36:55 +0000 |
3141 | + |
3142 | +apport (2.12.7-0ubuntu3) trusty; urgency=medium |
3143 | + |
3144 | + * Merge from trunk: |
3145 | + - test_signal_crashes: Clean up unexpected reports after every test, to |
3146 | + avoid breaking all subsequent tests. |
3147 | + - test_signal_crashes: Stop checking that gdb prints nothing on stderr, as |
3148 | + latest gdb 7.6.50 now almost always prints some about missing source |
3149 | + files. |
3150 | + * During package build, only run subset of tests that work on buildds, and |
3151 | + make any failure fail the build. The full test suite is run as |
3152 | + autopkgtest. |
3153 | + |
3154 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 19 Dec 2013 08:29:02 +0100 |
3155 | + |
3156 | +apport (2.12.7-0ubuntu2) trusty; urgency=low |
3157 | + |
3158 | + * data/package-hooks/source_ubiquity.py: only warn people about passwords in |
3159 | + the debug log file if they are running in debug mode (LP: #1257159) |
3160 | + * data/general-hooks/ubuntu.py: gather more information for dpkg already |
3161 | + installed and configured package install failures |
3162 | + |
3163 | + -- Brian Murray <brian@ubuntu.com> Mon, 09 Dec 2013 14:20:12 -0800 |
3164 | + |
3165 | +apport (2.12.7-0ubuntu1) trusty; urgency=low |
3166 | + |
3167 | + [ Martin Pitt ] |
3168 | + * New upstream release: |
3169 | + - Properly fall back to lsb_release if /etc/os-release is invalid. |
3170 | + - report.py, add_proc_info(): Add "CurrentDesktop" field with the value of |
3171 | + $XDG_CURRENT_DESKTOP, if present. (LP: #1247904) |
3172 | + - fileutils.py, get_all_system_reports(): Filter out "guest..." users, |
3173 | + they might have a system UID. (LP: #1250679) |
3174 | + - apt/dpkg: Don't call dpkg-divert with full path, it moved in Ubuntu |
3175 | + 14.04. (LP: #1252305) |
3176 | + * launchpad.py: Ignore "MarkForUpload" field, it's just for internal |
3177 | + communication with whoopsie. |
3178 | + |
3179 | + [ Andy Whitcroft ] |
3180 | + * package-hooks/source_linux.py: pull forward fix to generify linux-meta |
3181 | + to linux mapping. (LP: #1229611) |
3182 | + * package-hooks/source_linux.py: pull forward kernel tagging for |
3183 | + linux-lts- family kernels. (LP: #1229611) |
3184 | + |
3185 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 19 Nov 2013 09:11:53 +0100 |
3186 | + |
3187 | +apport (2.12.6-0ubuntu1) trusty; urgency=low |
3188 | + |
3189 | + * New upstream security/bug fix release: |
3190 | + - SECURITY FIX: For setuid programs which drop their privileges after |
3191 | + startup, make the report and core dumps owned by root, to avoid possible |
3192 | + data disclosure. Also, change core dump files to permissions "0600". |
3193 | + Thanks to Martin Carpenter for discovering this! |
3194 | + (CVE-2013-1067, LP: #1242435) |
3195 | + - sandboxutils.needed_runtime_packages(): Create cache directory for |
3196 | + Contents.gz if missing. (LP: #933199) |
3197 | + - apt/dpkg: Recognize options in apt sources.list. (LP: #1238620) |
3198 | + * Move Vcs-Bzr to trusty branch. |
3199 | + |
3200 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 25 Oct 2013 06:49:19 +0200 |
3201 | + |
3202 | +apport (2.12.5-0ubuntu2) saucy; urgency=low |
3203 | + |
3204 | + * etc/apport/crashdb.conf: Disable Launchpad crash/kernel reports for the |
3205 | + final release. Only report to http://errors.ubuntu.com from now on. |
3206 | + |
3207 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 11 Oct 2013 12:11:45 +0200 |
3208 | + |
3209 | +apport (2.12.5-0ubuntu1) saucy; urgency=low |
3210 | + |
3211 | + * New upstream bug fix release: |
3212 | + - Report.add_os_info(): Do not overwrite already existing data. |
3213 | + (LP: #1226776) |
3214 | + - kernel_oops hook: Collect uname at the time of invoking the hook, |
3215 | + instead of at data collection time. (LP: #1226776) |
3216 | + - Replace fixed size icons with PNGs, which are more efficient and avoid |
3217 | + rendering artifacts. (LP: #1231763) |
3218 | + |
3219 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 27 Sep 2013 05:56:30 +0200 |
3220 | + |
3221 | +apport (2.12.4-0ubuntu1) saucy; urgency=low |
3222 | + |
3223 | + * New upstream release: |
3224 | + - Update icons to new design from Vishnoo Charan Reddy, many thanks! |
3225 | + (LP: #1079639) |
3226 | + |
3227 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 19 Sep 2013 13:27:03 -0500 |
3228 | + |
3229 | +apport (2.12.3-0ubuntu1) saucy; urgency=low |
3230 | + |
3231 | + * New upstream bug fix release: |
3232 | + - ProblemReport.write_mime(): Adjust MIMEText handling to latest Python |
3233 | + 3.3 upstream changes which now don't tolerate passing bytes any more. |
3234 | + (LP: #1227381) |
3235 | + - apport-gtk: Don't use obsolete add_with_viewport() method any more. |
3236 | + - Fix ui_present_report_details() "modal_for" keyword for all UI |
3237 | + implementations, so that --hanging works for -cli and -kde, too. |
3238 | + (LP: #1213790) |
3239 | + |
3240 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 19 Sep 2013 10:36:06 -0500 |
3241 | + |
3242 | +apport (2.12.2-0ubuntu1) saucy; urgency=low |
3243 | + |
3244 | + * New upstream bug fix release. Changes since previous snapshot: |
3245 | + - crash-digger: Write pid into lock file. Thanks Steve Langasek. |
3246 | + - apport-gtk: When loading a Bug report from a file, properly set up for |
3247 | + bug reporting mode. (LP: #1226140) |
3248 | + - Move "program is not installed any more" check from report loading into |
3249 | + data collection, so that crash reports can be moved and reported on |
3250 | + machines without that program installed. (LP: #1226030) |
3251 | + * data/general-hooks/ubuntu.py: Add output of "system-image-info -i" to |
3252 | + reports as field "SystemImageInfo", to better identify phablet builds. |
3253 | + (LP: #1225113) |
3254 | + * Add gdb-minimal dependency to apport-noui, as for crashes we always need a |
3255 | + StacktraceAddressSignature at least. (part of LP #1226030) |
3256 | + |
3257 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 17 Sep 2013 16:25:55 -0500 |
3258 | + |
3259 | +apport (2.12.1-0ubuntu4) saucy; urgency=low |
3260 | + |
3261 | + * whoopsie-upload-all: Add a -t/--timeout option. In Jenkins we don't want |
3262 | + to block on upload for 30 mins, but it's still a reasonable timeout on |
3263 | + phones. |
3264 | + |
3265 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 12 Sep 2013 11:50:22 -0400 |
3266 | + |
3267 | +apport (2.12.1-0ubuntu3) saucy; urgency=low |
3268 | + |
3269 | + * data/general-hooks/ubuntu-gnome.py: Add tag when using the gnome3-next |
3270 | + PPA. |
3271 | + * data/general-hooks/cloud_archive.py: Fix IndexError if Package field does |
3272 | + not exist. |
3273 | + * Merge from trunk: |
3274 | + - fileutils.py, get_{new,all}_reports(): Don't consider reports which are |
3275 | + readable, but not writable. (LP: #1098844) |
3276 | + - test_ui_kde.py: Cleanly skip the test if PyQt/PyKDE are not installed, |
3277 | + instead of failing. |
3278 | + |
3279 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 30 Aug 2013 12:42:01 +0200 |
3280 | + |
3281 | +apport (2.12.1-0ubuntu2) saucy; urgency=low |
3282 | + |
3283 | + * Don't provide arguments to whoopsie-upload-all. It doesn't take any. |
3284 | + * Do not attempt to install the now dead apport-noui frontend. |
3285 | + |
3286 | + -- Evan Dandrea <ev@ubuntu.com> Mon, 19 Aug 2013 15:25:05 +0100 |
3287 | + |
3288 | +apport (2.12.1-0ubuntu1) saucy; urgency=low |
3289 | + |
3290 | + [ Martin Pitt ] |
3291 | + * New upstream release. Changes since our previous snapshot: |
3292 | + - Drop apport-noui in favour of whoopsie-upload-all. We don't want to |
3293 | + process hooks when run noninteractively, since they may ask questions or |
3294 | + determine a report is not due to a bug in Ubuntu. whoopsie-upload-all |
3295 | + skips these hooks. |
3296 | + - apport/report.py: Gracefully handle being unable to get the source package |
3297 | + for a binary package, as when the latter does not exist in the cache. |
3298 | + (LP: #1097773) |
3299 | + * data/general-hooks/ubuntu-gnome.py: Switch to Tim Lunn's duplicate DB for |
3300 | + the Ubuntu GNOME PPA. |
3301 | + |
3302 | + [ Evan Dandrea ] |
3303 | + * Call whoopsie-upload-all from the apport-noui upstart job instead of |
3304 | + the now-dead apport-noui frontend. |
3305 | + |
3306 | + -- Evan Dandrea <ev@ubuntu.com> Mon, 19 Aug 2013 14:42:26 +0100 |
3307 | + |
3308 | +apport (2.12-0ubuntu3) saucy; urgency=low |
3309 | + |
3310 | + * Add an upstart job and package to handle automatic error reporting. |
3311 | + |
3312 | + -- Evan Dandrea <ev@ubuntu.com> Tue, 06 Aug 2013 11:17:48 +0100 |
3313 | + |
3314 | +apport (2.12-0ubuntu2) saucy; urgency=low |
3315 | + |
3316 | + * Merge from trunk: |
3317 | + - sandboxutils.py, make_sandbox(): Install packages from Package: and |
3318 | + Dependencies: fields also if we have a ProcMaps: field and there are any |
3319 | + third-party packages. This fixes retracing crashes that use PPAs (as they |
3320 | + don't have Contents.gz). |
3321 | + - Robustify "progress bar visible" GTK and KDE UI checks for the faster |
3322 | + collection due to dropping lsb_release. |
3323 | + |
3324 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 02 Aug 2013 16:03:43 +0200 |
3325 | + |
3326 | +apport (2.12-0ubuntu1) saucy; urgency=low |
3327 | + |
3328 | + * New upstream release: |
3329 | + - recoverable_problem: Can take the PID as an argument. |
3330 | + - Add data/whoopsie-upload-all: Process all pending crashes and mark them |
3331 | + for whoopsie upload, but do not upload them to any other crash database. |
3332 | + Wait until whoopsie is done uploading. |
3333 | + - Eliminate multiple calls to lsb_release by caching the result. On |
3334 | + systems which provide /etc/os-release, use that instead of lsb_release. |
3335 | + (LP: #1164742) |
3336 | + - launchpad.py: Show the Python major version in the error message about |
3337 | + missing launchpadlib. |
3338 | + - ui.py: Check if options for updating and reporting a new bug get used |
3339 | + together, and give a proper error message in this case. (LP: #1071905) |
3340 | + - apport: Fix "Exectuable" typo, leading to reports not being synced on |
3341 | + upstart crashes. Thanks James Hunt. (LP: #1203744) |
3342 | + - Rename apport-gtk-mime.desktop to apport-gtk.desktop and drop the |
3343 | + old apport-gtk.desktop that wasn't even being installed. With that, the |
3344 | + window will be shown as "Report a problem..." instead of "Apport-gtk" in |
3345 | + GNOME shell and other DEs. Thanks Jeremy Bicha. (LP: #1207496) |
3346 | + - report.py, add_gdb_info(): Fix crash if gdb cannot load the symbol map. |
3347 | + (LP: #1171484) |
3348 | + - apport-retrace: Fix crash when using --sandbox without --cache. |
3349 | + (LP: #1197034) |
3350 | + - Fix error message when PID is inaccessible. (LP: #1204718) |
3351 | + - doc/data-format.tex: Drop unused "OS" and "OSRelease" fields, replace |
3352 | + with "DistroRelease" which is actually being used. (LP: #1018387) |
3353 | + * debian/apport-gtk.install: Adjust for desktop file rename. |
3354 | + * debian/apport.install: Install whoopsie-upload-all. |
3355 | + * launchpad.py: Show package name in 'launchpadlib not installed' error |
3356 | + message, and give a more direct error message when trying to use this |
3357 | + through Python 3. (LP: #1071905) |
3358 | + |
3359 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 02 Aug 2013 11:30:12 +0200 |
3360 | + |
3361 | +apport (2.11-0ubuntu1) saucy; urgency=low |
3362 | + |
3363 | + * New upstream release: |
3364 | + - data/apport-noui: A noninteractive frontend for automatic error |
3365 | + reporting. apport-bug will use this if the /etc/apport/autoreport flag |
3366 | + file exists. |
3367 | + - hookutils.py, attach_upstart_logs(): Also attach |
3368 | + ~/.cache/upstart/application-<desktopname>.log for any *.desktop file |
3369 | + shipped by a package. |
3370 | + * debian/apport.install: Ship the new apport-noui frontend. |
3371 | + |
3372 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 17 Jul 2013 09:48:42 +0200 |
3373 | + |
3374 | +apport (2.10.2-0ubuntu4) saucy; urgency=low |
3375 | + |
3376 | + [ Brian Murray ] |
3377 | + * Avoid a crash when handling dpkg terminal log files with unicode data in |
3378 | + them |
3379 | + |
3380 | + [ Evan Dandrea ] |
3381 | + * Fix the order of suid_dumpable and core_pattern. Thanks Seth Arnold |
3382 | + (LP: #1194541). |
3383 | + |
3384 | + -- Evan Dandrea <ev@ubuntu.com> Mon, 08 Jul 2013 15:50:49 +0100 |
3385 | + |
3386 | +apport (2.10.2-0ubuntu3) saucy; urgency=low |
3387 | + |
3388 | + * Enable suid_dumpable (core dumps of setuid binaries). This has |
3389 | + always been safe for us, as we set a core pipe handler, but the |
3390 | + kernel now protects against one not being set: |
3391 | + http://kernel.ubuntu.com/git?p=ubuntu/ubuntu- |
3392 | + raring.git;a=blob;f=Documentation/sysctl/fs.txt;h=88152f214f48cb69c6 |
3393 | + 43d4bf2ff2ac9a61ad2eb0;hb=HEAD |
3394 | + |
3395 | + -- Evan Dandrea <ev@ubuntu.com> Tue, 25 Jun 2013 15:37:01 +0100 |
3396 | + |
3397 | +apport (2.10.2-0ubuntu2) saucy; urgency=low |
3398 | + |
3399 | + [ Brian Murray ] |
3400 | + * data/general-hooks/ubuntu.py: |
3401 | + - Resolve crash in duplicate signature calculation when the package is not |
3402 | + installed (LP: #1184121) |
3403 | + - Remove unusable check for previous package install failures |
3404 | + - Fix indentation of package-conflict check |
3405 | + |
3406 | + [ Martin Pitt ] |
3407 | + * Raise python-apport's "Suggests: python launchpadlib" to Depends:, as the |
3408 | + only reason why to install this package is for apport-collect these days. |
3409 | + (LP: #1192330) |
3410 | + * Merge from trunk: |
3411 | + - hookutils.py, attach_conffiles(): Fix check for inaccessible or modified |
3412 | + conffiles. (LP: #1192899) |
3413 | + - Updated translations from LP. |
3414 | + * etc/apport/crashdb.conf: Enable crash reports on Launchpad for saucy. |
3415 | + |
3416 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 21 Jun 2013 07:16:00 +0200 |
3417 | + |
3418 | +apport (2.10.2-0ubuntu1) saucy; urgency=low |
3419 | + |
3420 | + * New upstream bug fix release: |
3421 | + - Resolve symlinks in file references in Python crash signatures. |
3422 | + (LP: #1179979) |
3423 | + - Fix endless loop of EOFErrors with broken core dumps. (LP: #1168849) |
3424 | + - report.py, add_gdb_info(): Fix crash if gdb did not determine an |
3425 | + assertion message. (LP: #1171484) |
3426 | + - apt/dpkg: Fix get_file_package()'s "release" field to actually mean |
3427 | + DistroRelease:, not a distro code name. This now requires a previous |
3428 | + call to install_packages() with a configdir, which needs to have a file |
3429 | + <configdir>/<release>/codename with the release's code name in it. |
3430 | + - sandboxutils.py: Call get_file_package() with the report's release, so |
3431 | + that we actually get files from the target release, not the host |
3432 | + release. |
3433 | + - test_hookutils.py: Don't assume that /etc/motd exists. |
3434 | + * Move to dh compat level 9. |
3435 | + |
3436 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 22 May 2013 12:39:21 +0200 |
3437 | + |
3438 | +apport (2.10.1-0ubuntu1) saucy; urgency=low |
3439 | + |
3440 | + * New upstream bug fix release: |
3441 | + - Fix ui.test_run_crash_anonymity_escaping test when running as root. |
3442 | + - launchpad.py: Fix crash when trying to adjust a distro-only bug task if |
3443 | + the bug also already has a distropackage task. |
3444 | + - apt/dpkg: When there is no -dbg package, install all -dbg packages of |
3445 | + the corresponding source package, and only then fall back to -dbgsym. |
3446 | + (LP: #1003234) |
3447 | + * data/general-hooks/ubuntu.py: Fix PEP8 error, to make test suite run |
3448 | + again. |
3449 | + |
3450 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 14 May 2013 16:43:09 +0200 |
3451 | + |
3452 | +apport (2.10-0ubuntu3) saucy; urgency=low |
3453 | + |
3454 | + * data/general-hooks/cloud_archive.py: deal with the case where a bug is |
3455 | + being reported about a package that is not installed (LP: #1173240) |
3456 | + |
3457 | + -- Brian Murray <brian@ubuntu.com> Mon, 06 May 2013 08:29:51 -0700 |
3458 | + |
3459 | +apport (2.10-0ubuntu2) saucy; urgency=low |
3460 | + |
3461 | + * data/general-hooks/ubuntu.py: For package installation failures, build a |
3462 | + DuplicateSignature from the package, version, and dpkg ErrorMessage, |
3463 | + instead of using the whole dpkg terminal log. |
3464 | + |
3465 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 02 May 2013 15:21:23 -0700 |
3466 | + |
3467 | +apport (2.10-0ubuntu1) saucy; urgency=low |
3468 | + |
3469 | + [ Martin Pitt ] |
3470 | + * New upstream release. Changes since our previous snapshot: |
3471 | + - Support retracing foreign powerpc reports, thanks Steve Langasek. |
3472 | + - apport/report.py: Generate a crash signature for suspend/resume failures. |
3473 | + - hookutils.py: Add attach_upstart_logs(), thanks Steve Langasek. |
3474 | + - hookutils.py, in_session_of_problem(): Port from ConsoleKit to logind. |
3475 | + - apport/report.py: Handle the case where the user has been removed from |
3476 | + the system, but one of its still-running binaries crashes (LP: #1163453). |
3477 | + - Fix anonymization of user/GECOS fields with regexp control characters |
3478 | + like '+'. (LP: #985049) |
3479 | + - Run tests under LC_CTYPE=C and unset LANG as well, to discover |
3480 | + assumptions about UTF-8 locales. Fix the two failing tests. |
3481 | + - Fix UnicodeDecodeError when apport encounters non-ASCII environment |
3482 | + variables. (LP: #1172638) |
3483 | + * debian/control: Update Vcs-* for saucy branch. |
3484 | + * data/general-hooks/cloud_archive.py: Fix PEP-8 error. |
3485 | + |
3486 | + [ Steve Langasek ] |
3487 | + * data/general-hooks/ubuntu.py: Call attach_upstart_logs(), to attach the |
3488 | + logs for any upstart user jobs shipped by the binary package. |
3489 | + |
3490 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 30 Apr 2013 14:49:42 -0700 |
3491 | + |
3492 | +apport (2.9.2-0ubuntu8) raring; urgency=low |
3493 | + |
3494 | + * data/package-hooks/source_ubiquity.py: use an untranslated string to |
3495 | + determine if the grub install was successful (LP: #1168126) |
3496 | + |
3497 | + -- Brian Murray <brian@ubuntu.com> Thu, 11 Apr 2013 12:51:43 -0700 |
3498 | + |
3499 | +apport (2.9.2-0ubuntu7) raring; urgency=low |
3500 | + |
3501 | + * data/general-hooks/cloud_archive.py: Send reports for packages from |
3502 | + the Ubuntu Cloud Archive to the cloud-archive project on Launchpad. |
3503 | + |
3504 | + -- James Page <james.page@ubuntu.com> Thu, 11 Apr 2013 16:07:39 +0100 |
3505 | + |
3506 | +apport (2.9.2-0ubuntu6) raring; urgency=low |
3507 | + |
3508 | + * etc/apport/crashdb.conf: Disable Launchpad crash/kernel reports for the |
3509 | + raring release. Only report to http://errors.ubuntu.com from now on. |
3510 | + |
3511 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 11 Apr 2013 12:42:27 +0200 |
3512 | + |
3513 | +apport (2.9.2-0ubuntu5) raring; urgency=low |
3514 | + |
3515 | + * data/package-hooks/source_ubiquity.py: Fix crash on non-UTF-8 data in log |
3516 | + files. |
3517 | + * Merge from trunk: |
3518 | + - data/gcc_ice_hook: Fix crash with source files that have non-UTF8 data. |
3519 | + (LP: #1045283) |
3520 | + |
3521 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 27 Mar 2013 09:01:58 +0100 |
3522 | + |
3523 | +apport (2.9.2-0ubuntu4) raring; urgency=low |
3524 | + |
3525 | + * data/general-hooks/ubuntu-gnome.py: Add "gnome3-ppa" tag if any dependency |
3526 | + is from the gnome3 PPA. |
3527 | + * Merge from trunk: |
3528 | + - hookutils.attach_conffiles(): Fix IOError crash on inaccessible |
3529 | + conffiles; mark them as '[inaccessible: <reason>]' instead. |
3530 | + (LP: #1154536) |
3531 | + - hookutils.in_session_of_problem(): Fix crash when the current locale is |
3532 | + invalid. (LP: #1154896) |
3533 | + |
3534 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 25 Mar 2013 15:34:02 +0100 |
3535 | + |
3536 | +apport (2.9.2-0ubuntu3) raring; urgency=low |
3537 | + |
3538 | + [ Martin Pitt ] |
3539 | + * Add data/general-hooks/ubuntu-gnome.py: Send reports for packages from the |
3540 | + gnome3 PPAs to the ubuntu-gnome Launchpad project. (LP: #1158119) |
3541 | + |
3542 | + [ Philip Muškovac ] |
3543 | + * Add the seed name as bug tag in the ubiquity hook so it's possible to |
3544 | + filter the bugs by the image that was used. (LP: #1154302) |
3545 | + |
3546 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 25 Mar 2013 11:17:49 +0100 |
3547 | + |
3548 | +apport (2.9.2-0ubuntu2) raring; urgency=low |
3549 | + |
3550 | + * Include ubiquity.log generated by upstart for the ubiquity.conf |
3551 | + upstart job. |
3552 | + |
3553 | + -- Dmitrijs Ledkovs <dmitrij.ledkov@ubuntu.com> Wed, 13 Mar 2013 18:52:21 +0000 |
3554 | + |
3555 | +apport (2.9.2-0ubuntu1) raring; urgency=low |
3556 | + |
3557 | + * New upstream release: |
3558 | + - report.py, add_package_info(): Add "[origin: unknown]" tag to |
3559 | + Package/Dependencies fields for non-distro package whose origin cannot |
3560 | + be determined. (LP: #1148116) |
3561 | + - Adjust kernel_crashdump to the format kdump-tools produces. Thanks Louis |
3562 | + Bouchard. |
3563 | + - Write core dumps on SIGQUIT if ulimit allows. Thanks Graeme Hewson. |
3564 | + (LP: #1153662) |
3565 | + * debian/apport.upstart: Also check for kdump-tools-style kernel crash |
3566 | + reports for calling kernel_crashdump. Thanks Louis Bouchard. |
3567 | + |
3568 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 19 Mar 2013 11:48:27 +0100 |
3569 | + |
3570 | +apport (2.9.1-0ubuntu1) raring; urgency=low |
3571 | + |
3572 | + * New upstream release: |
3573 | + - launchpad.py: Add support for filing bugs as private. Document this in |
3574 | + doc/crashdb-conf.txt. (LP: #1144647) |
3575 | + - Fix crash in error() and warning() if there is no sys.stderr. |
3576 | + (LP: #1012445) |
3577 | + - Fix Turkish translation to add missing keyboard accelerator. |
3578 | + (LP: #648750) |
3579 | + - fileutils.py, find_package_desktopfile(): Restrict to autostart and |
3580 | + application .desktop files. (LP: #1147528) |
3581 | + - apt/dpkg get_modified_files(): Fix crash when encountering non-ASCII |
3582 | + file names in an ASCII locale. (LP: #1044014) |
3583 | + * Bump Standards-Version to 3.9.4 (no changes necessary). |
3584 | + |
3585 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 07 Mar 2013 16:04:35 +0100 |
3586 | + |
3587 | +apport (2.9-0ubuntu2) raring; urgency=low |
3588 | + |
3589 | + * Merge from trunk: |
3590 | + - test_signal_crashes.py: Fix test_crash_apport() when being run under |
3591 | + LD_PRELOAD. |
3592 | + |
3593 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 01 Mar 2013 13:35:21 +0100 |
3594 | + |
3595 | +apport (2.9-0ubuntu1) raring; urgency=low |
3596 | + |
3597 | + [ Martin Pitt ] |
3598 | + * New upstream release. Changes since previous trunk merge: |
3599 | + - fileutils.py, shared_libraries(): Return a "name → path" dict instead of |
3600 | + just a set of names. Thanks Kyle Nitzsche. |
3601 | + - sandboxutils.py: Support unpackaged executables, i. e. reports which do |
3602 | + not have "Package" and "Dependencies" fields. For those, get required |
3603 | + libraries from "ProcMaps". Thanks Kyle Nitzsche. |
3604 | + - apport/report.py: report if LD_PRELOAD and LD_LIBRARY_PATH are set. |
3605 | + Thanks James Hunt. |
3606 | + - apport-valgrind: Cleanly exit on keyboard interrupts. Thanks Kyle |
3607 | + Nitzsche. |
3608 | + - debian.py: Fix "string payload expected" crash when building the report. |
3609 | + Thanks Dmitry Shachnev. (Debian #698010) |
3610 | + - Move shared_libraries() and links_with_shared_library() from hookutils |
3611 | + into fileutils, so that we can use it from apport-valgrind. Thanks to |
3612 | + Kyle Nitzsche for the initial patch. |
3613 | + - fileutils.shared_libraries(): Filter out virtual "linux-vdso" from |
3614 | + result. Thanks Kyle Nitzsche. |
3615 | + - apport-valgrind: Fix path to debug symbols in the sandbox. |
3616 | + - ui.py, get_desktop_entry(): Fix for Python 2. |
3617 | + |
3618 | + [ Brian Murray ] |
3619 | + * data/general-hooks/ubuntu.py: remove adding of running-unity tag to bug |
3620 | + reports as the majority of users are now using unity so this is the more |
3621 | + common case. |
3622 | + * data/package-hooks/source_ubiquity.py: set a default value for cd_error |
3623 | + |
3624 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 01 Mar 2013 09:17:34 +0100 |
3625 | + |
3626 | +apport (2.8-0ubuntu4) raring; urgency=low |
3627 | + |
3628 | + * ui.py: Check $PKEXEC_UID in addition to $SUDO_UID for opening a browser. |
3629 | + (Backported from trunk). |
3630 | + |
3631 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 01 Feb 2013 11:26:39 +0100 |
3632 | + |
3633 | +apport (2.8-0ubuntu3) raring; urgency=low |
3634 | + |
3635 | + * Backport polkit action for running apport-gtk through pkexec to access |
3636 | + system crash reports from upstream r2578 |
3637 | + |
3638 | + -- Brian Murray <brian@ubuntu.com> Wed, 30 Jan 2013 08:13:01 -0800 |
3639 | + |
3640 | +apport (2.8-0ubuntu2) raring; urgency=low |
3641 | + |
3642 | + [ Martin Pitt ] |
3643 | + * debian/control: Add alternative libc-dbg dependencies. |
3644 | + |
3645 | + [ Brian Murray ] |
3646 | + * data/package-hooks/source_linux.py: modify check for whether or not the |
3647 | + kernel is an upstream one (LP: #1100198) |
3648 | + |
3649 | + -- Brian Murray <brian@ubuntu.com> Thu, 17 Jan 2013 09:04:19 -0800 |
3650 | + |
3651 | +apport (2.8-0ubuntu1) raring; urgency=low |
3652 | + |
3653 | + * New upstream release: |
3654 | + - Factor out sandbox management functions from apport-retrace into |
3655 | + apport/sandboxutils.py, so that other programs can re-use the API |
3656 | + easily. Thanks to Kyle Nitzsche for the initial work on this. |
3657 | + - Generate a crash signature for kernel OOPSes. |
3658 | + - Add "apport-valgrind" tool to produce valgrind reports in a temporary |
3659 | + sandbox with debug symbols (similar to apport-retrace). Thanks Alex |
3660 | + Chiang and Kyle Nitzsche! |
3661 | + - Fix StacktraceAddressSignature generation on ARM. (LP: #1089778) |
3662 | + - debian.py: Fix TypeError crash in payload generation. Thanks Ritesh Raj |
3663 | + Sarraf. |
3664 | + - apport_python_hook.py: Update "ExecutableTimestamp" field when mangling |
3665 | + "ExecutablePath". (LP: #1077253) |
3666 | + * Add new apport-valgrind binary package. |
3667 | + * Re-enable Launchpad crash reports for raring. |
3668 | + |
3669 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 08 Jan 2013 08:39:35 +0100 |
3670 | + |
3671 | +apport (2.7-0ubuntu2) raring; urgency=low |
3672 | + |
3673 | + * Cherry-pick from trunk: |
3674 | + - Fix StacktraceAddressSignature generation on ARM. (LP: #1089778) |
3675 | + |
3676 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 13 Dec 2012 08:56:47 +0100 |
3677 | + |
3678 | +apport (2.7-0ubuntu1) raring; urgency=low |
3679 | + |
3680 | + * New upstream release: |
3681 | + - packaging.py, get_file_package(): Add optional "release" and "arch" |
3682 | + arguments for getting a file's package for a foreign release or |
3683 | + architecture. Implement this for apt/dpkg backend. |
3684 | + - packaging.py, install_packages(): Add optional "architecture" argument |
3685 | + for creating a sandbox for a foreign architecture. Implement this for |
3686 | + apt/dpkg backend. |
3687 | + - When a report's architecture does not match the system architecture, try |
3688 | + to use gdb-multiarch (if available, as packaged on Debian/Ubuntu), and |
3689 | + set architecture and gnutarget accordingly in gdb. This supports x86, |
3690 | + x86_64, and ARM for now, so that reports from all these architectures |
3691 | + can be retraced on an x86_84 machine. (LP: #1044437) |
3692 | + - launchpad.py: Add "architecture" option to process reports for a foreign |
3693 | + architecture. |
3694 | + - Add exceptions from package hooks to new HookError_<filename> report |
3695 | + field, to make them more visible. Until now they were only written to |
3696 | + stderr. (LP: #1086309) |
3697 | + - apport-cli: Fix showing of prompt. Thanks Dmitry Shachnev! |
3698 | + - fileutils.py, mark_report_upload(): Do not try to remove the .uploaded |
3699 | + file, as this is not owned by the user. |
3700 | + - backends/packaging-apt-dpkg.py, install_packages(): Set mirror to the |
3701 | + one in the sandbox config. |
3702 | + - apportcheckresume: Fix crash if state file does not exist. |
3703 | + * debian/control: Add "gdb-multiarch" suggests to apport-retrace, and update |
3704 | + package description for justification. |
3705 | + |
3706 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 10 Dec 2012 14:07:04 +0100 |
3707 | + |
3708 | +apport (2.6.3-0ubuntu4) raring; urgency=low |
3709 | + |
3710 | + * Merge from trunk: Consistently use ignore file without $HOME. Fixes |
3711 | + running as root, and autopkgtests. |
3712 | + |
3713 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 05 Dec 2012 23:28:09 +0000 |
3714 | + |
3715 | +apport (2.6.3-0ubuntu3) raring; urgency=low |
3716 | + |
3717 | + * Fix OSError crash in mark_report_upload(); regression from |
3718 | + 2.6.3-0ubuntu2. |
3719 | + |
3720 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 05 Dec 2012 10:55:55 +0000 |
3721 | + |
3722 | +apport (2.6.3-0ubuntu2) raring; urgency=low |
3723 | + |
3724 | + * debian/control: Add libglib2.0-dev and libnih-dev build dependencies, for |
3725 | + the tests that run during build time. |
3726 | + * debian/tests/control: Add missing test dependencies: libnih-dev for |
3727 | + test_add_gdb_info_abort_libnih. |
3728 | + * Merge from trunk: |
3729 | + - Fix test_find_package_desktopfile test to not consider packages with |
3730 | + only one "NoDisplay=true" .desktop file for the "has one desktop file" |
3731 | + test. |
3732 | + - report.py, mark_ignore(): Use home directory of actual effective user, |
3733 | + not of $HOME. Fixes ignore file when using through sudo. |
3734 | + |
3735 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 30 Nov 2012 21:51:33 +0100 |
3736 | + |
3737 | +apport (2.6.3-0ubuntu1) raring; urgency=low |
3738 | + |
3739 | + * New upstream release. Changes since our previous snapshot: |
3740 | + - debian.py: Only reject reports with useless stack traces if the report |
3741 | + actually has a stack trace at all. |
3742 | + - debian.py: Fix UTF-8 string handling. Thanks Ritesh Raj Sarraf. |
3743 | + - debian.py: Fix crash on broken "Package" fields, as generated by current |
3744 | + Debian/Ubuntu dkms package. |
3745 | + - data/apport: Call fsync when writing upstart crash reports. |
3746 | + - report.py, add_gdb_info(): Handle libnih's assertion messages. |
3747 | + (LP: #997359) |
3748 | + - apport-gtk, apport-kde: Don't provide an option to restart a crashed |
3749 | + application when the crash occurred in a thread (LP: #1033902). |
3750 | + - apport-retrace: Disallow option -C without option -S. Thanks Kyle |
3751 | + Nitzsche. |
3752 | + - fileutils.py, mark_report_upload(): Refresh the .upload stamps if a |
3753 | + previous version of the report was already uploaded, but another |
3754 | + instance of the problem happened since then. Thanks Brian Murray. (LP: |
3755 | + #1084296) |
3756 | + - Ignore implausibly low addresses when computing |
3757 | + StacktraceAddressSignature. These are usually artifacts from gdb when |
3758 | + not having debug symbols, and having too many of them prevents proper |
3759 | + client-side duplicate detection and proper bucketing in daisy. |
3760 | + (LP: #1084996) |
3761 | + - fileutils.py: Ignore .desktop files with NoDisplay=true. (LP: #1048524) |
3762 | + * debian/tests/control: Run tests as root, just like before switching our |
3763 | + autopkgtests to run as user "ubuntu" by default. This enables a couple of |
3764 | + extra tests, and avoids some confusion because the distro and the user |
3765 | + name are identical. |
3766 | + * data/package-hooks/source_linux-nexus7.py: Fix PEP-8 error. |
3767 | + |
3768 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 30 Nov 2012 18:00:01 +0100 |
3769 | + |
3770 | +apport (2.6.2-0ubuntu5) raring; urgency=low |
3771 | + |
3772 | + * data/general-hooks/ubuntu.py: Deal with dpkg_log file being a string |
3773 | + instead of bytes (LP: #1080915) |
3774 | + |
3775 | + -- Brian Murray <brian@ubuntu.com> Mon, 19 Nov 2012 17:03:54 -0800 |
3776 | + |
3777 | +apport (2.6.2-0ubuntu4) raring; urgency=low |
3778 | + |
3779 | + * data/package-hooks/source_linux.py: Do not abort with "not an Ubuntu |
3780 | + kernel" if the report has a CrashDB set, i. e. reports go to a different |
3781 | + project. |
3782 | + * Add data/package-hooks/source_linux-nexus7.py: Package hook for our nexus7 |
3783 | + package which currently lives in a PPA: (LP: #1076082) |
3784 | + - Report bugs against the "ubuntu-nexus7" project. |
3785 | + - Collect information from the "linux" source package hook. |
3786 | + - Add "mobile" and "nexus7" tags. |
3787 | + |
3788 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 19 Nov 2012 09:24:12 +0100 |
3789 | + |
3790 | +apport (2.6.2-0ubuntu3) raring; urgency=low |
3791 | + |
3792 | + * debian/tests/control: Add missing libglib2.0-0-dbg test dependency for the |
3793 | + report.test_add_gdb_info_abort_glib() check. |
3794 | + |
3795 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 09 Nov 2012 10:49:30 +0100 |
3796 | + |
3797 | +apport (2.6.2-0ubuntu2) raring; urgency=low |
3798 | + |
3799 | + * debian/tests/control: Add libglib2.0-dev dependency for the new "glib |
3800 | + assertion message" test case. |
3801 | + * Merge from trunk: |
3802 | + - test_signal_crashes.py: Fix incompatibility with Python 3.3. |
3803 | + - test_signal_crashes.py: Allow XDG_RUNTIME_DIR environment variable, as |
3804 | + it only shows whether or not it is set. (Test regression from 2.6) |
3805 | + |
3806 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 07 Nov 2012 10:24:28 +0100 |
3807 | + |
3808 | +apport (2.6.2-0ubuntu1) raring; urgency=low |
3809 | + |
3810 | + * New upstream release: |
3811 | + - problem_report.py: Fix UnicodeDecodeError crash under Python 2 when the |
3812 | + report has an unicode field with an unprintable ASCII character < 20. |
3813 | + - debian.py: Fix calling of parent accepts() method and return value. |
3814 | + Thanks Ritesh Raj Sarraf. |
3815 | + - bin/apport-retrace: Fix crash when not using --sandbox mode. |
3816 | + - report.py, add_proc_info(): Throw correct exception if the executable |
3817 | + path does not exist, to provide a more appropriate error message. |
3818 | + (LP: #1065129) |
3819 | + - report.py, add_gdb_info(): Check __glib_assert_msg for assertion |
3820 | + messages, too. |
3821 | + - REThread.py: Fix for Python 3.3. |
3822 | + * debian/control: Update Vcs-Bzr: for raring branch. |
3823 | + |
3824 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 06 Nov 2012 16:18:56 +0100 |
3825 | + |
3826 | +apport (2.6.1-0ubuntu6) quantal-proposed; urgency=low |
3827 | + |
3828 | + * Do not refer to the current release in the InstallationDate field |
3829 | + (LP: #1070400). We have the installed release version in the |
3830 | + InstallationMedia field. |
3831 | + |
3832 | + -- Evan Dandrea <ev@ubuntu.com> Wed, 24 Oct 2012 14:31:10 +0100 |
3833 | + |
3834 | +apport (2.6.1-0ubuntu5) quantal-proposed; urgency=low |
3835 | + |
3836 | + * Include the date that Ubuntu was installed with each report |
3837 | + (LP: #1070400). |
3838 | + |
3839 | + -- Evan Dandrea <ev@ubuntu.com> Wed, 24 Oct 2012 11:29:18 +0100 |
3840 | + |
3841 | +apport (2.6.1-0ubuntu4) quantal-proposed; urgency=low |
3842 | + |
3843 | + * apport/ui.py: create a MarkForUpload field and set that to false for |
3844 | + binaries that changed since the crash happened thereby preventing uploads |
3845 | + to the crash database (LP: #1039220) |
3846 | + |
3847 | + -- Brian Murray <brian@ubuntu.com> Tue, 16 Oct 2012 13:31:24 -0700 |
3848 | + |
3849 | +apport (2.6.1-0ubuntu3) quantal; urgency=low |
3850 | + |
3851 | + * etc/apport/crashdb.conf: Disable Launchpad crash/kernel reports for the |
3852 | + final release. Only report to http://errors.ubuntu.com from now on. |
3853 | + |
3854 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 09 Oct 2012 17:19:32 +0200 |
3855 | + |
3856 | +apport (2.6.1-0ubuntu2) quantal; urgency=low |
3857 | + |
3858 | + * apport-kde; do not run mainloop as well as dialogues, prevents |
3859 | + crash on reporting a bug |
3860 | + |
3861 | + -- Jonathan Riddell <jriddell@ubuntu.com> Tue, 09 Oct 2012 13:14:38 +0100 |
3862 | + |
3863 | +apport (2.6.1-0ubuntu1) quantal; urgency=low |
3864 | + |
3865 | + * New upstream release: |
3866 | + - setup.py: Build java module with "-target 1.5" option, so that you can run |
3867 | + it with OpenJDK 6 even if you build with OpenJDK 7. |
3868 | + - report.py, add_proc_info(): Show if $XDG_RUNTIME_DIR is set. |
3869 | + - Add apport/crashdb_impl/debian.py: Initial crash database implementation for |
3870 | + the Debian BTS. Add configuration for it to etc/apport/crashdb.conf. Thanks |
3871 | + Ritesh Raj Sarraf! |
3872 | + Note that in the Ubuntu packaging branch crashdb.conf is not changed, as |
3873 | + we do not need the Debian BTS and this would otherwise be Feature Freeze |
3874 | + matter. |
3875 | + - test_python_crashes.py: Robustify "$PYTHONPATH in ProcEnviron" check. |
3876 | + - Updated translations from Launchpad. |
3877 | + * data/package-hooks/source_linux.py: Stop collecting ACPI data, not |
3878 | + needed/desired for most bug reports according to Colin King. |
3879 | + * debian/tests/control: Add at-spi2-core dependency, otherwise the GTK test |
3880 | + will fail to connect to org.a11y.Bus. |
3881 | + |
3882 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 01 Oct 2012 12:27:00 +0200 |
3883 | + |
3884 | +apport (2.5.3-0ubuntu1) quantal; urgency=low |
3885 | + |
3886 | + * New upstream release. Changes since our previous snapshot: |
3887 | + - report.py, search_bug_patterns(): Fix bug patterns containing non-ASCII |
3888 | + characters. |
3889 | + - apport_python_hook.py: Capture $PYTHONPATH and $PYTHONHOME environment |
3890 | + variables for Python crashes. |
3891 | + - Translation updates. |
3892 | + |
3893 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 28 Sep 2012 12:59:11 +0200 |
3894 | + |
3895 | +apport (2.5.2-0ubuntu4) quantal; urgency=low |
3896 | + |
3897 | + * Merge from trunk: |
3898 | + - hookutils.py, attach_root_command_outputs(): Ignore IOError crash about |
3899 | + nonexisting files, which can happen if the user dismisses authorization. |
3900 | + (LP: #1051222) |
3901 | + - launchpad.py: Fix tag filtering for Python 3. (LP: #1052754) |
3902 | + |
3903 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 20 Sep 2012 08:07:01 +0200 |
3904 | + |
3905 | +apport (2.5.2-0ubuntu3) quantal; urgency=low |
3906 | + |
3907 | + * data/general-hooks/ubuntu.py: Fix PEP-8 errors. |
3908 | + * Merge from trunk: |
3909 | + - apport/ui.py: Update expected exception after r2486. |
3910 | + |
3911 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 19 Sep 2012 10:41:09 +0200 |
3912 | + |
3913 | +apport (2.5.2-0ubuntu2) quantal; urgency=low |
3914 | + |
3915 | + * data/general-hooks/ubuntu.py: Add "package-from-proposed" tag if the |
3916 | + installed package version is available from -proposed, but not from |
3917 | + -security and -updates. (LP: #1050853) |
3918 | + * Merge fixes from trunk: |
3919 | + - data/apportcheckresume: Open report file in binary mode. (LP: #1040353) |
3920 | + - packaging-apt-dpkg.py: When throwing ValueErrors, show the non-existing |
3921 | + package name. This makes it easier to debug such crashes. |
3922 | + - launchpad.py: Replace characters from tags which are not allowed by |
3923 | + Launchpad with '.' (LP: #1029479) |
3924 | + |
3925 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 18 Sep 2012 14:51:08 +0200 |
3926 | + |
3927 | +apport (2.5.2-0ubuntu1) quantal; urgency=low |
3928 | + |
3929 | + * New upstream release: |
3930 | + - Fix crash on broken .desktop files. (LP: #1039889) |
3931 | + - apport-gtk: For console program crashes, say "stopped" instead of |
3932 | + "closed". Add a subtitle label with a hint about hanging programs. |
3933 | + Thanks Matt Price and Matthew Paul Thomas! |
3934 | + - report.py: Fix crash on determination of Python module path when |
3935 | + examining a crash of "python -m ...". |
3936 | + - apport-kde: Fix crash with undefined QString under Python 3. Thanks |
3937 | + Jonathan Riddell! (LP: #1028984) |
3938 | + - launchpad.py: Add missing "Pre-release Freeze" status. Thanks Brian |
3939 | + Murray! |
3940 | + - report.py, _check_bug_pattern(): Fix bug pattern matching against binary |
3941 | + values. Thanks Brian Murray for the original patch. (LP: #1016380) |
3942 | + * debian/control: Move x-terminal-emulator dependency from apport-retrace to |
3943 | + -gtk and -kde. It's those which actually spawn an X terminal for |
3944 | + apport-retrace to run in, and this lessens the dependencies for |
3945 | + apport-retrace on server type systems. |
3946 | + * Add debian/apport.maintscript: Clean up obsolete precise conffile |
3947 | + /etc/apport/native-origins.d/lts-q-backports on upgrades. (LP: #1049058) |
3948 | + * data/general-hooks/ubuntu.py: Fix PEP-8 errors. |
3949 | + |
3950 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 17 Sep 2012 14:15:41 +0200 |
3951 | + |
3952 | +apport (2.5.1-0ubuntu7) quantal-proposed; urgency=low |
3953 | + |
3954 | + * bin/apport-bug: Explicitly set the PATH to that of ENV_SUPATH in |
3955 | + /etc/login.defs. We need do this so that confined applications using |
3956 | + ubuntu-browsers.d/ubuntu-integration cannot abuse the environment to |
3957 | + escape AppArmor confinement via this script (LP: #1045986). This can be |
3958 | + removed once AppArmor supports environment filtering (LP: 1045985) |
3959 | + |
3960 | + -- Jamie Strandboge <jamie@ubuntu.com> Tue, 04 Sep 2012 21:23:16 -0500 |
3961 | + |
3962 | +apport (2.5.1-0ubuntu6) quantal; urgency=low |
3963 | + |
3964 | + * data/general/ubuntu.py: handle the case where a log file is compressed |
3965 | + when reviewing package installation failures (LP: #917903) |
3966 | + |
3967 | + -- Brian Murray <brian@ubuntu.com> Tue, 04 Sep 2012 15:35:50 -0700 |
3968 | + |
3969 | +apport (2.5.1-0ubuntu5) quantal; urgency=low |
3970 | + |
3971 | + * Use Python string rather than QString, LP: #1028984 |
3972 | + |
3973 | + -- Jonathan Riddell <jriddell@ubuntu.com> Tue, 04 Sep 2012 16:13:14 +0100 |
3974 | + |
3975 | +apport (2.5.1-0ubuntu4) quantal; urgency=low |
3976 | + |
3977 | + * do not stack trace when ec2 metadata is available (LP: #1018552) |
3978 | + |
3979 | + -- Scott Moser <smoser@ubuntu.com> Thu, 30 Aug 2012 17:15:02 -0400 |
3980 | + |
3981 | +apport (2.5.1-0ubuntu3) quantal; urgency=low |
3982 | + |
3983 | + * data/general/ubuntu.py: when creating a duplicate signature search the |
3984 | + terminal log for more messages indicating the start of a failure thereby |
3985 | + creating a duplicate signature in more cases |
3986 | + |
3987 | + -- Brian Murray <brian@ubuntu.com> Tue, 28 Aug 2012 09:56:30 -0700 |
3988 | + |
3989 | +apport (2.5.1-0ubuntu2) quantal; urgency=low |
3990 | + |
3991 | + * Merge from trunk: |
3992 | + - test/run: Ignore root_info_wrapper with pyflakes. |
3993 | + - packaging-apt-dpkg.py: Add recommended packages to "Dependencies:" |
3994 | + field. (LP: #1014428) |
3995 | + - test_hookutils.py, test_in_session_of_problem(): Use year 2038 for a |
3996 | + future date instead of 2211, as current Python 3.2 now crashes with an |
3997 | + OverflowError on 32 bit machines with later years. |
3998 | + |
3999 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 24 Aug 2012 07:50:15 +0200 |
4000 | + |
4001 | +apport (2.5.1-0ubuntu1) quantal; urgency=low |
4002 | + |
4003 | + * New upstream release: |
4004 | + - test_recoverable_problem.py: Fix test for calling test runner with |
4005 | + absolute path. |
4006 | + - packaging-apt-dpkg.py: Fix crash on writing virtual_mapping.db when |
4007 | + running with --sandbox-dir and -S system or giving no --cache. |
4008 | + - REThread.py: Fix re-raising of exceptions in Python 3. Thanks Martin |
4009 | + Packman! (LP: #1024836) |
4010 | + - apport-retrace: Keep compressed CoreDump from .crash files instead of |
4011 | + uncompressing them into memory. This dramatically reduces memory usage. |
4012 | + (LP: #981155) |
4013 | + - Add an apport.memdbg() function which prints out current memory usage if |
4014 | + APPORT_MEMDEBUG is set. Annotate apport-retrace with it. |
4015 | + - hookutils.py: Allow specifying a list of profile names when using |
4016 | + attach_mac_events(). Thanks Marc Deslauriers. |
4017 | + - hookutils.py, attach_root_command_outputs() and root_command_output(): |
4018 | + Drop usage of sudo, kdesudo, and gksu, and replace with pkexec. For |
4019 | + attach_root_command_outputs(), use a wrapper and proper .policy file |
4020 | + which explains the action and works under every environment; thus |
4021 | + attach_root_command_outputs() is preferred over root_command_output() |
4022 | + now, as it provides a better user experience. |
4023 | + - Package hooks which want to send the report to a different crash |
4024 | + database than "default" can now also give the database specification |
4025 | + itself in the "CrashDB" field, not just the DB name. With this, packages |
4026 | + do not need to ship a separate /etc/apport/crashdb.conf.d/ file. Please |
4027 | + see doc/package-hooks.txt for details. (LP: #551330) |
4028 | + - report.py, add_hooks_info(): If reporting against a package/program in |
4029 | + /opt, also search for package hooks in the corresponding /opt directory. |
4030 | + This allows such hooks to define a custom crash database and thus report |
4031 | + bugs against their own project instead of against the distribution. |
4032 | + (LP: #1020503) |
4033 | + * debian/rules: Call dh_install with --list-missing, and ignore .pyc and |
4034 | + .egg-info files. |
4035 | + * debian/apport.install: Install new polkit .policy and root_info_wrapper |
4036 | + files, and add policykit-1 Recommends. |
4037 | + * debian/apport.install: Ship is-enabled script. |
4038 | + * debian/apport-kde.install: Ship userpass.ui file. |
4039 | + * Drop debian/apport-retrace.manpages and debian/apport.manpages and install |
4040 | + the man pages from *.install instead. This works better with |
4041 | + --list-missing. |
4042 | + * debian/apport.install: Install 000record-status pm-utils script, to |
4043 | + unbreak suspend failure detection. |
4044 | + |
4045 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 22 Aug 2012 11:58:45 +0200 |
4046 | + |
4047 | +apport (2.4-0ubuntu9) quantal; urgency=low |
4048 | + |
4049 | + * apport/ui.py: revert the change to when the .upload file is created as the |
4050 | + fix was incomplete and requires more investigation |
4051 | + |
4052 | + -- Brian Murray <brian@ubuntu.com> Tue, 21 Aug 2012 10:23:35 -0700 |
4053 | + |
4054 | +apport (2.4-0ubuntu8) quantal; urgency=low |
4055 | + |
4056 | + * hookutils.py: Allow specifying a list of profile names when using |
4057 | + attach_mac_events() |
4058 | + |
4059 | + -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Wed, 15 Aug 2012 22:47:33 -0400 |
4060 | + |
4061 | +apport (2.4-0ubuntu7) quantal; urgency=low |
4062 | + |
4063 | + * apport/ui.py: only create the .upload file after collect_info is complete |
4064 | + that way whoopsie will upload crash files with all the information it |
4065 | + needs (LP: #1020994) |
4066 | + |
4067 | + -- Brian Murray <brian@ubuntu.com> Wed, 15 Aug 2012 16:07:34 -0700 |
4068 | + |
4069 | +apport (2.4-0ubuntu6) quantal; urgency=low |
4070 | + |
4071 | + * debian/control: |
4072 | + - Drop python3-pykde4 from Build-Depends. The dep8 tests will pull |
4073 | + it in as needed. The non-fatal build tests will continue to fail the |
4074 | + KDE test anyway because it requires X. This way, we don't require |
4075 | + python3-pykde4 to be in main. |
4076 | + |
4077 | + -- Michael Terry <mterry@ubuntu.com> Wed, 25 Jul 2012 13:20:42 -0400 |
4078 | + |
4079 | +apport (2.4-0ubuntu5) quantal; urgency=low |
4080 | + |
4081 | + * Merge from trunk: |
4082 | + - test_recoverable_problem.py: Fix test for calling test runner with |
4083 | + absolute path. |
4084 | + |
4085 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 23 Jul 2012 07:06:40 +0200 |
4086 | + |
4087 | +apport (2.4-0ubuntu4) quantal; urgency=low |
4088 | + |
4089 | + * data/general/ubuntu.py: check to see if a package installation duplicate |
4090 | + signature has been encountered previously and if so prevent bug reporting |
4091 | + (LP: #1007637) |
4092 | + * data/general/ubuntu.py: properly decode DpkgTerminalLog lines |
4093 | + |
4094 | + -- Brian Murray <brian@ubuntu.com> Fri, 20 Jul 2012 11:39:06 -0700 |
4095 | + |
4096 | +apport (2.4-0ubuntu3) quantal; urgency=low |
4097 | + |
4098 | + * data/general/ubuntu.py: modify regualr expressions for determining which |
4099 | + package installation failures to gather /etc/default/grub for |
4100 | + (LP: #1006633) |
4101 | + |
4102 | + -- Brian Murray <brian@ubuntu.com> Wed, 18 Jul 2012 15:48:49 -0700 |
4103 | + |
4104 | +apport (2.4-0ubuntu2) quantal; urgency=low |
4105 | + |
4106 | + * debian/apport.install: Ship the new recoverable_problem script. |
4107 | + |
4108 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 18 Jul 2012 16:33:56 +0200 |
4109 | + |
4110 | +apport (2.4-0ubuntu1) quantal; urgency=low |
4111 | + |
4112 | + [ Brian Murray ] |
4113 | + * data/general/ubuntu.py: in trim_log deal with the fact that |
4114 | + DpkgTerminalLog is a bytes object and convert it to a string object |
4115 | + |
4116 | + [ Martin Pitt ] |
4117 | + * New upstream release. Changes since our previous snapshot: |
4118 | + - Add new "RecoverableProblem" report type for problems which the |
4119 | + application can handle, but still wishes to notify the user and send a |
4120 | + problem report about. As an example, the application may wish to notify |
4121 | + the user because handling the error resulted in degraded functionality. |
4122 | + The user interface may fail to load items, or the action just performed |
4123 | + may not return any data. Applications call |
4124 | + /usr/share/apport/recoverable_problem with a string of arbitrary |
4125 | + NUL-separated key/value pairs that are added to the report. Thanks Evan |
4126 | + Dandrea! |
4127 | + - launchpad.py: Fix setting of 'Medium' importance on duplicate checking. |
4128 | + - apport-retrace: Fix StacktraceSource generation for relative --cache |
4129 | + paths. |
4130 | + - crashdb.py, check_duplicate(): Do not try to mark a bug as duplicate of |
4131 | + itself. This can happen when re-processing a previously retraced bug. |
4132 | + - apport-retrace: Fix UnicodeDecodeError when encountering a non-ASCII |
4133 | + source code file and running under a non-UTF-8 locale. |
4134 | + * debian/control: Add libc6-dbg build dependency, to ensure that the |
4135 | + report.test_add_gdb_info_abort test case can succeed (otherwise gdb cannot |
4136 | + decipher the __abort_msg structure). |
4137 | + |
4138 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 18 Jul 2012 12:31:50 +0200 |
4139 | + |
4140 | +apport (2.3-0ubuntu4) quantal; urgency=low |
4141 | + |
4142 | + * debian/control: Add gir1.2-wnck-3.0 dependency for apport-gtk, needed by |
4143 | + the new --hanging feature. |
4144 | + * Merge from trunk: |
4145 | + - test_python_crashes.py: Fix race condition in timeout test. |
4146 | + |
4147 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Jul 2012 18:35:15 +0200 |
4148 | + |
4149 | +apport (2.3-0ubuntu3) quantal; urgency=low |
4150 | + |
4151 | + * Merge from trunk: |
4152 | + - apport_python_hook.py: For org.freedesktop.DBus.Error.ServiceUnknown |
4153 | + exceptions, add a 'DbusErrorAnalysis' field to the report which points |
4154 | + out whether any .service file provides the service it tried to talk to, |
4155 | + and whether the processes for those are running. This helps to determine |
4156 | + the root cause for such errors (missing dependencies, broken .service |
4157 | + files, talking to the wrong bus, etc.) (LP: #1020572) |
4158 | + - hookutils.py, attach_alsa(): Use alsa-info.sh when available. Thanks |
4159 | + David Henningson. |
4160 | + - ui tests, test_wait_for_pid(): Fix eternal hang when running as root. |
4161 | + - testsuite: Fix ResourceWarnings when running with Python 3. |
4162 | + * debian/control, debian/tests/control: Add gvfs-daemons as build/test |
4163 | + dependency, as test_python_crashes uses it as an example for handling |
4164 | + python-dbus exceptions. |
4165 | + |
4166 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Jul 2012 14:58:45 +0200 |
4167 | + |
4168 | +apport (2.3-0ubuntu2) quantal; urgency=low |
4169 | + |
4170 | + * Fix PEP-8 violations in Ubuntu specific hooks, picked up by latest pep8 |
4171 | + checker. |
4172 | + |
4173 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 09 Jul 2012 11:30:29 +0200 |
4174 | + |
4175 | +apport (2.3-0ubuntu1) quantal; urgency=low |
4176 | + |
4177 | + * New upstream release: |
4178 | + - launchpad.py: Rework test suite to not use Launchpad's +storeblob |
4179 | + facility at all any more. It almost never works on staging and is |
4180 | + horribly slow. Fake the bug creation from a blob by manually creating |
4181 | + the comment and attachments ourselves, and just assume that storeblob |
4182 | + works on production. Also change the structure to allow running every |
4183 | + test individually. |
4184 | + - crash-digger: Add --crash-db option to specify a non-default crash |
4185 | + database name. (LP: #1003506) |
4186 | + - apport-gtk: Add --hanging option to specify the process ID of a hanging |
4187 | + application. If the user chooses to report this error, apport will |
4188 | + terminate the pid with SIGABRT, otherwise it will send SIGKILL. The |
4189 | + normal core pipe handler will be used to process the resulting report |
4190 | + file, with a .hanging file in /var/crash to separate these from regular |
4191 | + crashes. |
4192 | + - apport: Also treat a binary as modified if the /proc/pid/exe symlink |
4193 | + does not point to an existing file any more. (LP: #984944) |
4194 | + - Fix PEP-8 violations picked up by latest pep8 checker. |
4195 | + - ui.py: Do not ignore certain exceptions during upload which are not |
4196 | + likely to be a network error. |
4197 | + - launchpad.py: Recongize Launchpad projects for bug query and marking |
4198 | + operations. (LP: #1003506) |
4199 | + - packaging-apt-dpkg.py: Fix get_source_tree() to work with apt sandboxes. |
4200 | + - apport-retrace: Turn StacktraceSource generation back on, now that it |
4201 | + works with the current sandboxing. |
4202 | + - launchpad.py: Ensure that upload chunk size does not underrun. |
4203 | + (LP: #1013334) |
4204 | + - apport_python_hook: Fix UnicodeEncodeError crash with Python 2 for |
4205 | + exceptions with non-ASCII characters. (LP: #972436) |
4206 | + - test_ui_kde.py: Fix occasional test failure in test_1_crash_details if |
4207 | + the application ends before the "is progress bar visible" check is done. |
4208 | + |
4209 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 09 Jul 2012 08:14:30 +0200 |
4210 | + |
4211 | +apport (2.2.5-0ubuntu2) quantal; urgency=low |
4212 | + |
4213 | + * data/general/ubuntu.py: fix an issue with a regular expression for |
4214 | + finding a package install failure due to a corrupt package |
4215 | + |
4216 | + -- Brian Murray <brian@ubuntu.com> Mon, 02 Jul 2012 13:24:00 -0700 |
4217 | + |
4218 | +apport (2.2.5-0ubuntu1) quantal; urgency=low |
4219 | + |
4220 | + * New upstream bug fix release: |
4221 | + - launchpad.py: Fix str vs. bytes crash for already known bugs, take 2. |
4222 | + (LP: #1015788) |
4223 | + - apport/ui.py, get_desktop_entry(): Disable interpolation, to correctly |
4224 | + read desktop files with % signs. (LP: #1014341) |
4225 | + - apport/ui.py: Fix rare crash if a report is already being updated in the |
4226 | + background when the UI tries to update a previous version. (LP: #949196) |
4227 | + - GTK and KDE UI tests: Avoid eternal hangs due to "this is not a distro |
4228 | + package" error messages. |
4229 | + |
4230 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 21 Jun 2012 16:15:20 +0200 |
4231 | + |
4232 | +apport (2.2.4-0ubuntu1) quantal; urgency=low |
4233 | + |
4234 | + * debian/tests/control: Simplify Depends: line by using "@" and dropping |
4235 | + packages which are already dependencies of apport's packages. |
4236 | + * debian/tests/control: Drop undefined "no-build-needed" feature. |
4237 | + * New upstream bug fix release. Changes since our previous trunk snapshot: |
4238 | + - apport-cli: Unbreak "keep" option. (LP: #1007826) |
4239 | + - launchpad.py: Fix str vs. bytes crash for already known bugs. |
4240 | + (LP: #1015788) |
4241 | + |
4242 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 21 Jun 2012 09:13:56 +0200 |
4243 | + |
4244 | +apport (2.2.3-0ubuntu6) quantal; urgency=low |
4245 | + |
4246 | + * Merge from trunk: |
4247 | + - test/run: Wait for a previous xvfb server to finish before trying to |
4248 | + start one. This fixes a race condition in the KDE UI tests which often |
4249 | + failed to start up xvfb. |
4250 | + |
4251 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 20 Jun 2012 07:59:33 +0200 |
4252 | + |
4253 | +apport (2.2.3-0ubuntu5) quantal; urgency=low |
4254 | + |
4255 | + [ Brian Murray ] |
4256 | + * data/general-hooks/ubuntu.py: do not report 'dpkg-deb --control returned |
4257 | + error exit status 2' package install failures |
4258 | + |
4259 | + [ Martin Pitt ] |
4260 | + * debian/tests/upstream-system: Show number of failed tests on stdout, not |
4261 | + stderr. |
4262 | + * debian/tests/control: Add python3-mock and xvfb dependencies. |
4263 | + * Merge from trunk: |
4264 | + - test_crash_digger.py: Do not write crash reports of crash-digger into |
4265 | + system /var/crash, use a temporary directory. |
4266 | + * debian/control: Add XS-Testsuite header, as per current DEP-8. |
4267 | + |
4268 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 19 Jun 2012 08:51:18 +0200 |
4269 | + |
4270 | +apport (2.2.3-0ubuntu4) quantal; urgency=low |
4271 | + |
4272 | + * debian/tests/upstream-system: Clean up old crash reports. |
4273 | + * debian/tests/upstream-system: Show number of failed tests. |
4274 | + * Merge from trunk: |
4275 | + - test_signal_crashes.py: Show crash reports in /var/crash/. |
4276 | + |
4277 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 18 Jun 2012 09:30:10 +0200 |
4278 | + |
4279 | +apport (2.2.3-0ubuntu3) quantal; urgency=low |
4280 | + |
4281 | + * Merge from trunk: |
4282 | + - test_apport_unpack.py: Fix test_unpack_python() test when running the |
4283 | + system-installed tests. |
4284 | + - data/java_uncaught_exception: Fix for Python 3. |
4285 | + * debian/tests/control: Add apport-retrace dependency, as the tests cover |
4286 | + it. |
4287 | + |
4288 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 15 Jun 2012 12:57:19 +0200 |
4289 | + |
4290 | +apport (2.2.3-0ubuntu2) quantal; urgency=low |
4291 | + |
4292 | + * debian/rules: Disable the xvfb tests during package build for now, as they |
4293 | + currently cause the buildds to hang indefinitely. They are still run in |
4294 | + the jenkins autopkgtests. |
4295 | + |
4296 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 15 Jun 2012 10:17:17 +0200 |
4297 | + |
4298 | +apport (2.2.3-0ubuntu1) quantal; urgency=low |
4299 | + |
4300 | + [ Martin Pitt ] |
4301 | + * New upstream bug fix release: |
4302 | + - test/run: Do not run pep8 and pyflakes when running against the sytem |
4303 | + installed Apport. |
4304 | + - test_backend_apt_dpkg.py: For the "are we online" check, verify that we can |
4305 | + download from http://ddebs.ubuntu.com/, not just whether we have a default |
4306 | + route. The latter is not sufficient for e. g. buildd environments which are |
4307 | + online, but are restricted by proxies or firewalls. |
4308 | + - test_report.py: Call "sync" after test script write core dumps, to ensure |
4309 | + that subsequent operations have a complete one. |
4310 | + - test_signal_crashes.py: Drop the broken and obsolete test_local_python() |
4311 | + test. Instead, add two tests which check proper logging. |
4312 | + - launchpad.py: Fix urlopen() for Python3. Thanks Steve Langasek. |
4313 | + - test/run: Run the tests under LC_MESSAGES=C, to avoid failing tests on |
4314 | + translated strings. |
4315 | + * debian/control: Add libc6-dbg | libc6-dbgsym dependency to apport-retrace, |
4316 | + to ensure gdb can decipher the abort_msg_s struct and thus read assertion |
4317 | + messages. Also add libc6-dbg to debian/tests/control so that |
4318 | + report.test_add_gdb_info_abort can succeed in autopkgtest. |
4319 | + * debian/control, debian/tests/control: apport-retrace needs a terminal |
4320 | + emulator, so add an x-terminal-emulator dependency. Add xterm as build and |
4321 | + autopkgtest dependency, so that the tests have one available. |
4322 | + * debian/control: Drop python-launchpadlib from Depends to Suggests for |
4323 | + python-apport, too. |
4324 | + |
4325 | + [ Steve Langasek ] |
4326 | + * debian/rules: call dh_python3 with --skip-private, to avoid incorrect |
4327 | + generation of a .rtupdate script for /usr/share/apport. LP: #1013171. |
4328 | + |
4329 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 15 Jun 2012 08:27:17 +0200 |
4330 | + |
4331 | +apport (2.2.2-0ubuntu2) quantal; urgency=low |
4332 | + |
4333 | + * debian/control: Add python3-pykde4 build dependency for the test suite. |
4334 | + * debian/rules: Unset $TMPDIR during the tests, to work around LP #972324. |
4335 | + * Merge from trunk: |
4336 | + - test/test_signal_crashes.py: More verbose tests. |
4337 | + * debian/tests/upstream-system: Do not run in the source tree, as we want to |
4338 | + check the system-installed Apport. |
4339 | + * debian/tests/control: Explicitly depend on apport-kde and apport-gtk. |
4340 | + |
4341 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 13 Jun 2012 17:55:35 +0200 |
4342 | + |
4343 | +apport (2.2.2-0ubuntu1) quantal; urgency=low |
4344 | + |
4345 | + * debian/control: Add alternative gdb-minimal dependencies to |
4346 | + apport-{gtk,kde}. (LP: #1012405) |
4347 | + * debian/control: apport-kde: depend on python3-pykde4. |
4348 | + * debian/tests/control: Add missing python3 dependencies for the GUI tests. |
4349 | + * New upstream release: |
4350 | + - testsuite: Run with Python 3 by default. To test with Python 2, run |
4351 | + "PYTHON=python2 test/run". |
4352 | + - apport: Redefine sys.std{out,err} when redirecting output, as they are |
4353 | + None in Python 3 when being called from the kernel. |
4354 | + - test/test_signal_crashes.py: Clean up unexpected core dumps on failed |
4355 | + test cases. |
4356 | + - apport-gtk: Fix crash when closing the crash dialog while the |
4357 | + information is being collected. |
4358 | + - hookutils.py, xsession_errors(): Fix crash when running under a non-UTF8 |
4359 | + locale. |
4360 | + - data/apport: Do not use sys.stdin.fileno(), it is invalid when being |
4361 | + called from the kernel with Python 3. |
4362 | + - data/apport: When core dumps are enabled, read them from the written |
4363 | + report instead of directly from stdin (and then reading the written core |
4364 | + file into the .crash report). If the core file size is limited, we |
4365 | + otherwise stop reading the core dump from the kernel in the middle and |
4366 | + have no (or a broken) core dump to be put into the report. |
4367 | + - data/apport: Properly close the written crash report before changing its |
4368 | + permissions to be readable. This prevents having crash reporting UI from |
4369 | + looking at incomplete .crash files. |
4370 | + * debian/rules: drop explicit setting of $PYTHON, test suite is now run |
4371 | + with python3 by default. |
4372 | + |
4373 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 13 Jun 2012 13:08:51 +0200 |
4374 | + |
4375 | +apport (2.2.1-0ubuntu2) quantal; urgency=low |
4376 | + |
4377 | + * debian/control: Add back the Python 2 build dependencies, as we |
4378 | + are also doing a Python 2 build. |
4379 | + * debian/control: Add pyflakes build dependency, so that it can run during |
4380 | + the build. |
4381 | + |
4382 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 12 Jun 2012 06:38:26 +0200 |
4383 | + |
4384 | +apport (2.2.1-0ubuntu1) quantal; urgency=low |
4385 | + |
4386 | + * New upstream release: |
4387 | + - Clean up module imports. |
4388 | + - test/run: Run pyflakes, if available. |
4389 | + - package_hook: Add --tags option. Thanks to Brian Murray. |
4390 | + - launchpad.py: Drop the external multipartpost_handler.py (which is not |
4391 | + portable to Python 3) and replace it with using the standard email |
4392 | + module. |
4393 | + - launchpad.py: Also work with Python 3. Deal gracefully with a missing |
4394 | + "launchpadlib" module; this is not yet available for Python 3, but not |
4395 | + required for client-side reporting. |
4396 | + - apport-kde: Port to work with Python 3. |
4397 | + - apport-retrace: Fix crash when using the --procmaps option. |
4398 | + - setup.py: Update hashbang lines of installed scripts in data directory |
4399 | + to the python executable setup.py was run with, similar to what already |
4400 | + happens to scripts installed to ../bin/. |
4401 | + - apport-cli: Port to work with Python 3. |
4402 | + - setup.py: When fixing hashbang lines of installed scripts, only include |
4403 | + the major Python version. |
4404 | + - hookutils.py, read_file, attach_file(), attach_file_if_exists(): Convert |
4405 | + file contents to unicode if the contents is UTF-8, or the newly added |
4406 | + force_unicode argument is True. |
4407 | + - hooktuils, command_output(): Convert output to unicode by default, and |
4408 | + add a "decode_utf8" parameter to disable this. |
4409 | + - hookutils.py, recent_logfile(): Fix fd leak. |
4410 | + - data/apport: Do not assume that sys.stdout and sys.stderr always have a |
4411 | + name; they can be None in Python 3. |
4412 | + - data/dump_acpi_tables.py: Fix for Python 3. |
4413 | + * data/package-hooks/source_debian-installer.py: Port to work with Python 3. |
4414 | + * Move to Python 3, except for the parts that need python-launchpadlib |
4415 | + (which is not yet available for Python 3): |
4416 | + - debian/control: Add python3-problem-report and python3-apport packages. |
4417 | + - debian/control: Switch build and binary dependencies to Python 3 |
4418 | + equivalents, except for apport-retrace. |
4419 | + - debian/rules: Override dh_auto_* to also handle python3-* packages (see |
4420 | + Debian #597105). |
4421 | + - debian/rules: Run test suite with Python 3. |
4422 | + - debian/rules: Switch hashbang line of apport-retrace back to Python 2. |
4423 | + - Move /etc/apport/crashdb.conf from python-apport to apport, and |
4424 | + recommend apport from both python{,3}-apport. |
4425 | + * bin/apport-bug: Force running with python 2 when being invoked as |
4426 | + apport-collect, and add a check/error message that you need to install |
4427 | + python-apport to use this. |
4428 | + * test/test_hookutils.py: Drop duplicate definition of _get_mem_usage(), now |
4429 | + identical again to trunk. |
4430 | + * ./test/test_ui_gtk.py: Drop duplicate definition of |
4431 | + test_immediate_close(), now identical again to trunk. |
4432 | + * data/general-hooks/ubuntu.py: Do not decode result of command_output(), |
4433 | + this is done by default now. |
4434 | + * data/package-hooks/source_linux.py: Add a __main__ for debugging. Stop |
4435 | + importing hookutils into the global namespace. |
4436 | + * data/package-hooks/source_ubiquity.py: Fix undefined command_output(). |
4437 | + * data/general-hooks/ubuntu.py: Move definition of wrong_grub_msg and |
4438 | + grub_hook_failure to the correct place, so that this actually works. |
4439 | + * data/general-hooks/ubuntu.py: Drop definition of unused "cloud" variable. |
4440 | + * data/general-hooks/ubuntu.py: Do not import hookutils symbols into global |
4441 | + namespace. |
4442 | + |
4443 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 11 Jun 2012 12:23:53 +0200 |
4444 | + |
4445 | +apport (2.1.1-0ubuntu2) quantal; urgency=low |
4446 | + |
4447 | + [ Martin Pitt ] |
4448 | + * data/general-hooks/automatix.py: Fix whitespace according to PEP-8. |
4449 | + * data/general-hooks/ubuntu.py: Fix whitespace according to PEP-8. |
4450 | + * data/package-hooks/source_{linux,ubiquity}.py: Fix whitespace according to |
4451 | + PEP-8. |
4452 | + * debian/control: Add pep8 build dependency, to ensure folks test-build with |
4453 | + that. |
4454 | + * etc/apport/crashdb.conf: Re-enable Launchpad crash reporting again. |
4455 | + |
4456 | + [ Brian Murray ] |
4457 | + * data/general-hooks/ubuntu.py: collect /etc/default/grub on systems where a |
4458 | + package failed to install during update-grub (LP: #1006633) |
4459 | + |
4460 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 01 Jun 2012 15:44:54 +0200 |
4461 | + |
4462 | +apport (2.1.1-0ubuntu1) quantal; urgency=low |
4463 | + |
4464 | + [ Martin Pitt ] |
4465 | + * debian/control: Update Vcs-Bzr: for quantal branch. |
4466 | + * data/general-hooks/ubuntu.py: Do not assume that all reports have a |
4467 | + ProblemType field. This will not be the case for updating a bug with |
4468 | + "apport-collect". (LP: #1004029) |
4469 | + * New upstream release: |
4470 | + - launchpad.py: When closing a bug as a duplicate, copy some well-known |
4471 | + tags to the master bug. Thanks Brian Murray. |
4472 | + - launchpad.py: Set importance of Python crash reports to "Medium" by |
4473 | + default, similar to signal crashes. Thanks Brian Murray. |
4474 | + - hookutils.py: Add attach_default_grub() convenience function from the |
4475 | + grub2 package hook so it can be used by other packages. Thanks Brian |
4476 | + Murray. |
4477 | + - launchpad.py: Make Launchpad bug subscription user/team configurable: |
4478 | + The initial subscriber after filing a bug can be set with the |
4479 | + "initial_subscriber" crashdb option, and the team which gets subscribed |
4480 | + after retracing with "triaging_team". (LP: #980726) |
4481 | + - report.py: Do not change the SourcePackage: field if the binary package |
4482 | + is not installed and does not exist. This fixes source package hooks to |
4483 | + actually work in some cases where source and binary package names |
4484 | + overlap. (part of LP: #993810) |
4485 | + - apport-gtk, apport-kde: Avoid collecting information twice in "bug |
4486 | + update" mode. This caused a crash in cases where the source package in a |
4487 | + bug report does not correspond to an installed binary package. |
4488 | + (LP: #993810) |
4489 | + |
4490 | + [ Brian Murray ] |
4491 | + * data/general-hooks/ubuntu.py: block reporting of package install failures |
4492 | + with error regarding 'not a debian format archive' |
4493 | + |
4494 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 30 May 2012 09:06:49 +0200 |
4495 | + |
4496 | +apport (2.1-0ubuntu1) quantal; urgency=low |
4497 | + |
4498 | + * New upstream release: |
4499 | + - packaging.py, install_packages(): Add permanent_rootdir flag and if set, |
4500 | + only unpack newly downloaded packages. Implement it for the apt/dpkg |
4501 | + backend. Thanks Evan Dandrea. |
4502 | + - apport-retrace: Add --sandbox-dir option for keeping a permanent sandbox |
4503 | + (unpacked packages). This provides a considerable speedup. Thanks Evan |
4504 | + Dandrea. |
4505 | + - crash-digger: Add --sandbox-dir option and pass it to apport-retrace. |
4506 | + - Fix the whole code to be PEP-8 compatible, and enforce this in test/run |
4507 | + by running the "pep8" tool. |
4508 | + - GTK UI tests: Ensure that there are no GLib/GTK warnings or criticals. |
4509 | + - Support Python 3. Everything except the launchpad crashdb backend now |
4510 | + works with both Python 2 and 3. An important change is that the load(), |
4511 | + write(), and write_mime() methods of a ProblemReport and apport.Report |
4512 | + object now require the file stream to be opened in binary mode. |
4513 | + - data/apport: Ignore a crash if the executable was modified after the |
4514 | + process started. This often happens if the package is upgraded and a |
4515 | + long-running process is not stopped before. (LP: #984944) |
4516 | + - Add test cases for apport-unpack. |
4517 | + - apport-retrace: Add information about outdated packages to the |
4518 | + "RetraceOutdatedPackages" field. |
4519 | + - ui.py: Drop python-xdg dependency, use ConfigParser to read the .desktop |
4520 | + files. |
4521 | + - apport-gtk: Work around GTK crash when trying to set pixmap on an |
4522 | + already destroyed parent window. (LP: #938090) |
4523 | + - data/dump_acpi_tables.py: Fix crash on undefined variable with |
4524 | + non-standard tables. (LP: #982267) |
4525 | + - backends/packaging-apt-dpkg.py: Fix crash if a package is installed, but |
4526 | + has no candidates in apt. (LP: #980094) |
4527 | + - data/general-hooks/generic.py: Bump minimum free space requirement from |
4528 | + 10 to 50 MB. 10 is not nearly enough particularly for /tmp. (LP: #979928) |
4529 | + - hookutils.py, recent_logfile(): Use a default limit of 10000 lines and |
4530 | + call "tail" instead of reading the whole file. This protects against |
4531 | + using up all memory when there are massive repeated log messages. |
4532 | + (LP: #984256) |
4533 | + - apport-gtk: Do not assume that an icon requested for size 42 actually |
4534 | + delivers size 42; some themes do not have this available and deliver a |
4535 | + smaller one instead, causing overflows. Also, copy the image as |
4536 | + gtk_icon_theme_load_icon() returns a readonly result which we must not |
4537 | + modify. (LP: #937249) |
4538 | + - ui.py: Don't show the duplicate warning when the crash database does not |
4539 | + accept the problem type, and they are just being sent to whoopsie. |
4540 | + Thanks Evan Dandrea. (LP: #989779) |
4541 | + - report.py: Correctly escape the file path passed to gdb. |
4542 | + - apport-gtk, apport-kde: Do not show the information collection progress |
4543 | + dialog if the crash database does not accept this kind of report. In that |
4544 | + case whoopsie will upload it in the background and the dialog is not |
4545 | + necessary. (LP: #989698) |
4546 | + * data/general-hooks/ubuntu.py, data/general-hooks/automatix.py: Support |
4547 | + Python 3. |
4548 | + |
4549 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 18 May 2012 16:33:53 +0200 |
4550 | + |
4551 | +apport (2.0.1-0ubuntu7) precise-proposed; urgency=low |
4552 | + |
4553 | + * Fix (LP: #989779). Don't show the duplicate warning when we're just |
4554 | + reporting to daisy.ubuntu.com. |
4555 | + |
4556 | + -- Evan Dandrea <ev@ubuntu.com> Fri, 27 Apr 2012 16:53:11 +0100 |
4557 | + |
4558 | +apport (2.0.1-0ubuntu6) precise-proposed; urgency=low |
4559 | + |
4560 | + * Cherry-pick from trunk: |
4561 | + - hookutils.py, recent_logfile(): Use a default limit of 10000 lines and |
4562 | + call "tail" instead of reading the whole file. This protects against |
4563 | + using up all memory when there are massive repeated log messages. |
4564 | + (LP: #984256) |
4565 | + - apport-gtk: Do not assume that an icon requested for size 42 actually |
4566 | + delivers size 42; some themes do not have this available and deliver a |
4567 | + smaller one instead, causing overflows. Also, copy the image as |
4568 | + gtk_icon_theme_load_icon() returns a readonly result which we must not |
4569 | + modify. Fixes crashes when using themes other than the standard Ubuntu |
4570 | + ones. (LP: #937249) |
4571 | + |
4572 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 20 Apr 2012 18:53:24 +0200 |
4573 | + |
4574 | +apport (2.0.1-0ubuntu5) precise-proposed; urgency=low |
4575 | + |
4576 | + * etc/apport/crashdb.conf: Disable Launchpad crash/kernel reports for the |
4577 | + final release. Leave Apport running for whoopsie, though, so use the new |
4578 | + mechanism for selective problem types. |
4579 | + * Cherry-pick from trunk: |
4580 | + - data/general-hooks/generic.py: Bump minimum free space requirement from |
4581 | + 10 to 50 MB. 10 is not nearly enough particularly for /tmp. |
4582 | + (LP: #979928) |
4583 | + |
4584 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 18 Apr 2012 10:08:28 +0200 |
4585 | + |
4586 | +apport (2.0.1-0ubuntu4) precise; urgency=low |
4587 | + |
4588 | + * Cherry-pick from trunk: |
4589 | + - data/dump_acpi_tables.py: Fix crash on undefined variable with |
4590 | + non-standard tables. (LP: #982267) |
4591 | + - backends/packaging-apt-dpkg.py: Fix crash if a package is installed, but |
4592 | + has no candidates in apt. (LP: #980094) |
4593 | + - Launchpad automatic translations update. |
4594 | + * debian/control: Drop duplicated python-gi build dependency, thanks |
4595 | + lintian. |
4596 | + |
4597 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 16 Apr 2012 16:29:04 +0200 |
4598 | + |
4599 | +apport (2.0.1-0ubuntu3) precise; urgency=low |
4600 | + |
4601 | + * Cherry-pick from trunk: |
4602 | + - GTK UI tests: Ensure that there are no GLib/GTK warnings or criticals. |
4603 | + - apport-gtk: Work around GTK crash when trying to set pixmap on an |
4604 | + already destroyed parent window. (LP: #938090) |
4605 | + |
4606 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 13 Apr 2012 19:42:02 +0200 |
4607 | + |
4608 | +apport (2.0.1-0ubuntu2) precise; urgency=low |
4609 | + |
4610 | + * debian/general-hooks/ubuntu.py: if the package installation failure is |
4611 | + from live media check to see that /cdrom, the real root filesystem, has |
4612 | + enough free space |
4613 | + |
4614 | + -- Brian Murray <brian@ubuntu.com> Wed, 11 Apr 2012 15:41:01 -0700 |
4615 | + |
4616 | +apport (2.0.1-0ubuntu1) precise; urgency=low |
4617 | + |
4618 | + * New upstream bug fix release. Changes since our previous snapshot: |
4619 | + - problem_report.py, write_mime(): Fix regression from version 1.95: Add a |
4620 | + value as attachment if it is bigger than 1000 bytes, not if it is bigger |
4621 | + than 100. (LP: #977882) |
4622 | + - packaging-apt-dpkg.py: Avoid constructing and updating the apt.Cache() |
4623 | + objects multiple times, to speed up retracing. Thanks Evan Dandrea. |
4624 | + (LP: #973494) |
4625 | + |
4626 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Apr 2012 15:38:11 +0200 |
4627 | + |
4628 | +apport (2.0-0ubuntu5) precise; urgency=low |
4629 | + |
4630 | + * Merge from trunk: |
4631 | + - generic package hook: Also check /tmp for enough space. Thanks Brian |
4632 | + Murray. (LP: #972933) |
4633 | + - Automatic Launchpad translation updates. |
4634 | + |
4635 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Apr 2012 07:34:08 +0200 |
4636 | + |
4637 | +apport (2.0-0ubuntu4) precise; urgency=low |
4638 | + |
4639 | + * debian/tests/upstream-system: Drop dead code. |
4640 | + * debian/tests/upstream-system: Work around LP #972324 by unsetting TMPDIR |
4641 | + for the tests. |
4642 | + * Merge test fixes from trunk: |
4643 | + - test_backend_apt_dpkg.py: Fix checks for the installation of -dbgsym |
4644 | + packages. This should always happen, as the sandboxes have a ddeb apt |
4645 | + source. Only make it conditional on the system apt sources in the "use |
4646 | + system config" test. |
4647 | + - test_report.py: Sleep a bit after calling our test crash script, to |
4648 | + ensure the kernel has time to finish writing the core file. |
4649 | + |
4650 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 03 Apr 2012 14:17:38 +0200 |
4651 | + |
4652 | +apport (2.0-0ubuntu3) precise; urgency=low |
4653 | + |
4654 | + [ Martin Pitt ] |
4655 | + * data/general-hooks/ubuntu.py: Do not capture stderr of lsb_release. |
4656 | + (LP: #955111) |
4657 | + |
4658 | + [ Scott Moser ] |
4659 | + * data/general-hooks/ubuntu.py: timeout on attempts to contact ec2 metadata |
4660 | + service (LP: #855651) |
4661 | + |
4662 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 03 Apr 2012 06:58:07 +0200 |
4663 | + |
4664 | +apport (2.0-0ubuntu2) precise; urgency=low |
4665 | + |
4666 | + * debian/control: Make dh-apport Multi-Arch: foreign, so that it can |
4667 | + satisfy cross-build-dependencies. |
4668 | + |
4669 | + -- Colin Watson <cjwatson@ubuntu.com> Sat, 31 Mar 2012 02:29:55 +0100 |
4670 | + |
4671 | +apport (2.0-0ubuntu1) precise; urgency=low |
4672 | + |
4673 | + * New upstream release: This is the final 2.0 release, featuring the |
4674 | + overhauled and simplified GUI, support for whoopsie-daemon, and |
4675 | + client-side duplicate checking. |
4676 | + - report.py, anonymize(): Only replace whole words, not substrings. |
4677 | + (LP: #966562) |
4678 | + - apport_python_hook.py: Fix filtering of |
4679 | + org.freedesktop.DBus.Error.NoReply exceptions. (LP: #958575) |
4680 | + - crashdb.py: When publishing the crash database, cut hash file names |
4681 | + after quoting, to avoid that the quoting causes them to become too long. |
4682 | + (LP: #968070) This also uncovered that known() did not actually find any |
4683 | + signature which contained an URL-quoted character, therefore breaking |
4684 | + client-side duplicate checking in a lot of cases. Double-quote the file |
4685 | + name now, as urlopen() unquotes it. |
4686 | + - Add a new crash database option "problem_types" and a CrashDatabase |
4687 | + method "accepts(report)". This can be used to stop uploading particular |
4688 | + problem report types to that database. E. g. a distribution might decide |
4689 | + to not get "Crash" reports any more after release. Document the new |
4690 | + option in doc/crashdb-conf.txt. |
4691 | + - ui.py: Do not upload a report if the crash database does not accept the |
4692 | + report's type. This behaviour is not really correct, but necessary as |
4693 | + long as we only support a single crashdb and have whoopsie hardcoded. |
4694 | + Once we have multiple crash dbs, we need to not even present the data if |
4695 | + none of the DBs wants the report. See LP #957177 for details. |
4696 | + (LP: #968121) |
4697 | + - ui.py: Do not short-circuit information collection if report already has |
4698 | + a "DistroRelease" field, as the GUIs add that in some cases. Check for |
4699 | + "Dependencies" instead. This fixes information collection for kernel |
4700 | + problems (which now has a full GTK GUI test case). (LP: #968488) |
4701 | + * Merge from trunk: |
4702 | + - test_ui_gtk.py: Disable package hooks for the tests, as they might ask |
4703 | + for sudo passwords and other interactive bits, and thus make the tests |
4704 | + hang. |
4705 | + |
4706 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 30 Mar 2012 12:38:02 +0200 |
4707 | + |
4708 | +apport (1.95-0ubuntu1) precise; urgency=low |
4709 | + |
4710 | + [ Martin Pitt ] |
4711 | + * New upstream release: |
4712 | + - apport-gtk, apport-kde: When reporting a "system crash", don't say "... |
4713 | + of this program version", but "...of this type", as we don't show a |
4714 | + program version in the initial dialog |
4715 | + (https://wiki.ubuntu.com/ErrorTracker#error) (LP: #961065) |
4716 | + - problem_report.py, write_mime(): Do not put a key inline if it is bigger |
4717 | + than 1 kB, to guard against very long lines. (LP: #957326) |
4718 | + - etc/cron.daily/apport: Do not remove whoopsie's *.upload* stamps every |
4719 | + day, only if they are older than a week. whoopsie comes with its own |
4720 | + cron job which deals with them. Thanks Steve Langasek. (LP: #957102) |
4721 | + - report.py, mark_ignore(): Fix crash if executable went away underneath |
4722 | + us. (LP: #961410) |
4723 | + - apport-gtk: Do not compare current continue button label against a |
4724 | + translated string. Instead just remember whether or not we can restart |
4725 | + the application. (LP: #960439) |
4726 | + - hookutils.py, command_output(): Add option to keep the locale instead of |
4727 | + disabling it. |
4728 | + - hookutils.py, command_output(): Actually make the "input" parameter |
4729 | + work, instead of causing an eternal hang. Add tests for all possible |
4730 | + modes of operation. |
4731 | + - hooktuils.py: Change root_command_output() and |
4732 | + attach_root_command_outputs() to disable translated messages |
4733 | + (LC_MESSAGES=C) only as part of the command to be run, not already for |
4734 | + the root prefix command. This will keep the latter (gksu, kdesudo, etc.) |
4735 | + translated. (LP: #961659) |
4736 | + - apport-gtk: Cut off text values after 4000 characters, as Gtk's TreeView |
4737 | + does not get along well with huge values. KDE's copes fine, so continue |
4738 | + to display the complete value there. (LP: #957062) |
4739 | + - apport-gtk: Make details window resizable in bug reporting mode. |
4740 | + - crashdb.py, known(): Check the address signature duplicate database if |
4741 | + the symbolic signature exists, but did not find any result. (LP: #103083) |
4742 | + - ui.py: Run anonymization after checking for duplicates, to prevent host |
4743 | + or user names which look like hex numbers to corrupt the stack trace. |
4744 | + (LP: #953104) |
4745 | + - apport-gtk: Require an application to both have TERM and SHELL in its |
4746 | + environment to consider it a command line application that was started |
4747 | + by the user. (LP: #962130) |
4748 | + - backends/packaging-apt-dpkg.py, _check_files_md5(): Fix double encoding, |
4749 | + which caused UnicodeDecodeErrors on non-ASCII characters in an md5sum |
4750 | + file. (LP: #953682) |
4751 | + - apport-kde, apport-gtk: Only show "Relaunch" if the report has a |
4752 | + ProcCmdline, otherwise we cannot restart it. (LP: #956173) |
4753 | + - apport-gtk, apport-kde: Show the ExecutablePath while we're collecting |
4754 | + data for the crash report. Thanks Evan Dandrea. (LP: #938707). |
4755 | + * debian/copyright: Change to copyright format 1.0. |
4756 | + * debian/control: Bump Standards-Version to 3.9.3. |
4757 | + |
4758 | + [ Brian Murray ] |
4759 | + * data/general-hooks/ubuntu.py: use main.log to determine UpgradeStatus not |
4760 | + apt.log (LP: #886111) |
4761 | + |
4762 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 22 Mar 2012 18:55:17 +0100 |
4763 | + |
4764 | +apport (1.94.1-0ubuntu2) precise; urgency=low |
4765 | + |
4766 | + * Merge from trunk: |
4767 | + - ui.py: Ensure that the report file is readable by the crash reporting |
4768 | + daemon after running through collect_info(). Thanks Evan Dandrea. |
4769 | + - apport-gtk, apport-kde: Set the window title to the distribution name, as |
4770 | + per http://wiki.ubuntu.com/ErrorTracker#error . Thanks Evan Dandrea. |
4771 | + (LP: #948015) |
4772 | + - test/run: Ignore obsolete packages on the system, to avoid breaking the |
4773 | + GUI tests due to them. |
4774 | + - hookutils.py, attach_alsa(): Add the full "pacmd list" output instead of |
4775 | + just sinks and sources. Thanks David Henningsson. |
4776 | + - apport-gtk: Fix handling of non-ASCII strings in message dialogs. |
4777 | + (LP: #865394) |
4778 | + |
4779 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 09 Mar 2012 16:52:53 +0100 |
4780 | + |
4781 | +apport (1.94.1-0ubuntu1) precise; urgency=low |
4782 | + |
4783 | + * New upstream bug fix release. Changes since our previous snapshot: |
4784 | + - apport-cli: Consistently handle unicode vs. byte arrays. (LP: #946207) |
4785 | + - report.py, anonymize(): Fix crash when the hostname or user name contain |
4786 | + non-ASCII characters. (LP: #945230) |
4787 | + - packaging-apt-dpkg.py: Fix UnicodeDecodeError on unexpected md5sum output. |
4788 | + (LP: #921037) |
4789 | + - apport-gtk: Fix handling of non-ASCII strings in message dialogs. |
4790 | + (LP: #865394) |
4791 | + |
4792 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 07 Mar 2012 14:47:31 +0100 |
4793 | + |
4794 | +apport (1.94-0ubuntu2) precise; urgency=low |
4795 | + |
4796 | + * Merge from trunk: |
4797 | + - collect_info(): Do not assume that reports have a "ProblemType" field. |
4798 | + This is not the case when updating a bug. (LP: #947519) |
4799 | + - Re-enable inadvertently disabled "bug report for uninstalled package" |
4800 | + test. |
4801 | + - Update translations from Launchpad. |
4802 | + |
4803 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 06 Mar 2012 11:37:17 +0100 |
4804 | + |
4805 | +apport (1.94-0ubuntu1) precise; urgency=low |
4806 | + |
4807 | + [ Martin Pitt ] |
4808 | + * New upstream release: |
4809 | + - apport: Set the group of written reports to "whoopsie" if that group |
4810 | + exists. |
4811 | + - Fix tests to run properly against the system-installed modules and |
4812 | + binaries. |
4813 | + - test/run: Run under LC_MESSAGES=C to avoid test failures due to |
4814 | + translated strings. |
4815 | + - general-hooks/generic.py: Also attach xsession-errors for programs that |
4816 | + link to libgtk-3. |
4817 | + - launchpad.py: Properly handle "Expired" status, to avoid marking new |
4818 | + bugs as duplicates of expired ones. (LP: #941854) |
4819 | + - apport: Fix crash if the "whoopsie" group does not exist. (LP: #942326) |
4820 | + - report.py, crash_signature(): Do not put "<module>" frames into Python |
4821 | + crash signatures that happen outside of function/method calls. Fall back |
4822 | + to the file/line number as a frame description instead. This will do a |
4823 | + much better job at disambiguating e. g. different ImportError crashes. |
4824 | + (LP: #920403) |
4825 | + - Make "binary changed since the time of the crash" error message more |
4826 | + comprehensible, thanks Paolo Rotolo. (LP: #942830) |
4827 | + - crashdb.py, check_duplicate(): It can happen that a bug gets identified |
4828 | + as being a duplicate of bug S by symbolic signatures and a duplicate of |
4829 | + bug A by address signatures. Empirical evidence shows that this is due |
4830 | + to the unavoidable jitter in stack traces (A and S not being identified |
4831 | + as duplicates as their signatures differ slightly) and not a logic |
4832 | + error. So instead of erroring out, duplicate all three bugs and keep the |
4833 | + lowest number as the master ID. (LP: #943117) |
4834 | + - Revert the usage of multiple nested threads during data collection, and |
4835 | + switch back to only using one UI thread. The UI implementations can, and |
4836 | + now do, decide between showing a spinner and showing a progress dialog |
4837 | + in the ui_*_info_collection_progress() methods. This fixes libX11 |
4838 | + crashes when multiple UI threads do changes concurrently (LP: #901675), |
4839 | + and also avoids multi-thread induced crashes in Pango (LP: #943661). The |
4840 | + removal of the collect() method also fixes the new crashes in it. |
4841 | + (LP: #942098, #939803) |
4842 | + - ui.py, get_desktop_entry(): Fix crash on uninstalled package. |
4843 | + (LP: #940984) |
4844 | + - data/unkillable_shutdown: Fix crash on race condition when PID goes away |
4845 | + while the report is created. (LP: #546369) |
4846 | + - apport/hookutils.py, pci_devices(): Fix crash on unexpected lines from |
4847 | + lspci. (LP: #904489) |
4848 | + - Drop hardcoded "Ubuntu" words again which crept in with the whoopsie |
4849 | + support merge. Use the DistroRelease: field. |
4850 | + - apport-kde: Fix Home page URL in KApplication metadata. |
4851 | + - apport-gtk: Fix resizability and size after hiding details. |
4852 | + (LP: #405418) |
4853 | + - test/run: Drop "local" argument. This now tests against the source tree |
4854 | + when run in the source tree root, and against the system |
4855 | + libraries/programs when run from anywhere else. |
4856 | + - test/run: Consider command line arguments as test names and only run |
4857 | + those when given. Also support just running a single test. |
4858 | + - testsuite: Force the skipping of online tests when $SKIP_ONLINE_TESTS is |
4859 | + set. |
4860 | + - hookutils.py, xsession_errors(): Add a reasonable default pattern which |
4861 | + matches glib-style warnings, errors, criticals etc. and X window errors. |
4862 | + In data/general-hooks/generic.py, call it with that default instead of |
4863 | + the rather incomplete custom pattern. (LP: #932660) |
4864 | + - packaging.py: Add get_package_origin() method, and implement it for |
4865 | + apt-dpkg. |
4866 | + - report.py, add_package_info(): Add "[origin: ...]" tag to "Package" and |
4867 | + "Dependencies" fields for any package which is not native to the |
4868 | + distribution. If any such package is present, tag the report with |
4869 | + "third-party-packages" in data/general-hooks/generic.py. (LP: #927912) |
4870 | + - apport/packaging.py: Add get_uninstalled_package() method as a helper |
4871 | + method for the test suite. Use it instead of a hardcoded Debian/Ubuntu |
4872 | + specific name in test/test_hooks.py. |
4873 | + - test/test_ui_{gtk,kde}.py: Add test cases for complete UI workflow runs |
4874 | + for reporting a bug against an installed/uninstalled package, and |
4875 | + reporting a crash with and without showing details. This reproduces the |
4876 | + recent crashes like LP #901675 or LP #943661. |
4877 | + - test_ui.py: Add a test case for reporting a complete report on |
4878 | + uninstalled package. This happens when reporting a problem from a |
4879 | + different machine through copying a .crash file. |
4880 | + - test/run: Add a test that there are no hardcoded "Ubuntu" words in the |
4881 | + source. The code should use the DistroRelease: field or lsb_release. |
4882 | + * debian/apport-retrace.install: Ship crash-digger. There is no reason any |
4883 | + more not to, as it's now very easy to set up a retracer bot environment. |
4884 | + * debian/apport.install: Install crash.{class,jar} into test suite |
4885 | + directory, so that the test_java_crashes.py test can run. |
4886 | + * debian/control: Tighten dependencies to ensure that we don't run a newer |
4887 | + UI package against an older python-apport, which would cause crashes due |
4888 | + to API mismatches. (LP: #939702) |
4889 | + * Drop test/test_backend_rpm.py, as we also drop the RPM backend in the |
4890 | + Ubuntu branch. |
4891 | + * debian/rules: Update test suite invocation, the "local" argument is |
4892 | + obsolete. |
4893 | + |
4894 | + [ Brian Murray ] |
4895 | + * data/package-hooks/source_linux.py: add in ProcFB |
4896 | + |
4897 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 02 Mar 2012 15:32:07 +0100 |
4898 | + |
4899 | +apport (1.93-0ubuntu2) precise; urgency=low |
4900 | + |
4901 | + [ Martin Pitt ] |
4902 | + * debian/control: Add python-launchpadlib and psmisc build dependencies for |
4903 | + the test suite. |
4904 | + * Merge from trunk: |
4905 | + - apport: Set the group of written reports to "whoopsie" if that group |
4906 | + exists. |
4907 | + |
4908 | + [ Brian Murray ] |
4909 | + * data/package-hooks/source_ubiquity.py: prevent reporting of bugs where |
4910 | + there was an I/O error with the disk being installed to or from |
4911 | + (LP: #874727) |
4912 | + |
4913 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 23 Feb 2012 17:54:54 +0100 |
4914 | + |
4915 | +apport (1.93-0ubuntu1) precise; urgency=low |
4916 | + |
4917 | + * New upstream bug fix release: |
4918 | + - apport-gtk: Fix crash on nonexisting icon. Thanks Evan Dandrea. |
4919 | + (LP: #937354) |
4920 | + - ui.py, open_url(): Revert back to calling sudo instead of dropping |
4921 | + privileges ourselves; with the latter, calling firefox as the sudo'ing |
4922 | + user fails. (LP: #916810, #938128) |
4923 | + - ui.py: Fix aborting with "AssertionError" if the report is already |
4924 | + known, but without an URL. (LP: #938778) |
4925 | + - launchpad.py: If a bug is already known, but the report is private, do |
4926 | + not send the report. There is little sense piling up lots of duplicates. |
4927 | + (LP: #938700) |
4928 | + - test/crash: Fix regression of test_crash_apport(), consider $TERM a |
4929 | + non-sensitive variable. |
4930 | + - ui.py: Fix test failures for data collection progress, they are not |
4931 | + expected to happen for "ProblemType: Crash" any more (happens in the |
4932 | + background during sending, or if user clicks on "Show Details"). |
4933 | + - test/hooks: Use a package from Debian/Ubuntu main, so that this works |
4934 | + better during package builds on build servers. |
4935 | + - test/python: Do not assume that /var/crash/ exists. Use /var/tmp/ for |
4936 | + the fake binaries instead. |
4937 | + - data/general-hooks/parse_segv.py: Fix test case name. |
4938 | + - ui.py: Fix crash on invalid core dumps. (LP: #937215) |
4939 | + - launchpad.py: Fix crash on unicode report titles. (LP: #896626) |
4940 | + - apport-gtk: Show the most interesting fields first in the details view. |
4941 | + - do-release: Call pyflakes and abort on errors other than unused imports. |
4942 | + - Move all test suites out of the code modules into test/test_<module>.py. |
4943 | + This avoids having to load it every time the program runs, and also |
4944 | + allows running the tests against the installed version of Apport. |
4945 | + - Clean up the other executable test script in test/* and change them to |
4946 | + the same structure as the module tests. |
4947 | + * debian/control: Add python-mock and GTK gir build dependencies for the |
4948 | + gtk/kde tests. |
4949 | + * debian/control: Add procps dependency to avoid a "command not found" error |
4950 | + for killall in the ubuntu.py general hook during the test suite. |
4951 | + * debian/control: Add missing python-gi dependency to apport-gtk. |
4952 | + |
4953 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 23 Feb 2012 16:22:37 +0100 |
4954 | + |
4955 | +apport (1.92-0ubuntu1) precise; urgency=low |
4956 | + |
4957 | + [ Martin Pitt ] |
4958 | + * New upstream release: |
4959 | + - man/apport-bug.1: Mention where crash files are stored. Thanks David |
4960 | + Kastrup. |
4961 | + - hookutils.py, attach_hardware(): Sort ProcModules, thanks Brian Murray. |
4962 | + - launchpad.py: Keep "Dependencies" attachment in duplicates. Thanks Brian |
4963 | + Murray. |
4964 | + - Reorganize the GNOME and KDE user interface to do the crash |
4965 | + notifications and detail browser in a single dialog. Add test/gtk and |
4966 | + test/kde tests to check expected dialog layout for different cases. |
4967 | + Thanks Evan Dandrea! |
4968 | + - Add support for the whoopsie-daisy crash reporting daemon by creating |
4969 | + zero-byte .upload file stamps for crash reports. Thanks Evan Dandrea! |
4970 | + - ui.py: Fix wrong creation of "~" folder instead of expanding it to home |
4971 | + directory when using "Examine locally". Thanks Jason Conti! |
4972 | + (LP: #909149) |
4973 | + - Replace file() calls with open() for Python 3 compatibility. Thanks |
4974 | + Colin Watson! |
4975 | + - launchpad.py: Avoid sending tag names with upper case. (LP: #924181) |
4976 | + - report.py, crash_signature_addresses(): Fix crash if report does not |
4977 | + have "Signal". |
4978 | + - apport-gtk: Fix resize handling of expander in details window. Thanks |
4979 | + Thomas Bechtold! (LP: #930562) |
4980 | + - Clean up unnecessary imports. Thanks Evan Dandrea! |
4981 | + * debian/apport-kde.install: Ship new spinner.gif. |
4982 | + |
4983 | + [ Brian Murray ] |
4984 | + * data/package-hooks/source_ubiquity.py: include kernel command line from |
4985 | + ubiquity syslog in the report as InstallCmdLine |
4986 | + * data/package-hooks/source_ubiquity.py: move apport-bug failures due to |
4987 | + grub-installer to that package (LP: #878335) |
4988 | + * debian/control: Add xvfb dependency so that the test suite can run the GUI |
4989 | + tests. |
4990 | + |
4991 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 20 Feb 2012 16:55:29 +0100 |
4992 | + |
4993 | +apport (1.91-0ubuntu1) precise; urgency=low |
4994 | + |
4995 | + * New upstream release: |
4996 | + - crashdb.py, check_duplicate(): If a crash has a signature but no |
4997 | + existing duplicate in the DB, also check for an existing address |
4998 | + signature duplicate in the DB. |
4999 | + - apport-retrace: Use DistroRelease specific subdirectory of the cache dir |
5000 | + for mapping a file to a package, as these maps are release specific. |