Merge lp:~echidnaman/apport/packagefix into lp:~apport-hackers/apport/trunk
- packagefix
- Merge into trunk
Status: | Rejected |
---|---|
Rejected by: | Martin Pitt |
Proposed branch: | lp:~echidnaman/apport/packagefix |
Merge into: | lp:~apport-hackers/apport/trunk |
Diff against target: |
6652 lines (+6059/-348) 40 files modified
.bzr-builddeb/default.conf (+2/-0) TODO (+9/-0) apport/hookutils.py (+39/-0) backends/packaging_rpm.py (+0/-311) bin/apport-bug (+8/-0) data/general-hooks/automatix.py (+26/-0) data/general-hooks/ubuntu.py (+146/-0) data/package-hooks/source_debian-installer.py (+35/-0) data/package-hooks/source_linux.py (+122/-0) debian/apport-gtk.install (+2/-0) debian/apport-kde.install (+7/-0) debian/apport-retrace.install (+3/-0) debian/apport-retrace.manpages (+3/-0) debian/apport.install (+20/-0) debian/apport.links (+4/-0) debian/apport.logrotate (+9/-0) debian/apport.manpages (+3/-0) debian/apport.upstart (+50/-0) debian/changelog (+4573/-0) debian/compat (+1/-0) debian/control (+124/-0) debian/copyright (+24/-0) debian/local/apport-chroot (+347/-0) debian/local/apport-chroot.1 (+305/-0) debian/local/setup-apport-retracer (+115/-0) debian/local/ubuntu-fat-chroot (+34/-0) debian/pycompat (+1/-0) debian/python-apport.install (+3/-0) debian/python-problem-report.install (+1/-0) debian/pyversions (+1/-0) debian/rules (+25/-0) debian/watch (+2/-0) do-release (+0/-33) etc/apport/crashdb.conf (+1/-1) etc/default/apport (+1/-1) gtk/apport-gtk-mime.desktop.in (+1/-0) gtk/apport-gtk.desktop.in (+1/-0) kde/apport-kde-mime.desktop.in (+1/-0) kde/apport-kde.desktop.in (+1/-0) man/apport-bug.1 (+9/-2) |
To merge this branch: | bzr merge lp:~echidnaman/apport/packagefix |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Martin Pitt (community) | Disapprove | ||
Review via email: mp+18356@code.launchpad.net |
Commit message
Description of the change
Jonathan Thomas (echidnaman) wrote : | # |
Jonathan Thomas (echidnaman) wrote : | # |
Erm, I guess this is the wrong branch to propose a merge to... The patch needs to be applied to the packaging branch, obviously.
Martin Pitt (pitti) wrote : | # |
This was already merged into the packaging branch in lucid. As this targets the wrong branch, I'm closing this. Thanks!
Unmerged revisions
- 1620. By Jonathan Thomas
-
* Make apport-kde recommend the new kubuntu-
notification- helper package
rather than update-notifier-kde to prevent the latter, depreciated tool
from getting on the Live CD - 1619. By Martin Pitt
-
Add X-Ubuntu-
Gettext- Domain: to desktop files, thanks Sebastien Bacher for
spotting this. - 1618. By Reinhard Tartler
-
data/general-
hooks/ubuntu. py: also attach byte compilation logs for
xemacs21 - 1617. By Martin Pitt
-
releasing version 1.12-0ubuntu2
- 1616. By Martin Pitt
-
launchpad.py: Do not keep escalating bugs, just escalate at the 10th
duplicate. (Merged from trunk) - 1615. By Martin Pitt
-
releasing version 1.12-0ubuntu1
- 1614. By Martin Pitt
-
* New upstream release:
- launchpad.py: Add options 'escalation_subscription' and 'escalation_tag'
for handling bugs with more than 10 duplicates.
- crashdb.conf: For Ubuntu, escalate bugs with >= 10 duplicates to
"ubuntu-bugcontrol" and tag them with "bugpattern- needed" .
(LP: #487900)
- general-hooks/generic. py: Filter out crashes on missing GLX
(LP: #327673)
- Add bash completion script. Thanks to Philip Muškovac. (LP: #218933)
- launchpad.py: Drop APPORT_FILES whitelist for download() and instead
just filter out file extensions that we know about (*.txt and *.gz).
(LP: #444975)
- launchpad.py: Do not put the Tags: field into the bug description, since
they are already proper tags. In download(), convert the real tags back
to the Tags: field. (LP: #505671)
- test/crash: Update expected core dump flags for changed rlimit behaviour
in Linux 2.6.32.
- launchpad.py: Fix marking of 'checked for duplicate' for bugs with
upstream tasks.
- launchpad.py, get_fixed_version( ): Do not consider a bug as invalid just
because it has any invalid distro package task. - 1613. By Thierry Carrez
-
ubuntu.py: Avoid errors when running on ramdiskless EC2 images, by only
attaching available EC2 information. Patch from Scott Moser (LP: #494615) - 1612. By Martin Pitt
-
debian/
local/setup- apport- retracer: do not install ddeb lucid pockets, not existing yet - 1611. By Martin Pitt
-
debian/
local/setup- apport- retracer: Don't add the retracer PPA for now,
everything we need is in lucid.
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 2010-02-01 01:11:11 +0000 |
5 | @@ -0,0 +1,2 @@ |
6 | +[BUILDDEB] |
7 | +merge = True |
8 | |
9 | === modified file 'TODO' |
10 | --- TODO 2010-01-29 18:13:31 +0000 |
11 | +++ TODO 2010-02-01 01:11:11 +0000 |
12 | @@ -10,3 +10,12 @@ |
13 | |
14 | hooks: |
15 | - add hooks which run during program crash, to collect more runtime data |
16 | + |
17 | +retracers: |
18 | + - cache Contents.gz |
19 | + |
20 | +hookutils: |
21 | +- run hooks for related packages in attach_related_packages |
22 | + |
23 | +apt-dpkg backend: |
24 | +- use python-apt's Version.get_source() instead of apt-get source |
25 | |
26 | === modified file 'apport/hookutils.py' |
27 | --- apport/hookutils.py 2009-12-23 11:01:21 +0000 |
28 | +++ apport/hookutils.py 2010-02-01 01:11:11 +0000 |
29 | @@ -62,6 +62,45 @@ |
30 | |
31 | report[key] = read_file(path) |
32 | |
33 | +def attach_conffiles(report, package, conffiles=None): |
34 | + '''Attach information about any modified or deleted conffiles''' |
35 | + |
36 | + try: |
37 | + dpkg = subprocess.Popen(['dpkg-query','-W','--showformat=${Conffiles}', |
38 | + package], stdout=subprocess.PIPE, close_fds=True) |
39 | + except OSError, e: |
40 | + return 'Error: ' + str(e) |
41 | + |
42 | + out = dpkg.communicate()[0] |
43 | + if dpkg.returncode != 0: |
44 | + return |
45 | + |
46 | + for line in out.splitlines(): |
47 | + if not line: |
48 | + continue |
49 | + # just take the first two fields, to not stumble over obsolete |
50 | + # conffiles |
51 | + path, default_md5sum = line.strip().split()[:2] |
52 | + |
53 | + if conffiles and path not in conffiles: continue |
54 | + |
55 | + key = 'modified.conffile.' + path_to_key(path) |
56 | + |
57 | + if os.path.exists(path): |
58 | + contents = open(path).read() |
59 | + m = hashlib.md5() |
60 | + m.update(contents) |
61 | + calculated_md5sum = m.hexdigest() |
62 | + |
63 | + if calculated_md5sum != default_md5sum: |
64 | + report[key] = contents |
65 | + statinfo = os.stat(path) |
66 | + mtime = datetime.datetime.fromtimestamp(statinfo.st_mtime) |
67 | + mtime_key = 'mtime.conffile.' + path_to_key(path) |
68 | + report[mtime_key] = mtime.isoformat() |
69 | + else: |
70 | + report[key] = '[deleted]' |
71 | + |
72 | def attach_dmesg(report): |
73 | '''Attach information from the kernel ring buffer (dmesg).''' |
74 | |
75 | |
76 | === removed file 'backends/packaging_rpm.py' |
77 | --- backends/packaging_rpm.py 2009-12-23 11:01:21 +0000 |
78 | +++ backends/packaging_rpm.py 1970-01-01 00:00:00 +0000 |
79 | @@ -1,311 +0,0 @@ |
80 | -'''A partial apport.PackageInfo class implementation for RPM. |
81 | - |
82 | -Used as a base class for Fedora, RHEL, openSUSE, SUSE Linux, and many other |
83 | -distributions. |
84 | -''' |
85 | - |
86 | -# Copyright (C) 2007 Red Hat Inc. |
87 | -# Copyright (C) 2008 Nikolay Derkach |
88 | -# Author: Will Woods <wwoods@redhat.com>, Nikolay Derkach <nderkach@gmail.com> |
89 | -# |
90 | -# This program is free software; you can redistribute it and/or modify it |
91 | -# under the terms of the GNU General Public License as published by the |
92 | -# Free Software Foundation; either version 2 of the License, or (at your |
93 | -# option) any later version. See http://www.gnu.org/copyleft/gpl.html for |
94 | -# the full text of the license. |
95 | - |
96 | -# N.B. There's some distro-specific bits in here (e.g. is_distro_package()). |
97 | -# So this is actually an abstract base class (or a template, if you like) for |
98 | -# RPM-based distributions. |
99 | -# A proper implementation needs to (at least) set official_keylist to a list |
100 | -# of GPG keyids used by official packages. You might have to extend |
101 | -# is_distro_package() as well, if you don't sign all your official packages |
102 | -# (cough cough Fedora rawhide cough) |
103 | - |
104 | -# It'd be convenient to use rpmUtils from yum, but I'm trying to keep this |
105 | -# class distro-agnostic. |
106 | -import rpm, hashlib, os, stat, subprocess |
107 | - |
108 | -class RPMPackageInfo: |
109 | - '''Partial apport.PackageInfo class implementation for RPM, as |
110 | - found in Fedora, RHEL, CentOS, etc.''' |
111 | - |
112 | - # Empty keylist. Should contain a list of key ids (8 lowercase hex digits). |
113 | - # e.g. official_keylist = ('30c9ecf8','4f2a6fd2','897da07a','1ac70ce6') |
114 | - official_keylist = () |
115 | - |
116 | - def __init__(self): |
117 | - self.ts = rpm.TransactionSet() # connect to the rpmdb |
118 | - self._mirror = None |
119 | - |
120 | - def get_version(self, package): |
121 | - '''Return the installed version of a package.''' |
122 | - hdr = self._get_header(package) |
123 | - if hdr == None: |
124 | - raise ValueError |
125 | - # Note - "version" here seems to refer to the full EVR, so.. |
126 | - if not hdr['e']: |
127 | - return hdr['v'] + '-' + hdr['r'] |
128 | - if not hdr['v'] or not hdr['r']: |
129 | - return None |
130 | - else: |
131 | - return hdr['e'] + ':' + hdr['v'] + '-' + hdr['r'] |
132 | - |
133 | - def get_available_version(self, package): |
134 | - '''Return the latest available version of a package.''' |
135 | - # used in report.py, which is used by the frontends |
136 | - raise NotImplementedError, 'method must be implemented by distro-specific RPMPackageInfo subclass' |
137 | - |
138 | - def get_dependencies(self, package): |
139 | - '''Return a list of packages a package depends on.''' |
140 | - hdr = self._get_header(package) |
141 | - # parse this package's Requires |
142 | - reqs=[] |
143 | - for r in hdr['requires']: |
144 | - if r.startswith('rpmlib') or r.startswith('uname('): |
145 | - continue # we've got rpmlib, thanks |
146 | - if r[0] == '/': # file requires |
147 | - req_heads = self._get_headers_by_tag('basenames',r) |
148 | - else: # other requires |
149 | - req_heads = self._get_headers_by_tag('provides',r) |
150 | - for rh in req_heads: |
151 | - rh_envra = self._make_envra_from_header(rh) |
152 | - if rh_envra not in reqs: |
153 | - reqs.append(rh_envra) |
154 | - return reqs |
155 | - |
156 | - def get_source(self, package): |
157 | - '''Return the source package name for a package.''' |
158 | - hdr = self._get_header(package) |
159 | - return hdr['sourcerpm'] |
160 | - |
161 | - def get_architecture(self, package): |
162 | - '''Return the architecture of a package. |
163 | - |
164 | - This might differ on multiarch architectures (e. g. an i386 Firefox |
165 | - package on a x86_64 system)''' |
166 | - # Yeah, this is kind of redundant, as package is ENVRA, but I want |
167 | - # to do this the right way (in case we change what 'package' is) |
168 | - hdr = self._get_header(package) |
169 | - return hdr['arch'] |
170 | - |
171 | - def get_files(self, package): |
172 | - '''Return list of files shipped by a package.''' |
173 | - hdr = self._get_header(package) |
174 | - files = [] |
175 | - for (f, mode) in zip(hdr['filenames'],hdr['filemodes']): |
176 | - if not stat.S_ISDIR(mode): |
177 | - files.append(f) |
178 | - return files |
179 | - |
180 | - def get_modified_files(self, package): |
181 | - '''Return list of all modified files of a package.''' |
182 | - hdr = self._get_header(package) |
183 | - |
184 | - files = hdr['filenames'] |
185 | - mtimes = hdr['filemtimes'] |
186 | - md5s = hdr['filemd5s'] |
187 | - |
188 | - modified = [] |
189 | - for i in xrange(len(files)): |
190 | - # Skip files we're not tracking md5s for |
191 | - if not md5s[i]: continue |
192 | - # Skip files we can't read |
193 | - if not os.access(files[i],os.R_OK): continue |
194 | - # Skip things that aren't real files |
195 | - s = os.stat(files[i]) |
196 | - if not stat.S_ISREG(s.st_mode): continue |
197 | - # Skip things that haven't been modified |
198 | - if mtimes[i] == s.st_mtime: continue |
199 | - # Oh boy, an actual possibly-modified file. Check the md5sum! |
200 | - if not self._checkmd5(files[i],md5s[i]): |
201 | - modified.append(files[i]) |
202 | - |
203 | - return modified |
204 | - |
205 | - def get_file_package(self, file): |
206 | - '''Return the package a file belongs to, or None if the file is not |
207 | - shipped by any package. |
208 | - |
209 | - Under normal use, the 'file' argument will always be the executable |
210 | - that crashed. |
211 | - ''' |
212 | - # The policy for handling files which belong to multiple packages depends on the distro |
213 | - raise NotImplementedError, 'method must be implemented by distro-specific RPMPackageInfo subclass' |
214 | - |
215 | - def get_system_architecture(self): |
216 | - '''Return the architecture of the system, in the notation used by the |
217 | - particular distribution.''' |
218 | - rpmarch = subprocess.Popen(['rpm', '--eval', '%_target_cpu'], |
219 | - stdout=subprocess.PIPE) |
220 | - arch = rpmarch.communicate()[0].strip() |
221 | - return arch |
222 | - |
223 | - def is_distro_package(self, package): |
224 | - '''Check if a package is a genuine distro package (True) or comes from |
225 | - a third-party source.''' |
226 | - # This is a list of official keys, set by the concrete subclass |
227 | - if not self.official_keylist: |
228 | - raise Exception, 'Subclass the RPM implementation for your distro!' |
229 | - hdr = self._get_header(package) |
230 | - if not hdr: |
231 | - return False |
232 | - # Check the GPG sig and key ID to see if this package was signed |
233 | - # with an official key. |
234 | - if hdr['siggpg']: |
235 | - # Package is signed |
236 | - keyid = hdr['siggpg'][13:17].encode('hex') |
237 | - if keyid in self.official_keylist: |
238 | - return True |
239 | - return False |
240 | - |
241 | - def set_mirror(self, url): |
242 | - '''Explicitly set a distribution mirror URL for operations that need to |
243 | - fetch distribution files/packages from the network. |
244 | - |
245 | - By default, the mirror will be read from the system configuration |
246 | - files.''' |
247 | - # FIXME C&P from apt-dpkg implementation, might move to subclass |
248 | - self._mirror = url |
249 | - |
250 | - def get_source_tree(self, srcpackage, dir, version=None): |
251 | - '''Download given source package and unpack it into dir (which should |
252 | - be empty). |
253 | - |
254 | - This also has to care about applying patches etc., so that dir will |
255 | - eventually contain the actually compiled source. |
256 | - |
257 | - If version is given, this particular version will be retrieved. |
258 | - Otherwise this will fetch the latest available version. |
259 | - |
260 | - Return the directory that contains the actual source root directory |
261 | - (which might be a subdirectory of dir). Return None if the source is |
262 | - not available.''' |
263 | - # Used only by apport-retrace. |
264 | - raise NotImplementedError, 'method must be implemented by distro-specific RPMPackageInfo subclass' |
265 | - |
266 | - def compare_versions(self, ver1, ver2): |
267 | - '''Compare two package versions. |
268 | - |
269 | - Return -1 for ver < ver2, 0 for ver1 == ver2, and 1 for ver1 > ver2.''' |
270 | - # Used by crashdb.py (i.e. the frontends) |
271 | - # I could duplicate stringToVersion/compareEVR from rpmUtils.misc, |
272 | - # but I hate duplicating code. So if you don't want to require rpmUtils |
273 | - # you can implement this function yourself. Probably you've got |
274 | - # equivalent code in whatever your distro uses instead of yum anyway. |
275 | - raise NotImplementedError, 'method must be implemented by distro-specific RPMPackageInfo subclass' |
276 | - |
277 | - def package_name_glob(self, glob): |
278 | - '''Return known package names which match given glob.''' |
279 | - |
280 | - raise NotImplementedError, 'TODO' |
281 | - |
282 | - # |
283 | - # Internal helper methods. These are only single-underscore, so you can use |
284 | - # use them in extending/overriding the methods above in your subclasses |
285 | - # |
286 | - |
287 | - def _get_headers_by_tag(self,tag,arg): |
288 | - '''Get a list of RPM headers by doing dbMatch on the given tag and |
289 | - argument.''' |
290 | - matches = self.ts.dbMatch(tag,arg) |
291 | - if matches.count() == 0: |
292 | - raise ValueError, 'Could not find package with %s: %s' % (tag,arg) |
293 | - return [m for m in matches] |
294 | - |
295 | - def _get_header(self,envra): |
296 | - '''Get the RPM header that matches the given ENVRA.''' |
297 | - |
298 | - querystr = envra |
299 | - qlen = len(envra) |
300 | - while qlen > 0: |
301 | - mi = impl.ts.dbMatch('name', querystr) |
302 | - hdrs = [m for m in mi] |
303 | - if len(hdrs) > 0: |
304 | - # yay! we found something |
305 | - # Unless there's some rpmdb breakage, you should have one header |
306 | - # here. If you do manage to have two rpms with the same ENVRA, |
307 | - # who cares which one you get? |
308 | - h = hdrs[0] |
309 | - break |
310 | - |
311 | - # remove the last char of querystr and retry the search |
312 | - querystr = querystr[0:len(querystr)-1] |
313 | - qlen = qlen - 1 |
314 | - |
315 | - if qlen == 0: |
316 | - raise ValueError, 'No headers found for this envra: %s' % envra |
317 | - return h |
318 | - |
319 | - def _make_envra_from_header(self,h): |
320 | - '''Generate an ENVRA string from an rpm header''' |
321 | - nvra="%s-%s-%s.%s" % (h['n'],h['v'],h['r'],h['arch']) |
322 | - if h['e']: |
323 | - envra = "%s:%s" % (h['e'],nvra) |
324 | - else: |
325 | - envra = nvra |
326 | - return envra |
327 | - |
328 | - def _checkmd5(self,filename,filemd5): |
329 | - '''Internal function to check a file's md5sum''' |
330 | - m = hashlib.md5() |
331 | - f = open(filename) |
332 | - data = f.read() |
333 | - f.close() |
334 | - m.update(data) |
335 | - return (filemd5 == m.hexdigest()) |
336 | - |
337 | -impl = RPMPackageInfo() |
338 | - |
339 | -# |
340 | -# Unit test |
341 | -# |
342 | - |
343 | -if __name__ == '__main__': |
344 | - import unittest |
345 | - |
346 | - class _T(unittest.TestCase): |
347 | - |
348 | - def test_get_dependencies(self): |
349 | - '''get_dependencies().''' |
350 | - |
351 | - deps = impl.get_dependencies('bash') |
352 | - self.assertNotEqual(deps, []) |
353 | - |
354 | - def test_get_header(self): |
355 | - '''_get_header().''' |
356 | - |
357 | - hdr = impl._get_header('alsa-utils') |
358 | - self.assertEqual(hdr['n'], 'alsa-utils') |
359 | - |
360 | - def test_get_headers_by_tag(self): |
361 | - '''_get_headers_by_tag().''' |
362 | - |
363 | - headersByTag = impl._get_headers_by_tag('basenames','/bin/bash') |
364 | - self.assertEqual(len(headersByTag), 1) |
365 | - self.assert_(headersByTag[0]['n'].startswith('bash')) |
366 | - |
367 | - def test_get_system_architecture(self): |
368 | - '''get_system_architecture().''' |
369 | - |
370 | - arch = impl.get_system_architecture() |
371 | - # must be nonempty without line breaks |
372 | - self.assertNotEqual(arch, '') |
373 | - self.assert_('\n' not in arch) |
374 | - |
375 | - def test_get_version(self): |
376 | - '''get_version().''' |
377 | - |
378 | - ver = impl.get_version('bash') |
379 | - self.assertNotEqual(ver, None) |
380 | - ver = impl.get_version('alsa-utils') |
381 | - self.assertNotEqual(ver, None) |
382 | - |
383 | - |
384 | - # only execute if rpm is available |
385 | - try: |
386 | - if subprocess.call(['rpm', '--help'], stdout=subprocess.PIPE, |
387 | - stderr=subprocess.PIPE) == 0: |
388 | - unittest.main() |
389 | - except OSError: |
390 | - pass |
391 | |
392 | === modified file 'bin/apport-bug' |
393 | --- bin/apport-bug 2009-12-23 10:55:52 +0000 |
394 | +++ bin/apport-bug 2010-02-01 01:11:11 +0000 |
395 | @@ -38,6 +38,14 @@ |
396 | # main |
397 | # |
398 | |
399 | +# keep backwards compatibility with old documentation which says to use |
400 | +# ubuntu-bug -p packagename |
401 | +if [ $# = 2 ] && [ "$1" = '-p' -o "$1" = '-P' ]; then |
402 | + shift |
403 | + # Show warning about deprecated options. |
404 | + echo "Warning: The options -p/-P are deprecated, please do not use them. See $0 --help" |
405 | +fi |
406 | + |
407 | find_programs |
408 | |
409 | export APPORT_INVOKED_AS="$0" |
410 | |
411 | === added file 'data/general-hooks/automatix.py' |
412 | --- data/general-hooks/automatix.py 1970-01-01 00:00:00 +0000 |
413 | +++ data/general-hooks/automatix.py 2010-02-01 01:11:11 +0000 |
414 | @@ -0,0 +1,26 @@ |
415 | +'''Do not send any crashes when automatix is or was installed, since it usually |
416 | +causes a mess in the system and causes a lot of package installation failures. |
417 | + |
418 | +Copyright (C) 2007 Canonical Ltd. |
419 | +Author: Martin Pitt <martin.pitt@ubuntu.com> |
420 | + |
421 | +This program is free software; you can redistribute it and/or modify it |
422 | +under the terms of the GNU General Public License as published by the |
423 | +Free Software Foundation; either version 2 of the License, or (at your |
424 | +option) any later version. See http://www.gnu.org/copyleft/gpl.html for |
425 | +the full text of the license. |
426 | +''' |
427 | + |
428 | +import apport.packaging |
429 | + |
430 | +def add_info(report): |
431 | + try: |
432 | + if apport.packaging.get_version('automatix') or \ |
433 | + apport.packaging.get_version('automatix2') or \ |
434 | + apport.packaging.get_version('ultamatix'): |
435 | + report['UnreportableReason'] = 'You have installed automatix or ultamatix on your \ |
436 | +system. This is known to cause a lot of instability, thus problem reports \ |
437 | +will not be sent to the %s developers.' % report.get('DistroRelease', |
438 | + 'distribution').split()[0] |
439 | + except ValueError, e: |
440 | + return |
441 | |
442 | === added file 'data/general-hooks/ubuntu.py' |
443 | --- data/general-hooks/ubuntu.py 1970-01-01 00:00:00 +0000 |
444 | +++ data/general-hooks/ubuntu.py 2010-02-01 01:11:11 +0000 |
445 | @@ -0,0 +1,146 @@ |
446 | +'''Attach generally useful information, not specific to any package. |
447 | + |
448 | +Copyright (C) 2009 Canonical Ltd. |
449 | +Author: Matt Zimmerman <mdz@canonical.com> |
450 | + |
451 | +This program is free software; you can redistribute it and/or modify it |
452 | +under the terms of the GNU General Public License as published by the |
453 | +Free Software Foundation; either version 2 of the License, or (at your |
454 | +option) any later version. See http://www.gnu.org/copyleft/gpl.html for |
455 | +the full text of the license. |
456 | +''' |
457 | + |
458 | +import apport.packaging |
459 | +import re |
460 | +from urlparse import urljoin |
461 | +from urllib2 import urlopen |
462 | +from apport.hookutils import * |
463 | + |
464 | +def add_info(report): |
465 | + add_tags = [] |
466 | + |
467 | + # crash reports from live system installer often expose target mount |
468 | + for f in ('ExecutablePath', 'InterpreterPath'): |
469 | + if f in report and report[f].startswith('/target/'): |
470 | + report[f] = report[f][7:] |
471 | + |
472 | + # if we are running from a live system, add the build timestamp |
473 | + attach_file_if_exists(report, '/cdrom/.disk/info', 'LiveMediaBuild') |
474 | + |
475 | + # This includes the Ubuntu packaged kernel version |
476 | + attach_file_if_exists(report, '/proc/version_signature', 'ProcVersionSignature') |
477 | + |
478 | + # https://wiki.ubuntu.com/FoundationsTeam/Specs/OemTrackingId |
479 | + attach_file_if_exists(report, '/var/lib/ubuntu_dist_channel', |
480 | + 'DistributionChannelDescriptor') |
481 | + |
482 | + # https://bugs.launchpad.net/bugs/364649 |
483 | + attach_file_if_exists(report, '/var/log/installer/media-info', |
484 | + 'InstallationMedia') |
485 | + |
486 | + release_codename = apport.hookutils.command_output(['lsb_release', '-sc']) |
487 | + if not release_codename.startswith('Error'): |
488 | + add_tags.append(release_codename) |
489 | + |
490 | + # There are enough of these now that it is probably worth refactoring... |
491 | + # -mdz |
492 | + if report['ProblemType'] == 'Package': |
493 | + if report['Package'] not in ['grub', 'grub2']: |
494 | + # linux-image postinst emits this when update-grub fails |
495 | + # https://wiki.ubuntu.com/KernelTeam/DebuggingUpdateErrors |
496 | + if 'DpkgTerminalLog' in report and re.search(r'^User postinst hook script \[.*update-grub\] exited with value', report['DpkgTerminalLog'], re.MULTILINE): |
497 | + # File these reports on the grub package instead |
498 | + grub_package = apport.packaging.get_file_package('/usr/sbin/update-grub') |
499 | + if grub_package is None or grub_package == 'grub': |
500 | + report['SourcePackage'] = 'grub' |
501 | + else: |
502 | + report['SourcePackage'] = 'grub2' |
503 | + |
504 | + if report['Package'] != 'initramfs-tools': |
505 | + # update-initramfs emits this when it fails, usually invoked from the linux-image postinst |
506 | + # https://wiki.ubuntu.com/KernelTeam/DebuggingUpdateErrors |
507 | + if 'DpkgTerminalLog' in report and re.search(r'^update-initramfs: failed for ', report['DpkgTerminalLog'], re.MULTILINE): |
508 | + # File these reports on the initramfs-tools package instead |
509 | + report['SourcePackage'] = 'initramfs-tools' |
510 | + |
511 | + if report['Package'] in ['emacs22', 'emacs23', 'emacs-snapshot', 'xemacs21']: |
512 | + # emacs add-on packages trigger byte compilation, which might fail |
513 | + # we are very interested in reading the compilation log to determine |
514 | + # where to reassign this report to |
515 | + regex = r'^!! Byte-compilation for x?emacs\S+ failed!' |
516 | + if 'DpkgTerminalLog' in report and re.search(regex, report['DpkgTerminalLog'], re.MULTILINE): |
517 | + for line in report['DpkgTerminalLog'].split('\n'): |
518 | + m = re.search(r'^!! and attach the file (\S+)', line) |
519 | + if m: |
520 | + path = m.group(1) |
521 | + attach_file_if_exists(report, path) |
522 | + |
523 | + if report['Package'].startswith('linux-image-') and 'DpkgTerminalLog' in report: |
524 | + # /etc/kernel/*.d failures from kernel package postinst |
525 | + m = re.search(r'^run-parts: (/etc/kernel/\S+\.d/\S+) exited with return code \d+', report['DpkgTerminalLog'], re.MULTILINE) |
526 | + if m: |
527 | + path = m.group(1) |
528 | + package = apport.packaging.get_file_package(path) |
529 | + if package: |
530 | + report['SourcePackage'] = package |
531 | + report['ErrorMessage'] = m.group(0) |
532 | + else: |
533 | + report['UnreportableReason'] = 'This failure was caused by a program which did not originate from Ubuntu' |
534 | + |
535 | + if 'failed to install/upgrade: corrupted filesystem tarfile' in report.get('Title', ''): |
536 | + report['UnreportableReason'] = 'This failure was caused by a corrupted package download or file system corruption.' |
537 | + |
538 | + if 'is already installed and configured' in report.get('ErrorMessage', ''): |
539 | + report['SourcePackage'] = 'dpkg' |
540 | + |
541 | + if 'Package' in report: |
542 | + package = report['Package'].split()[0] |
543 | + if package and 'attach_conffiles' in dir(): |
544 | + attach_conffiles(report, package) |
545 | + |
546 | + # do not file bugs against "upgrade-system" if it is not installed (LP#404727) |
547 | + if package == 'upgrade-system' and 'not installed' in report['Package']: |
548 | + 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.' |
549 | + |
550 | + # EC2 and Ubuntu Enterprise Cloud instances |
551 | + ec2_instance = False |
552 | + try: |
553 | + if apport.packaging.get_version('ec2-init'): |
554 | + ec2_instance = True |
555 | + except ValueError: |
556 | + pass |
557 | + if ec2_instance: |
558 | + metadata_url = 'http://169.254.169.254/latest/meta-data/' |
559 | + ami_id_url = urljoin(metadata_url, 'ami-id') |
560 | + |
561 | + try: |
562 | + ami = urlopen(ami_id_url).read() |
563 | + except: |
564 | + ami = None |
565 | + |
566 | + if ami is None: |
567 | + cloud = None |
568 | + elif ami.startswith('ami'): |
569 | + cloud = 'ec2' |
570 | + add_tags.append('ec2-images') |
571 | + fields = { 'Ec2AMIManifest':'ami-manifest-path', |
572 | + 'Ec2Kernel':'kernel-id', |
573 | + 'Ec2Ramdisk':'ramdisk-id', |
574 | + 'Ec2InstanceType':'instance-type', |
575 | + 'Ec2AvailabilityZone':'placement/availability-zone' } |
576 | + |
577 | + report['Ec2AMI'] = ami |
578 | + for key,value in fields.items(): |
579 | + try: |
580 | + report[key]=urlopen(urljoin(metadata_url, value)).read() |
581 | + except: |
582 | + report[key]='unavailable' |
583 | + else: |
584 | + cloud = 'uec' |
585 | + add_tags.append('uec-images') |
586 | + |
587 | + if add_tags: |
588 | + if 'Tags' in report: |
589 | + report['Tags'] += ' ' + ' '.join(add_tags) |
590 | + else: |
591 | + report['Tags'] = ' '.join(add_tags) |
592 | |
593 | === added file 'data/package-hooks/source_debian-installer.py' |
594 | --- data/package-hooks/source_debian-installer.py 1970-01-01 00:00:00 +0000 |
595 | +++ data/package-hooks/source_debian-installer.py 2010-02-01 01:11:11 +0000 |
596 | @@ -0,0 +1,35 @@ |
597 | +'''Apport package hook for the Debian installer. |
598 | + |
599 | +Copyright (C) 2009 Canonical Ltd. |
600 | +Author: Colin Watson <cjwatson@ubuntu.com>''' |
601 | + |
602 | +from apport.hookutils import attach_hardware, command_available, command_output |
603 | + |
604 | +def add_info(report): |
605 | + attach_hardware(report) |
606 | + |
607 | + report['DiskUsage'] = command_output(['df']) |
608 | + report['MemoryUsage'] = command_output(['free']) |
609 | + |
610 | + if command_available('dmraid'): |
611 | + report['DmraidSets'] = command_output(['dmraid', '-s']) |
612 | + report['DmraidDevices'] = command_output(['dmraid', '-r']) |
613 | + if command_available('dmsetup'): |
614 | + report['DeviceMapperTables'] = command_output(['dmsetup', 'table']) |
615 | + |
616 | + try: |
617 | + installer_version = open('/var/log/installer/version') |
618 | + for line in installer_version: |
619 | + if line.startswith('ubiquity '): |
620 | + # File these reports on the ubiquity package instead |
621 | + report['SourcePackage'] = 'ubiquity' |
622 | + break |
623 | + installer_version.close() |
624 | + except IOError: |
625 | + pass |
626 | + |
627 | +if __name__ == '__main__': |
628 | + report = {} |
629 | + add_info(report) |
630 | + for key in report: |
631 | + print '%s: %s' % (key, report[key].split('\n', 1)[0]) |
632 | |
633 | === added file 'data/package-hooks/source_linux.py' |
634 | --- data/package-hooks/source_linux.py 1970-01-01 00:00:00 +0000 |
635 | +++ data/package-hooks/source_linux.py 2010-02-01 01:11:11 +0000 |
636 | @@ -0,0 +1,122 @@ |
637 | +'''Apport package hook for the Linux kernel. |
638 | + |
639 | +(c) 2008 Canonical Ltd. |
640 | +Contributors: |
641 | +Matt Zimmerman <mdz@canonical.com> |
642 | +Martin Pitt <martin.pitt@canonical.com> |
643 | + |
644 | +This program is free software; you can redistribute it and/or modify it |
645 | +under the terms of the GNU General Public License as published by the |
646 | +Free Software Foundation; either version 2 of the License, or (at your |
647 | +option) any later version. See http://www.gnu.org/copyleft/gpl.html for |
648 | +the full text of the license. |
649 | +''' |
650 | + |
651 | +import os |
652 | +import subprocess |
653 | +from apport.hookutils import * |
654 | + |
655 | +SUBMIT_SCRIPT = "/usr/bin/kerneloops-submit" |
656 | + |
657 | +def add_info(report, ui): |
658 | + |
659 | + tags = [] |
660 | + |
661 | + ui.information("As part of the bug reporting process, you'll be asked a series of questions to help provide a more descriptive bug report. Please answer the following questions to the best of your ability. Afterwards, a browser will be opened to finish filing this as a bug in the Launchpad bug tracking system.") |
662 | + |
663 | + response = ui.yesno("Has this issue been confirmed to exist with the upstream kernel?") |
664 | + if response == None: #user cancelled |
665 | + raise StopIteration |
666 | + |
667 | + if response == False: |
668 | + report['TestedUpstream'] = "No" |
669 | + tags.append("needs-upstream-testing") |
670 | + testupstream = ui.yesno("Testing the upstream kernel can help isolate issues in Ubuntu kernel patches, discover a bug is fixed upstream, or confirm the issue exists upstream. Would you like to test the upstream kernel first before reporting this bug?") |
671 | + if testupstream == True: |
672 | + ui.information("For information on testing the upstream kernel, refer to https://wiki.ubuntu.com/KernelTeam/MainlineBuilds") |
673 | + raise StopIteration |
674 | + |
675 | + elif response == True: |
676 | + report['TestedUpstream'] = "Yes" |
677 | + ui.information("It can also be beneficial to report this bug upstream at http://bugzilla.kernel.org/ so that the upstream kernel developers are also aware of the issue.") |
678 | + |
679 | + response = ui.yesno("A bug is considered a regression if the issue did not exist on a previous kernel. Is this a regression?") |
680 | + if response == None: #user cancelled |
681 | + raise StopIteration |
682 | + |
683 | + report['Regression'] = "No" |
684 | + if response == True: |
685 | + report['Regression'] = "Yes" |
686 | + regression_tags = ["regression-release", "regression-potential", |
687 | + "regression-update", "regression-proposed", |
688 | + "regression-potential"] |
689 | + |
690 | + # add code to check if running dev release; if so, tag regression-potential and move on. |
691 | + regression = ui.choice("How would you describe the regression?", |
692 | + ["regression-release - A regression in a new stable release.", |
693 | + "regression-potential - A bug discovered in the development release that was not present in the stable release.", |
694 | + "regression-update - A regression introduced by an updated package in the stable release.", |
695 | + "regression-proposed - A regression introduced by a package in -proposed .", |
696 | + "I don't know."], False) |
697 | + |
698 | + #Don't Know response defaults to regression-potential |
699 | + tags.append(regression_tags[regression[0]]) |
700 | + ui.information("If possible, when filling out your bug report later on, please note the most recent kernel version where this was not an issue.") |
701 | + |
702 | + response = ui.yesno("Can you recreate this bug with a specific series of steps?") |
703 | + |
704 | + if response == None: #user cancelled |
705 | + raise StopIteration |
706 | + |
707 | + if response == True: |
708 | + report['Reproducible'] = "Yes" |
709 | + ui.information("After apport finishes collection debug information, please document your steps to reproduce the issue when filling out the bug report.") |
710 | + elif response == False: |
711 | + report['Reproducible'] = "No" |
712 | + frequency_options = ["Once a day.", |
713 | + "Once every few days.", |
714 | + "Once a week.", |
715 | + "Once every few weeks.", |
716 | + "Once a month.", |
717 | + "Once every few months.", |
718 | + "This has only happened once."] |
719 | + |
720 | + frequency = ui.choice("How often does this issue appear?", |
721 | + frequency_options) |
722 | + report['Frequency'] = frequency_options[frequency[0]] |
723 | + |
724 | + report.setdefault('Tags', '') |
725 | + report['Tags'] += ' ' + ' '.join(tags) |
726 | + |
727 | + attach_hardware(report) |
728 | + attach_alsa(report) |
729 | + attach_wifi(report) |
730 | + |
731 | + attach_file_if_exists(report, "/etc/initramfs-tools/conf.d/resume", |
732 | + key="HibernationDevice") |
733 | + |
734 | + version_signature = report.get('ProcVersionSignature', '') |
735 | + if not version_signature.startswith('Ubuntu '): |
736 | + report['UnreportableReason'] = _('The running kernel is not an Ubuntu kernel') |
737 | + return |
738 | + |
739 | + uname_release = os.uname()[2] |
740 | + lrm_package_name = 'linux-restricted-modules-%s' % uname_release |
741 | + lbm_package_name = 'linux-backports-modules-%s' % uname_release |
742 | + |
743 | + attach_related_packages(report, [lrm_package_name, lbm_package_name, 'linux-firmware']) |
744 | + |
745 | + if ('Failure' in report and report['Failure'] == 'oops' |
746 | + and 'OopsText' in report and os.path.exists(SUBMIT_SCRIPT)): |
747 | + #it's from kerneloops, ask the user whether to submit there as well |
748 | + if ui is not None: |
749 | + if ui.yesno("This report may also be submitted to " |
750 | + "http://kerneloops.org/ in order to help collect aggregate " |
751 | + "information about kernel problems. This aids in identifying " |
752 | + "widespread issues and problematic areas. Would you like to " |
753 | + "submit information about this crash there?"): |
754 | + text = report['OopsText'] |
755 | + proc = subprocess.Popen(SUBMIT_SCRIPT, |
756 | + stdin=subprocess.PIPE) |
757 | + proc.communicate(text) |
758 | + |
759 | |
760 | === added directory 'debian' |
761 | === added file 'debian/apport-gtk.install' |
762 | --- debian/apport-gtk.install 1970-01-01 00:00:00 +0000 |
763 | +++ debian/apport-gtk.install 2010-02-01 01:11:11 +0000 |
764 | @@ -0,0 +1,2 @@ |
765 | +usr/share/apport/*gtk* |
766 | +usr/share/applications/*gtk-mime* |
767 | |
768 | === added file 'debian/apport-kde.install' |
769 | --- debian/apport-kde.install 1970-01-01 00:00:00 +0000 |
770 | +++ debian/apport-kde.install 2010-02-01 01:11:11 +0000 |
771 | @@ -0,0 +1,7 @@ |
772 | +usr/share/apport/*kde* |
773 | +usr/share/apport/progress.ui |
774 | +usr/share/apport/error.ui |
775 | +usr/share/apport/bugreport.ui |
776 | +usr/share/apport/choices.ui |
777 | +usr/share/applications/apport-kde-mime.desktop |
778 | +usr/share/applications/apport-kde-mimelnk.desktop usr/share/mimelnk/text |
779 | |
780 | === added file 'debian/apport-retrace.install' |
781 | --- debian/apport-retrace.install 1970-01-01 00:00:00 +0000 |
782 | +++ debian/apport-retrace.install 2010-02-01 01:11:11 +0000 |
783 | @@ -0,0 +1,3 @@ |
784 | +usr/bin/apport-retrace |
785 | +usr/bin/dupdb-admin |
786 | +../local/apport-chroot usr/bin |
787 | |
788 | === added file 'debian/apport-retrace.manpages' |
789 | --- debian/apport-retrace.manpages 1970-01-01 00:00:00 +0000 |
790 | +++ debian/apport-retrace.manpages 2010-02-01 01:11:11 +0000 |
791 | @@ -0,0 +1,3 @@ |
792 | +man/apport-retrace.1 |
793 | +man/dupdb-admin.1 |
794 | +debian/local/apport-chroot.1 |
795 | |
796 | === added file 'debian/apport.install' |
797 | --- debian/apport.install 1970-01-01 00:00:00 +0000 |
798 | +++ debian/apport.install 2010-02-01 01:11:11 +0000 |
799 | @@ -0,0 +1,20 @@ |
800 | +etc/default |
801 | +etc/cron.daily |
802 | +usr/share/apport/apport |
803 | +usr/share/apport/apport-checkreports |
804 | +usr/share/apport/package_hook |
805 | +usr/share/apport/kernel_crashdump |
806 | +usr/share/apport/kernel_oops |
807 | +usr/share/apport/gcc_ice_hook |
808 | +usr/share/apport/apportcheckresume |
809 | +usr/share/apport/testsuite/ |
810 | +usr/share/doc/apport |
811 | +usr/share/locale |
812 | +usr/share/icons |
813 | +usr/share/mime |
814 | +usr/share/apport/package-hooks |
815 | +usr/share/apport/general-hooks |
816 | +usr/bin/apport-cli |
817 | +usr/bin/apport-unpack |
818 | +usr/bin/apport-bug |
819 | +usr/bin/apport-collect |
820 | |
821 | === added file 'debian/apport.links' |
822 | --- debian/apport.links 1970-01-01 00:00:00 +0000 |
823 | +++ debian/apport.links 2010-02-01 01:11:11 +0000 |
824 | @@ -0,0 +1,4 @@ |
825 | +/usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-meta.py |
826 | +/usr/bin/apport-bug /usr/bin/ubuntu-bug |
827 | +/usr/share/man/man1/apport-bug.1.gz /usr/share/man/man1/ubuntu-bug.1.gz |
828 | +/usr/share/man/man1/apport-bug.1.gz /usr/share/man/man1/apport-collect.1.gz |
829 | |
830 | === added file 'debian/apport.logrotate' |
831 | --- debian/apport.logrotate 1970-01-01 00:00:00 +0000 |
832 | +++ debian/apport.logrotate 2010-02-01 01:11:11 +0000 |
833 | @@ -0,0 +1,9 @@ |
834 | +/var/log/apport.log { |
835 | + daily |
836 | + rotate 7 |
837 | + delaycompress |
838 | + compress |
839 | + notifempty |
840 | + missingok |
841 | +} |
842 | + |
843 | |
844 | === added file 'debian/apport.manpages' |
845 | --- debian/apport.manpages 1970-01-01 00:00:00 +0000 |
846 | +++ debian/apport.manpages 2010-02-01 01:11:11 +0000 |
847 | @@ -0,0 +1,3 @@ |
848 | +man/apport-unpack.1 |
849 | +man/apport-cli.1 |
850 | +man/apport-bug.1 |
851 | |
852 | === added file 'debian/apport.upstart' |
853 | --- debian/apport.upstart 1970-01-01 00:00:00 +0000 |
854 | +++ debian/apport.upstart 2010-02-01 01:11:11 +0000 |
855 | @@ -0,0 +1,50 @@ |
856 | +# apport - automatic crash report generation |
857 | +# |
858 | +# While this job is active, core dumps will captured by apport and |
859 | +# used to generate automatic crash reports. |
860 | + |
861 | +description "automatic crash report generation" |
862 | + |
863 | +start on runlevel [2345] |
864 | +stop on runlevel [!2345] |
865 | + |
866 | +env enabled=1 |
867 | + |
868 | +pre-start script |
869 | + . /etc/default/apport |
870 | + [ "$enabled" = "1" ] || [ "$force_start" = "1" ] |
871 | + |
872 | + mkdir -p -m 1777 /var/crash |
873 | + |
874 | + # check for kernel crash dump, convert it to apport report |
875 | + if [ -e /var/crash/vmcore ] |
876 | + then |
877 | + /usr/share/apport/kernel_crashdump || true |
878 | + fi |
879 | + |
880 | + # check for incomplete suspend/resume or hibernate |
881 | + if [ -e /var/lib/pm-utils/status ] |
882 | + then |
883 | + /usr/share/apport/apportcheckresume || true |
884 | + rm -f /var/lib/pm-utils/status |
885 | + rm -f /var/lib/pm-utils/resume-hang.log |
886 | + fi |
887 | + |
888 | + echo "|/usr/share/apport/apport %p %s %c" > /proc/sys/kernel/core_pattern |
889 | +end script |
890 | + |
891 | +post-stop script |
892 | + # Check for a hung resume. If we find one try and grab everything |
893 | + # we can to aid in its discovery |
894 | + if [ -e /var/lib/pm-utils/status ] |
895 | + then |
896 | + ps -wwef > /var/lib/pm-utils/resume-hang.log |
897 | + fi |
898 | + |
899 | + if [ "`dd if=/proc/sys/kernel/core_pattern count=1 bs=1 2>/dev/null`" != "|" ] |
900 | + then |
901 | + exit 1 |
902 | + else |
903 | + echo "core" > /proc/sys/kernel/core_pattern |
904 | + fi |
905 | +end script |
906 | |
907 | === added file 'debian/changelog' |
908 | --- debian/changelog 1970-01-01 00:00:00 +0000 |
909 | +++ debian/changelog 2010-02-01 01:11:11 +0000 |
910 | @@ -0,0 +1,4573 @@ |
911 | +apport (1.12-0ubuntu4) UNRELEASED; urgency=low |
912 | + |
913 | + [ Martin Pitt ] |
914 | + * Add X-Ubuntu-Gettext-Domain: to desktop files, thanks Sebastien Bacher for |
915 | + spotting this. |
916 | + |
917 | + [ Jonathan Thomas ] |
918 | + * Make apport-kde recommend the new kubuntu-notification-helper package |
919 | + rather than update-notifier-kde to prevent the latter, depreciated tool |
920 | + from getting on the Live CD |
921 | + |
922 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 28 Jan 2010 14:29:28 +0100 |
923 | + |
924 | +apport (1.12-0ubuntu3) lucid; urgency=low |
925 | + |
926 | + * data/general-hooks/ubuntu.py: also attach byte compilation logs for |
927 | + xemacs21 |
928 | + |
929 | + -- Reinhard Tartler <siretart@tauware.de> Sun, 24 Jan 2010 19:51:04 +0100 |
930 | + |
931 | +apport (1.12-0ubuntu2) lucid; urgency=low |
932 | + |
933 | + * launchpad.py: Do not keep escalating bugs, just escalate at the 10th |
934 | + duplicate. (Merged from trunk) |
935 | + |
936 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 22 Jan 2010 16:51:35 +0100 |
937 | + |
938 | +apport (1.12-0ubuntu1) lucid; urgency=low |
939 | + |
940 | + * New upstream release: |
941 | + - launchpad.py: Add options 'escalation_subscription' and 'escalation_tag' |
942 | + for handling bugs with more than 10 duplicates. |
943 | + - crashdb.conf: For Ubuntu, escalate bugs with >= 10 duplicates to |
944 | + "ubuntu-bugcontrol" and tag them with "bugpattern-needed". |
945 | + (LP: #487900) |
946 | + - general-hooks/generic.py: Filter out crashes on missing GLX |
947 | + (LP: #327673) |
948 | + - Add bash completion script. Thanks to Philip Muškovac. (LP: #218933) |
949 | + - launchpad.py: Drop APPORT_FILES whitelist for download() and instead |
950 | + just filter out file extensions that we know about (*.txt and *.gz). |
951 | + (LP: #444975) |
952 | + - launchpad.py: Do not put the Tags: field into the bug description, since |
953 | + they are already proper tags. In download(), convert the real tags back |
954 | + to the Tags: field. (LP: #505671) |
955 | + - test/crash: Update expected core dump flags for changed rlimit behaviour |
956 | + in Linux 2.6.32. |
957 | + - launchpad.py: Fix marking of 'checked for duplicate' for bugs with |
958 | + upstream tasks. |
959 | + - launchpad.py, get_fixed_version(): Do not consider a bug as invalid just |
960 | + because it has any invalid distro package task. |
961 | + * debian/local/setup-apport-retracer: Switch to lucid. |
962 | + * debian/local/setup-apport-retracer: Do not locally install python-apt and |
963 | + friends, users can run apt-get install in DC dchroots now. |
964 | + * debian/local/setup-apport-retracer: Don't add the retracer PPA for now, |
965 | + everything we need is in lucid. |
966 | + |
967 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 20 Jan 2010 13:51:15 +0100 |
968 | + |
969 | +apport (1.11-0ubuntu5) lucid; urgency=low |
970 | + |
971 | + * ubuntu.py: Avoid errors when running on ramdiskless EC2 images, by only |
972 | + attaching available EC2 information. Patch from Scott Moser (LP: #494615) |
973 | + |
974 | + -- Thierry Carrez <thierry.carrez@ubuntu.com> Tue, 12 Jan 2010 12:19:32 +0100 |
975 | + |
976 | +apport (1.11-0ubuntu4) lucid; urgency=low |
977 | + |
978 | + * Merge from trunk: |
979 | + - launchpad.py: Add options 'escalation_subscription' and 'escalation_tag' |
980 | + for handling bugs with more than 10 duplicates. |
981 | + - crashdb.conf: For Ubuntu, escalate bugs with >= 10 duplicates to |
982 | + "ubuntu-bugcontrol" and tag them with "bugpattern-needed". (LP: #487900) |
983 | + - launchpad.py: Drop APPORT_FILES whitelist for download() and instead |
984 | + just filter out file extensions that we know about (*.txt and *.gz). |
985 | + (LP: #444975) |
986 | + |
987 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 11 Jan 2010 23:53:10 +0100 |
988 | + |
989 | +apport (1.11-0ubuntu3) lucid; urgency=low |
990 | + |
991 | + * Attach emacs compilation logs in order to assist bug triaging. |
992 | + LP: #413110 |
993 | + |
994 | + -- Reinhard Tartler <siretart@tauware.de> Thu, 07 Jan 2010 22:14:45 +0100 |
995 | + |
996 | +apport (1.11-0ubuntu2) lucid; urgency=low |
997 | + |
998 | + * launchpad.py: Remove a snippet of redundant code. |
999 | + * Merge bug fixes from trunk: |
1000 | + - launchpad.py: Drop APPORT_FILES whitelist for download() and instead |
1001 | + just filter out file extensions that we know about (*.txt and *.gz). |
1002 | + (LP: #444975) |
1003 | + * Enable Apport by default again. |
1004 | + |
1005 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 05 Jan 2010 18:30:19 +0100 |
1006 | + |
1007 | +apport (1.11-0ubuntu1) lucid; urgency=low |
1008 | + |
1009 | + * New upstream release: |
1010 | + - Add "--save" UI option to store the collected information into an |
1011 | + .apport file instead of sending it right away. The file can then later |
1012 | + be sent through apport-bug. Update manpages accordingly. |
1013 | + - Update all copyright and description headers and consistently format |
1014 | + them. |
1015 | + - Rename all TestCase classes to "_T", which makes it much easier to run |
1016 | + individual tests from the command line. |
1017 | + - Testsuite: Verify that report details are/are not shown. This uncovered |
1018 | + that details about package installation failures were not shown before |
1019 | + sending them, which is fixed now. |
1020 | + - test/hooks: Do not try to add hook information to kernel_crashdump test |
1021 | + case, since we do not have an UI here. This test case broke when the |
1022 | + system had an interactive package hook for the kernel. |
1023 | + - When reporting a bug from a saved .apport file, let the user |
1024 | + review/confirm the content before sending. |
1025 | + |
1026 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 23 Dec 2009 13:09:55 +0100 |
1027 | + |
1028 | +apport (1.10.1-0ubuntu1) lucid; urgency=low |
1029 | + |
1030 | + * New upstream release: |
1031 | + - Install apport-collect symlink. |
1032 | + - Update translations from Launchpad. |
1033 | + - Move all remaining option/argument parsing from apport-bug into ui.py. |
1034 | + This allows the user to add options to apport-bug/apport-collect, and |
1035 | + also avoids unwieldy dissection of options/arguments in shell. |
1036 | + * debian/apport.links: Do not create apport-collect symlink, now done by |
1037 | + upstream build system. Install that in debian/apport.install. |
1038 | + * debian/local/setup-apport-retracer: Set up lazr.restfulclient. |
1039 | + * debian/control: Bump python-distutils-extra build dependency to >= 2.14 to |
1040 | + ensure correct symlink handling. |
1041 | + |
1042 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 23 Dec 2009 00:54:37 +0100 |
1043 | + |
1044 | +apport (1.10-0ubuntu1) lucid; urgency=low |
1045 | + |
1046 | + * New upstream release: |
1047 | + - Add a mode for updating an existing problem report to ui.py |
1048 | + (-u/--update). This is similar to the Ubuntu specific "apport-collect" |
1049 | + tool, but implemented the right way now: In particular, this has access |
1050 | + to the UI and thus can use interactive hooks (LP: #385811) and show you |
1051 | + what is being sent for confirmation/cancelling (LP: #371827) |
1052 | + |
1053 | + - apport-bug: If invoked as "apport-collect" or "apport-update-bug" (i. e. |
1054 | + through a symlink), run apport in update mode (-u <number>). This |
1055 | + provides a convenient no-options command line program. Please note that |
1056 | + setup.py does not currently install such a symlink. Update the |
1057 | + apport-bug manpage accordingly. |
1058 | + |
1059 | + - launchpad.py: Use new login_with() to clean up code, and specify allowed |
1060 | + access levels (WRITE_PRIVATE is the only sensible one anyway). |
1061 | + (LP: #410205) |
1062 | + |
1063 | + - New hookutils functions: |
1064 | + + xsession_errors (match lines from ~/.xsession-errors) |
1065 | + + shared_libraries (determine which libraries a binary links with) |
1066 | + + links_with_shared_library (test if a binary links with a particular |
1067 | + library) |
1068 | + |
1069 | + - New CrashDatabase API: get_affected_packages(), can_update(), is_reporter() |
1070 | + |
1071 | + - Rename CrashDatabase.update() to update_traces(). |
1072 | + |
1073 | + - Add CrashDatabase.update() for adding all new fields of a report. This is |
1074 | + primarily useful for collecting local standard and package hook data for an |
1075 | + already existing bug report which was not filed through Apport. This checks |
1076 | + can_update()/is_reporter() if the user is eligible for updating that |
1077 | + particular bug. (LP: #485880) |
1078 | + |
1079 | + - Ignore SIGXCPU and SIGXFSZ; thanks to Kees Cook. (LP: #498074) |
1080 | + |
1081 | + - launchpad.py: Do not mark non-Ubuntu bugs as needs-retrace, since there is |
1082 | + no retracer right now. (LP: #489794) |
1083 | + |
1084 | + - packaging-apt-dpkg.py, install_retracing_packages(): Do not crash on |
1085 | + malformed Dependencies.txt lines. (LP: #441709) |
1086 | + |
1087 | + - use-local: Fix for new source tree location of "apport" binary. |
1088 | + |
1089 | + * Drop debian/local/apport-collect{,.1} and install symlinks for apport-bug |
1090 | + instead. |
1091 | + * data/general-hooks/ubuntu.py: Do not report "corrupted filesystem tarfile" |
1092 | + package errors. (LP: #320743) |
1093 | + * data/general-hooks/ubuntu.py: Report "package ... is already installed and |
1094 | + configured" errors against dpkg, not the package that failed. (LP: #467688) |
1095 | + |
1096 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 19 Dec 2009 16:48:48 +0100 |
1097 | + |
1098 | +apport (1.9.6-0ubuntu2) lucid; urgency=low |
1099 | + |
1100 | + * Bump python-launchpadlib dependency to ensure that we have login_with() |
1101 | + with credentials_file argument. |
1102 | + * debian/local/apport-collect: Add short infos to description if the calling |
1103 | + person is the bug reporter. (LP: #348948) |
1104 | + * debian/local/apport-collect: Intercept lazr.restfulclient.errors.HTTPError |
1105 | + as well, and also cover the login process. |
1106 | + * debian/local/apport-collect: Improve error messages. |
1107 | + * debian/local/ubuntu-fat-chroot: Disable update-alternatives, it causes too |
1108 | + much breakage with fakechroot. |
1109 | + |
1110 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 18 Dec 2009 13:09:26 +0100 |
1111 | + |
1112 | +apport (1.9.6-0ubuntu1) lucid; urgency=low |
1113 | + |
1114 | + [ Brian Murray ] |
1115 | + * debian/local/apport-collect: Strongly encourage collectors who are not |
1116 | + the bug reporter to file a new bug report. |
1117 | + |
1118 | + [ Marco Rodrigues ] |
1119 | + * debian/control: Fix lintian warnings. Move python-distutils-extra |
1120 | + to b-d-i and add misc:Depends to apport-qt. |
1121 | + |
1122 | + [ Martin Pitt ] |
1123 | + * New upstream version 1.9.5 and 1.9.6: |
1124 | + - apport-retrace: Fix crash if InterpreterPath/ExecutablePath do not |
1125 | + exist. |
1126 | + - hookutils.py, attach_alsa(): Attach /proc/cpuinfo too, for CPU flags. |
1127 | + - Fix crash if InterpreterPath does not exist any more at the time of |
1128 | + reporting. (LP: #428289) |
1129 | + - apport-gtk: Connect signals properly, to repair cancel/window close |
1130 | + buttons. (LP: #427814) |
1131 | + - Update German translations and fix "konnre" typo. (LP: #484119) |
1132 | + - launchpad.py: Ensure that text attachments on initial bug filing are |
1133 | + valid UTF-8. (LP: #453203) |
1134 | + - man/apport-retrace.1: Document -R option. |
1135 | + - Add pm-utils hook to record current operation, so that apportcheckresume |
1136 | + can check it. Before this was kept in Ubuntu's pm-utils package. |
1137 | + - general-hooks/generic.py: Check if using ecryptfs, and which directory. |
1138 | + (LP: #444656) |
1139 | + * data/general-hooks/ubuntu.py: Add distro release codename tag. |
1140 | + (LP: #404250) |
1141 | + * debian/local/apport-chroot: Fix last occurrence of "--no-dpkg" to be |
1142 | + "--no-pkg". (LP: #487056) |
1143 | + * debian/local/apport-collect: Use "apport-collect data" as comment for the |
1144 | + apport-collect attachments to enable bug mail filtering. Thanks to Bryce |
1145 | + Harrington for the suggestion. |
1146 | + |
1147 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 02 Dec 2009 00:01:06 +0100 |
1148 | + |
1149 | +apport (1.9.4-0ubuntu1) lucid; urgency=low |
1150 | + |
1151 | + [ Marco Rodrigues ] |
1152 | + * etc/default/apport: Replace the old init.d force_start command by |
1153 | + the Upstart one. |
1154 | + * debian/apport.upstart: If $force_start=1 is given then run the job. |
1155 | + * debian/local/apport-collect: Don't collect information if bug is a |
1156 | + duplicate. (LP: #471429) |
1157 | + |
1158 | + [ Martin Pitt ] |
1159 | + * New upstream bug fix release: |
1160 | + - Fix crash when ExecutablePath isn't part of a package. (LP: #424965) |
1161 | + - hookutils.py, attach_hardware(): Anonymize disk labels. Thanks to Marco |
1162 | + Rodrigues. (LP: #394411) |
1163 | + - hookutils.py, attach_wifi(): Anonymize encryption key (which appeared in |
1164 | + hex when being called as root). Thanks to Marco Rodrigues. (LP: #446299) |
1165 | + - launchpad.py: If unset, set bug task source package also for interpreter |
1166 | + crashes. |
1167 | + - apport-gtk: Give details window a minimize/maximize button, which were |
1168 | + missing in some window managers. Thanks to Marien Zwart. (LP: #447749) |
1169 | + - apport-kde: Properly terminate program after closing the last dialog. |
1170 | + (LP: #458662) |
1171 | + - hookutils.py, attach_alsa(): Attach /proc/asound/version. (LP: #467233) |
1172 | + - general-hooks/generic.py: Only collect ~/.xsession-errors bits when we |
1173 | + have an ExecutablePath linked to libgtk. |
1174 | + * debian/control: Update Vcs-Bzr: for lucid branch. |
1175 | + * data/package-hooks/source_linux.py: Add interactive questionaire, thanks |
1176 | + Leann Ogasawara! (LP: #444672) |
1177 | + |
1178 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 06 Nov 2009 14:06:52 +0100 |
1179 | + |
1180 | +apport (1.9.3-0ubuntu4) karmic; urgency=low |
1181 | + |
1182 | + * etc/default/apport: Disable Apport for final Karmic. |
1183 | + |
1184 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 22 Oct 2009 22:41:34 +0200 |
1185 | + |
1186 | +apport (1.9.3-0ubuntu3) karmic; urgency=low |
1187 | + |
1188 | + * apport/crash_db/launchpad.py: Increase the number of files available |
1189 | + for searching with bug patterns. |
1190 | + |
1191 | + -- Brian Murray <brian@ubuntu.com> Sun, 18 Oct 2009 12:38:38 +0200 |
1192 | + |
1193 | +apport (1.9.3-0ubuntu2) karmic; urgency=low |
1194 | + |
1195 | + * debian/local/apport-collect: Instantiate Launchpad crash database with |
1196 | + "distro = ubuntu", to satisfy an assertion introduced in the previous |
1197 | + release. (LP: #451838) |
1198 | + |
1199 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 15 Oct 2009 21:12:21 +0200 |
1200 | + |
1201 | +apport (1.9.3-0ubuntu1) karmic; urgency=low |
1202 | + |
1203 | + * New upstream bug fix release: |
1204 | + - hookutils.py: Fix error codes from "comm", thanks to Brian Murray. |
1205 | + (LP: #414194) |
1206 | + - general-hooks/generic.py: Catch xkbcomp error messages. (LP: #431807) |
1207 | + - launchpad.py: Assert that we have exactly one of "distro" or "project" |
1208 | + option. |
1209 | + - doc/crashdb-conf.txt: Improve documentation of crash database options. |
1210 | + - apport-gtk: Make Cancel/Send buttons focusable. Thanks to Marco |
1211 | + Rodrigues. (LP: #447780) |
1212 | + - Drop handling of the APPORT_REPORT_THIRDPARTY environment variable and |
1213 | + "thirdparty" configuration file option. This has never been documented, |
1214 | + and conceptually does not work. There is a proper mechanism for this in |
1215 | + place now, e. g. launchpad.py's "project" option. |
1216 | + * bin/apport-bug: Show deprecation warning for -p/-P. (LP: #431942) |
1217 | + |
1218 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 14 Oct 2009 23:28:24 +0200 |
1219 | + |
1220 | +apport (1.9.2-0ubuntu2) karmic; urgency=low |
1221 | + |
1222 | + [ Matt Zimmerman ] |
1223 | + * general-hooks/ubuntu.py: Include in Ubuntu bug reports the version number |
1224 | + of the installation media used to install the system, via |
1225 | + /var/log/installer/media-info (cf. #364649) |
1226 | + |
1227 | + [ Martin Pitt ] |
1228 | + * debian/local/apport-collect.1: Clarify that the launchpad.credentials |
1229 | + files needs to be removed in order to ask for privileges again. |
1230 | + * Merge bug fixes from trunk: |
1231 | + - general-hooks/generic.py: Catch xkbcomp error messages, too. (LP: #431807) |
1232 | + - apport-bug: Consider -h as "output help", too. (Marco Rodrigues) |
1233 | + |
1234 | + [ Brian Murray ] |
1235 | + * debian/local/apport-collect: |
1236 | + - Resolve bug with specifying package for adding information. |
1237 | + - Let collector know if bug was not reported by them. |
1238 | + - Clarify potential failure causes. |
1239 | + |
1240 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 08 Oct 2009 09:37:35 +0200 |
1241 | + |
1242 | +apport (1.9.2-0ubuntu1) karmic; urgency=low |
1243 | + |
1244 | + * New upstream bug fix release: |
1245 | + - apport-cli: Print the URL and ask whether to open a browser. In many |
1246 | + situations (such as usage on a server through ssh), it's preferable to not |
1247 | + open the browser on the reporting computer. Thanks to Matt Zimmerman for the |
1248 | + initial patch! (LP: #286415) |
1249 | + - general-hooks/generic.py: Collect important glib errors/assertions (which |
1250 | + should not have private data) from ~/.xsession-errors (LP: #431807) |
1251 | + - launchpad.py: Link hardware data submission key if it exists. (LP: #424382) |
1252 | + - apport-cli: Fix crash with non-ASCII characters in prompts. |
1253 | + - Fix "apport-bug symptomname" to actually work. |
1254 | + - launchpad.py: Fix crash on invalid credentials file. Thanks to Marco |
1255 | + Rodrigues for the initial patch! (LP: #414055) |
1256 | + * man/apport-bug.1: Document APPORT_IGNORE_OBSOLETE_PACKAGES (cherrypicked |
1257 | + from trunk), and APPORT_STAGING (Ubuntu specific change, since it's a |
1258 | + launchpad backend specific variable). |
1259 | + * bin/apport-bug: Ignore -p option when giving two arguments, to keep |
1260 | + compatibility with current bug filing instructions. (LP: #356755) |
1261 | + * debian/copyright: Update copyright year and fix GPL link, thanks Marco |
1262 | + Rodrigues! |
1263 | + |
1264 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 02 Oct 2009 13:25:58 +0200 |
1265 | + |
1266 | +apport (1.9.1-0ubuntu3) karmic; urgency=low |
1267 | + |
1268 | + * Merge bug fixes from trunk: |
1269 | + - apport-cli: Print the URL and ask whether to open a browser. This makes |
1270 | + ubuntu-bug work much better for servers, now that ubuntu-bug is by and |
1271 | + large mandatory. (LP: #286415) |
1272 | + - launchpad.py: Consistently respect $APPORT_STAGING, so that it works |
1273 | + for bug filing as well. (LP: #435112) |
1274 | + |
1275 | + [ Matt Zimmerman ] |
1276 | + * data/general-hooks/ubuntu.py: Add metadata and tags for bugs reported from |
1277 | + EC2 and UEC instances. |
1278 | + |
1279 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 25 Sep 2009 18:51:44 +0200 |
1280 | + |
1281 | +apport (1.9.1-0ubuntu2) karmic; urgency=low |
1282 | + |
1283 | + * kde/bugreport.ui: Select "complete report" option by default, to actually |
1284 | + be able to file bugs if the options are not shown. Thanks to Yuriy Kozlov! |
1285 | + Fix cherrypicked from trunk. (LP: #405378) |
1286 | + |
1287 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 23 Sep 2009 10:18:28 +0200 |
1288 | + |
1289 | +apport (1.9.1-0ubuntu1) karmic; urgency=low |
1290 | + |
1291 | + [ Martin Pitt ] |
1292 | + * New upstream bug fix release: |
1293 | + - hookutils.py, attach_hardware(): Do not attach empty Pccardctl*. |
1294 | + - apport/report.py, add_gdb_info(): Do not throw away stderr from gdb. |
1295 | + - data/general-hooks/parse_segv.py: |
1296 | + + Handle arithmetic wrapping correctly. |
1297 | + + Handle empty base, scale, or index registers in disassembly. |
1298 | + + Handle in/out ioport faults. |
1299 | + - Various improvements to user-visible strings, thanks to Marco Rodrigues! |
1300 | + (LP: #178507) |
1301 | + - Various apport-retrace robustifications. |
1302 | + - setup.py: Fix DistUtilsExtra version check. (LP: #428337) |
1303 | + - hookutils.py, attach_gconf(): Do not overwrite previous values from |
1304 | + other packages, thanks Loïc Minier! |
1305 | + - hookutils.py, attach_gconf(): Fix crash with nonexisting <applyto> tags. |
1306 | + |
1307 | + [ Loïc Minier ] |
1308 | + * Upstream source is at https://launchpad.net/apport/+download not |
1309 | + archive.ubuntu.com. |
1310 | + |
1311 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 22 Sep 2009 12:51:38 +0200 |
1312 | + |
1313 | +apport (1.9-0ubuntu6) karmic; urgency=low |
1314 | + |
1315 | + * debian/apport.upstart: |
1316 | + - Use "exit" in Upstart script rather than "return". |
1317 | + - Fix post-stop script to write to the correct file. LP: #430895. |
1318 | + |
1319 | + -- Scott James Remnant <scott@ubuntu.com> Wed, 16 Sep 2009 20:33:49 +0100 |
1320 | + |
1321 | +apport (1.9-0ubuntu5) karmic; urgency=low |
1322 | + |
1323 | + * Merge bug fixes from trunk: |
1324 | + - hookutils.py, attach_hardware(): Do not attach empty Pccardctl*. |
1325 | + - apport/ui.py: Show a better message when failed connection to crash |
1326 | + database. Thanks to Marco Rodrigues! (LP: #178507) |
1327 | + - Do not throw away stderr from gdb. |
1328 | + - data/general-hooks/parse_segv.py: Handle arithmetic wrapping correctly. |
1329 | + - backends/packaging-apt-dpkg.py: More robust of missing ExecutablePath |
1330 | + due to outdated packages. |
1331 | + - setup.py: Fix DistUtilsExtra version check. (LP: #428337) |
1332 | + * data/general-hooks/ubuntu.py: Add distribution channel descriptor, as per |
1333 | + https://wiki.ubuntu.com/FoundationsTeam/Specs/OemTrackingId . |
1334 | + * data/general-hooks/ubuntu.py: Do not allow users to file bugs against |
1335 | + upgrade-system if the package isn't actually installed. Way too many |
1336 | + upgrade failures get wrongly reported against this. (LP: #404727) |
1337 | + * debian/rules: Entirely drop obsolete dh_installinit call. |
1338 | + |
1339 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 15 Sep 2009 17:31:26 +0200 |
1340 | + |
1341 | +apport (1.9-0ubuntu4) karmic; urgency=low |
1342 | + |
1343 | + FFE LP: #427356. |
1344 | + |
1345 | + * Replace init script with Upstart job. |
1346 | + * debian/control: |
1347 | + - Bump build-dependency on debhelper for Upstart-aware dh_installinit |
1348 | + |
1349 | + -- Scott James Remnant <scott@ubuntu.com> Tue, 15 Sep 2009 03:33:57 +0100 |
1350 | + |
1351 | +apport (1.9-0ubuntu3) karmic; urgency=low |
1352 | + |
1353 | + * apport/report.py: add upstream bzr commit 1591: |
1354 | + - include stderr in gdb command output |
1355 | + |
1356 | + -- Kees Cook <kees@ubuntu.com> Wed, 09 Sep 2009 19:32:05 -0700 |
1357 | + |
1358 | +apport (1.9-0ubuntu2) karmic; urgency=low |
1359 | + |
1360 | + * Add missing python-apt build dependency. |
1361 | + |
1362 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 08 Sep 2009 17:41:04 +0200 |
1363 | + |
1364 | +apport (1.9-0ubuntu1) karmic; urgency=low |
1365 | + |
1366 | + * New upstream release: |
1367 | + - Add "do what I mean" mode to command line argument parsing (applies to |
1368 | + all interfaces: -cli, -gtk, -kde). When giving a single argument and no |
1369 | + options, determine the most likely mode, like reporting a bug against a |
1370 | + symptom, package, executable name, or PID. |
1371 | + - Add program "apport-bug" which determines the most appropriate user |
1372 | + interface (GTK, KDE, CLI) and files a bug through it, using the single |
1373 | + argument "do what I mean" mode. This is an improved version of Ubuntu's |
1374 | + "ubuntu-bug" script. |
1375 | + - Update apport-cli manpage to current set of options and behaviour. Also |
1376 | + point out that apport-gtk and apport-kde share the same CLI. |
1377 | + - setup.py now installs apport-{gtk,kde} into $prefix/share/apport/, they |
1378 | + are not supposed to be called directly. This also reflects the path |
1379 | + which the .desktop files expect. |
1380 | + - setup.py now installs the internal helper scripts like |
1381 | + "kernel_crashdump", "apport", or "apportcheckresume" into |
1382 | + $prefix/share/apport instead of $prefix/bin. |
1383 | + - Update usage of gettext to work around Python bug of gettext() not |
1384 | + returning unicodes, but str. Fixes UnicodeDecodeErrors on translated |
1385 | + --help output. |
1386 | + - Add missing gettext wrapping for user-visible strings in |
1387 | + apport-{retrace,unpack} and ui.py; thanks to Marco Rodrigues! |
1388 | + - backends/packaging-apt-dpkg.py: Robustify get_{source,architecture} for |
1389 | + uninstalled packages |
1390 | + - ui.py: Add --version option. Thanks Marco Rodrigues! (LP: #383694) |
1391 | + * debian/local/apport-collect: Fix KeyError crash on nonexisting LP bug |
1392 | + number. Thanks Marco Rodrigues! (LP: #424273) |
1393 | + * debian/control: Bump Standards-Version to 3.8.3 (no changes necessary). |
1394 | + * debian/local/apport-collect: Point out that you need to select "Change |
1395 | + anything" privileges. (LP: #373700) |
1396 | + * debian/control: Drop obsolete texlive-latex-recommended build dependency. |
1397 | + * debian/rules: Drop --install-scripts, upstream now installs the files and |
1398 | + binaries into the right place. Adapt debian/*.install accordingly. |
1399 | + * Drop debian/local/ubuntu-bug{,.1} and replace them with symlinks to |
1400 | + apport-bug{,.1}, which is a more robust version of ubuntu-bug. |
1401 | + |
1402 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 08 Sep 2009 15:53:33 +0200 |
1403 | + |
1404 | +apport (1.8.2-0ubuntu1) karmic; urgency=low |
1405 | + |
1406 | + [ Martin Pitt ] |
1407 | + * New upstream bug fix release: |
1408 | + - crashdb.py: Fix handling of non-ASCII crash signatures |
1409 | + - packaging-apt-dpkg.py: Run ExecutablePath/InterpreterPath check later, |
1410 | + so that it does not always have to be done |
1411 | + - crashdb.py: Never mark a bug as a duplicate of itself. |
1412 | + - launchpad.py, close_duplicate(): Add duplicate assertion |
1413 | + - Update Ubuntu bug pattern URL |
1414 | + - launchpad.py: Add "cache_dir" option and $APPORT_LAUNCHPAD_CACHE |
1415 | + environment variable to specify a non-temporary cache directory. |
1416 | + (LP: #416804) |
1417 | + - packaging-apt-dpkg.py, get_architecture(): Only use installed |
1418 | + architecture if package is actually installed |
1419 | + - launchpad.py: Drop explicit temporary cache dir, launchpadlib does that |
1420 | + automatically now. Thanks to Marco Rodriguez! |
1421 | + |
1422 | + [ Marco Rodrigues ] |
1423 | + * debian/local/setup-apport-retracer: Switch to karmic. |
1424 | + |
1425 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 05 Sep 2009 13:04:16 +0200 |
1426 | + |
1427 | +apport (1.8.1-0ubuntu1) karmic; urgency=low |
1428 | + |
1429 | + * New upstream bug fix release: |
1430 | + - data/general-hooks/generic.py: Check $HOME, not /home for enough space. |
1431 | + (LP: #422658) |
1432 | + - launchpad.py: Intercept httplib2.ServerNotFoundError as well, to avoid |
1433 | + crashes when being offline. (LP: #396276) |
1434 | + - apport-cli: Save reports with .apport extension instead of .txt. Thanks |
1435 | + to Steve Beattie! (LP: #401983) |
1436 | + - fileutils.py, likely_packaged(): Ignored crashes in /var, packages don't |
1437 | + ship executables there, and it creates false positives. (LP: #414368) |
1438 | + - packaging-apt-dpkg.py, get_modified_files(): Fix crash with empty lines. |
1439 | + (LP: #408280) |
1440 | + - packaging-apt-dpkg.py: Use installed version instead of candidate |
1441 | + version where appropriate. This also fixes a crash where an obsolete |
1442 | + package is not available any more. (LP: #423511) |
1443 | + - hookutils.py, attach_gconf(): Fix crash with keys which do not have a |
1444 | + schema default. (LP: #422277) |
1445 | + - launchpad.py: Remove LP #353805 workaround, seems fixed now. |
1446 | + - launchpad.py: Talk to staging if $APPORT_STAGING is set. |
1447 | + - launchpad.py: Explicitly supply content_type for addAttachment, current |
1448 | + wadllib requires it now. |
1449 | + - apport_python_hook.py: Paper over inexplicable import error. |
1450 | + (LP: #348250) |
1451 | + - apport_python_hook.py: Protect against nonexisting sys.argv. |
1452 | + (LP: #418051) |
1453 | + - apport/ui.py, load_report(): Check that report has ProblemType field. |
1454 | + (LP: #198543) |
1455 | + - ui.py: Fix handling of complete vs. reduced report size. (LP: #92653). |
1456 | + This also fixes a race condition crash with os.path.getsize(). |
1457 | + (LP: #348137) |
1458 | + - fi.po: Fix mistranslation of "&Cancel". (LP: #355303) |
1459 | + - apport-{gtk,kde}: Check for having $DISPLAY at startup to avoid crashes. |
1460 | + (LP: #411276) |
1461 | + - report.py, add_gdb_info(): Fix race condition in unlink_core, thanks to |
1462 | + Tommi Komulainen! (LP: #397945) |
1463 | + - ui.py, load_report(): Robustify check whether program is still |
1464 | + installed. (LP: #329184) |
1465 | + - packaging-apt-dpkg.py, install_retracing_packages(): Install package for |
1466 | + ExecutablePath/InterpreterPath if missing; this can happen with package |
1467 | + hooks which reassing package |
1468 | + - launchpad.py: Add a comment when marking a bug as a duplicate. |
1469 | + (LP: #418871) |
1470 | + * Move gdb dependency from apport to GUI packages to avoid pulling in gdb on |
1471 | + Ubuntu server. Thanks to Steve Beattie! (LP: #354172) |
1472 | + * ubuntu-bug: Fix handling of .crash file arguments, thanks to Marco |
1473 | + Rodrigues for pointing this out! (LP: #422881) |
1474 | + * debian/local/apport-collect: Set content_type and description, wadllib |
1475 | + requires them now. (LP: #423512) Also drop the ASCII reencoding |
1476 | + workaround, this doesn't seem to be necessary any more. |
1477 | + * apport/hookutils.py, attach_conffiles(): Fix crash with obsolete |
1478 | + conffiles. (LP: #412132) |
1479 | + * debian/local/apport-collect: Do not upload data if the affected package |
1480 | + isn't installed and there is no source package hook available either. |
1481 | + (LP: #417277) |
1482 | + * debian/local/ubuntu-bug: Accept .apport extension, too; thanks to Steve |
1483 | + Beattie! (LP: #401983) |
1484 | + * debian/local/apport-collect: Drop $APPORT_STAGING check, it's done by |
1485 | + launchpad.py itself now. |
1486 | + |
1487 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 03 Sep 2009 21:08:31 +0200 |
1488 | + |
1489 | +apport (1.8-0ubuntu2) karmic; urgency=low |
1490 | + |
1491 | + * apport/report.py: add upstream bzr 1538 commit: |
1492 | + - change to upstream glibc's __abort_msg variable name. |
1493 | + - filter out memory addresses when matching assert-bug duplicates. |
1494 | + |
1495 | + -- Kees Cook <kees@ubuntu.com> Fri, 28 Aug 2009 12:47:14 -0700 |
1496 | + |
1497 | +apport (1.8-0ubuntu1) karmic; urgency=low |
1498 | + |
1499 | + * New upstream release: |
1500 | + - Do not generally ignore SIGABRT any more. Try to extract the assertion |
1501 | + message from the core dump, and add it as "AssertionMessage" field. Mark |
1502 | + reports as unreportable if they do not have an assertion message and crashed |
1503 | + with SIGABRT. This implements UbuntuSpec:security-karmic-apport-abort. |
1504 | + - report.py, add_hooks_info(): Add optional package/srcpackage argument. Hooks |
1505 | + can use that to change the affected package or call hooks from different |
1506 | + packages. |
1507 | + - KDE frontend implementation of ui_question_userpass(), for crash databases |
1508 | + which need to ask for credentials. |
1509 | + - hookutils.py: New funtion attach_wifi() to add wireless network related |
1510 | + information to reports. |
1511 | + - Fix the test suite on current kernels; test/crash previously often failed |
1512 | + with python segfaults, since it killed the test processes too early. |
1513 | + |
1514 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 26 Aug 2009 13:19:51 +0200 |
1515 | + |
1516 | +apport (1.7-0ubuntu4) karmic; urgency=low |
1517 | + |
1518 | + [ Colin Watson ] |
1519 | + * data/package-hooks/source_debian-installer.py: Report Ubiquity bugs |
1520 | + against the ubiquity source package, rather than rejecting them. |
1521 | + |
1522 | + [ James Westby ] |
1523 | + * data/package-hooks/source_linux.py: submit oopses back if the user |
1524 | + accepts. Use the new kerneloops-submit to do it. |
1525 | + * bin/kernel_oops: kerneloops will now pass the checksum, so if it does |
1526 | + then base the report path on that to uniquify the reports. |
1527 | + * apport/fileutils.py: allow uid to be a string so that we can use |
1528 | + the checksum in place of the uid. |
1529 | + |
1530 | + -- James Westby <james.westby@ubuntu.com> Tue, 25 Aug 2009 21:15:24 +0100 |
1531 | + |
1532 | +apport (1.7-0ubuntu3) karmic; urgency=low |
1533 | + |
1534 | + [ Colin Watson ] |
1535 | + * data/general-hooks/ubuntu.py: File update-grub bugs on grub2 instead of |
1536 | + grub if appropriate. |
1537 | + * apport/hookutils.py: Add command_available method, and use it to add |
1538 | + prtconf and pccardctl output if those commands are available. |
1539 | + * data/package-hooks/source_debian-installer.py: New hook, providing |
1540 | + roughly the same information as is provided by the 'report-hw' tool in |
1541 | + installation-report. |
1542 | + |
1543 | + [ Matt Zimmerman ] |
1544 | + * apport/hookutils.py: Include modem-manager syslog messages in WifiSyslog |
1545 | + * data/general-hooks/ubuntu.py: Exclude bugs already aimed at grub2 from the |
1546 | + update-grub test (in support of Colin's change above) |
1547 | + * data/general-hooks/ubuntu.py: Redirect failures in /etc/kernel/*.d to the |
1548 | + package owning the file which failed |
1549 | + * Make sure that kernel crash dumps are marked as private in Launchpad |
1550 | + (LP: #417059) |
1551 | + |
1552 | + -- Kees Cook <kees@ubuntu.com> Fri, 21 Aug 2009 11:32:06 -0700 |
1553 | + |
1554 | +apport (1.7-0ubuntu2) karmic; urgency=low |
1555 | + |
1556 | + [ Matt Zimmerman ] |
1557 | + * data/general-hooks/ubuntu.py: Detect when a kernel upgrade failure is |
1558 | + caused by update-grub failing, and file the bug on grub instead of linux |
1559 | + * data/general-hooks/ubuntu.py: Detect when a kernel upgrade failure is |
1560 | + caused by update-initramfs failing, and file the bug on initramfs-tools |
1561 | + instead of linux |
1562 | + * data/package-hooks/source_linux.py: Per discussion with ogasawara, attach |
1563 | + ALSA details on kernel bug reports by default. About 9% of sampled kernel |
1564 | + bugs are audio-related. |
1565 | + * data/package-hooks/source_linux.py: Add linux-firmware version to kernel |
1566 | + bug reports |
1567 | + * apport/hookutils.py: Add attach_wifi function with wifi-related debug info |
1568 | + * data/package-hooks/source_linux.py: Attach wifi info by default to kernel |
1569 | + bugs |
1570 | + |
1571 | + [ Martin Pitt ] |
1572 | + * Merge trunk: |
1573 | + - report.py, add_hooks_info(): Add optional package/srcpackage argument. |
1574 | + - Implemented ui_question_userpass [Caio Romão]. |
1575 | + |
1576 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 08 Aug 2009 12:20:39 +0200 |
1577 | + |
1578 | +apport (1.7-0ubuntu1) karmic; urgency=low |
1579 | + |
1580 | + * New upstream release: |
1581 | + - Add support for symptoms. |
1582 | + * debian/control: Recommend apport-symptoms. |
1583 | + * debian/local/ubuntu-bug: When called without arguments, run in "show |
1584 | + available symptoms" mode. |
1585 | + |
1586 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 05 Aug 2009 19:32:39 +0100 |
1587 | + |
1588 | +apport (1.6-0ubuntu3) karmic; urgency=low |
1589 | + |
1590 | + * Merge trunk: |
1591 | + - apport-gtk: Fix ordering of choices |
1592 | + - bin/package_hook: Fix crash for subdirectories in log dir. (LP: #332350) |
1593 | + - doc/package-hooks.txt: Document allowed chars in report keys. |
1594 | + - Show precise error message for damaged reports. |
1595 | + * ubuntu-bug: Call apport-kde instead of apport-qt. |
1596 | + |
1597 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 04 Aug 2009 18:50:26 +0100 |
1598 | + |
1599 | +apport (1.6-0ubuntu2) karmic; urgency=low |
1600 | + |
1601 | + * Re-enable Apport by default, for the alpha-3 release. |
1602 | + |
1603 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 21 Jul 2009 00:44:50 +0200 |
1604 | + |
1605 | +apport (1.6-0ubuntu1) karmic; urgency=low |
1606 | + |
1607 | + * New upstream release: |
1608 | + - Add support for kernel crashes, thanks to Michael Vogt! |
1609 | + - apport/ui.py, run_crash(): Do not re-collect information if we already |
1610 | + have a Dependencies field. This happens when calling apport on an already |
1611 | + pre-processed .crash file with -c. (LP: #394497) |
1612 | + - apport/hookutils.py, pci_devices(): Deliver all matching devices, not |
1613 | + just the last one. (LP: #398906) |
1614 | + - hookutils.py, _get_module_license(): Return "invalid" if modinfo fails, |
1615 | + so that they do not count as "free". (LP: #341720) |
1616 | + - packaging-apt-dpkg.py: Support additional custom native origins in |
1617 | + /etc/apport/native-origins.d/ . (LP: #386052) |
1618 | + - packaging-apt-dpkg.py: Drop PPA origin hack, launchpad behaves properly |
1619 | + now |
1620 | + - apport-gtk: Avoid focus stealing when being called without arguments (i. |
1621 | + e. auto-launched). LP: #396243) |
1622 | + - apport-kde: Use standard gettext again |
1623 | + - Fix handling of PC lacking disassembly due to invalid memory location. |
1624 | + * debian/local/apport-collect: Tag bugs with "apport-collected" on success. |
1625 | + (LP: #391392) |
1626 | + |
1627 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 15 Jul 2009 18:02:59 +0200 |
1628 | + |
1629 | +apport (1.5-0ubuntu2) karmic; urgency=low |
1630 | + |
1631 | + * Merge fixes from trunk: |
1632 | + - packaging-apt-dpkg.py: Fix install_retracing_packages() for pre-0.7.9 |
1633 | + python-apt API. |
1634 | + - Sort the list of dependencies so it's easier to scan (LP: #391021) |
1635 | + |
1636 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 30 Jun 2009 22:39:18 +0200 |
1637 | + |
1638 | +apport (1.5-0ubuntu1) karmic; urgency=low |
1639 | + |
1640 | + * New upstream release: |
1641 | + - Drop all Makefiles, po/POTFILES.in, and most code from setup.py, and use |
1642 | + DistUtilsExtras.auto which "just does the right thing" for most build |
1643 | + system tasks. This requires python-distutils-extra >= 2.2, see |
1644 | + https://launchpad.net/python-distutils-extra |
1645 | + - Move all test scripts into test/, to unclutter source tree. |
1646 | + - setup.py now auto-detects the required packaging backend if |
1647 | + apport/packaging_impl.py is not manually installed. |
1648 | + * debian/control: Add python-distutils-extra build dependency. |
1649 | + * debian/rules: Drop stuff which is now properly done by the upstream build |
1650 | + system. |
1651 | + * Drop debian/apport.examples, preloadlib died long ago. |
1652 | + * Adapt debian/apport-{gtk,kde}.install to new upstream build system, which |
1653 | + now installs the .desktop files itself. |
1654 | + |
1655 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 29 Jun 2009 12:00:21 +0200 |
1656 | + |
1657 | +apport (1.4-0ubuntu1) karmic; urgency=low |
1658 | + |
1659 | + * New upstream release. Compared to our previous snapshot, this changes: |
1660 | + - Replace Qt4 frontend with KDE frontend, thanks to Richard Johnson! |
1661 | + - apport/ui.py, run_report_bug(): Clean up PID information collection. |
1662 | + - gtk/apport-gtk.ui: Drop invalid icon reference. (LP: #389064) |
1663 | + - ui.py: Do not reject non-distro package reports if report sets CrashDB |
1664 | + (for third-party destination). (LP: #391015) |
1665 | + - bin/kernel_crashdump: Use packaging API properly. |
1666 | + - apport-gtk.ui: Drop erroneous translatable flag from stock buttons. |
1667 | + - Update German translations. |
1668 | + * debian/*: qt → kde, add transitional package for apport-qt. |
1669 | + * Drop backends/packaging_rpm.py. We don't use it in the Ubuntu package at |
1670 | + all, and it's still in trunk. |
1671 | + * debian/rules: Drop some deprecated dh_* calls, cdbs's debhelper.mk has |
1672 | + done them for a long time. |
1673 | + * debian/control: Bump Standards-Version to 3.8.2 (no changes necessary). |
1674 | + * debian/control: Replace URLs in descriptions with proper Homepage: field. |
1675 | + |
1676 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 26 Jun 2009 10:44:54 +0200 |
1677 | + |
1678 | +apport (1.3-0ubuntu2) karmic; urgency=low |
1679 | + |
1680 | + * debian/local/apport-collect: Pass None as HookUI object. This will crash |
1681 | + with interactive hooks, but is a good enough immediate bandaid. |
1682 | + (LP: #385811) |
1683 | + * Merge fixes from trunk: |
1684 | + - packaging-apt-dpkg.py: Add backwards compatibility code for python-apt < |
1685 | + 0.7.9 to not break backportability. |
1686 | + - hookutils.py, command_output(): Force LC_MESSAGES=C, to avoid translated |
1687 | + output in bug reports. (LP: #383230) |
1688 | + - apport-gtk.ui: Make details window resizable, and lower default size, so |
1689 | + that it will fit on small screens. (LP: #365517) |
1690 | + |
1691 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 12 Jun 2009 12:47:59 +0200 |
1692 | + |
1693 | +apport (1.3-0ubuntu1) karmic; urgency=low |
1694 | + |
1695 | + * New upstream release. Compared to our bzr snapshot, this has: |
1696 | + - Interactive package hooks: |
1697 | + + Add apport.ui.HookUI class which provides GUI functionality such as |
1698 | + yes/no |
1699 | + questions or file dialogs to hooks. |
1700 | + + add_info() in package hooks now can (optionally) take a second argument |
1701 | + which is the HookUI instance. |
1702 | + + See doc/package-hooks.txt for details. |
1703 | + + See UbuntuSpec:desktop-karmic-symptom-based-bug-reporting |
1704 | + - New function apport.hookutils.root_command_output() to run a command as root, |
1705 | + through gksu/kdesudo/sudo, depending on the desktop environment. |
1706 | + |
1707 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 10 Jun 2009 16:49:13 +0200 |
1708 | + |
1709 | +apport (1.2.1-0ubuntu3) karmic; urgency=low |
1710 | + |
1711 | + * debian/control: Bump Standards-Version to 3.8.1 (no changes necessary). |
1712 | + * debian/control: Bump debhelper dependency for dh_icons, to satisfy |
1713 | + lintian. |
1714 | + * general-hooks/ubuntu.py: Fix IndexError crash if report does not have a |
1715 | + Package field. Check whether we actually have attach_conffiles() (which is |
1716 | + not the case when running the upstream version). |
1717 | + * Merge trunk: |
1718 | + - launchpad.py: Fix crash for unset titles. |
1719 | + - Add segfault analysis hook for quick segv reviews. Thanks to Kees Cook! |
1720 | + - run-tests: Replace hardcoded Python path with dynamically detected path. |
1721 | + |
1722 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 03 Jun 2009 09:52:03 +0200 |
1723 | + |
1724 | +apport (1.2.1-0ubuntu2) karmic; urgency=low |
1725 | + |
1726 | + * debian/control: Update Vcs-Bzr: for new location (moved from project |
1727 | + branch to package branch). |
1728 | + * Merge bug fixes from trunk: |
1729 | + - apport-cli: Fix report saving in "bug report" mode. (LP: #353253) |
1730 | + - Drop "UnsupportableReason" field, it is too similar to |
1731 | + UnreportableReason and just confusing. |
1732 | + - ui.py: Check UnreportableReason for run_report_bug() as well. |
1733 | + (LP: #361359) |
1734 | + - general-hooks/generic.py: Do not report problems with low free space on |
1735 | + / or /home. (LP: #381047) |
1736 | + - launchpad.py: Do not overwrite report['Title']. |
1737 | + - launchpad.py: Repair support for extra tags. |
1738 | + - New function apport.hookutils.root_command_output() to run a command as |
1739 | + root, through gksu/kdesudo/sudo, depending on the desktop environment. |
1740 | + (Part of UbuntuSpec:desktop-karmic-symptom-based-bug-reporting) |
1741 | + - launchpad.py: Fetch DpkgTerminalLog. (LP: #382589) |
1742 | + - launchpad.py: More robust download(), fixes other part of (LP: #382589) |
1743 | + - problem_report.py: Allow dashes and underscores in key names. Update |
1744 | + doc/data-format.tex accordingly. (LP: #380811) |
1745 | + |
1746 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 02 Jun 2009 11:59:41 +0200 |
1747 | + |
1748 | +apport (1.2.1-0ubuntu1) karmic; urgency=low |
1749 | + |
1750 | + * New upstream release: |
1751 | + - Moving away from deprecated APIs: |
1752 | + + packaging-apt-dpkg.py: Use python-apt >= 0.7.9 official API and drop |
1753 | + usage of internal symbols. |
1754 | + + hookutils.py: Drop hal related functions and queries, replace with |
1755 | + udev database, udev log file, and DMI information from sysfs. |
1756 | + + gtk UI: Convert from libglade to gtk.Builder. |
1757 | + - Bug fixes: |
1758 | + + hookutils.py: Drop /proc/version_signature collection, it is Ubuntu |
1759 | + specific. |
1760 | + + apportcheckresume: Fix log collection from pm-utils. |
1761 | + + Fix various crashes and report properties for reporting against |
1762 | + uninstalled packages. |
1763 | + * debian/control: Drop python-glade2 dependency, bump python-gtk2 dependency |
1764 | + to ensure availability of gtk.Builder. |
1765 | + * hookutils, attach_conffiles(): Remove leftover debugging spew. |
1766 | + * debian/apport-qt.install: Install the individual Qt .ui files instead of |
1767 | + *.ui, since GTK's are now also called *.ui. |
1768 | + |
1769 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 15 May 2009 11:28:34 +0200 |
1770 | + |
1771 | +apport (1.1.1-0ubuntu2) karmic; urgency=low |
1772 | + |
1773 | + [ Martin Pitt ] |
1774 | + * hookutils.py: Do not attach /proc/version_signature, it's Ubuntu specific. |
1775 | + (Merged from trunk). Instead, attach it in general-hooks/ubuntu.py. |
1776 | + * general-hooks/ubuntu.py: Attach package conffile information. |
1777 | + * debian/local/apport-collect: Add workaround for launchpadlib bug |
1778 | + LP#353805, to avoid crashing with non-UTF8 attachments. (LP: #368004) |
1779 | + * debian/local/apport-collect: Fix import of launchpadlib's HTTPError. |
1780 | + * apport/hookutils.py, attach_conffiles(): Ignore empty lines from |
1781 | + dpkg-query output. |
1782 | + * general-hooks/ubuntu.py: Strip off '/target' prefix from ExecutablePath |
1783 | + and InterpreterPath, to correctly process crash reports from the live |
1784 | + system installer. |
1785 | + * apport/hookutils.py, attach_conffiles(): Do not use command_output(), |
1786 | + since that causes error messages to get parsed as conffiles. Use |
1787 | + subprocess properly. |
1788 | + * backends/packaging-apt-dpkg.py: Replace deprecated python-apt properties |
1789 | + with current ones (merged from trunk). Update python-apt dependency to |
1790 | + >= 0.7.9. |
1791 | + * packaging-apt-dpkg.py, get_modified_files(): Do not show package list file |
1792 | + as modified if the package is not installed (merged from trunk). |
1793 | + (LP: #364533) |
1794 | + * backends/packaging-apt-dpkg.py, install_retracing_packages(): Fix syntax |
1795 | + error which broke the retracers. |
1796 | + |
1797 | + [ Andy Whitcroft ] |
1798 | + * bin/apportcheckresume: the suspend _and_ hibernate logs are both in |
1799 | + pm-suspend.log. |
1800 | + * bin/apportcheckresume: remove redunant check for file before attaching |
1801 | + stress log. |
1802 | + |
1803 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 13 May 2009 15:22:53 +0200 |
1804 | + |
1805 | +apport (1.1.1-0ubuntu1) karmic; urgency=low |
1806 | + |
1807 | + [ Martin Pitt ] |
1808 | + * New upstream security update: |
1809 | + - etc/cron.daily/apport: Only attempt to remove files and symlinks, do not |
1810 | + descend into subdirectories of /var/crash/. Doing so might be exploited by |
1811 | + a race condition between find traversing a huge directory tree, changing |
1812 | + an existing subdir into a symlink to e. g. /etc/, and finally getting |
1813 | + that piped to rm. This also changes the find command to not use GNU |
1814 | + extensions. Thanks to Stephane Chazelas for discovering this! |
1815 | + (LP: #357024, CVE-2009-1295) |
1816 | + - Other fixes were already cherrypicked in the previous upload. |
1817 | + |
1818 | + [ Matt Zimmerman ] |
1819 | + * package-hooks/source_linux.py: Attach info for linux-restricted-modules |
1820 | + and linux-backports-modules |
1821 | + |
1822 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 30 Apr 2009 09:08:29 +0200 |
1823 | + |
1824 | +apport (1.1-0ubuntu1) karmic; urgency=low |
1825 | + |
1826 | + * New upstream release: |
1827 | + - Drop some remaining distro specific pieces of code from non-backends. |
1828 | + - Add hookutils methods for attaching relevant packages, greatly improve |
1829 | + attach_alsa() for sound problem debugging. |
1830 | + - Move launchpad crash database implementation from ever-breaking |
1831 | + python-launchpad-bugs (screenscraping) to launchpadlib (official and |
1832 | + stable Launchpad API). (LP: #353879) |
1833 | + - Add new field Report.pid which gets set on add_proc_info() and can be |
1834 | + used by hooks. |
1835 | + - setup.py: Properly clean up all generated files, install missing |
1836 | + mimetypes/text-x-apport.svg icon symlink. |
1837 | + - Add README file. |
1838 | + - Add translations from Launchpad. |
1839 | + - Remove preloadlib/*; it's undermaintained, and not really useful any |
1840 | + more these days. |
1841 | + - Various bug fixes; most visible being the misnamed |
1842 | + etc/default/apport.default file (which should just be |
1843 | + etc/default/apport). |
1844 | + * Merge some bug fixes from trunk: |
1845 | + - launchpad.py: Send and read Date: field again, reverting r1128; it is |
1846 | + useful after all. (LP: #349139) |
1847 | + - report.py, add_proc_info(): Only add ProcAttrCurrent if it is not |
1848 | + "unconfined". |
1849 | + - ui.py: Detect invalid PIDs (such as for kernel processes) and give a |
1850 | + friendly error message. (LP: #360608) |
1851 | + - report.py, add_hooks_info(): Always run common hooks, and run source |
1852 | + package hooks if we do not have a binary package name. (LP: #350131) |
1853 | + - launchpad.py: Consider socket errors when connecting as transient, so |
1854 | + that crash-digger doesn't stop completely on them. |
1855 | + * Drop debian/apport.README.Debian, superseded by upstream README. |
1856 | + * Drop debian/apport.links, done by upstream setup.py now. |
1857 | + * debian/rules, debian/apport.preinst: Drop upgrade fix for misnamed default |
1858 | + file again, was only necessary for intra-Jaunty upgrades. |
1859 | + * debian/control: python-launchpad-bugs → python-launchpadlib dependencies. |
1860 | + * debian/local/apport-collect: Drop launchpadlib login code, just use the |
1861 | + CrashDatabase implementation from apport/crashdb_impl/launchpad.py. |
1862 | + * Make package backportable to hardy and intrepid: |
1863 | + - debian/control: Relax python-central buil-dependency to 0.5.6. |
1864 | + - debian/rules: Determine DH_PYCENTRAL value ("include-links" vs. |
1865 | + "nomove") based on the installed pycentral version. |
1866 | + - debian/rules: Only supply --install-layout=deb when Python version is |
1867 | + 2.6. |
1868 | + * apport/hookutils.py: Add docstring for attach_hardware, thanks Matt |
1869 | + Zimmerman! (Merged from lp:~mdz/apport/hookutils) |
1870 | + * apport/crashdb_impl/launchpad.py: Support older wadllib API |
1871 | + where bug.date_created was a string instead of a datetime object. |
1872 | + (Cherrypicked from trunk). |
1873 | + * debian/control: Drop apport dependency to python-xdg, it's not required. |
1874 | + (LP: #354172) |
1875 | + * debian/control: Drop gdb from Depends: to Recommends:. (LP: #354172) |
1876 | + * debian/local/apport-collect: Print a friendly error message instead of |
1877 | + crashing if the bug number is not an integer. (LP: #351050) |
1878 | + * debian/local/apport-collect: Change incomplete tasks back to "New" after |
1879 | + data collection. (LP: #363126) |
1880 | + * debian/apport.links: source_linux-meta.py -> source_linux.py package hook, |
1881 | + so that apport-collect works on "linux" source bug tasks. These get |
1882 | + opportunistically translated into binary packages, but the binary "linux" |
1883 | + is built by the source "linux-meta". (LP: #350131) |
1884 | + * debian/local/setup-apport-retracer: |
1885 | + - Use ports.ubuntu.com for non-{i386,amd64,lpia}. |
1886 | + - Set up Jaunty by default. |
1887 | + - Fix test for being in local unpackaged apport source tree. |
1888 | + - Drop installation of python-launchpad-bugs. |
1889 | + - Install bzr branches/packages necessary for launchpad, in a shared |
1890 | + ~/launchpadlib/ tree: launchpadlib, wadllib, oauth, lazr.uri, httplib2, |
1891 | + simplejson. |
1892 | + - Clean up apport-chroot calling for extra packages. |
1893 | + |
1894 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 28 Apr 2009 10:50:49 +0200 |
1895 | + |
1896 | +apport (1.0-0ubuntu5) jaunty; urgency=low |
1897 | + |
1898 | + [ Martin Pitt ] |
1899 | + * Rename etc/default/apport.default to etc/default/apport (brown paperbag), |
1900 | + and add debian/apport.preinst to remove the apport.default file on |
1901 | + upgrades. (LP: #361543) |
1902 | + * debian/rules: Call dh_installinit with --onlyscripts, so that the package |
1903 | + calls update-rc.d again. This fixes the calling of init script again, |
1904 | + which got broken in 1.0-0ubuntu1. (LP: #361579) |
1905 | + |
1906 | + [ Matt Zimmerman ] |
1907 | + * package-hooks/source_linux.py: Attach /etc/initramfs-tools/conf.d/resume to |
1908 | + show the resume device for hibernation |
1909 | + |
1910 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 15 Apr 2009 22:36:33 +0200 |
1911 | + |
1912 | +apport (1.0-0ubuntu4) jaunty; urgency=low |
1913 | + |
1914 | + * etc/default/apport.default: Disable Apport by default for the final |
1915 | + release. |
1916 | + |
1917 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 14 Apr 2009 11:47:29 +0200 |
1918 | + |
1919 | +apport (1.0-0ubuntu3) jaunty; urgency=low |
1920 | + |
1921 | + * apport/hookutils.py: Factor out package_versions() to generate a simple |
1922 | + text listing of relevant package versions and use it in attach_printing() |
1923 | + * apport/hookutils.py: Add new function attach_relevant_packages() to attach |
1924 | + version information (and perhaps eventually run hooks?) for related |
1925 | + packages |
1926 | + * apport/hookutils.py: Add glob matching to package_versions() |
1927 | + * apport/hookutils.py: Add fuser info and dmesg to attach_alsa |
1928 | + * apport/hookutils.py: Add codec info to attach_alsa |
1929 | + |
1930 | + -- Matt Zimmerman <mdz@ubuntu.com> Thu, 09 Apr 2009 07:36:45 -0700 |
1931 | + |
1932 | +apport (1.0-0ubuntu2) jaunty; urgency=low |
1933 | + |
1934 | + * backends/packaging-apt-dpkg.py: Add missing shutil import. |
1935 | + * debian/local/ubuntu-bug: Filter out -p and -P, for backwards calling |
1936 | + compatibility. (LP: #356755) |
1937 | + |
1938 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 06 Apr 2009 23:04:39 -0700 |
1939 | + |
1940 | +apport (1.0-0ubuntu1) jaunty; urgency=low |
1941 | + |
1942 | + * Apport has a proper upstream trunk now (lp:apport) and made an 1.0 |
1943 | + upstream release. Use this as an orig.tar.gz. This does not change any |
1944 | + code for Jaunty, just removes the Fedora/OpenSUSE specific .spec and init |
1945 | + scripts. |
1946 | + * Add bzr-builddeb configuration (merge mode). |
1947 | + * Add debian/watch for upstream releases on Launchpad. |
1948 | + * Drop debian/python-apport.postinst, obsolete for a long time. |
1949 | + |
1950 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 06 Apr 2009 17:37:48 -0700 |
1951 | + |
1952 | +apport (0.149) jaunty; urgency=low |
1953 | + |
1954 | + Do some internal cleanup of distribution specific stuff: |
1955 | + |
1956 | + * problem_report.py, man/apport-unpack.1: Fix description of .crash file |
1957 | + syntax (RFC822, not "Debian control"). |
1958 | + * Move cron.daily, init script, and default file from debian/ to etc/, and |
1959 | + install them in setup.py. These files are appropriate for upstream |
1960 | + installation. |
1961 | + * Move crashdb.conf and doc/README.blacklist to etc/, to simplify setup.py. |
1962 | + * setup.py: Move *.mo generation/installation into my_install_data class, |
1963 | + for cleanliness. |
1964 | + * Move installation of missing packages for retracing from |
1965 | + bin/apport-retrace to new abstract interface apport/packaging.py, |
1966 | + install_retracing_packages() and remove_packages(), and move the apt/dpkg |
1967 | + code to backends/packaging-apt-dpkg.py. This removes a major piece of |
1968 | + apt/dpkg specific code from non-backends. |
1969 | + * bin/apport-retrace: Rename option --no-dpkg to --no-pkg and update |
1970 | + bin/apport-chroot accordingly. |
1971 | + * Move bin/apport-chroot and man/apport-chroot.1 to debian/local, since they |
1972 | + are totally Debian/Ubuntu specific. |
1973 | + * debian/local/setup-apport-retracer: Update apport-chroot and crashdb.conf |
1974 | + paths for above changes. |
1975 | + * apport/hookutils.py, files_in_package(): Replace dpkg-query call with |
1976 | + packaging.get_files(), to avoid Debianism. |
1977 | + * man/apport-retrace.1: Drop reference to "apt", simply talk about package |
1978 | + installation. |
1979 | + |
1980 | + Bug fixes: |
1981 | + |
1982 | + * setup.py: Fix homepage URL. |
1983 | + * debian/local/apport-chroot: If multiple distro IDs point to the same |
1984 | + chroot, do not upgrade them more than once with "upgrade all". |
1985 | + |
1986 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 06 Apr 2009 16:06:33 -0700 |
1987 | + |
1988 | +apport (0.148) jaunty; urgency=low |
1989 | + |
1990 | + [ Matt Zimmerman ] |
1991 | + * apport/hookutils.py: add attach_media_build to include information about |
1992 | + the build of installation media in use (i.e. in a casper live CD |
1993 | + environment) |
1994 | + * general-hooks/ubuntu.py: use attach_media_build (LP: #351781) |
1995 | + * bin/apportcheckresume: Use attach_file_if_exists rather than attach_file to |
1996 | + avoid spurious error messages about non-existent log files (LP: #351973) |
1997 | + |
1998 | + [ Martin Pitt ] |
1999 | + * debian/local/ubuntu-bug: Drop generic passthrough of apport-{cli,gtk,kde} |
2000 | + options since this leads to too much confusion. Instead just support a |
2001 | + single argument and check whether it is a pid, a package name, a .crash |
2002 | + file, or a program path. This does the right thing when calling it with a |
2003 | + .crash file (LP: #347392) and fixes the help output (LP: #344923) Update |
2004 | + manpage accordingly. |
2005 | + * apport/hookutils.py: Move attach_media_build() to |
2006 | + general-hooks/ubuntu.py, since it is Ubuntu specific. |
2007 | + * bin/apport-retrace: Fix KeyError crash on bugs with an ExecutablePath |
2008 | + which does not exist any more. Close the bug as invalid instead. |
2009 | + (LP: #352331) |
2010 | + * bin/kernel_oops: Add "kernel-oops" tag. Since both bin/kernel_oops and |
2011 | + bin/apportcheckresume use the "kerneloops" bug class, it previously was |
2012 | + hard to filter out the bug reports which were real oopses. (LP: #349621) |
2013 | + |
2014 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 01 Apr 2009 18:10:01 +0200 |
2015 | + |
2016 | +apport (0.147) jaunty; urgency=low |
2017 | + |
2018 | + * bin/apportcheckresume: report the pm-suspend.log/pm-hibernate.log |
2019 | + from /var/lib. |
2020 | + * bin/apportcheckresume: only attempt to attach the stress log if its is |
2021 | + present. |
2022 | + * bin/apportcheckresume, debian/apport.init: add detection for late |
2023 | + resume hangs, those where the user thinks the system was working. |
2024 | + (LP: #335323) |
2025 | + |
2026 | + -- Andy Whitcroft <apw@canonical.com> Mon, 30 Mar 2009 09:47:28 +0200 |
2027 | + |
2028 | +apport (0.146) jaunty; urgency=low |
2029 | + |
2030 | + * apport/report.py, _generate_sigsegv_report(): Turn into a class method, so |
2031 | + that it can be used by test cases in other modules as well. Also add |
2032 | + missing Signal field. |
2033 | + * apport/crashdb_impl/launchpad.py: Fully enable operation with |
2034 | + staging.launchpad.net. |
2035 | + * apport/crashdb_impl/launchpad.py: Add initial test suite, performing data |
2036 | + upload, Python and SEGV bug reporting, report download, report updating, |
2037 | + tag and duplicate handling. This happens on staging.launchpad.net. |
2038 | + * apport/crashdb.py: Add new interface duplicate_of(id) to return the master |
2039 | + bug of a duplicate. Also document that close_duplicate() with "None" |
2040 | + master bug will un-duplicate the bug. |
2041 | + * apport/crashdb_impl/{launchpad,memory}.py: Implement duplicate_of() and |
2042 | + add test cases. The Launchpad test case reproduces the |
2043 | + "duplicate-of-a-duplicate" regression, which now got fixed in |
2044 | + python-launchpad-bugs bzr head. |
2045 | + * apport/ui.py, open_url(): Also consider a sesssion as "GNOME" if gconfd-2 |
2046 | + is running; some variants such as UNR do not have gnome-panel; this fixes |
2047 | + using the preferred browser for them. (LP: #322386) |
2048 | + * debian/local/apport-collect: Add new option -p to explicitly specify a |
2049 | + (binary) package name instead of guesstimating it from the bug's source |
2050 | + package tasks. Document new option in debian/local/apport-collect.1. |
2051 | + (LP: #333875) |
2052 | + * apport/crashdb.py, duplicate_db_consolidate(): Add logging about removing |
2053 | + invalidated bugs from the duplicate database, now that this actually |
2054 | + works. |
2055 | + * debian/local/ubuntu-bug.1: Update for the possibility to specify a package |
2056 | + name or PID without any options. Also document the "ubuntu-bug linux" |
2057 | + special case. (LP: #348985) |
2058 | + * debian/local/ubuntu-bug.1: Add missing documentation of the case of |
2059 | + specifying a path name. |
2060 | + * backends/packaging-apt-dpkg.py: When unpacking source trees, try |
2061 | + "debian/rules setup" last, since it is the least common variant. |
2062 | + * debian/local/ubuntu-fat-chroot: Divert away |
2063 | + /usr/lib/xulrunner-1.9.1b3/xulrunner-bin. It is called on debian/rules |
2064 | + patch in xulrunner-1.9.1 and hangs eternally in the fakechroots. This is |
2065 | + only a temporary kludge, though, until the next xulrunner version lands. |
2066 | + * apport/crashdb_impl/launchpad.py: Add test case: Update a bug report which |
2067 | + got marked as a duplicate during processing. This reproduces #349407. |
2068 | + * apport/crashdb_impl/launchpad.py, update(): Intercept and ignore IOErrors |
2069 | + when changing the bug priority. This happens if a bug gets duplicated |
2070 | + underneath us. (LP: #349407) |
2071 | + * apport/crashdb.py, get_crashdb(): Print syntax errors from parsing |
2072 | + conf.d/*.conf to stderr. |
2073 | + * apport/crashdb_impl/launchpad.py: Support new CrashDB option "project" |
2074 | + which can be set to a LP project name to file bugs against that project |
2075 | + instead of the distribution. Add test case for filing crash bug against a |
2076 | + project, updating it, duplicating/unduplicating it, and determining fixed |
2077 | + version. (LP: #338835) |
2078 | + * bin/crash-digger: If apport-retrace exits with 99, consider it a transient |
2079 | + error and just stop the retracer, but don't leave the lock file behind. |
2080 | + Add appropriate test case to test-crash-digger. |
2081 | + * bin/apport-retrace: If apt update fails due to a "hash sum mismatch", exit |
2082 | + with a "transient error" code, to stop (but not break) the retracing |
2083 | + cycle. |
2084 | + |
2085 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 27 Mar 2009 17:01:08 +0100 |
2086 | + |
2087 | +apport (0.145) jaunty; urgency=low |
2088 | + |
2089 | + * apport/crashdb_impl/launchpad.py: Fix typo in previous upload. |
2090 | + * debian/local/apport-collect: Do not crash on |
2091 | + launchpadlib.errors.HTTPError, but give a proper error message and point |
2092 | + out that this script needs "change anything" privileges. (LP: #338201) |
2093 | + * apport_python_hook.py: Fix crash for already existing reports, and make |
2094 | + behaviour equivalent to bin/apport: Silently exit for existing unseen |
2095 | + crash report, and overwrite existing seen crash report. Add test cases. |
2096 | + (LP: #323714) |
2097 | + * general-hooks/automatix.py: Refuse to send bug reports when ultamatix is |
2098 | + installed. |
2099 | + |
2100 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Mar 2009 18:45:34 +0100 |
2101 | + |
2102 | +apport (0.144) jaunty; urgency=low |
2103 | + |
2104 | + * apport/crashdb_impl/launchpad.py, mark_retrace_failed(): If report is |
2105 | + invalid, remove CoreDump.gz and other attachments. |
2106 | + * bin/apport-retrace: If we didn't find the ExecutablePath on the system |
2107 | + because the package is out of date, don't crash, but close the bug as |
2108 | + invalid. |
2109 | + |
2110 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Mar 2009 10:45:56 +0100 |
2111 | + |
2112 | +apport (0.143) jaunty; urgency=low |
2113 | + |
2114 | + * debian/apport.README.Debian: Document how to temporarily and permanently |
2115 | + enable crash interception. |
2116 | + * backends/packaging-apt-dpkg.py, is_distro_package(): Do not consider a |
2117 | + package a native distro one if installed version is "None". This happens |
2118 | + with some PPA packages. (LP: #252734) |
2119 | + * apport/report.py, anonymize(): Move user name anonymization into the |
2120 | + "non-root" case as well; fixes uninitialized variable. (LP: #338847) |
2121 | + |
2122 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 09 Mar 2009 12:16:49 +0100 |
2123 | + |
2124 | +apport (0.142) jaunty; urgency=low |
2125 | + |
2126 | + * apport/report.py: Do not include lsb_release's stderr in the |
2127 | + DistroRelease: output. |
2128 | + * apport/hookutils.py: Fix attach_printing(): |
2129 | + - Correct spelling or "error_log". |
2130 | + - Do not call fgrep with no file names (if /etc/cups/ppd/ is empty), since |
2131 | + that hangs forever. |
2132 | + * apport/report.py, _gen_stacktrace_top(): Fix parsing of stacktraces |
2133 | + with some addresses missing. Add test cases. (LP: #269133) |
2134 | + * apport/ui.py, run_report_bug(): Show details of collected information and |
2135 | + give the user a chance to cancel. Previously, collected data was sent |
2136 | + directly to Launchpad. Nowadays lots of packages have hooks, so we cannot |
2137 | + guarantee any more that bug reports only have non-sensitive information. |
2138 | + (LP: #195514) This also allows the user to cancel if (s)he inadvertedly |
2139 | + clicked on "Report a problem". (LP: #279033) |
2140 | + * apport/ui.py: Fix crash in get_complete_size() for reports that are |
2141 | + constructed on the fly instead of loaded from a file (i. e. for bug |
2142 | + reports). Fixes displaying of report in apport-cli. |
2143 | + * apport/report.py: Slight robustification of test_add_gdb_info_script() |
2144 | + test case. |
2145 | + * debian/local/ubuntu-bug: Fix invocation with "--help". (LP: #305841) |
2146 | + * apport/ui.py, load_report(): Clearer error message if report file does not |
2147 | + exist. (LP: #204198) |
2148 | + * Remove redundant verbiage from test suite docstrings. |
2149 | + * apport/report.py, anonymize(): Fix crash when processing root-owned |
2150 | + reports. (LP: #338033) |
2151 | + * apport/report.py, anonymize(): Do not anonymize single-character user and |
2152 | + host names, since they create an utter mess in bug reports, and also are |
2153 | + very low-sensitive. |
2154 | + * debian/apport.init: Also start apport if force_start=1 is given. This |
2155 | + provides a convenient method of starting apport just for a session without |
2156 | + changing the default file. Add a comment to debian/apport.default about |
2157 | + this possibility. Thanks to Milan for the suggestion and the initial |
2158 | + patch! (LP: #320467) |
2159 | + * backends/packaging-apt-dpkg.py, _get_mirror(): Only consider http:// |
2160 | + mirrors for fetching Contents.gz. (LP: #315797) |
2161 | + |
2162 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 05 Mar 2009 17:01:05 +0100 |
2163 | + |
2164 | +apport (0.141) jaunty; urgency=low |
2165 | + |
2166 | + * apport/hookutils.py: Add cups error log to attach_printing() |
2167 | + |
2168 | + -- Brian Murray <brian@ubuntu.com> Mon, 02 Mar 2009 10:55:53 -0800 |
2169 | + |
2170 | +apport (0.140) jaunty; urgency=low |
2171 | + |
2172 | + * debian/python-{apport,problem-report}.install: Fix site-packages → |
2173 | + *-packages. |
2174 | + * run-tests: Only check for local packaging_impl.py if running local tests. |
2175 | + This unbreaks running tests from /usr/share/apport/testsuite/. |
2176 | + |
2177 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 02 Mar 2009 11:56:59 +0100 |
2178 | + |
2179 | +apport (0.139) jaunty; urgency=low |
2180 | + |
2181 | + * apport/report.py, anonymize(): Do not anonymize "root". (Side |
2182 | + issue in LP #333542) |
2183 | + * debian/rules: Supply --install-layout=deb to setup.py. |
2184 | + * debian/local/apport-collect: Attach new info to |
2185 | + staging.launchpad.net if $APPORT_STAGING is defined. This makes |
2186 | + testing easier. Describe in debian/local/apport-collect.1. |
2187 | + * debian/local/apport-collect: Ignore ValueErrors from |
2188 | + add_package_info(), which happens if the bug has a source package |
2189 | + task which does not have an identically named binary package name. |
2190 | + Slightly ugly, but it's nontrivial to do that in a sensible |
2191 | + manner; let's just fix the crash for now, since the focus of this |
2192 | + tool is to collect information from hooks. (LP: #334823) |
2193 | + * apport/hookutils.py, hal_dump_udi(): Filter out serial numbers. |
2194 | + (Mentioned in LP #107103) |
2195 | + |
2196 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 02 Mar 2009 11:36:18 +0100 |
2197 | + |
2198 | +apport (0.138) jaunty; urgency=low |
2199 | + |
2200 | + * apport/crashdb_impl/launchpad.py: Consider an useful stack trace |
2201 | + sufficient for automatically removing the core dump, it doesn't |
2202 | + need to be perfect. This is in accordance with not setting the |
2203 | + apport-failed-retrace tag for useful, but non-perfect retraces any |
2204 | + more. |
2205 | + * apport/hookutils.py, backends/packaging_rpm.py: Convert usage of |
2206 | + md5 module (which is deprecated in 2.6) to hashlib. |
2207 | + * Replace all instances of using an exception's .message attribute |
2208 | + with str(exception), since message is deprecated in Python 2.6. |
2209 | + * apport/hookutils.py: Add attach_printing(). Thanks to Brian Murray |
2210 | + for the initial patch! (LP: #333582) |
2211 | + |
2212 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 24 Feb 2009 22:24:31 +0100 |
2213 | + |
2214 | +apport (0.137) jaunty; urgency=low |
2215 | + |
2216 | + * Set python-version to all, include symlinks in the package. |
2217 | + |
2218 | + -- Matthias Klose <doko@ubuntu.com> Tue, 24 Feb 2009 21:22:36 +0100 |
2219 | + |
2220 | +apport (0.136) jaunty; urgency=low |
2221 | + |
2222 | + [ Andy Whitcroft ] |
2223 | + * bin/apportcheckresume: remove originator in suspend/hibernate/resume |
2224 | + reporting. This was intended for debugging only and is now redundant. |
2225 | + * bin/apportcheckresume, apport/report.py: when collecting resume failures |
2226 | + in very early boot hal may not be running and we thus unable to obtain |
2227 | + the machine type information. Move title generation to the reporting |
2228 | + engine. |
2229 | + |
2230 | + [ Martin Pitt ] |
2231 | + * debian/local/apport-collect: Add user environment information, too |
2232 | + (LANG, PATH, SHELL). (LP: #332578) |
2233 | + |
2234 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 24 Feb 2009 14:25:21 +0100 |
2235 | + |
2236 | +apport (0.135) jaunty; urgency=low |
2237 | + |
2238 | + * problem_report.py, test_write_mime_text(): Add test cases for |
2239 | + single-line and two-line UTF-8 values, single-line and two-line |
2240 | + Unicode values and a single-line LF-terminated value. Fix handling |
2241 | + of the latter two. |
2242 | + * problem_report.py, test_write(): Add test cases for single-line |
2243 | + and two-line UTF-8 and Unicode values, and fix handling of these |
2244 | + in write(). |
2245 | + * debian/local/apport-collect: Collect package, OS, and user |
2246 | + information as well. (LP: #332578) |
2247 | + * package-hooks/source_apport.py: Robustify by using hookutils, and |
2248 | + avoid stat errors if /var/crash/* does not exist. |
2249 | + * test-hooks: Update dodgy test for uninstalled package, |
2250 | + libdb4.3-tcl is not available in Jaunty any more. |
2251 | + |
2252 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 23 Feb 2009 13:14:24 +0100 |
2253 | + |
2254 | +apport (0.134) jaunty; urgency=low |
2255 | + |
2256 | + * debian/local/apport-collect: Do not collect information for closed |
2257 | + tasks. Thanks for Brian Murray for the initial patch! (LP: #331839) |
2258 | + * apport/crashdb_impl/launchpad.py, download(): Download |
2259 | + DpkgTerminalLog.txt attachment as well. |
2260 | + * apport/report.py: If downloading a nonexisting bug pattern file |
2261 | + name succeeds and returns a HTML snippet with "404 Not Found", |
2262 | + consider this as failure. This repairs falling back to source |
2263 | + package names. (LP: #328751) |
2264 | + * apport/hookutils.py: Replace tabs with spaces. |
2265 | + |
2266 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 20 Feb 2009 11:22:15 +0100 |
2267 | + |
2268 | +apport (0.133) jaunty; urgency=low |
2269 | + |
2270 | + [ Andy Whitcroft ] |
2271 | + * apport/hookutils.py: define and include a machine type from the hardware |
2272 | + information in the report, using HAL information where available. |
2273 | + * bin/apportcheckresume: include the machine type in the suspend/hibernate |
2274 | + report title. They are generally machine specific. |
2275 | + |
2276 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 19 Feb 2009 17:49:03 +0100 |
2277 | + |
2278 | +apport (0.132) jaunty; urgency=low |
2279 | + |
2280 | + [ Martin Pitt ] |
2281 | + * Add debian/local/apport-collect: Download a Launchpad bug report, |
2282 | + get its source package, check if it has apport hooks, and if so, |
2283 | + run and upload them. Add manpage, too. (LP: #124338) |
2284 | + * debian/control: Add Suggests: python-launchpadlib; this is only |
2285 | + needed by apport-collect, thus we don't need to pull that into |
2286 | + every default installation; if it's not installed apport-collect |
2287 | + will detect and point this out. |
2288 | + * debian/control: Add ${misc:Depends} dependencies. |
2289 | + |
2290 | + [ Jonathan Riddell ] |
2291 | + * Set window icon in apport-qt |
2292 | + |
2293 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 19 Feb 2009 13:50:34 +0100 |
2294 | + |
2295 | +apport (0.131) jaunty; urgency=low |
2296 | + |
2297 | + [ Andy Whitcroft ] |
2298 | + * bin/apportcheckresume, bin/kernel_oops, cli/apport-cli, gtk/apport-gtk, |
2299 | + gtk/apport-gtk.glade, qt4/apport-qt: generalised the KernelOops |
2300 | + dialog and handling to allow suspend and hibernate failures present |
2301 | + more accurate reasons for the report. Also commonises all messages |
2302 | + in the three implementations to simplify internationalisation. |
2303 | + |
2304 | + [ Martin Pitt ] |
2305 | + * po/Makefile: Fix merge-po rule to actually work again. |
2306 | + * cli/apport-cli, qt4/apport-qt: Unify string with apport-gtk. |
2307 | + * apport/ui.py: Drop some bogus translatable strings. |
2308 | + * Update German translations. |
2309 | + |
2310 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 16 Feb 2009 19:31:41 +0100 |
2311 | + |
2312 | +apport (0.130) jaunty; urgency=low |
2313 | + |
2314 | + [ Martin Pitt ] |
2315 | + * bin/kernel_crashdump: Don't crash if vmcore.log does not exist. |
2316 | + * crashdb_impl/launchpad.py: Tag bugs with the architecture they are |
2317 | + being reported on. |
2318 | + * bin/crash-digger: Revert catching "database is locked" errors |
2319 | + during consolidation, since it just hides more fundamental errors. |
2320 | + * apport/crashdb_impl/memory.py: Improve docstrings of test suite. |
2321 | + * bin/apport-retrace: Do not try to install -dbgsym packages with |
2322 | + nonmatching versions, unless --unpack-only is used. Thanks to |
2323 | + hggdh for the initial patch! (LP: #309208) |
2324 | + |
2325 | + [ Andy Whitcroft ] |
2326 | + * bin/apportcheckresume: modify the oops title and thereby the launchpad |
2327 | + bug title to say suspend or hibernate. |
2328 | + * bin/apportcheckresume: modify the tags to bin/apportcheckresume: |
2329 | + modify the oops title and thereby the launchpad be resume+suspend or |
2330 | + resume+hibernate as appropriate. |
2331 | + * bin/apportcheckresume: include any non-free modules in the bug title. |
2332 | + |
2333 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 12 Feb 2009 22:09:35 +0100 |
2334 | + |
2335 | +apport (0.129) jaunty; urgency=low |
2336 | + |
2337 | + * bin/apport-retrace: Log broken reports. |
2338 | + * bin/apport-retrace: Do not mark bugs as invalid after they are |
2339 | + already marked as a duplicate, since that does not work in |
2340 | + Launchpad. |
2341 | + * debian/local/ubuntu-fat-chroot: Symlink /target -> /, to work |
2342 | + for crashes which appear in /target during installation. |
2343 | + * bin/apport: Move argv length/usage help before lock check, so that |
2344 | + it works if the user cannot lock /var/crash/.lock. Thanks to Kees |
2345 | + Cook! |
2346 | + * doc/package-hooks.txt: Point out apport.hookutils. |
2347 | + * apport/ui.py: Check environment variable APPORT_REPORT_THIRDPARTY |
2348 | + in addition to the 'thirdparty' configuration file option for |
2349 | + overriding the "genuine distro package" check. Thanks to Oumar |
2350 | + Aziz OUATTARA! |
2351 | + * apport/crashdb_impl/launchpad.py: In third-party mode, report bugs |
2352 | + against Launchpad projects. Thanks to Oumar |
2353 | + Aziz OUATTARA for his branch! (LP: #213454) |
2354 | + * bin/apportcheckresume: Include /var/lib/pm-utils/stress.log, too. |
2355 | + Thanks to Andy Whitcroft for the initial patch, rewrote to use |
2356 | + apport.hookutils. |
2357 | + * apport/crashdb.py, init_duplicate_db(): Run an integrity check and |
2358 | + raise exception if it fails, to avoid running the retracers on a |
2359 | + corrupt duplicate db. Add test case to |
2360 | + apport/crashdb_impl/memory.py. |
2361 | + * bin/crash-digger: Create a backup of the duplicates database right |
2362 | + after initializing it (which verifies integrity). |
2363 | + * dupdb-admin: Add new command "consolidate". |
2364 | + * apport/crashdb_impl/launchpad.py: Request bug lists with batch |
2365 | + size 300, for slight speedup of consolidation. |
2366 | + * apport/crashdb.py, duplicate_db_consolidate(): Warn about a bug |
2367 | + which is not yet fixed, but does not appear in get_unfixed(). In |
2368 | + Launchpad, this means that the bug does not have the |
2369 | + 'apport-crash' tag any more; if there are many, those would be a |
2370 | + huge time/bandwidth waste. |
2371 | + |
2372 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 26 Jan 2009 16:04:16 +0100 |
2373 | + |
2374 | +apport (0.128) jaunty; urgency=low |
2375 | + |
2376 | + * apport/ui.py: Introduce new configuration option "thirdparty" and |
2377 | + ignore the is_distro_package() check if it is set to true. |
2378 | + * bin/apport-retrace: Call Cache.open() after Cache.update(). |
2379 | + * bin/apport-retrace: If downloading a report fails (e. g. the |
2380 | + description was invalidly modified), mark the bug as invalid with |
2381 | + a proper explanation instead of crashing, unless we are in |
2382 | + "stdout" or "output file" mode. |
2383 | + * apport/crashdb_impl/launchpad.py: Apply some heuristics to attempt |
2384 | + recovering broken descriptions as in LP #315728 (intermediate |
2385 | + blank lines, and non-apport data append). |
2386 | + |
2387 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 19 Jan 2009 17:49:55 +0100 |
2388 | + |
2389 | +apport (0.127) jaunty; urgency=low |
2390 | + |
2391 | + * bin/apportcheckresume, debian/apport.init: integrate with pm-utils to |
2392 | + detect suspend/resume failures. Thanks to Steve Conklin and Andy |
2393 | + Whitcroft. LP: #316419. |
2394 | + |
2395 | + -- Steve Langasek <steve.langasek@ubuntu.com> Tue, 13 Jan 2009 12:54:12 -0800 |
2396 | + |
2397 | +apport (0.126) jaunty; urgency=low |
2398 | + |
2399 | + * bin/apport-chroot: If --auth is specified in "login" mode, symlink |
2400 | + the file into /tmp/auth in the fakechroot. This makes it much |
2401 | + easier to interactively debug retracing. |
2402 | + * bin/apport-retrace: Exit with zero for bugs which do not have a |
2403 | + core dump, so that it does not completely stop the retracers. |
2404 | + |
2405 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 09 Jan 2009 22:49:48 +0100 |
2406 | + |
2407 | +apport (0.125) jaunty; urgency=low |
2408 | + |
2409 | + * bin/apport-chroot: Exit with apport-retraces' exit status, to |
2410 | + propagate errors upwards to crash-digger. |
2411 | + * bin/apport-retrace: Do not put outdated -dbgsym comments into the |
2412 | + bug comments. |
2413 | + * Rewrite bin/crash-digger to become much more robust and easier for |
2414 | + retracer maintainers: |
2415 | + - Now designed around cron-based maintenance: start, process all |
2416 | + pending bugs, exit. This makes memory leaks irrelevant, and gets |
2417 | + rid of all the logging, daemonizing, and looping code. |
2418 | + - Adapt stdout/stderr reporting to be suitable for cron and |
2419 | + redirecting stdout to a log file. |
2420 | + - Use lock files to avoid overlapping instances and avoid damaging |
2421 | + bugs with broken retracers after crash-digger failed. |
2422 | + - Handle chroot upgrading, so that this does not need separate |
2423 | + cronjobs any more. |
2424 | + - Drop old -i option, replace with -D/--dupcheck which is a mode |
2425 | + which *only* checks duplicates of Python crashes (no fakechroot |
2426 | + handling). |
2427 | + - Mark bug as retraced after apport-chroot retrace finished |
2428 | + successfully; the process is robust enough now to avoid enless |
2429 | + loops even if retracing fails. |
2430 | + - Adapt test-crash-digger accordingly. |
2431 | + - UbuntuSpec:apport-retracer-maintenance |
2432 | + |
2433 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 09 Jan 2009 12:14:44 +0100 |
2434 | + |
2435 | +apport (0.124) jaunty; urgency=low |
2436 | + |
2437 | + * debian/local/ubuntu-fat-chroot: Divert touch to touch.real and |
2438 | + wrap it into a shell wrapper which ignores failures. Some packages |
2439 | + use "touch -m" which fails with EPERM on directories under |
2440 | + fakechroot. Also disable gconf-schemas and polkit-auth, since they |
2441 | + do not work in fakechroots. |
2442 | + * apport/crashdb_impl/launchpad.py: Allow using staging for testing. |
2443 | + * apport/crashdb.py, mark_retrace_failed(): Add new optional |
2444 | + argument "invalid_msg", intended for crashes which cannot be |
2445 | + retraced properly (e. g. due to outdated packages). Implement this |
2446 | + in apport/crashdb_impl/launchpad.py. |
2447 | + * bin/apport-retrace: If we do not have an usable stack trace, and |
2448 | + encounter outdated package versions in the crash, close the report |
2449 | + as invalid with an appropriate comment. (LP: #308917) |
2450 | + * bin/apport-retrace: Update the apt cache before looking for, and |
2451 | + installing packages. (Part of UbuntuSpec:apport-retracer-maintenance) |
2452 | + * debian/apport.default: Enable by default again for Jaunty. Let the |
2453 | + flood begin! |
2454 | + |
2455 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 08 Jan 2009 14:05:07 +0100 |
2456 | + |
2457 | +apport (0.123) jaunty; urgency=low |
2458 | + |
2459 | + * bin/apport: Do not write the report into the log file if opening |
2460 | + the report file failed; just log the error. |
2461 | + * bin/apport: Remove a previously seen report file, so that the |
2462 | + following creation with O_EXCL actually works. |
2463 | + * apport/report.py, add_proc_info(): Only try to attach |
2464 | + /proc/pid/attr/current if we are root. This works around Python |
2465 | + segfaulting regression when encountering EPERM on read() (see |
2466 | + LP #314065). |
2467 | + * apport/report.py testsuite: Use "isofs" for module license check |
2468 | + testing instead of "usbcore", since the latter is more likely to |
2469 | + get built into the kernel. |
2470 | + * apport/report.py, add_proc_environ(): Use "PATH=(...)" instead of |
2471 | + "PATH: ..." notation, to be consistent with other environment |
2472 | + variables. Unbreaks the apport test suite. |
2473 | + |
2474 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 05 Jan 2009 18:05:38 +0100 |
2475 | + |
2476 | +apport (0.122) jaunty; urgency=low |
2477 | + |
2478 | + * apport/crashdb_impl/launchpad.py: Support extra tags in the |
2479 | + report's "Tags:" field, and set them in the Launchpad bug. |
2480 | + Document this in doc/data-format.tex. Thanks to Steve Conklin for |
2481 | + the patch! |
2482 | + |
2483 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 05 Jan 2009 10:06:49 +0100 |
2484 | + |
2485 | +apport (0.121) jaunty; urgency=low |
2486 | + |
2487 | + * debian/apport.init: Drop long obsolete setting of |
2488 | + /proc/sys/kernel/crashdump-size. |
2489 | + * debian/apport.init: Make restart actually work if the default file was |
2490 | + changed. (LP: #292402) |
2491 | + * apport/report.py, add_proc_environ(): Do not include verbatim $PATH, only |
2492 | + classify it as "default" (does not appear at all then), "custom, |
2493 | + user" (/home or /tmp in $PATH), or "custom, no user". Add appropriate test |
2494 | + case. Update the data format documentation accordingly. (LP: #245263) |
2495 | + |
2496 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 08 Dec 2008 19:37:53 -0800 |
2497 | + |
2498 | +apport (0.120) jaunty; urgency=low |
2499 | + |
2500 | + * man/apport-cli.1: Fix "sytem" typo. (LP: #288977) |
2501 | + * apport/fileutils.py: Add new function get_options() to read |
2502 | + ~/.config/apport/settings. In the future, the apport-ignore.xml file will |
2503 | + move to this directory, too. Based on idea and initial patch from Nikolay |
2504 | + Derkach. |
2505 | + * bin/apport: Check config option "unpackaged", and if it is set to True, |
2506 | + create a crash dump for unpackaged programs, too. Bump apport package |
2507 | + dependency to python-apport for this. |
2508 | + * apport/ui.py: Fix regression introduced in in 0.115 for checking |
2509 | + successful package name determination. |
2510 | + * apport/report.py: Some distro portability fixes in the test suite, thanks |
2511 | + to Nikolay Derkach! |
2512 | + * Add OpenSUSE spec file, init script, and RPM packaging backend. Thanks to |
2513 | + Nikolay Derkach! |
2514 | + * apport_python_hook.py, bin/apport: Create files in a race free way to |
2515 | + avoid symlink attacks. Thanks to Sebastian Kramer <krahmer@novell.com> for |
2516 | + finding them! |
2517 | + * problem_report.py test suite: Create debugging leftover which left /tmp/r |
2518 | + behind. |
2519 | + * apport/crashdb_impl/memory.py: Use example.com, not bug.net, since the |
2520 | + latter actually exists now. |
2521 | + * apport/hookutils.py: Add attach_network(), attach_alsa(), and |
2522 | + attach_hardware(), and add proper docstrings. Thanks to Matt Zimmerman for |
2523 | + the branch! |
2524 | + * source_linux.py hook: Use above tool functions, which greatly simplifies |
2525 | + the hook. |
2526 | + * apport/report.py: Also print exceptions from binary and source package |
2527 | + hooks, not just from common ones. |
2528 | + * apport/report.py, add_hooks_info(): Do not print an error if a source |
2529 | + package hook does not exist. |
2530 | + * apport/hookutils.py, _parse_gconf_schema(): Correctly handle bool values. |
2531 | + |
2532 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 26 Nov 2008 19:24:23 +0100 |
2533 | + |
2534 | +apport (0.119) intrepid; urgency=low |
2535 | + |
2536 | + * debian/apport.default: Disable Apport by default for the final release. |
2537 | + |
2538 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 23 Oct 2008 09:34:41 +0200 |
2539 | + |
2540 | +apport (0.118) intrepid; urgency=low |
2541 | + |
2542 | + * apport/hookutils.py: add attach_gconf() function to add non-default gconf |
2543 | + settings to a report |
2544 | + |
2545 | + -- Matt Zimmerman <mdz@ubuntu.com> Mon, 13 Oct 2008 20:10:33 +0100 |
2546 | + |
2547 | +apport (0.117) intrepid; urgency=low |
2548 | + |
2549 | + * backends/packaging-apt-dpkg.py, is_distro_package(): Fix crash if |
2550 | + apt.Cache()[pkg].origins is None. (LP: #279353) |
2551 | + * bin/apport: Log that we are ignoring SIGABRT, since it is a common cause |
2552 | + of confusion. |
2553 | + * test-apport, create_test_process(): Fix race condition: wait until the |
2554 | + child process has fully execve()ed, to avoid coredumping it while it is |
2555 | + still running as test-apport process. |
2556 | + * apport/crashdb_impl/launchpad.py, update(): Set source package of a bug if |
2557 | + the reporter removed it and the task is against 'Ubuntu'. (LP: #269045) |
2558 | + |
2559 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 07 Oct 2008 16:38:06 +0200 |
2560 | + |
2561 | +apport (0.116) intrepid; urgency=low |
2562 | + |
2563 | + * Update AUTHORS and debian/copyright, Michael and Troy released their |
2564 | + copyright to Canonical. Properly attribute them as authors in the |
2565 | + respective files. |
2566 | + * debian/local/ubuntu-bug: Fix quoting of the command line arguments, so |
2567 | + that several options do not end up as one big argument when being passed |
2568 | + to apport-{cli,gtk,qt}. This also repairs launchpad-integration. |
2569 | + (LP: #260242) |
2570 | + |
2571 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 26 Sep 2008 10:32:45 +0200 |
2572 | + |
2573 | +apport (0.115) intrepid; urgency=low |
2574 | + |
2575 | + [ Matt Zimmerman ] |
2576 | + * Add apport/hookutils.py with some convenience functions for writing hook |
2577 | + scripts (work in progress) |
2578 | + * Extend ubuntu-bug to accept a path as an argument and look up the package |
2579 | + name |
2580 | + * Rename kernel_hook to kernel_crashdump (there are other kernel hooks) |
2581 | + * Change kernel crash report type to KernelCrash |
2582 | + * Fix automatix.py to not crash when automatix isn't installed (LP: #267004) |
2583 | + * Add bin/kernel_oops hook to capture a kernel oops (eg. via kerneloops) |
2584 | + |
2585 | + [ Martin Pitt ] |
2586 | + * Add AUTHORS file for collecting the list of major contributors and |
2587 | + copyright holders. |
2588 | + * apport/report.py: If we do not find a bug pattern file for the binary |
2589 | + package, fall back to looking for one with the source package name. |
2590 | + * run-tests: Provide a better error message if apport/packaging_impl.py does |
2591 | + not exist. |
2592 | + |
2593 | + [ Brian Murray ] |
2594 | + * apport/crashdb_impl/launchpad.py: Add regression-retracer tag to bugs |
2595 | + which seem to be a regression (duplicate, and crash happens in a later |
2596 | + version than the fix). (LP: #271876) |
2597 | + |
2598 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 18 Sep 2008 18:18:03 -0700 |
2599 | + |
2600 | +apport (0.114) intrepid; urgency=low |
2601 | + |
2602 | + [ Fabien Tassin ] |
2603 | + * apport/ui.py: Use preferred browser when it's recognized as a |
2604 | + Mozilla browser (firefox, seamonkey, flock) or Epiphany (LP: #131350) |
2605 | + |
2606 | + [ Oumar Aziz OUATTARA ] |
2607 | + * apport/crashdb.py: Add support for /etc/apport/crashdb.conf.d/*.conf crash |
2608 | + database configuration files. Document it in doc/crashdb-conf.txt. |
2609 | + * apport/ui.py: Support a new field "CrashDB" in apport reports which select |
2610 | + a non-default crash database. Document this in doc/package-hooks.txt. |
2611 | + |
2612 | + [ Martin Pitt ] |
2613 | + * apport/report.py: If a hook crashes with an exception, print it to |
2614 | + stderr, for easier debugging of hooks. |
2615 | + * apport/crashdb_impl/launchpad.py: If PackageArchitecture is 'all', fall |
2616 | + back to looking at Architecture instead of not adding a |
2617 | + needs-$ARCH-retrace tag at all. This prevented signal crashes originating |
2618 | + from e. g. Python packages from being automatically retraced. |
2619 | + |
2620 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 04 Sep 2008 10:51:24 +0200 |
2621 | + |
2622 | +apport (0.113) intrepid; urgency=low |
2623 | + |
2624 | + * apport-qt recommends update-notifier-kde instead of adept-notifier |
2625 | + |
2626 | + -- Anthony Mercatante <tonio@ubuntu.com> Thu, 28 Aug 2008 15:02:20 +0200 |
2627 | + |
2628 | +apport (0.112) intrepid; urgency=low |
2629 | + |
2630 | + * apport/crashdb_impl/launchpad.py: Update attachment handling to current |
2631 | + python-launchpad-bugs API, thanks Markus Korn! |
2632 | + * apport/ui.py: Use gnome-panel as indicator for a running GNOME session; |
2633 | + 'gnome-session' now calls itself x-session-manager, which isn't useful |
2634 | + to tell apart session types. |
2635 | + |
2636 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 07 Aug 2008 17:09:49 +0200 |
2637 | + |
2638 | +apport (0.111) intrepid; urgency=low |
2639 | + |
2640 | + The "(Kernel) OOPS, I dumped it again!" release. |
2641 | + |
2642 | + * apport/ui.py: Fix test_run_report_bug_unpackaged_pid() to work with the |
2643 | + installed run-tests from the package as well. |
2644 | + * apport/crashdb_impl/launchpad.py: Ignore broken LP bug tasks instead of |
2645 | + crashing on them. |
2646 | + * apport/report.py, add_proc_info(): Report the AppArmor or SELinux context |
2647 | + in a new ProcAttrCurrent field, read from /proc/pid/attr/current. |
2648 | + Document it in doc/data-format.tex. The field will not be added if the |
2649 | + proc attribute cannot be read or isn't present. Thanks to Steve Beattie |
2650 | + for the patch and the suggestion! |
2651 | + * debian/local/setup-apport-retracer: Switch to intrepid. |
2652 | + * debian/local/setup-apport-retracer: Fix installation of python-apt. Also |
2653 | + install apt, to avoid library version mismatches to python-apt. |
2654 | + * debian/apport.default: Enable apport by default again, now that we have |
2655 | + working retracers. |
2656 | + * apport/report.py, test_add_gdb_info_script(): Use bash, not dash as test |
2657 | + program for core dumping; stack trace is awkwardly bad with dash, so that |
2658 | + the test case cannot really work any more. |
2659 | + * Add package-hooks/source_linux.py: Package hook for collecting kernel |
2660 | + related information. By Matt Zimmerman, thank you! (LP: #251441) |
2661 | + * debian/local/ubuntu-bug.1: Fix documentation of -p, it specifies the |
2662 | + binary package name, not the source. |
2663 | + * apport/packaging.py: Add get_kernel_package() to return the actual Linux |
2664 | + kernel package name; useful if the user reports a bug against just |
2665 | + "linux". Implement it in backends/packaging-apt-dpkg.py. |
2666 | + * apport/ui.py: "Do what I mean" when filing a bug against "linux" and |
2667 | + report it against the actual kernel package. |
2668 | + * debian/local/ubuntu-bug: If just one argument is given, infer -p/-P from |
2669 | + the type of the argument. |
2670 | + * apport/ui.py: Drop the PackageArchitecture field for the uploaded report |
2671 | + if it is equal to Architecture. Adapt apport/crashdb_impl/launchpad.py to |
2672 | + fall back to Architecture, and mention the change in doc/data-format.tex. |
2673 | + * problem_report.py, write_mime(): Add new "skip_keys" argument to filter |
2674 | + out keys. Add test cases. |
2675 | + * apport/crashdb_impl/launchpad.py: Do not write the "Date:" field on |
2676 | + upload(), and fetch it from the bug metadata in download(). |
2677 | + * apport/crashdb_impl/launchpad.py, download(): Support reading bugs with |
2678 | + the "--- " separator instead of "ProblemType: ". Launchpad doesn't create |
2679 | + bugs that way ATM, but at least we have the reading part implemented now. |
2680 | + * package-hooks/source_linux.py: Drop Uname, ProcVersion, and |
2681 | + RunningKernelVersion fields, since they are all subsumed in the |
2682 | + ProcVersionSignature field. |
2683 | + * apport/ui.py, run_report_bug(): Strip spaces from package argument. |
2684 | + * apport/ui.py, add_hooks_info(): Collect OS info first, then call the |
2685 | + package hooks, so that the linux hook actually has a chance to delete the |
2686 | + Uname field. |
2687 | + * bin/kernel_hook, test-hooks: Throw away the original kernel hook which |
2688 | + we never used (and got superseded by the proper source_linux.py package |
2689 | + hook now). Replace it with the new logic of looking for |
2690 | + /var/crash/vmcore{,.log} and turning that into an apport report. |
2691 | + * debian/apport.init: Call kernel_hook if /var/crash/vmcore exists. |
2692 | + (LP: #241322) |
2693 | + * apport/ui.py: Collect information for "ProblemType: Kernel" as well, so |
2694 | + that we run the package hook. Adapt test suite to cover this. |
2695 | + * debian/control: Bump Standards-Version (no required changes). |
2696 | + * gtk/apport-gtk.glade, qt4/apport-qt: Generalize notification of kernel |
2697 | + crash, since it now happens after a boot, not right after the BUG/OOPS. |
2698 | + But in the future we want to cover both cases. |
2699 | + |
2700 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 05 Aug 2008 18:13:24 +0200 |
2701 | + |
2702 | +apport (0.110) intrepid; urgency=low |
2703 | + |
2704 | + * apport/chroot.py: In the test suite, copy some system binaries/libraries |
2705 | + into a fakechroot and exercise a lot of standard shell commands (cp, ln |
2706 | + -s, rm, rm -r, mkdir, echo, chmod, chown, etc.) with absolute/relative |
2707 | + paths. This reproduces the total breakage of rm'ing, chmod'ing, and |
2708 | + chown'ing absolute paths in hardy fakechroots. |
2709 | + * bin/crash-digger: Intercept exceptions when downloading crash reports for |
2710 | + duplicate checking, so that the retracer does not crash on malformed bug |
2711 | + reports. (LP: #205178) |
2712 | + * apport/packaging.py: Introduce a new function enabled() which reports |
2713 | + whether Apport should create crash reports. Signal crashes are controlled |
2714 | + by /proc/sys/kernel/core_pattern, but we need that to control whether |
2715 | + reports for Python, package, or kernel crashes are generated. |
2716 | + * backends/packaging-apt-dpkg.py: Provide implementation for |
2717 | + PackageInfo.enabled() for Debian/Ubuntu by evaluating /etc/default/apport. |
2718 | + Add various test cases for different configuration files and absent files. |
2719 | + * apport_python_hook.py: Do not create reports if Apport is disabled (in |
2720 | + /etc/default/apport). (LP: #222260) |
2721 | + |
2722 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 17 May 2008 12:44:21 +0200 |
2723 | + |
2724 | +apport (0.109) intrepid; urgency=low |
2725 | + |
2726 | + [ Martin Pitt ] |
2727 | + * debian/local/setup-apport-retracer: Update for some changes in Hardy. |
2728 | + |
2729 | + [ Loic Minier ] |
2730 | + * apport/report.py, add_proc_info(): also strip pathnames starting with |
2731 | + 'cow', 'squashmnt', and 'persistmnt' to allow apport to locate the |
2732 | + executable pathname, additionally to 'rofs' added in 0.75. This fixes |
2733 | + apport for packages installed on the read-write part of the unionfs mounts |
2734 | + and under UME which uses different names for the mount points. Proper fix |
2735 | + is to rewrite the pathnames in the kernel. (LP: #224168) |
2736 | + |
2737 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 23 Apr 2008 14:30:03 +0200 |
2738 | + |
2739 | +apport (0.108) hardy; urgency=low |
2740 | + |
2741 | + [ Martin Pitt ] |
2742 | + * apport-{gtk,qt,cli}: Fix handling of file references added by package |
2743 | + hooks. (LP: #205163) |
2744 | + * backends/packaging_rpm.py: Fix dependency resolution of uname(*) in the |
2745 | + RPM backend. Thanks to Patryk Zawadzki! (LP: #213018) |
2746 | + * backends/packaging_rpm.py: Fix RPM platform parsing, thanks to Patryk |
2747 | + Zawadzki! (LP: #213015) |
2748 | + * po/de.po: Fix typo (missing space). |
2749 | + * debian/apport.default: Disable Apport for the final Hardy release, since |
2750 | + it is less useful in stable releases, and drains a lot of CPU and I/O |
2751 | + power on crashes. Disabling it here instead of in update-notifier/adept is |
2752 | + more discoverable and more centralized. |
2753 | + |
2754 | + [ Daniel Hahler ] |
2755 | + * bin/apport-retrace: catch the same exceptions from Report.load() like |
2756 | + ui.load_report() does (LP: #211899) |
2757 | + * Fix uncaught exceptions in apport itself (LP: #215929): |
2758 | + - apport/REThread.py: check if "sys" exists in the except block of |
2759 | + REThread.run() |
2760 | + - apport_python_hook.py: check if "sys" exists in the finally block of |
2761 | + apport_excepthook |
2762 | + * cli/apport-cli: Fix UnboundLocalError in ui_present_crash, which rendered |
2763 | + apport-cli useless (for reporting crashes) (LP: #216151) |
2764 | + |
2765 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 16 Apr 2008 12:24:32 +0200 |
2766 | + |
2767 | +apport (0.107) hardy; urgency=low |
2768 | + |
2769 | + * cli/apport-cli: Add translator comment for difficult string. (LP: #210948) |
2770 | + * Update German translations. |
2771 | + * po/Make{vars,file}: Remove the --language=python option again, since it |
2772 | + breaks extracting strings from the glade. intltool-update currently does |
2773 | + not seem to have a way to tag a file as "language python", so add an ugly |
2774 | + workaround: Create temporary .py symlinks for gtk/apport-gtk & friends, |
2775 | + and have intltool extract them. |
2776 | + * apport/ui.py: Disallow filing a bug without specifying a package or a PID. |
2777 | + Update debian/local/ubuntu-bug.1 accordingly (apport-cli manpage was |
2778 | + already correct). (LP: #210348) |
2779 | + |
2780 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sun, 06 Apr 2008 11:44:38 -0600 |
2781 | + |
2782 | +apport (0.106) hardy; urgency=low |
2783 | + |
2784 | + [ Martin Pitt ] |
2785 | + * apport/crashdb_impl/launchpad.py: Fix spelling mistake in p-lp-bugs API |
2786 | + (now corrected there). |
2787 | + * apport_python_hook.py: Catch IndexError for invalid sys.argv[0], too. |
2788 | + (LP: #204940) |
2789 | + * apport/ui.py: Add test_run_report_bug_unpackaged_pid() test case which |
2790 | + reports a bug against a pid which belongs to an unpackaged program. This |
2791 | + reproduces LP #203764. |
2792 | + * apport/report.py: Drop add_hooks_info() assertion on nonexisting Package |
2793 | + field, return silently instead. This conforms to the behaviour of the |
2794 | + other add_*_info() functions and avoids nasty error handling. |
2795 | + * apport/ui.py: Generate proper error message when calling with -f -p PID |
2796 | + and PID belongs to an unpackaged program. (LP: #203764). |
2797 | + |
2798 | + [ Sebastien Bacher ] |
2799 | + * po/Makevars: add the --language=python xgettext option so the translations |
2800 | + template is correctly updated on build since cdbs is using intltool-update |
2801 | + directly and not the corresponding makefile target |
2802 | + |
2803 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 01 Apr 2008 16:02:46 +0200 |
2804 | + |
2805 | +apport (0.105) hardy; urgency=low |
2806 | + |
2807 | + * apport/crashdb_impl/launchpad.py: Ignore ValueErrors when subscribing a |
2808 | + team, since these are usually due to the team already being subscribed. |
2809 | + * apport/report.py, anonymize(): Be robust against empty user names and only |
2810 | + anonymize fields which can potentially contain user specific data. |
2811 | + (LP: #195706) |
2812 | + * backends/packaging-apt-dpkg.py, get_architecture(): Return 'unknown' |
2813 | + instead of None if package architecture cannot be determined. |
2814 | + (LP: #198548) |
2815 | + * apport/ui.py, run_crash(): Intercept other IOErrors, too (such as EISDIR) |
2816 | + and print out proper error message instead of crashing. (LP: #201819) |
2817 | + * apport_python_hook.py: If the Python script has mutilated sys.argv so that |
2818 | + even sys.argv[0] does not exist any more, fall back into readlink()ing |
2819 | + /proc/pid/exe and gracefully handle the failure of that, instead of |
2820 | + crashing in the crash handler (ugh). Add test case. (LP: #198183) |
2821 | + |
2822 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 18 Mar 2008 23:04:57 +0100 |
2823 | + |
2824 | +apport (0.104) hardy; urgency=low |
2825 | + |
2826 | + [ Martin Pitt ] |
2827 | + * apport/crashdb_impl/launchpad.py, get_source_version(): re-escape the |
2828 | + package name so that it doesn't stumble over '+' and similar characters. |
2829 | + * apport/ui.py tests: assert that ProcEnviron is also included into bug |
2830 | + reports where we do not have a PID, since having the local information is |
2831 | + interesting and important (and acceptable in terms of personal |
2832 | + information). |
2833 | + * apport/report.py: Split out method add_proc_environ() for getting |
2834 | + ProcEnviron, so that we can call it separately. |
2835 | + * apport/ui.py, run_report_bug(): Add ProcEnviron if we do not have a pid to |
2836 | + file a bug against. This way, bugs filed against packages or distro also |
2837 | + get locale information. (LP: #198514) |
2838 | + * apport/fileutils.py, mark_report_seen(): Do not crash if the file does not |
2839 | + exist any more, because it was removed underneath us. (LP: #199932) |
2840 | + * apport/ui.py, test_collect_info_exepath(): Add a tuple argument and a |
2841 | + CompressedValue to the test report. This reproduces LP #199349. |
2842 | + * apport/report.py, anonymize(): Only work on string values. (LP: #199349) |
2843 | + * apport/ui.py: If a report has a field "Ignore", entirely ignore the report |
2844 | + without even presenting an explanatory error dialog (as |
2845 | + "UnsupportableReason" does). Document this in doc/package-hooks.txt. |
2846 | + (LP: #198863) |
2847 | + * debian/control: Bump Standards-Version (no changes necessary). |
2848 | + * debian/control: Fix wrongly spelt project names (Python and GTK+). Thanks |
2849 | + to lintian's scrutiny. |
2850 | + * gtk/apport-gtk-mime.desktop.in, qt4/apport-qt-mime.desktop.in: Add a main |
2851 | + category. |
2852 | + |
2853 | + [ Kees Cook ] |
2854 | + * apport/report.py: fix module license checking logic (LP: #199927). |
2855 | + - nonfree_modules: being unable to find a module should not mean the |
2856 | + module is non-free. |
2857 | + - test_module_license_evaluation: check modinfo reporting. |
2858 | + * problem_report.py: Skip atime test case if file system is mounted noatime. |
2859 | + |
2860 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 13 Mar 2008 14:01:30 +0100 |
2861 | + |
2862 | +apport (0.103) hardy; urgency=low |
2863 | + |
2864 | + * bin/apport-unpack: Print error messages instead of crashing for problems |
2865 | + like nonexisting file names passed as arguments. (LP: #185273) |
2866 | + * backends/packaging-apt-dpkg.py, is_distro_package(): Explicitly check site |
2867 | + for "ppa", so that we do not automatically file bugs for PPA packages. |
2868 | + This works around Soyuz bug LP #140412 for the time being. |
2869 | + * apport/report.py: Add standard_title() test cases for Python crashes with |
2870 | + a custom message, and a custom message with newlines. The latter |
2871 | + reproduces LP #190947. |
2872 | + * apport/report.py, standard_title(): Do not rely on a fixed position of the |
2873 | + topmost function; use iteration and regular expression matching instead. |
2874 | + (LP: #190947) |
2875 | + * apport/ui.py, parse_argv(): Specify that --pid/-P argument must be an |
2876 | + integer, to avoid exceptions when it's not. (LP: #193494) |
2877 | + * apport/report.py: Use uname -srm, not -a, to hide the hostname. (part of |
2878 | + LP #192786); also use os.uname() instead of calling the system program. |
2879 | + * problem_report.py(): Make write() work for reports with CompressedValues. |
2880 | + Add test case. |
2881 | + * apport/ui.py: Add test case test_run_crash_anonymity() which asserts that |
2882 | + the crash dump does not contain strings which can identify the user, such |
2883 | + as the user name, login name, host name, and current directory. |
2884 | + * apport/report.py: Add method anonymize() which replaces user specific |
2885 | + strings with generic ones. |
2886 | + * apport/ui.py, thread_collect_info(): Call anonymize() on the report. |
2887 | + (LP: #192786) |
2888 | + * bin/apport-retrace: Only update a bug report with new attachments if it is |
2889 | + not a duplicate. (LP: #172792) |
2890 | + * bin/apport-retrace: Print out proper error message instead of an exception |
2891 | + if trying to do write operations to the bug tracker without specifying |
2892 | + a cookie file. (LP: #146423) |
2893 | + |
2894 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 25 Feb 2008 17:47:13 +0100 |
2895 | + |
2896 | +apport (0.102) hardy; urgency=low |
2897 | + |
2898 | + [ Martin Pitt ] |
2899 | + * problem_report.py: Support reading reports with legacy zlib |
2900 | + compression in 'retain compressed values' mode (as used nowadays by |
2901 | + apport when reporting a crash). Add a test case, too. (LP: #129616) |
2902 | + * debian/control, debian/rules: Switch from python-support to |
2903 | + python-central, and use 'nomove' option so that apport works during |
2904 | + upgrades, too. (LP: #121341) |
2905 | + * debian/rules: Use dh_icons instead of dh_iconcache. |
2906 | + * debian/apport.init: Do not stop apport in any runlevel (LSB header). |
2907 | + * apport/ui.py, run_crash(): Catch zlib.error on invalidly compressed core |
2908 | + dumps. (LP: #176977) |
2909 | + * apport/ui.py: Give a meaningful error message instead of crashing if the |
2910 | + package for a crash report is not installed any more. (LP: #149739) |
2911 | + * apport/ui.py: Do not include ProcCmdline in bug reports, since these are |
2912 | + not ack'ed by the user and might contain sensitive data. (LP: #132800) |
2913 | + * apport/ui.py: Add various test cases for crash reports whose packages have |
2914 | + been uninstalled between the crash and the report. This reproduces |
2915 | + LP #186684. |
2916 | + * apport/ui.py, load_report(): Produce proper error message if |
2917 | + executable/interpreter path do not exist any more. (LP: #186684) |
2918 | + * cli/apport-cli: Intercept SIGPIPE when calling sensible-pager, to avoid |
2919 | + crash when quitting it prematurely. (LP: #153872) |
2920 | + * bin/apport-checkreports: Print out a list of program names/packages which |
2921 | + have a pending crash report. (LP: #145117) |
2922 | + * apport/ui.py, run_argv(): Add return code which indicates whether any |
2923 | + report has been processed. |
2924 | + * cli/apport-cli: If no pending crash reports are present, say so and refer |
2925 | + to --help. (LP: #182985) |
2926 | + * apport/ui.py: Waive check for obsolete packages if environment defines |
2927 | + $APPORT_IGNORE_OBSOLETE_PACKAGES. Document this in the apport-cli manpage. |
2928 | + (LP: #148064) |
2929 | + |
2930 | + [ Daniel Hahler ] |
2931 | + * .crash file integration for KDE3 (LP: #177055) |
2932 | + - debian/apport-qt.install: install added files qt4/apport-qt-mime.desktop |
2933 | + and qt4/apport-qt-mimelnk.desktop |
2934 | + * Fixed minor warnings/errors from desktop-file-validate in |
2935 | + gtk/apport-gtk-mime.desktop.in and qt4/apport-qt.desktop.in (LP: #146957) |
2936 | + |
2937 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 06 Feb 2008 12:55:53 +0100 |
2938 | + |
2939 | +apport (0.101) hardy; urgency=low |
2940 | + |
2941 | + * debian/control: Add python-xdg dependency to apport, since apport-cli |
2942 | + needs it. (LP: #177095) |
2943 | + * apport/ui.py: Add test case for reporting a report which has been |
2944 | + preprocessed by apport-retrace, i. e. has a stack trace, but no core dump |
2945 | + any more (reproducing LP #185084). |
2946 | + * apport/ui.py, run_crash(): Do not reject reports which have a stack trace, |
2947 | + but no core dump. (LP: #185084) |
2948 | + * apport/report.py: Fix test_add_gdb_info_load() test case, the temporary |
2949 | + executable was already deleted when gdb ran the second time. |
2950 | + |
2951 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 23 Jan 2008 17:48:06 +0000 |
2952 | + |
2953 | +apport (0.100) hardy; urgency=low |
2954 | + |
2955 | + * bin/crash-digger: Add option --log for logging to a file, and |
2956 | + --pidfile/--stop for daemonization. Add test cases to test-crash-digger. |
2957 | + * bin/apport: Do not re-raise exceptions about failure to create the lock |
2958 | + file, to avoid crashing in the case that another apport instance tries to |
2959 | + lock at exactly the same moment. (LP: #147237) |
2960 | + * apport/report.py testsuite: Check that our methods get along with binary |
2961 | + data which turn into CompressedValue objects after loading them from a |
2962 | + file. This reproduces LP #148305. |
2963 | + * problem_report.py, CompressedValue: Add method splitlines() since we need |
2964 | + it very often. Add test case to test_compressed_values(). (LP: #148305) |
2965 | + * problem_report.py: Add test case to check that update() works and does the |
2966 | + right thing with binary values and overwriting. This confirms that |
2967 | + importing a dictionary works. |
2968 | + * debian/local/setup-apport-retracer: Update for hardy. |
2969 | + * apport/crashdb_impl/launchpad.py: get_source_info() does not work any more |
2970 | + due to HTML changes in Launchpad, and not showing the component any more |
2971 | + on /distro/+source/package. Since we do not actually need component and |
2972 | + release name any more, rename it to get_source_version(), fix the regular |
2973 | + expression to just get the version, and adapt get_fixed_version() |
2974 | + accordingly. |
2975 | + * debian/local/setup-apport-retracer: Update default apt sources to |
2976 | + http://ddebs.ubuntu.com. |
2977 | + * apport/ui.py: Robostify cleanup of forked test processes. |
2978 | + * apport/ui.py: Sleep for 0.5 seconds after creating the test process in the |
2979 | + test suite to give /proc some time to settle down. |
2980 | + * bin/apport: Drop evaluation of CORE_* environment variables and mandate |
2981 | + calling with <pid> <signal> <core ulimit>. Drop the now obsolete |
2982 | + apport/elfcore.py. Adapt test-apport accordingly. |
2983 | + * debian/apport.init, use-local: Now call apport with %p, %s, and %c kernel |
2984 | + macros (since 2.6.24). Drop Edgy support from init script. |
2985 | + |
2986 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 21 Dec 2007 02:18:48 +0100 |
2987 | + |
2988 | +apport (0.99) hardy; urgency=low |
2989 | + |
2990 | + * cli/apport-cli, qt4/apport-qt: Fix typo 'send' -> 'sent'. |
2991 | + (LP: #139288) |
2992 | + * apport_python_hook.py: Add user info, too. Also add check for this to the |
2993 | + test suite. (LP: #145109) |
2994 | + * apport/ui.py, run_crash(): Show a proper UI error message instead of just |
2995 | + crashing with an exception if the crash report is inaccessible for the |
2996 | + invoking user. (LP: #146464) |
2997 | + * apport/crashdb_impl/memory.py: Implement mark_retraced(), |
2998 | + get_unretraced(), and get_dup_unchecked() for completeness, and define |
2999 | + _MemoryCrashDBTest also when not running file as __main__. This makes the |
3000 | + class useful for higher-level test suites. Add test cases for the new |
3001 | + functions. |
3002 | + * apport/crashdb_impl/memory.py: Support 'dummy_data' option which adds a |
3003 | + few dummy crashes by default. This is useful for external test suites |
3004 | + which cannot otherwise pre-fill the in-memory db. Add checks that this |
3005 | + works properly. |
3006 | + * bin/crash-digger: Use self.log() more consistently, and flush stdout in |
3007 | + log(), so that we do not lose logs on output redirection. |
3008 | + * Add test-crash-digger: Initial test suite for bin/crash-digger. |
3009 | + * apport/ui.py, run_crash(): Intercept CRC errors from the info collection |
3010 | + thread, which happens on broken core dumps. (LP: #132212) |
3011 | + * cli/apport-cli, ui_present_package_error(): Fix running of dialog, so that |
3012 | + reporting package problems with apport-cli actually works. (LP: #136369) |
3013 | + * apport/ui.py, run_crash(): Intercept ENOSPC and present a proper error |
3014 | + message. (LP: #145100) |
3015 | + * gtk/apport-gtk.glade: Fix title of upload progress window to comply to |
3016 | + HIG. Thanks, Bruce Cowan. (LP: #144782) |
3017 | + * qt4/apport-qt: Fix Unicode <-> UTF-8 conversion. Thanks, Daniel Hahler! |
3018 | + (LP: #148177) |
3019 | + * apport/ui.py: Only import xdg.DesktopEntry when a .desktop file has been |
3020 | + found in the affected package. This avoids the dependency on servers with |
3021 | + just apport-cli. Thanks, Matthias Gug! (LP: #130013) |
3022 | + * apport/fileutils.py: Do not fail if there are no packages installed which |
3023 | + have one or several .desktop files. Thanks, Matthias Gug! |
3024 | + |
3025 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sun, 28 Oct 2007 18:32:07 -0400 |
3026 | + |
3027 | +apport (0.98) gutsy; urgency=low |
3028 | + |
3029 | + [ Martin Pitt ] |
3030 | + * debian/local/setup-apport-retracer: launchpadBugs -> launchpadbugs |
3031 | + (recently renamed Python package in python-launchpad-bugs). |
3032 | + * apport/crashdb_impl/launchpad.py, test examples: Do not duplicate to bug |
3033 | + #1, that generates a huge amount of spam. Use another test bug. |
3034 | + * apport/crashdb_impl/launchpad.py, download(): Use Bug.description_raw, |
3035 | + since LP mangles spaces in .description. Bump p-lp-bugs dependency. |
3036 | + * apport/crashdb_impl/launchpad.py, close_duplicate(): Explicitly set the |
3037 | + duplicate after removing attachments, since the new LP does not allow any |
3038 | + modification of duplicate bugs. |
3039 | + * bin/crash-digger: Only consolidate the duplicate DB when -i is given (i. |
3040 | + e. usually only on one running instance). |
3041 | + |
3042 | + [ Colin Watson ] |
3043 | + * Use bugs.launchpad.net for +filebug and +bugs requests. (LP: #138090) |
3044 | + |
3045 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 01 Oct 2007 14:35:07 +0200 |
3046 | + |
3047 | +apport (0.97) gutsy; urgency=low |
3048 | + |
3049 | + [Martin Pitt] |
3050 | + * problem_report.py: Coerce CompressedValue.__len__() to return an int to |
3051 | + work on Python 2.4, too. |
3052 | + * debian/local/setup-apport-retracer: Adapt ddeb apt source for the move |
3053 | + from ~pitti to ~ubuntu-archive. |
3054 | + |
3055 | + [Markus Korn] |
3056 | + * port to new python-launchpad-bugs API. |
3057 | + |
3058 | + [Daniel Holbach] |
3059 | + * small fixes to the port. |
3060 | + * debian/control: bumped python-launchpad-bugs Depends to >= 0.2.2. |
3061 | + |
3062 | + -- Daniel Holbach <daniel.holbach@ubuntu.com> Tue, 04 Sep 2007 11:24:28 +0200 |
3063 | + |
3064 | +apport (0.96) gutsy; urgency=low |
3065 | + |
3066 | + * Create man pages for apport-cli, apport-chroot, and dupdb-admin. |
3067 | + * apport/fileutils.py, find_file_package(): Try to resolve symlinks in the |
3068 | + directory path. (LP: #125551) |
3069 | + * apport/crashdb_impl/launchpad.py, debian/local/setup-apport-retracer: Use |
3070 | + packaging.get_system_architecture() (which is dpkg --print-architecture on |
3071 | + Debian/Ubuntu) instead of uname, so that this does the right thing on lpia. |
3072 | + * problem_report.py, write_mime(): Use base64 encoding for gzipped |
3073 | + attachments, to not screw up mail servers. Thanks to Tim Yamin for this |
3074 | + patch! |
3075 | + * apport/crashdb.py: Drop the last argument (-1), since it is the default |
3076 | + anyway and did not yet exist on Python 2.4. |
3077 | + |
3078 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 21 Aug 2007 14:11:48 +0200 |
3079 | + |
3080 | +apport (0.95) gutsy; urgency=low |
3081 | + |
3082 | + * general-hooks/automatix.py: Remove hashbang, it's not an executable |
3083 | + script. |
3084 | + * apport/report.py: Support system-wide blacklisting: |
3085 | + /etc/apport/blacklist.d/. Add test cases. |
3086 | + * Add doc/README.blacklist: Document blacklist.d/, install it there in |
3087 | + setup.py. |
3088 | + * debian/rules: Blacklist wine-preloader, so that we ignore wine crashes |
3089 | + until an appropriate way is found to deal with them. (Point 6 of |
3090 | + apport-better-retracing spec.) |
3091 | + |
3092 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 11 Aug 2007 18:10:54 +0200 |
3093 | + |
3094 | +apport (0.94) gutsy; urgency=low |
3095 | + |
3096 | + * doc/data-format.tex: Some updates to incorporate feedback from Gnome |
3097 | + upstream: |
3098 | + - Do not talk about "Distributions" any more, but "Operating systems". |
3099 | + Gnome is used on non-Linux OSs, too. |
3100 | + - Split "DistroRelease:" field into "OS:" and "OSRelease:". |
3101 | + - Explicitly mention that CoreDump, StackTrace etc. can also contain |
3102 | + minidump output. |
3103 | + - Increase document version to 0.2. |
3104 | + * apport/report.py, obsolete_packages(): Fix crash when apt does not know an |
3105 | + available version of a package. (LP: #128176) |
3106 | + * test-apport: Add check that apport aborts immediately if another apport |
3107 | + instance is already running. Also test that a symlink attack on the lock |
3108 | + file is not possible. |
3109 | + * bin/apport: Abort running several apport instances at the same time, by |
3110 | + lockf()'ing /var/crashes/.lock and aborting on failure. (LP: #119622) |
3111 | + * Add bin/gcc_ice_hook: Script to create an apport report for a gcc ICE |
3112 | + (internal compiler exception). Add test cases to test-hooks, and ship it |
3113 | + in the 'apport' package. (LP: #125551) |
3114 | + * run-tests: In 'local' mode, only explicitly run the apt/dpkg |
3115 | + implementation instead of backends/*, since the RPM ones don't have tests |
3116 | + yet. |
3117 | + * apport/crashdb.py: Add a second optional parameter to upload() to specify |
3118 | + an upload progress callback function. Adapt the declarations in the |
3119 | + Launchpad and Memory implementations, too. |
3120 | + * apport/crashdb_impl/launchpad.py, upload(): Pass upload progress callback |
3121 | + handler to launchpadBugs.storeblob.upload(), which supports this since |
3122 | + version 0.2~39. Bump dependency to it accordingly. |
3123 | + * apport/ui.py, file_report(): Define an upload progress callback handler, |
3124 | + pass it to the crashdb upload(), and feed ui_set_upload_progress() with |
3125 | + some actual data. (LP: #91521) |
3126 | + * problem_report.py: Remove support for reading bz2 compressed binary data. |
3127 | + That was only relevant during edgy's development cycle. |
3128 | + * apport/report.py, test_add_proc_info(): Fix determination of /bin/zgrep |
3129 | + interpreter. |
3130 | + * problem_report.py: Switch encoding of binary values from bare zlib to |
3131 | + proper gzip format, since this is much more useful when reusing the |
3132 | + compressed value. Retain support for zlib-only reports. Add test cases for |
3133 | + both old and new encodings, and adapt the other test cases for the new |
3134 | + format. Update doc/data-format.tex accordingly. |
3135 | + * problem_report.py, write(): Add new permitted 'binary' argument value |
3136 | + 'compressed', which retains gzip compressed binary values instead of |
3137 | + unpacking them transparently. Add test cases. |
3138 | + * problem_report, write_mime(): Eliminate unnecessary usage of StringIO. |
3139 | + * problem_report, write_mime(): Make function work for compressed binary |
3140 | + values. Add test case. |
3141 | + * apport/report.py, add_gdb_info(): Make function work if CoreDump is a |
3142 | + compressed value. |
3143 | + * apport/ui.py: Load crash report with keeping compressed binaries. This |
3144 | + avoids loading the entire uncompressed core dump into memory, and avoids |
3145 | + recompressing it all over again for generating the crash database upload |
3146 | + MIME document. This greatly speeds up crash reporting, too. (LP: #98562) |
3147 | + |
3148 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 31 Jul 2007 21:32:00 +0200 |
3149 | + |
3150 | +apport (0.93) gutsy; urgency=low |
3151 | + |
3152 | + * apport/crashdb.py: Set sqlite connect timeout to two hours, instead of the |
3153 | + default 5 seconds. Previously, one retracer always crashed when the other |
3154 | + was consolidating the database. |
3155 | + * bin/dupdb-admin, command_dump(): Correctly interpret empty version strings |
3156 | + as 'fixed in unknown verrsion', not 'unfixed'. |
3157 | + * apport/crashdb_impl/launchpad.py: Fix typo in bug comment string. |
3158 | + * apport/crashdb_impl/launchpad.py: Add function get_source_info() which |
3159 | + parses out release, version, and component from |
3160 | + https://launchpad.net/$DISTRO/+source/$PACKAGE. |
3161 | + * apport/crashdb_impl/launchpad.py, get_fixed_version(): If a bug is fixed, |
3162 | + return the current version (as approximation of the version where the bug |
3163 | + was fixed), instead of an empty string (which meant 'fixed in unknown |
3164 | + version'). [apport-crash-duplicates spec] |
3165 | + |
3166 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 25 Jul 2007 17:04:27 +0200 |
3167 | + |
3168 | +apport (0.92) gutsy; urgency=low |
3169 | + |
3170 | + * bin/crash-digger: Do not crash if duplicate db is locked when attempting |
3171 | + to consolidate it. This happens often because in the DC we have two |
3172 | + parallel instances (for amd64 and i386). |
3173 | + * Move ubuntu-fat-chroot from bin/ to debian/local/, since it is so heavily |
3174 | + Ubuntu specific. |
3175 | + * debian/local/ubuntu-fat-chroot: Use diversions for the binaries we want to |
3176 | + disable, so that chroot upgrades do not trash the modifications. |
3177 | + * debian/local/setup-apport-retracer: launchpad-crash-digger -> |
3178 | + crash-digger. |
3179 | + * bin/crash-digger: Add option -i/--arch-indep-dupcheck to explicitly enable |
3180 | + duplicate checking of arch-independent crashes like Python exceptions. We |
3181 | + only want to process them on one architecture to avoid scattering the |
3182 | + duplicate database. |
3183 | + * apport/crashdb_impl/launchpad.py, get_unfixed(): Search for 'apport-crash' |
3184 | + tag, not 'apport'. |
3185 | + * bin/apport-unpack: Fix format string in error message. |
3186 | + * apport/ui.py, __init__(): Intercept ImportError, which can happen for |
3187 | + crashes during system upgrades. (LP: #124354) |
3188 | + * Add general-hooks/automatix.py: Refuse to send problem reports if |
3189 | + automatix is installed. |
3190 | + * doc/package-hooks.txt: Do not document UnsupportableReason, since it does |
3191 | + not make sense to set it in package hooks (it is checked before calling |
3192 | + the hooks). Hooks should use UnreportableReason only. |
3193 | + * apport/ui.py, test_run_crash_package(): Check that 'Package' problem |
3194 | + reports collect additional information, too. |
3195 | + * apport/ui.py, collect_info(): Collect additional information for 'Package' |
3196 | + problem reports, too. |
3197 | + * Revive preloadlib/: |
3198 | + - Remove PIPE_CORE #ifdefs and make them the default. We do not need to |
3199 | + support the Edgy kernel patches in this version any more. |
3200 | + - Install signal handler for SIGABRT, too. |
3201 | + - Read core ulimit, pass it to apport in CORE_REAL_RLIM, and set it to |
3202 | + zero for the program, since we do not actually want the kernel to write |
3203 | + core files when we pipe the core dump to apport. |
3204 | + - test-apport: Pass APPORT_REPORT_DIR to the manually called apport |
3205 | + instance in the memory clipping test; otherwise it'll write into |
3206 | + /var/crash/, which we do not consider in library mode. |
3207 | + * apport/crashdb_impl/launchpad.py, __init__(): Only do the "download bug |
3208 | + #2" hack if we actually have an authentication cookie. Thus, do it only on |
3209 | + the retracing servers, not on the client side. (LP: #125142) |
3210 | + * apport/report.py, crash_signature(): Generate a signature for one-line |
3211 | + Python tracebacks, too. This sometimes seems to happen, e. g. LP#124588. |
3212 | + (LP: #125020) |
3213 | + * apport/crashdb_impl/launchpad.py, update(): Set bug importance to Medium |
3214 | + if retracing was successful. (LP: #106379) |
3215 | + |
3216 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 24 Jul 2007 21:50:34 +0200 |
3217 | + |
3218 | +apport (0.91) gutsy; urgency=low |
3219 | + |
3220 | + * bin/apport: Remove code that supported the Edgy kernel way of core dump |
3221 | + passing. Also factorize the CORE_REAL_RLIM evaluation, since it is likely |
3222 | + to change in the near future. |
3223 | + * apport/crashdb_impl/launchpad.py, close_duplicate(): Delete some |
3224 | + attachments, as specified in apport-crash-duplicates spec, and make the |
3225 | + bug public afterwards. |
3226 | + * apport/crashdb_impl/launchpad.py, close_duplicate(): If the master bug is |
3227 | + already duped to yet another bug, mark the bug to that one instead of the |
3228 | + master. |
3229 | + * apport/crashdb.py: Split out duplicate_db_last_consolidation() for getting |
3230 | + the date (or seconds since) the last consolidation, so that we can use it |
3231 | + externally. |
3232 | + * apport/crashdb.py: Add duplicate_db_change_master_id() to change the |
3233 | + master ID of a crash. Add test case to apport/crashdb_impl/memory.py. |
3234 | + * Add bin/dupdb-admin: Initial version of duplicate db CLI app; can dump the |
3235 | + db, display consolidation state, and change master bug IDs for now. Ship |
3236 | + it in apport-retrace. |
3237 | + * apport/crashdb.py, duplicate_db_last_consolidation(): Fix timedelta |
3238 | + seconds calculation to actually take the days into account, too. |
3239 | + * bin/crash-digger: Fix dumping of dup db after consolidation. |
3240 | + * apport/ui.py: |
3241 | + - test_run_report_bug_package(): Add test case for calling the UI in bug |
3242 | + filing mode with an invalid package name. |
3243 | + - run_report_bug(): Do not crash on invalid package name, generate an |
3244 | + error message instead. (LP: #123644) |
3245 | + * apport/fileutils.py, mark_report_seen(): Do not crash if the file has |
3246 | + already been deleted underneath us. (LP: #122347) |
3247 | + * apport/ui.py, run_report_bug(): Do not crash if the target process runs as |
3248 | + a different user. Print a proper error message instead. Add test case |
3249 | + test_run_report_bug_noperm_pid(). (LP: #121121) |
3250 | + * apport/fileutils.py, likely_packaged(): Ignore /var/lib/schroot. Add test |
3251 | + case. (LP: #122859) |
3252 | + * apport/ui.py, open_url(): Intercept weird race condition for os.close() |
3253 | + trying to close an already invalidated fd. (LP: #123180) |
3254 | + |
3255 | + Merge the fedora branch, thanks to Will Woods <wwoods@redhat.com>: |
3256 | + |
3257 | + * Add apport.init.fedora: Fedora specific init script. |
3258 | + * Add apport.spec: RPM build recipe. |
3259 | + * Add backends/packaging_rpm.py: Partial implementation of the packaging |
3260 | + backend for RPM which applies to all RPM-based distros. |
3261 | + * Add backends/packaging_fedora.py: Concrete packaging backend |
3262 | + implementation for Fedora. |
3263 | + * apport/elfcore.py: Classes for parsing general ELF files, and information |
3264 | + from core dumps. |
3265 | + * bin/apport: Fall back to reading signal number and PID directly from the |
3266 | + core file (via elfcore.py) if CORE_SIGNAL and CORE_PID are not defined (i. |
3267 | + e. when running on a non-Ubuntu kernel). |
3268 | + * crashdb.conf: Add stanzas for Fedora and a 'debug' database which uses the |
3269 | + 'memory' crashdb implementation. |
3270 | + |
3271 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 14 Jul 2007 15:08:35 +0200 |
3272 | + |
3273 | +apport (0.90) gutsy; urgency=low |
3274 | + |
3275 | + * apport/ui.py, load_report(): Catch IOError, too. LP: #118827 |
3276 | + * Merge apport-cli package into apport itself. The program itself is just 3 |
3277 | + kB compressed, and it's not worth wasting another 34 kB compressed |
3278 | + changelog for this tiny bit. |
3279 | + * apport/report.py, obsolete_packages(): Use the version comparison from the |
3280 | + packaging system instead of just testing for inequality. This catches zero |
3281 | + epochs. Thanks to Will Woods <wwoods@redhat.com>! |
3282 | + * apport/ui.py: Add option -c/--crash-file to run the UI with a particular |
3283 | + crash file (which can be anywhere) instead of all pending crashes in |
3284 | + /var/crash/. |
3285 | + * Add xdg-mime/apport.xml: XDG MIME type definition for .crash files. |
3286 | + * Add gtk/apport-gtk-mime.desktop.in: Link text/x-apport MIME type to |
3287 | + apport-gtk -c, so that .crash files can be reported with Gnome. |
3288 | + * Add debian/apport.links: Install an icon symlink for the MIME type. |
3289 | + * apport/ui.py: Do not ask the initial "Do you want to report this?" |
3290 | + question when being invoked with --crash-file. |
3291 | + * po/POTFILES.in: Add missing cli/apport-cli. |
3292 | + * po/de.po: Updated for apport-cli. |
3293 | + * cli/apport-cli: Add option for keeping the report file without sending it, |
3294 | + and to display its path. This is for sending the report later, copying |
3295 | + it from a server to a workstation with internet connection, etc. |
3296 | + * apport/crashdb_impl/launchpad.py: Simplify _subscribe_triaging_team(), now |
3297 | + that we do not differ between main and universe policies any more. |
3298 | + * apport/report.py: Support another hook directory |
3299 | + /usr/share/apport/general-hooks/ for scripts which are run for every |
3300 | + problem report. This was requested for adding e. g. AppArmor logs, etc. |
3301 | + Add test cases. |
3302 | + * Add debian/apport.dirs again to ship that hook directory. |
3303 | + * doc/package-hooks.txt: Document the general hooks. |
3304 | + |
3305 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Jul 2007 21:10:19 +0100 |
3306 | + |
3307 | +apport (0.89) gutsy; urgency=low |
3308 | + |
3309 | + Implement private crash bug handling, according to |
3310 | + https://wiki.ubuntu.com/CrashReporting: |
3311 | + |
3312 | + * apport/crashdb_impl/launchpad.py: |
3313 | + - upload(): If we have an Ubuntu bug, mark it as private and only |
3314 | + subscribe 'apport' (the 'Apport retracing service' user). |
3315 | + - Add function _subscribe_triaging_team() which subscribes |
3316 | + ubuntu-crashes-main for source packages in Ubuntu main or restricted, or |
3317 | + ubuntu-crashes-universe for other packages. It does not touch non-Ubuntu |
3318 | + bugs, since these are not marked private by default and are outside of |
3319 | + the scope of this spec. |
3320 | + - update(), _mark_dup_checked(): Call _subscribe_triaging_team(). |
3321 | + - Note: This entire spec is a gross hack, and Ubuntu derivatives do not |
3322 | + benefit from it at all. We have to live with this until LP grows a real |
3323 | + crash database. |
3324 | + - get_distro_release(): Make this function work with private bugs, too, by |
3325 | + using p-lp-bugs' safe_urlopen(). |
3326 | + |
3327 | + Bug fixes: |
3328 | + |
3329 | + * apport/crashdb_impl/launchpad.py: Revert simplification change of 0.85: |
3330 | + BugList returns a set of strings, not integers; due to non-identity they |
3331 | + do not work with the usual set operations. |
3332 | + * apport/crashdb_impl/launchpad.py: Add function get_source_component() to |
3333 | + query Launchpad for the component of a given distribution and source |
3334 | + package. (This will be required for implementing crash-reporting). |
3335 | + * backends/packaging-apt-dpkg.py, _search_contents(): Package list is |
3336 | + actually comma separated, only take the first item. This fixes retracing |
3337 | + of e. g. #124139. |
3338 | + * backends/packaging-apt-dpkg.py, _search_contents(): Fix package name |
3339 | + parsing for non-main components. This fixes retracing of e. g. #124111. |
3340 | + * apport/report.py, _read_maps(): Revert ptrace hack when maps cannot be |
3341 | + read. maps file is now protected based on process ownership, not ptracing. |
3342 | + * apport/crashdb.py, apport/crashdb_impl/launchpad.py, |
3343 | + apport/crashdb_impl/memory.py: Remove official interface |
3344 | + mark_dup_checked(), as it should only be an internally used function. Add |
3345 | + report parameter, since we will need it there in the future. Remove |
3346 | + explicit call from bin/crash-digger and instead change check_duplicate() |
3347 | + to call it on its own. |
3348 | + * apport/crashdb_impl/launchpad.py, download(): Replace dodgy parsing of |
3349 | + fields from the description with proper code, so that multi-line fields |
3350 | + are read correctly, too. |
3351 | + |
3352 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 06 Jul 2007 11:19:22 +0200 |
3353 | + |
3354 | +apport (0.88) gutsy; urgency=low |
3355 | + |
3356 | + * po/de.po: Update. |
3357 | + * backends/packaging-apt-dpkg.py, _search_contents(): Do not check the |
3358 | + return value of zgrep. It usually errors out with 'stdout: broken pipe' |
3359 | + when called with -m1. |
3360 | + * bin/crash-digger: Mark a bug as retraced if DistroRelease: cannot be |
3361 | + determined. Those are bugs apport cannot handle. |
3362 | + * backends/packaging-apt-dpkg.py, get_source_tree(): Call apt-get source |
3363 | + with --assume-yes to not block on VCS confirmations. |
3364 | + * apport/crashdb.py: Add interface mark_retrace_failed(). Implement it in |
3365 | + apport/crashdb_impl/launchpad.py. |
3366 | + * bin/apport-retrace: If retraced report does not have a crash signature, |
3367 | + mark it as failed with above new function. Bump python-apport dependency |
3368 | + for this. |
3369 | + * apport/crashdb_impl/launchpad.py, update(): Delete CoreDump.gz attachment |
3370 | + if the retrace was successful (i. e. if the report has a crash signature). |
3371 | + * apport/ui.py, test_run_crash(): Set the message box title, text, and |
3372 | + severity as assertion message if the run_crash() test fails, so that you |
3373 | + know why it fails. This usually happens if libc6 or another dependency of |
3374 | + the test crash is out of date. |
3375 | + * gtk/apport-gtk.glade: Mark string as translatable. LP: #119621 |
3376 | + |
3377 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 03 Jul 2007 21:38:05 +0200 |
3378 | + |
3379 | +apport (0.87) gutsy; urgency=low |
3380 | + |
3381 | + * apport/report.py: |
3382 | + - test_gen_stacktrace_top(): Add test case for unwinding a Gnome assertion |
3383 | + (g_logv(), g_assert_warning() and similar), see LP #123462. |
3384 | + - _gen_stacktrace_top(): Generalize for unwinding multiple functions and a |
3385 | + set of function names, and add the Gnome assertion ones. |
3386 | + |
3387 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 02 Jul 2007 11:00:44 +0200 |
3388 | + |
3389 | +apport (0.86) gutsy; urgency=low |
3390 | + |
3391 | + * test-apport: Check that apport does not create reports for emtpy core |
3392 | + dumps. |
3393 | + * problem_report.py: Introduce a fourth optional parameter "fail_on_empty" |
3394 | + to file pointer tuples which causes write() to raise an IOError if no data |
3395 | + was read. Add test cases. |
3396 | + * bin/apport: Enforce non-emptyness of CoreDump. |
3397 | + * problem_report.py: Add test case for delayed piping of data passed as file |
3398 | + object pointers. This was supposed to explain the reason for getting bugs |
3399 | + with zero-byte core dumps, but already works correctly. |
3400 | + * apport/report.py, check_ignored(): round the mtime to an int (just like |
3401 | + mark_ignore() does), to not get wrong results on file systems that support |
3402 | + subsecond file timestamps. This fixes running the test suite on the live |
3403 | + CD. |
3404 | + * test-apport: Clarify assertion message if /var/crash is not empty. |
3405 | + |
3406 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 28 Jun 2007 19:14:36 +0200 |
3407 | + |
3408 | +apport (0.85) gutsy; urgency=low |
3409 | + |
3410 | + * apport/crashdb_impl/launchpad.py: BugList.bugs is already a set, simplify |
3411 | + code a bit. |
3412 | + * debian/control: Add dpkg-dev dependency to apport-retrace, for getting |
3413 | + dpkg-source. |
3414 | + * apport/report.py, crash_signature(): Allow ':' and '~' as part of function |
3415 | + names to cover C++. Adapt test case to cover this. |
3416 | + * apport/report.py test suite: Do not assume that /bin/zgrep uses /bin/sh, |
3417 | + it was recently changed to use bash. Directly read the interpreter from |
3418 | + the shebang line. |
3419 | + * bin/apport-chroot, command_upgrade(): Supply -y to 'apt-get upgrade' also |
3420 | + in verbose mode. |
3421 | + * bin/apport-chroot, command_upgrade(): Run 'apt-get clean' before |
3422 | + regenerating the chroot tarball. |
3423 | + * backends/packaging-apt-dpkg.py, get_dependencies(): Fix crash when |
3424 | + encountering a virtual package. LP: #122274 |
3425 | + * apport/report.py, obsolete_packages(): Do not consider virtual packages as |
3426 | + obsolete. |
3427 | + * apport/crashdb_impl/launchpad.py: Do a bogus call to Bug() in the ctor. |
3428 | + This initializes python-launchpad-bugs to use a cookie for the urlopen in |
3429 | + BugList, so that get_unretraced() and get_dup_unchecked() return private |
3430 | + bugs, too. This works around LP #122126. |
3431 | + |
3432 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 25 Jun 2007 16:38:43 +0200 |
3433 | + |
3434 | +apport (0.84) gutsy; urgency=low |
3435 | + |
3436 | + * apport/crashdb.py: Add new abstract methods: |
3437 | + - get_unretraced() and mark_retraced(id) to get a list of crashes that |
3438 | + need to be retraced and chalk them off. |
3439 | + - get_dup_unchecked() and mark_dup_checked() to get a list of crashes that |
3440 | + need to be checked for being a duplicate and chalk them off. This is |
3441 | + aimed at crashes which do not need retracing, such as unhandled Python |
3442 | + exceptions. |
3443 | + * apport/crashdb_impl/launchpad.py: Implement above methods for launchpad |
3444 | + (moving the code from bin/launchpad-crash-digger). |
3445 | + * apport/crashdb_impl/launchpad.py: Set "need-duplicate-check" tag for |
3446 | + Python crashes. |
3447 | + * apport/crashdb_impl/launchpad.py, download(): Fetch Traceback.txt, too, so |
3448 | + that we can do duplicate checking for Python crashes. |
3449 | + * bin/launchpad-crash-digger: Drop Launchpad specific code and replace it |
3450 | + with calls to above new functions. Rename to bin/crash-digger. Also rename |
3451 | + all 'cookie' to 'auth' (as happened with the other applications earlier). |
3452 | + * bin/crash-digger: Do duplicate checking for needs-duplicate-check crash |
3453 | + bugs (such as Python crashes). |
3454 | + * bin/apport-retrace, bin/crash-digger: More language cleanup; we should |
3455 | + stop talking about 'bugs' and use 'crash' consistently. |
3456 | + |
3457 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 14 Jun 2007 19:50:24 +0200 |
3458 | + |
3459 | +apport (0.83) gutsy; urgency=low |
3460 | + |
3461 | + * apport/crashdb.py: Separate abstract from implemented functions. |
3462 | + * apport/crashdb.py, apport/packaging.py, apport/ui.py: Use |
3463 | + NotImplementedError instead of Exception in the abstract methods. |
3464 | + * apport/packaging.py: Add interface compare_versions() for comparing |
3465 | + package version numbers. |
3466 | + * backends/packaging-apt-dpkg.py: Implement compare_versions() using |
3467 | + apt.VersionCompare(), add some test cases. |
3468 | + * apport/report.py: Fix typo: 'none' -> 'None'. |
3469 | + * apport/chroot.py: Do not include /usr/local/lib and /usr/lib in |
3470 | + LD_LIBRARY_PATH, just /lib, so that we still use the libc from outside, |
3471 | + but e. g. libxml2 from inside the chroot. |
3472 | + |
3473 | + https://blueprints.launchpad.net/ubuntu/+spec/apport-crash-duplicates: Merge |
3474 | + crash-dups branch, which implements automatic crash duplicate detection: |
3475 | + |
3476 | + * apport/crashdb.py: Add methods for crash duplicate detection. |
3477 | + * apport/crashdb_impl/memory.py: Change internal data management to track |
3478 | + fixed version and duplicates. |
3479 | + * apport/crashdb_impl/memory.py: Add a test suite for all methods, including |
3480 | + the duplicate detection API of the base CrashDatabase (since it is |
3481 | + much easier to test it here, on an actual implementation). |
3482 | + * debian/pyversions: Bump minimal Python version to 2.5, since this starts |
3483 | + providing the sqlite3 module. |
3484 | + * apport/crashdb_impl/launchpad.py: Implement new methods required for crash |
3485 | + duplicate detection. get_fixed_version() does not approximate version |
3486 | + tracking yet; it just returns '' for fixed bugs (which means 'fixed, but |
3487 | + unknown version'). Bump python-launchpad-bugs dependency for this to |
3488 | + ensure the availability of Bug.mark_duplicate(). |
3489 | + * bin/apport-retrace: Add option --duplicate-db which specifies the path to |
3490 | + the duplicate sqlite database and enables duplicate detection. |
3491 | + * Abin/apport-chroot: Add option --duplicate-db. If a file is given, symlink |
3492 | + it into the chroot and pass --duplicate-db to apport-retrace. |
3493 | + * bin/launchpad-crash-digger: Add --duplicate-db and pass it to |
3494 | + apport-chroot. |
3495 | + * apport/crashdb.py: Track last run of duplicate_db_consolidate() in an |
3496 | + extra table and add a method duplicate_db_needs_consolidation() which |
3497 | + returns True if the last run was more than a given number of seconds ago. |
3498 | + Add test cases to apport/crashdb_impl/memory.py. |
3499 | + * bin/launchpad-crash-digger, fill_pool(): Check whether the duplicate |
3500 | + database needs consolidation (i. e. updating the bug states to the reality |
3501 | + in the bug tracker) and if so, trigger it. |
3502 | + |
3503 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 13 Jun 2007 13:09:57 +0200 |
3504 | + |
3505 | +apport (0.82) gutsy; urgency=low |
3506 | + |
3507 | + * Add bin/ubuntu-fat-chroot: Script to install a set of commonly needed |
3508 | + packages into a minimal Ubuntu chroot (as created by apport-chroot). This |
3509 | + requires some hacking of postinst and /usr/sbin/ files in between the |
3510 | + installation stages and thus deserves a script on its own. |
3511 | + * apport/packaging.py: |
3512 | + - Add "uninstalled" option to get_file_package(). If set to True, this |
3513 | + will do an expensive search of files/packages which are not installed. |
3514 | + - Add interface "set_mirror(URL)" for functions which need to retrieve |
3515 | + packages and data from distribution mirrors. |
3516 | + * backends/packaging-apt-dpkg.py: Implement "uninstalled" option and |
3517 | + "set_mirror(URL)", add test cases. |
3518 | + * bin/apport-retrace: Use "uninstalled" option now to install packages and |
3519 | + corresponding -dbgsyms for uninstalled files mentioned in ProcMaps |
3520 | + (Point 1 of apport-better-retracing spec). Bump python-apport dependency. |
3521 | + * apport/packaging.py: Add interface get_available_version(package). |
3522 | + * backends/packaging-apt-dpkg.py: Implement get_available_version(), add |
3523 | + shallow test case. |
3524 | + * apport/report.py: Add function obsolete_packages() to return packages in |
3525 | + Package: and Depends: which are not up to date. Add test cases. |
3526 | + * apport/ui.py, thread_collect_info(): For crashes, call obsolete_packages() |
3527 | + and set UnreportableReason: if there are any (Point 2 of |
3528 | + apport-better-retracing spec). |
3529 | + * apport/ui.py, thread_collect_info(): call standard_title() and add it to |
3530 | + the report as 'Title' field. This is useful if reporters modify the |
3531 | + default title (per request of Brian Murray, thanks). Add test case. |
3532 | + * apport/ui.py: Fix declaration of the test suite's |
3533 | + ui_set_upload_progress(). Funny that this has never been triggered before. |
3534 | + * apport/report.py, add_gdb_info(): Split out StacktraceTop generation into |
3535 | + separate funtion _gen_stacktrace_top(), so that we can test it separately. |
3536 | + * apport/report.py, _gen_stacktrace_top(): Step back from the crashed |
3537 | + program's own signal handlers, since those are generally not useful for |
3538 | + the purposes of StacktraceTop and only impede duplicate matching |
3539 | + (Point 4 of apport-better-retracing spec). Add various test cases. |
3540 | + * apport/report.py: Add method crash_signature() to calculate an unique |
3541 | + identifier of a signal or Python crash, to be used for duplicate |
3542 | + detection. Add various test cases. |
3543 | + * apport/packaging.py: Add interface get_source_tree() to fetch and unpack a |
3544 | + source package to a given directory, optionally specifying a particular |
3545 | + version. |
3546 | + * backends/packaging-apt-dpkg.py: Implement get_source_tree(). This has a |
3547 | + rather crude 'call apt-get source and guess about directories' |
3548 | + implementation until python-apt learns about doing this directly and more |
3549 | + elegantly (see LP #118788). |
3550 | + * bin/apport-retrace: Add gen_source_stacktrace() and a few helper functions |
3551 | + to construct a field 'StacktraceSource' with the source code around the |
3552 | + affected lines in the stack trace (as available). (Point 5 of |
3553 | + apport-better-retracing spec). |
3554 | + * apport/crashdb_impl/launchpad.py, update(): Attach StacktraceSource to the |
3555 | + bug if it exists. |
3556 | + * apport/crashdb_impl/launchpad.py: Check PackageArchitecture for 'all', to |
3557 | + not set a retracer tag 'need-all-retrace'. |
3558 | + * test-apport: Clarify assertion failure message when an unexpected core |
3559 | + dump is present. |
3560 | + * apport/report.py, get_module_license(): Do not iterate over Popen.stdout, |
3561 | + use communicate() instead. The latter is already fixed to not trip over |
3562 | + SIGINTR. (LP: #118965) |
3563 | + |
3564 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 08 Jun 2007 07:47:04 +0200 |
3565 | + |
3566 | +apport (0.81) gutsy; urgency=low |
3567 | + |
3568 | + * apport/report.py: Remove '[apport]' default bug title prefix. (LP: #94819) |
3569 | + * apport/crashdb_impl/launchpad.py: Tag new bugs with |
3570 | + 'apport-<problemtype>'. This replaces the former '[apport]' prefixing. |
3571 | + * debian/local/setup-apport-retracer: Specify a path in '.' command and |
3572 | + use sh again. Yay for me needing three attempts before actually RTFMing |
3573 | + how '.' works (which is really nasty and strange IMHO). |
3574 | + * bin/apport-chroot: Fix symlinks before repackaging the chroot tarball in |
3575 | + 'install' and 'installdeb' modes. |
3576 | + * debian/local/setup-apport-retracer: Install python-libxml2 and python-apt. |
3577 | + * bin/launchpad-crash-digger: Supply --auth instead of the deprecated |
3578 | + --cookie to apport-chroot. |
3579 | + * bin/apport-chroot: Fix identifier name in command_retrace(). |
3580 | + * debian/local/setup-apport-retracer: Set APPORT_CRASHDB_CONF to the local |
3581 | + crashdb.conf. |
3582 | + * bin/apport-chroot: Unset APPORT_CRASHDB_CONF for login and retrace. |
3583 | + * bin/launchpad-crash-digger: Check the release of a bug and whether we have |
3584 | + a chroot for it before untagging it. This avoids loosing tags for bugs we |
3585 | + do not yet have a working retracer chroot for. |
3586 | + * bin/apport-retrace: Do not abort with an exception if package installation |
3587 | + fails. Give a proper error message instead and point to -u. (LP: #115681) |
3588 | + * apport/crashdb_impl/launchpad.py, update(): Create a temporary directory |
3589 | + and use proper file names for the new attachments. With TemporaryFile(), |
3590 | + attachment file names ended up as '<fdopen>'. (LP: #115347) |
3591 | + * apport/report.py, add_os_info(): Add field 'NonfreeKernelModules' which |
3592 | + lists loaded kernel modules which do not have a FOSS license. This is |
3593 | + particularly helpful for quickly checking for restricted graphics drivers. |
3594 | + (LP: #103239) |
3595 | + * apport_python_hook.py: Move the apport.* imports into the try: block and |
3596 | + move the likely_packaged() test to the top, to avoid importing |
3597 | + apport.report and creating a Report object for non-packaged scripts. This |
3598 | + makes the entire code more efficient and robust against errors in the |
3599 | + apport modules. (LP: #109955) |
3600 | + * apport/report.py, add_gdb_info(): Intercept OSError from gdb invocation |
3601 | + (which might be segfaulting itself) and just do not put any gdb output |
3602 | + into the report. The automatic retracers can try their luck again. |
3603 | + (LP: #112501) |
3604 | + * bin/apport-retrace: Fix handling of packages which are still known to |
3605 | + /var/lib/dpkg/status, but do not have an apt record any more; treat them |
3606 | + like virtual packages and just issue a warning instead of falling over. |
3607 | + (LP: #107474) |
3608 | + * Add doc/data-format.tex: Documentation of the structure, encoding, and |
3609 | + standard keys of the Apport report file format. [apport-for-upstreams |
3610 | + blueprint] |
3611 | + * Add doc/Makefile: Build and clean rules for generating data-format.pdf. |
3612 | + * debian/rules, setup.py: Call doc/Makefile and install the PDF |
3613 | + documentation. Add texlive-latex-recommended build dependency for that. |
3614 | + |
3615 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 24 May 2007 19:39:12 +0200 |
3616 | + |
3617 | +apport (0.80) gutsy; urgency=low |
3618 | + |
3619 | + Collect all Launchpad specific bits in a separate class and provide an |
3620 | + abstract base class. This will greatly help for getting upstream acceptance |
3621 | + and the possibility of automatically forwarding crashes upstream |
3622 | + (apport-for-upstreams specification): |
3623 | + |
3624 | + * Add apport/crashdb.py: Abstract crash database interface. This also offers |
3625 | + a factory function get_crashdb() which reads a configuration file to find |
3626 | + the default crash database to be used. |
3627 | + * Add ./crashdb.conf: Crash database configuration file, for Ubuntu on |
3628 | + Launchpad. Modify setup.py and debian/python-apport.install to ship it in |
3629 | + python-apport. |
3630 | + * Add apport/crashdb_impl/memory.py: Simple in-memory implementation of |
3631 | + crash database interface for testing. |
3632 | + * Add apport/crashdb_impl/launchpad.py: Launchpad implementation of crash |
3633 | + database interface. |
3634 | + * apport/ui.py: Drop LP specific bits and move towards new CrashDatabase |
3635 | + interface. |
3636 | + * apport/ui.py, test suite: Do not overwrite file_report() any more, but |
3637 | + use the memory CrashDatabase. This will test the actual file_report() |
3638 | + implementation and allows the test suite to check the precise value of |
3639 | + opened URLs. |
3640 | + * apport/{report,ui}.py: Move UserInterface.create_crash_bug_title() and its |
3641 | + test cases to Report.standard_title(). It is much more appropriate there |
3642 | + and can be used in the retracer as well. |
3643 | + * bin/apport-retrace: Drop LP specific bits and move to CrashDatabase |
3644 | + interface. Remove the --remove-tag option, we really should not have it |
3645 | + here; remove it from man/apport-retrace.1 as well. |
3646 | + * bin/apport-chroot: Drop --remove-tag option here, too. |
3647 | + * bin/apport-chroot: Drop LP specific bits and move to CrashDatabase |
3648 | + interface. |
3649 | + * bin/launchpad-crash-digger: Remove retracing tag directly instead of |
3650 | + passing --remove-tag to apport-chroot. This is a much cleaner design and |
3651 | + avoids infinitely looping on some weirdly failing retraces. |
3652 | + * debian/control: Bump some python-apport dependencies for the API changes. |
3653 | + |
3654 | + Some debranding: |
3655 | + |
3656 | + * setup.py: Use apport wiki home page for 'url'. |
3657 | + * Remove 'X-Ubuntu-Gettext-Domain' from *.desktop.in, since langpack.mk will |
3658 | + add it automatically now. |
3659 | + * *.desktop.in: Remove 'in Ubuntu' from comment. |
3660 | + * cli/apport-cli, qt4/apport-qt: Generalize window titles. |
3661 | + |
3662 | + Other fixes: |
3663 | + * po/de.po: Update. |
3664 | + * debian/local/setup-apport-retracer: Revert back 'source' to '.' and use |
3665 | + bash instead of sh. POSIX sh does not seem to have a 'source' command. |
3666 | + |
3667 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 21 May 2007 19:25:31 +0200 |
3668 | + |
3669 | +apport (0.79) gutsy; urgency=low |
3670 | + |
3671 | + * debian/local/setup-apport-retracer: Fix '.' bashism, replace it with |
3672 | + 'source'. |
3673 | + * problem_report.py, write_mime(): Drop preamble argument, replace it with |
3674 | + an extra_headers dictionary. This is much easier to evaluate on clients. |
3675 | + * apport/ui.py: Convert to new write_mime() interface from above. This |
3676 | + finally automatically tags bugs with need-$ARCH-retrace. Bump |
3677 | + p-problem-report dependency of python-apport for this. |
3678 | + * apport/report.py: Change example URLs in the testsuite from launchpad to |
3679 | + an artificial ones to avoid the impression that it is LP specific. |
3680 | + * backends/packaging-apt-dpkg.py: Formally make this a subclass of |
3681 | + apport.packaging.PackageInfo. |
3682 | + * debian/control: Use code.lp.net instead of bazaar.lp.net VCS URL. |
3683 | + * bin/kernel_hook: Fix/improve the collected information: |
3684 | + - Read /proc/modules instead of lsmod. |
3685 | + - Fix lspci argument: -n instead of -m. |
3686 | + - Add /proc/cmdline. |
3687 | + * debian/rules: Use langpack.mk for updating the .desktop files. |
3688 | + * Add po/Makevars to specify the domain, to make intltool figure out the |
3689 | + gettext domain automatically. |
3690 | + * bin/kernel_hook, ./test-hooks: Do not rely on /proc/version_signature any |
3691 | + more, it's gone in the gutsy kernel. |
3692 | + |
3693 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 21 May 2007 15:55:10 +0200 |
3694 | + |
3695 | +apport (0.78) gutsy; urgency=low |
3696 | + |
3697 | + * apport/packaging.py, backends/packaging-dpkg.py: Add new interface |
3698 | + is_distro_package(package) which verifies the origin of a given package. |
3699 | + Move the dodgy hack from apport/ui.py to the backend, where it belongs to. |
3700 | + Also add a test case. |
3701 | + * debian/control: Add python-apt dependency to python-apport. |
3702 | + * debian/control: Remove debianutils dependency, it's essential. |
3703 | + * Drop backends/packaging-dpkg.py. It had some hackish usage of python-apt |
3704 | + anyway, since some things just cannot be figured out with dpkg alone. |
3705 | + Since we have to give up on that idea, implement a new clean packaging |
3706 | + backend 'packaging-apt-dpkg.py' which now uses python-apt and dpkg in a |
3707 | + clean way. |
3708 | + * apport/report.py, add_gdb_info(): Fix crash when Stacktrace could not be |
3709 | + created. (LP: #107853) |
3710 | + * ./test-apport: Check that crashes create a core dump (with proper ulimits) |
3711 | + when an unseen crash report exists already. This reproduces LP #105976. |
3712 | + * bin/apport: Create core dump file if aborting because an unseen crash |
3713 | + report already exists. (LP: #105976) |
3714 | + * apport/ui.py: Add a comment for translators. (LP: #104703) |
3715 | + * apport/ui.py, load_report(): Also catch zlib.error on invalid reports. |
3716 | + (LP: #103547) |
3717 | + * apport/report.py: Add method has_useful_stacktrace() to determine whether |
3718 | + the stack trace can be considered useful. The current heuristic is to |
3719 | + consider it useless if it either is shorter than three lines and has any |
3720 | + unknown function, or for longer traces, a minority of known functions. Add |
3721 | + test cases. |
3722 | + * gtk/apport-gtk, qt4/apport-qt, cli/apport-cli: Do not offer 'reduced |
3723 | + report' option if the stack trace is useless. (LP: #87430) Bump the |
3724 | + python-apport dependencies of the frontend packages to ensure that we have |
3725 | + has_useful_stacktrace(). |
3726 | + |
3727 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 5 May 2007 17:53:42 +0200 |
3728 | + |
3729 | +apport (0.77) gutsy; urgency=low |
3730 | + |
3731 | + * apport/report.py: Replace any() call with a list comprehension to work |
3732 | + with Python < 2.5. (LP: #104864) |
3733 | + * apport/report.py: Move the ctypes import to the one place where we |
3734 | + actually need it, and do not entirely fail if they do not exist (such as |
3735 | + in Python 2.4). It is only required for non-default Feisty kernels anyway. |
3736 | + (LP: #107662) |
3737 | + * apport/chroot.py: Fix test suite to work with Python 2.4's tarfile module |
3738 | + output format. |
3739 | + * debian/local/setup-apport-retracer: Generalized some feisty specific |
3740 | + bits, set default release to gutsy. |
3741 | + |
3742 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 23 Apr 2007 12:22:17 +0200 |
3743 | + |
3744 | +apport (0.76) feisty; urgency=low |
3745 | + |
3746 | + * Move python_hook.py out of the apport module to apport_python_hook.py, so |
3747 | + that it does not inflict the expensive import of all apport related |
3748 | + modules to every python program. Adapt module prefixes accordingly. |
3749 | + (LP: #105764) |
3750 | + * setup.py, debian/python-apport.install: Install apport_python_hook.py into |
3751 | + the python-apport binary package. |
3752 | + * apport/ui.py test suite: Unset locale related environment variables so |
3753 | + that the tests which check strings are not invalidated by translations. |
3754 | + |
3755 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 12 Apr 2007 11:47:50 +0200 |
3756 | + |
3757 | +apport (0.75) feisty; urgency=low |
3758 | + |
3759 | + * apport/report.py, add_proc_info(): Chop off /rofs/ prefix from |
3760 | + ExecutablePath, so that crashes work on the live system, too. Arguably a |
3761 | + kernel bug, but probably too hard to fix at this time. (LP: #102909) |
3762 | + * backends/packaging-dpkg.py, get_modified_files(): Ignore empty lines in |
3763 | + broken .md5sums file rather than crashing on them. (LP: #102906) |
3764 | + |
3765 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 4 Apr 2007 21:51:28 +0200 |
3766 | + |
3767 | +apport (0.74) feisty; urgency=low |
3768 | + |
3769 | + * debian/apport-{gtk,qt}.install: Do not install .desktop files for now, |
3770 | + until we get a proper guided bug reporting. |
3771 | + * problem_report.py, write_mime(): Do not re-compress keys which already end |
3772 | + in .gz. Add test cases. |
3773 | + * test-hooks: Add a (dodgy) test case for calling package_hook on an |
3774 | + uninstalled package. After all, this is very likely to happen for |
3775 | + installation errors. This reproduces #97636. |
3776 | + * backends/packaging-dpkg.py, get_source(): Add a similarly dodgy fallback |
3777 | + to apt if the queried package is not installed. This needs to be |
3778 | + generalized and cleaned up later, but now is the time for unintrusive |
3779 | + small patches. (LP: #97636) |
3780 | + * test-apport: Do not fail on non-empty gdb stderr if it only consists of a |
3781 | + single warning (as happens on powerpc). |
3782 | + * apport/report.py, test_check_interpreted(): Run gedit test on an actually |
3783 | + existing file, reproducing the interpreter confusion reported in #102056. |
3784 | + * apport/report.py, _check_interpreted(): Add a whitelist of common |
3785 | + interpreters and check ExecutablePath against it. (LP: #102056) |
3786 | + * apport/ui.py: Ignore SystemError exceptions from apt, which happen on |
3787 | + badly formatted source.list entries. (LP: #98901) |
3788 | + * apport/ui.py: Fix crash on None candiateOrigin from the apt cache object. |
3789 | + (LP: #98961) |
3790 | + * gtk/apport-gtk.glade: Add window titles to progress and details dialogs. |
3791 | + (LP: #97640) |
3792 | + |
3793 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 4 Apr 2007 14:44:08 +0200 |
3794 | + |
3795 | +apport (0.73) feisty; urgency=low |
3796 | + |
3797 | + * problem_report.py, write(): Allow a third optional argument in tuple |
3798 | + values, which specify a maximum file size. Above it, the entire key gets |
3799 | + removed. Add testsuite checks for all boundary cases. |
3800 | + * bin/apport: Limit core dump size to 75% of usable RAM |
3801 | + (MemFree+Cached-Writeback). This should avoid trashing people's boxes hard |
3802 | + on huge core dumps. Bump dependencies on python-problem-report. Create an |
3803 | + expensive, but realistic check for this in test-apport. |
3804 | + (LP: #71560) |
3805 | + * apport/ui.py, run_crash(): If a signal crash report does not have a core |
3806 | + dump, explain that the computer has too little memory for an automatic |
3807 | + analysis/report of the crash. Add test suite check. |
3808 | + |
3809 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 29 Mar 2007 23:38:23 +0200 |
3810 | + |
3811 | +apport (0.72) feisty; urgency=low |
3812 | + |
3813 | + [ Martin Pitt ] |
3814 | + * bin/apport-chroot, command_create(): Install gpgv. |
3815 | + * bin/apport-retrace: Fix error handling in fetch_unpack(). |
3816 | + * Move apport-retrace.1 manpage from package apport to apport-retrace. Bump |
3817 | + Conflicts/Replaces accordingly. |
3818 | + * bin/launchpad-crash-digger, apport/ui.py: Remove the special case |
3819 | + 'powerpc'->'ppc' and use need-powerpc-retrace uniformly. |
3820 | + * debian/control: Add XS-Vcs-Bzr: header. |
3821 | + * apport/ui.py: Fix wrong parameter name in help message. |
3822 | + * Another grammar fix, thanks to Brian Murray! |
3823 | + |
3824 | + [ Michael Hofmann ] |
3825 | + * debian/local/ubuntu-bug: Try to use apport-cli, if we do not have a |
3826 | + $DISPLAY, or neither Gnome nor KDE are running. |
3827 | + * debian/control: Recommend elinks, since it is the only text browser so far |
3828 | + that works with Launchpad (see #59510) |
3829 | + * Add debian/apport-cli.README.Debian: Describe how to integrate |
3830 | + apport-checkreports and apport-cli into .bashrc for crash notification on |
3831 | + servers. |
3832 | + * qt4/apport-qt: Fix undefined symbol in ui_present_package_error(). |
3833 | + (LP: #97282) |
3834 | + |
3835 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 29 Mar 2007 11:41:39 +0200 |
3836 | + |
3837 | +apport (0.71) feisty; urgency=low |
3838 | + |
3839 | + * cli/apport-cli, qt4/apport-qt: Fix bad grammar 'some minutes'. |
3840 | + (LP: #95296) |
3841 | + * problem_report.py, write_mime(): Add optional 'preamble' parameter. Add |
3842 | + test case. |
3843 | + * apport/ui.py, upload_launchpad_blob(): Set need-$ARCH-retrace tag in MIME |
3844 | + preamble. Bump p-problem-report dependency. (LP: #94790) |
3845 | + * bin/apport-retrace: In verbose mode, display the path of currently |
3846 | + extracting deb. |
3847 | + * bin/apport-retrace: Do not fall over errors of dpkg -x (which happens e. |
3848 | + g. on udev, where it cannot unpack /dev, since this is a symlink to the |
3849 | + real /dev). Merely print out a warning about it. |
3850 | + * apport/ui.py, run_report_bug(): Ignore ENOENT from add_proc_info(). This |
3851 | + happens if the user closes the application prematurely, so that /proc/pid |
3852 | + does not exist any more. Add test case. (LP: #95954) |
3853 | + * backends/packaging-dpkg.py, get_modified_files(): Ignore lines in .md5sums |
3854 | + files which contain a NUL byte. This Should Not Happen™, but nevertheless |
3855 | + did. (LP: #96050) |
3856 | + * apport/ui.py, doc/package-hooks.txt: Check for a field |
3857 | + "UnreportableReason: <text>" and display an information box that the |
3858 | + current crash cannot be reported because of <text>. Add test case. |
3859 | + Document the new field. |
3860 | + * apport/ui.py: Check package origin, compare it to DistroRelease:, and |
3861 | + report crash as unreportable if they do not match. This particularly saves |
3862 | + the user from uploading large reports for e. g. opera crashes, and avoids |
3863 | + filing Ubuntu bugs from Debian installations. (LP: #75513) |
3864 | + |
3865 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 26 Mar 2007 18:01:24 +0200 |
3866 | + |
3867 | +apport (0.70) feisty; urgency=low |
3868 | + |
3869 | + [ Martin Pitt ] |
3870 | + * bin/apport-retrace: Add option --remove-tag to remove a Launchpad bug |
3871 | + tag. This is intended for an automatic Malone crash retracing system. |
3872 | + * debian/control: Bump python-launchpad-bugs dependency to ensure that we |
3873 | + have Bug.[gs]et_metadata(). |
3874 | + * man/apport-retrace.1: Add documentation for --confirm and --remove-tag. |
3875 | + * bin/apport-chroot: Add option --remove-tag and pass it to apport-retrace. |
3876 | + * apport/chroot.py, fix_symlinks(): Convert chroot path prefixed absolute |
3877 | + symlinks to relative symlinks to avoid fakechroot's weird handling of |
3878 | + absolute symlinks. |
3879 | + * Add bin/launchpad-crash-digger: Daemon for watching out for |
3880 | + need-$ARCH-retrace tagged Ubuntu bugs in Launchpad and calling |
3881 | + apport-retrace on them. |
3882 | + * bin/apport-retrace: Mangle bug comment with StacktraceTop to not contain |
3883 | + invalid UTF-8, to avoid getting Internal Server Errors from LP. |
3884 | + * debian/local/setup-apport-retracer: Install libc6-i686{,-dbgsym} into an |
3885 | + x86 chroot, to get sane x86 backtraces for crashes in libc. |
3886 | + * debian/local/setup-apport-retracer: |
3887 | + - Unpack and install python-launchpad-bugs locally if the package is not |
3888 | + installed. |
3889 | + - Link launchpad-crash-digger into the retracer's bin/ dir. |
3890 | + * run-tests: Run tests with python's -tt flag to catch whitespace errors. |
3891 | + * Replace tabs with spaces in all Python files. (LP: #93561) |
3892 | + * Remove trailing white space in all Python files. |
3893 | + * apport/report.py, add_proc_info(): Do not regard symlinks to executables |
3894 | + as interpreted scripts any more (such as Debian alternatives). Add test |
3895 | + case. (LP: #94732) |
3896 | + * problem_report.py: Add new method get_new() which returns a set of all |
3897 | + keys which have been added since load() or construction. Add test cases. |
3898 | + * problem_report.py: Add optional parameter only_new to write(), which |
3899 | + writes only the get_new() keys. Add test case. |
3900 | + * apport/ui.py: Remember currently processed report file and update it with |
3901 | + the added information, so that it becomes useful for local evaluation, |
3902 | + too. Bump python-problem-report dependency to ensure write()'s only_new |
3903 | + availability. (LP: #94678) |
3904 | + * apport-chroot: Add forgotten sys.exit(1) after printing the error message |
3905 | + about an invalid chroot specification. |
3906 | + * apport/ui.py, run_crash(): Check for a field "UnsupportableReason: <text>" |
3907 | + and display an information box that the current configuration cannot be |
3908 | + supported because of <text>, instead of processing and reporting the |
3909 | + crash. Add test case for this workflow. With special regards to our |
3910 | + Firefox crash triagers who want to get rid of the hundreds of |
3911 | + flash-related crashes. :) |
3912 | + * apport/report.py, add_hooks_info(): Use execfile() instead of |
3913 | + __import__(), since package names might conflict with module names already |
3914 | + imported into apport's namespace. Also search for hook named after the |
3915 | + source package name (prefixed with 'source_'). Add test cases. |
3916 | + * bin/apport-chroot: When specifying --save for login, only save the tarball |
3917 | + if the exit status is 0. |
3918 | + * bin/apport-chroot, create: Install /usr/sbin/policy-rc.d to disable init |
3919 | + scripts. |
3920 | + * bin/apport-chroot: Fixed command function selection to not abort with |
3921 | + 'unknown command' if the DistroRelease: was unknown. |
3922 | + * bin/apport-retrace: Replace --no-purge with --no-dpkg. With this option, |
3923 | + do not call dpkg --unpack any more, but dpkg -x, to avoid any fchmod() and |
3924 | + other calls which cause problems in fakechroots. |
3925 | + * bin/apport-retrace: Fix ordering of version numbers in warning message. |
3926 | + * doc/package-hooks.txt: Add some examples, document source package hook. |
3927 | + |
3928 | + [ Kees Cook ] |
3929 | + * apport/report.py, add_proc_info(): If reading /proc/pid/maps fails, |
3930 | + ptrace() the target process to make it readable (proposed security |
3931 | + improvement in future kernels). |
3932 | + * bin/apport-retrace: Fix crash for packages unknown to the apt cache. |
3933 | + * apport/report.py, add_gdb_info(): Limit maximum backtrace depth to 2000 to |
3934 | + avoid infinitely looped stacks and gdb crashes. (LP: #94455) |
3935 | + This also caps the maximum size of information that we add to reports. |
3936 | + (LP: #92653) |
3937 | + * bin/apport-retrace: Add option -R/--rebuild-package-info, so that |
3938 | + apport-retrace works on unprocessed crash dumps in /var/crash. |
3939 | + * Some grammar corrections. |
3940 | + * Add package-hooks/source_apport.py: Package hook for apport itself. |
3941 | + Include /var/log/apport.log and the status of files in /var/crash. |
3942 | + |
3943 | + [ Michael Hofmann ] |
3944 | + * Add cli/apport-cli, setup.py, debian/apport-cli.install, debian/control: |
3945 | + Add command line user interface. |
3946 | + * apport/ui.py, format_filesize(): Use MiB and GiB instead of MB and GB; |
3947 | + these are the official units. Adapt test cases. |
3948 | + * apport/ui.py, collect_info()/file_report(): Do not raise an exception on |
3949 | + KeyboardInterrupt in the subthreads. |
3950 | + * apport/ui.py, open_url(): Do not use gtk.MessageDialog(), but |
3951 | + ui_error_message(), and fix error passing so that the message is |
3952 | + displayed in the parent thread. |
3953 | + * apport/ui.py, open_url(): Check that $DISPLAY is set before considering |
3954 | + the KDE/Gnome web browsers. |
3955 | + |
3956 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 26 Mar 2007 09:41:03 +0200 |
3957 | + |
3958 | +apport (0.69) feisty; urgency=low |
3959 | + |
3960 | + * apport-chroot: Add command 'installdeb' to conveniently install a bunch of |
3961 | + .debs into a chroot. |
3962 | + * apport-chroot: Fix 'login' and 'upgrade' commands to not require |
3963 | + specifying a chroot map when giving a chroot tarball path as argument. |
3964 | + * test-apport: Check that core dumps are written for packaged programs as |
3965 | + well, if ulimits want them. (Test for #92029) |
3966 | + * bin/apport: Call write_user_coredump() for packaged program crashes and |
3967 | + SIGABRT as well. (LP: #92029) |
3968 | + |
3969 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 19 Mar 2007 17:37:23 +0100 |
3970 | + |
3971 | +apport (0.68) feisty; urgency=low |
3972 | + |
3973 | + [ Michael Hofmann ] |
3974 | + * qt4/apport-qt: Fix taskbar entry, remove an unused method. |
3975 | + * qt4/error.ui: Fix icon spacing. |
3976 | + |
3977 | + [ Martin Pitt ] |
3978 | + * apport-retrace: Add option --confirm to display the retraced stack traces |
3979 | + and ask for confirmation before uploading them as LP bug attachments. |
3980 | + (LP: #91878) |
3981 | + * apport-chroot: Add option --confirm-attach; if given, call apport-retrace |
3982 | + with --confirm. |
3983 | + |
3984 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 15 Mar 2007 00:05:18 +0100 |
3985 | + |
3986 | +apport (0.67) feisty; urgency=low |
3987 | + |
3988 | + * debian/local/setup-apport-retracer: Add apt sources for restricted, |
3989 | + universe, and multiverse, too. |
3990 | + * po/de.po: Update from Rosetta. |
3991 | + * apport/report.py: Remove undefined call to error_log() in |
3992 | + _command_output(), replace it with raising proper exceptions. |
3993 | + * bin/apport-retrace: Fix 'numer' typo. (LP: #91680) |
3994 | + * test-apport: Check that non-packaged executables generate a core dump on |
3995 | + SIGABRT, too (test case for bug #92029). |
3996 | + * bin/apport: Move check for ignoring SIGABRT below the core dump file |
3997 | + writing for non-packaged binaries. (LP: #92029) |
3998 | + * gtk/apport-gtk.glade: |
3999 | + - Remove titles from the progress windows to comply with Gnome HIG and not |
4000 | + repeat the text content. |
4001 | + - Improve wording a bit. |
4002 | + - LP: #92114 |
4003 | + * gtk/apport-gtk{,.glade}: Fix signal handler name of the Cancel button in |
4004 | + the upload progress dialog, so that it actually works. (LP: #92115) |
4005 | + |
4006 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 14 Mar 2007 17:34:57 +0100 |
4007 | + |
4008 | +apport (0.66) feisty; urgency=low |
4009 | + |
4010 | + * Remove apport/MultipartPostHandler.py, this functionality moved to |
4011 | + python-launchpad-bugs now. Add a dependency to that package. |
4012 | + * apport/ui.py, upload_launchpad_blob(): Use the shiny new |
4013 | + launchpadBugs.storeblob.upload(). |
4014 | + * bin/apport-retrace: Attach retraced stack traces back to the Launchpad bug |
4015 | + report if no other output option is given (This corresponds to the |
4016 | + in-place editing when a report file is specified). Add option --cookie to |
4017 | + specify a Mozilla-style cookie file for the necessary Launchpad |
4018 | + authentication. |
4019 | + * man/apport-retrace.1: Document above apport-retrace changes. |
4020 | + * bin/apport-chroot: Add --cookie option: temporarily symlink cookie into |
4021 | + the chroot and pass it to apport-retrace in retrace mode. |
4022 | + |
4023 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 10 Mar 2007 15:01:57 +0100 |
4024 | + |
4025 | +apport (0.65) feisty; urgency=low |
4026 | + |
4027 | + * debian/local/setup-apport-retracer: |
4028 | + - Replace grep-dctrl with grep call, since grep-dctrl is not installed in |
4029 | + all the DC chroots. |
4030 | + - Do not download apport source from archive.u.c., instead require that |
4031 | + this script lives in the unpacked apport source tree. |
4032 | + * bin/apport-chroot: Use apt-get options -y and --allow-unauthenticated when |
4033 | + installing additional packages. |
4034 | + * bin/apport-chroot: Handle --extra-package for 'upgrade', too, to provide a |
4035 | + simple way of adding a package to an existing chroot tarball. |
4036 | + * debian/local/setup-apport-retracer: Create tarball chroots by default. |
4037 | + It only imposes a negligible overhead, and sharing unpacked directories |
4038 | + with multiple people is just too brittle. |
4039 | + * bin/apport-retrace: Add option --no-purge to not purge unpacked packages |
4040 | + after retracing. This is (only) useful with temporarily unpacked chroots, |
4041 | + since it's only a waste of time there. |
4042 | + * bin/apport-chroot: Call apport-retrace with --no-purge when retracing in a |
4043 | + chroot tarball. |
4044 | + * apport/chroot.py: Add fix_symlinks() method to remove the chroot root |
4045 | + directory prefix from symbolic links; they prevent function of tarball |
4046 | + chroots and moving around directory chroots. Add test case. |
4047 | + * bin/apport: Fix symlinks after creating and upgrading a chroot. |
4048 | + * bin/apport-chroot: Add option --save to update a tarball after logging |
4049 | + in to it. |
4050 | + |
4051 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 10 Mar 2007 21:21:25 +0100 |
4052 | + |
4053 | +apport (0.64) feisty; urgency=low |
4054 | + |
4055 | + * bin/apport-chroot: Add 'login' command. |
4056 | + * bin/apport-chroot: Install apport-retrace into a newly created chroot. |
4057 | + * Add debian/local/setup-apport-retracer: Script to install local versions |
4058 | + of apport, debootstrap, fake{,ch}root libraries, and a feisty apport |
4059 | + fakechroot. This works OOTB on ronne's amd64 and i386 feisty chroots. The |
4060 | + script is not shipped in any package yet, but it's convenient to ship it |
4061 | + in revision control and in the source. |
4062 | + * apport/report.py, _check_interpreted(): When calling an interpreter with a |
4063 | + script name as argument, set ExecutablePath to the script instead of the |
4064 | + interpreter. Add test case. (LP: #88794) |
4065 | + * apport/report.py, search_bug_patterns(): Catch all exceptions from |
4066 | + urlopen(), not just IOError. Sometimes this fails with funnier errors. |
4067 | + (LP: #89589) |
4068 | + * bin/apport-retrace: Give some additional explanation when installing |
4069 | + packages fails. (LP: #89916) |
4070 | + * apport/fileutils.py, get_all_{system_,}reports(): Fix file access race |
4071 | + condition. (LP: #89977) |
4072 | + * bin/apport-retrace: Add option -p/--extra-package to install an additional |
4073 | + package for retracing. May be specified multiple times. Document new |
4074 | + option in man/apport-retrace.1. (LP: #90077) |
4075 | + * bin/apport-chroot: Add a similar option -p/--extra-package and install |
4076 | + those in the 'create' command and simply pass it to apport-retrace in the |
4077 | + 'retrace' command. (LP: #90077) |
4078 | + * bin/apport-chroot: Add a -v/--verbose option. |
4079 | + * bin/apport-retrace: Do not complain about missing ddebs for Arch: all |
4080 | + packages. |
4081 | + |
4082 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 6 Mar 2007 16:20:41 +0100 |
4083 | + |
4084 | +apport (0.63) feisty; urgency=low |
4085 | + |
4086 | + New feature: fakechroot support for apport-retrace |
4087 | + |
4088 | + * bin/apport-retrace: |
4089 | + - Simplify program design and throw away the complicated debug symbol |
4090 | + sandbox generation, along with the -d and -C options. Instead, directly |
4091 | + install the missing packages and ddebs with apt. This makes the tool more |
4092 | + suitable for running in chroots and has often been requested anyway. |
4093 | + - Add option -u/--unpack-only which causes additionally installed packages |
4094 | + to be unpacked without being configured and purged again after |
4095 | + retracing. This allows apport-retrace to work under fakechroot and has |
4096 | + the nice side effect of speeding up package installation (we do not care |
4097 | + about configuration for retracing anyway). |
4098 | + * man/apport-retrace.1: Update description for the new behaviour, drop |
4099 | + documentation of the -d and -C options, and add documentation of -u. |
4100 | + * Add apport/chroot.py: Class for representing and working with chroots; |
4101 | + this uses the fakeroot and fakechroot libraries when being called as |
4102 | + non-root. |
4103 | + * Add bin/apport-chroot: CLI frontend for doing various things with |
4104 | + chroots (including fakeroot/fakechroot support from the Chroot class). For |
4105 | + now, this implements: |
4106 | + - create a chroot (tarball or directory) |
4107 | + - dist-upgrade a particular or all chroots |
4108 | + - apport-retrace a bug or Apport report file |
4109 | + * setup.py: Ship apport-chroot in scripts directory. |
4110 | + * Add a new package apport-retrace which ships apport-retrace and |
4111 | + apport-chroot and carries all the heavier dependencies (binutils, |
4112 | + python-launchpad-bugs, python-apt, etc.). Drop the latter two dependencies |
4113 | + from the apport package. This allows us to install the apport-retrace |
4114 | + package in fakechroots (not possible with apport itself) and avoid |
4115 | + unnecessary dependencies on normal desktop installations. |
4116 | + |
4117 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 5 Mar 2007 11:20:36 +0100 |
4118 | + |
4119 | +apport (0.62) feisty; urgency=low |
4120 | + |
4121 | + * apport/ui.py, collect_info(): Use REThread instead of Thread and raise |
4122 | + exceptions from it, so that errors during info collection actually become |
4123 | + visible. |
4124 | + * apport/report.py, add_proc_info(): Check that ExecutablePath actually |
4125 | + exists, so that invalid values from transient error conditions are ignored |
4126 | + (such as '/usr/bin/gnome-panel\x00\x00\x8b (deleted)'). |
4127 | + * apport/packaging.py: Add interface get_system_architecture() to return the |
4128 | + system architecture in the distro specific notation. This can differ from |
4129 | + get_architecture(package) on multiarch platforms such as amd64. |
4130 | + * backends/packaging-dpkg.py: Implement get_system_architecture() to return |
4131 | + dpkg --print-architecture, add a shallow test case. |
4132 | + * apport/report.py, add_package_info(): Rename key 'Architecture:' to |
4133 | + 'PackageArchitecture:' for clarity. |
4134 | + * apport/report.py, add_os_info(): Add system architecture as |
4135 | + 'Architecture:' field. |
4136 | + * apport/ui.py, create_crash_bug_title(): Append warning about non-native |
4137 | + package if package architecture does not match the system's one. |
4138 | + * All test suites: Remove redundant word 'behaviour' from test descriptions. |
4139 | + * test-hooks: Run tests on installed hooks in /usr/share/apport by default |
4140 | + and add a '--local' switch to test the hooks in the source tree instead. |
4141 | + Use this option in run-tests. |
4142 | + * apport/report.py, test_add_proc_info(): Change the python script test |
4143 | + so that it does not depend on being run in the source tree. |
4144 | + * run-tests: Add a 'local' command line option which runs tests on the files |
4145 | + and modules in the build tree. Run tests on system files/modules by |
4146 | + default. |
4147 | + * setup.py, debian/apport.install: Ship test-hooks, test-apport, and |
4148 | + run-tests in /usr/share/apport/testsuite/, so that the full test suite can |
4149 | + be run in the installed system. |
4150 | + * gtk/apport-gtk.desktop.in: Only show in Gnome and Xfce. |
4151 | + * qt4/apport-qt.desktop.in: Only show in KDE. |
4152 | + |
4153 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 1 Mar 2007 10:43:29 +0100 |
4154 | + |
4155 | +apport (0.61) feisty; urgency=low |
4156 | + |
4157 | + * bin/apport: |
4158 | + - Kernel 2.6.20-9 now sets CORE_REAL_RLIM to -1 instead of not setting it; |
4159 | + handle this case correctly. (LP: #87065) |
4160 | + - Add forgotten multiplication of CORE_REAL_RLIM with 1024, since ulimit |
4161 | + sets kB, not bytes. |
4162 | + |
4163 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 27 Feb 2007 16:06:11 +0100 |
4164 | + |
4165 | +apport (0.60) feisty; urgency=low |
4166 | + |
4167 | + * gtk/apport-gtk.glade: Reintroduce window titles. Since the crash |
4168 | + notifications are like alerts, title have been removed recently to comply |
4169 | + with Gnome HIG standards, but then the user will get 'nameless window' |
4170 | + buttons in the task bar. Let's have the smaller evil then. (LP: #87164) |
4171 | + * apport/packaging.py: Add get_architecture() interface for determining the |
4172 | + architecture of a particular package (which might not match the overall |
4173 | + system architecture on multiarch-capable systems, e. g. an i386 Firefox |
4174 | + package installed on amd64). |
4175 | + * backends/packaging-dpkg.py: Implement get_architecture() and add test |
4176 | + case. |
4177 | + * apport/report.py, add_package_info(): Add Architecture: field. |
4178 | + (LP: #87424) |
4179 | + * apport/ui.py: Already mark report as seen when we load it, not just in the |
4180 | + information collection thread. That way, reports will only be shown once |
4181 | + on systems which have /var/crash mounted noatime, too. (LP: #85809) |
4182 | + * apport/fileutils.py, mark_report_seen(): If os.utime() fails, and opening |
4183 | + the report file for reading does not change the atime (happens with |
4184 | + noatime mount option), don't throw an exception, just delete the report. |
4185 | + (other aspect of LP: #85809) |
4186 | + * qt4/apport-qt: Wrap gettext() into an unicode(str, 'UTF-8') call, |
4187 | + otherwise all non-ASCII unicode strings are broken. (LP: #87757) |
4188 | + |
4189 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 26 Feb 2007 20:55:40 +0100 |
4190 | + |
4191 | +apport (0.59) feisty; urgency=low |
4192 | + |
4193 | + * apport/report.py: Check that interpreter options are discarded in |
4194 | + test_check_interpreted_script(). This replicates bug #87005. |
4195 | + * apport/report.py, _check_interpreted_script(): Filter out interpreter |
4196 | + command line options. This should make the detection of interpreted |
4197 | + scripts more robust. (LP: #87005) |
4198 | + * test-apport, check_crash(): Differ between expecting the program dumping |
4199 | + core and finding a core dump on disk, because this is not equivalent any |
4200 | + more with core pipelining. |
4201 | + * bin/apport: Write core files into a process' cwd if the process' ulimit |
4202 | + requests and permits it and the crashes process is not packaged, so that |
4203 | + developers get happy again. Test this behaviour with various ulimits in |
4204 | + test-apport. |
4205 | + * test-apport: Check that the core file written by apport is valid. This |
4206 | + uncovers kernel bugs like #87065 |
4207 | + * problem_report.py test suite: Use assertAlmostEqual() when comparing stat |
4208 | + times, since they are floats on some systems. |
4209 | + * apport/report.py, add_gdb_info(): |
4210 | + - Remove all the initial gdb output, which gets rid of the duplicated #0 |
4211 | + line. |
4212 | + - Replace some stray tabs with spaces. |
4213 | + - Thanks to Kees Cook for this! |
4214 | + |
4215 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 22 Feb 2007 19:52:52 +0100 |
4216 | + |
4217 | +apport (0.58) feisty; urgency=low |
4218 | + |
4219 | + * qt4/apport-qt.desktop.in move to System menu |
4220 | + |
4221 | + -- Jonathan Riddell <jriddell@ubuntu.com> Tue, 20 Feb 2007 11:35:17 +0000 |
4222 | + |
4223 | +apport (0.57) feisty; urgency=low |
4224 | + |
4225 | + * apport/ui.py: Intercept ENOMEM and fail gracefully; there is little else |
4226 | + we can do at that point, and there is no point in presenting a crash |
4227 | + report for this. (LP: #85155) |
4228 | + * apport/ui.py: Ignore KeyError when deleting the CoreDump field on sending |
4229 | + a reduced report. This Should Not Happen™, but nevertheless did. |
4230 | + (LP: #86083) |
4231 | + * gtk/apport-gtk, qt4/apport-qt: Intercept ImportError for the non-builtin |
4232 | + Python modules. This usually happens for crashes when there is a |
4233 | + dist-upgrade active and some Python packages have not been configured yet. |
4234 | + (LP: #86007) |
4235 | + * apport/ui.py: If the problem report does not apply to a packaged program, |
4236 | + and we have an ExecutablePath, mention it in the error message for easier |
4237 | + debugging. |
4238 | + * apport/python_hook.py: Resolve symbolic links in ExecutablePath. |
4239 | + (LP: #85529) |
4240 | + * apport/ui.py, open_url(): Remove debugging print statement again, now |
4241 | + that we tracked down bug #83974. |
4242 | + |
4243 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 19 Feb 2007 14:40:29 +0100 |
4244 | + |
4245 | +apport (0.56) feisty; urgency=low |
4246 | + |
4247 | + * apport/ui.py, open_url(): When being invoked as root, call gnome-open or |
4248 | + firefox as root through sudo instead of dropping our uid/gid and calling |
4249 | + it normally. The latter does not work for Firefox for some mysterious |
4250 | + reason. Thanks to Mika Fischer for this trick. (LP: #81207) |
4251 | + * Add debian/local/ubuntu-bug.1: Manpage for ubuntu-bug. Add it to |
4252 | + debian/apport.manpages. |
4253 | + * qt4/apport-qt: Add some missing features that are present in the GTK UI: |
4254 | + - Do not show details by default, add a button to show them. |
4255 | + - Add complete/reduced bug report radio buttons. |
4256 | + - Thanks to Michael Hofmann for this! |
4257 | + |
4258 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 15 Feb 2007 14:59:07 +0100 |
4259 | + |
4260 | +apport (0.55) feisty; urgency=low |
4261 | + |
4262 | + * Add debian/local/ubuntu-bug: Check for a running KDE or Gnome session, |
4263 | + availability of apport-gtk and -qt, and open the appropriate GUI in bug |
4264 | + filing mode. This makes it convenient for shell users and is also required |
4265 | + for proper Firefox 'Report a bug...' menu integration (see bug #85041). |
4266 | + * debian/apport.install: Install ubuntu-bug to /usr/bin. |
4267 | + * gtk/apport-gtk: Generously add some gtk.main_iteration() calls to avoid |
4268 | + hanging dialogs, since we do not have a main loop. |
4269 | + * apport/ui.py: Do not silently ignore exceptions while uploading data to |
4270 | + Launchpad, but intercept them and display their message in the error |
4271 | + dialog. (Part of LP: #84992) |
4272 | + * apport/ui.py: Switch from edge.launchpad.net to production launchpad.net, |
4273 | + since the necessary bits are now there. (LP: #84992) |
4274 | + |
4275 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 14 Feb 2007 13:37:52 +0100 |
4276 | + |
4277 | +apport (0.54) feisty; urgency=low |
4278 | + |
4279 | + * bin/apport: Re-enable, now that our kernel has been fixed to pipe complete |
4280 | + core dumps to us. |
4281 | + |
4282 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 13 Feb 2007 09:33:38 +0100 |
4283 | + |
4284 | +apport (0.53) feisty; urgency=low |
4285 | + |
4286 | + * apport/ui.py, open_url(): Remove some accidentally left-over debugging |
4287 | + junk. |
4288 | + * gtk/apport-gtk: Process pending GTK events after hiding the info |
4289 | + collection window to avoid a hanging dead dialog. |
4290 | + * gtk/apport-gtk: Do not count the lines of fields with binary data. This |
4291 | + particularly avoids long delays with huge core dumps. (LP: #81979) |
4292 | + * apport/ui.py, open_url(): Print URL to stdout, so that we can debug the |
4293 | + weirdness in #83974. |
4294 | + |
4295 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 12 Feb 2007 16:57:05 +0100 |
4296 | + |
4297 | +apport (0.52) feisty; urgency=low |
4298 | + |
4299 | + * apport/report.py: Fix hook directory to be |
4300 | + /usr/share/apport/package-hooks/, not /u/s/apport/. |
4301 | + * Add doc/package-hooks.txt: Document per-package hooks, ship in package |
4302 | + apport. |
4303 | + * Add debian/apport.dirs: Ship package-hooks/ directory. |
4304 | + * gtk/apport-gtk, qt4/apport-qt: Fix detection of binary data so that the |
4305 | + CoreDump is not displayed as incomprehensible gibberish any more. |
4306 | + * Add qt4/apport-qt.desktop.in and add it to POTFILES.in. |
4307 | + * bin/apport-retrace: --verbose can now be specified multiple times to |
4308 | + increase verbosity and debug package installation. Also, fix some quoting |
4309 | + bugs. Thanks to Kees Cook for this! |
4310 | + * qt4/apport-qt: Fix restart button handling. (LP: #84202) |
4311 | + * qt4/apport-qt: Do not try to call splitlines() on a report value that is a |
4312 | + file reference; just display the reference instead. (LP: #84196) |
4313 | + * bin/apport: Disable for now, since the current kernel produces cropped |
4314 | + core dumps and thus we get totally useless crash reports |
4315 | + |
4316 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 9 Feb 2007 18:58:08 +0100 |
4317 | + |
4318 | +apport (0.51) feisty; urgency=low |
4319 | + |
4320 | + New feature: Qt4 GUI implementation: |
4321 | + |
4322 | + * Added qt4/: Qt4 implementation of the abstract user interface. Thanks to |
4323 | + Michael Hofmann <mh21@piware.de> for that! |
4324 | + * debian/copyright: Add Michael as copyright holder. |
4325 | + * setup.py, debian/control, debian/apport-qt.install: Packaging bits for |
4326 | + apport-qt. |
4327 | + * Move translations from apport-gtk to apport, since they are shared between |
4328 | + frontends. Add appropriate Conflicts/Replaces (we don't strictly need it |
4329 | + here because we strip them anyway, but we need that for the moving icon |
4330 | + anyway). |
4331 | + * Move icon from apport-gtk to apport, since it is/can be shared between |
4332 | + frontends. |
4333 | + |
4334 | + Improvements: |
4335 | + |
4336 | + * Replaced old apport.png icon stolen from bug-buddy with nice SVG one. |
4337 | + Thanks to Troy Sobotka for this! |
4338 | + * debian/copyright: Add Troy as copyright holder for the icon. |
4339 | + * bin/apport-retrace, man/apport-retrace.1: Document that report can now be |
4340 | + a LP bug number. |
4341 | + |
4342 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 8 Feb 2007 20:01:12 +0100 |
4343 | + |
4344 | +apport (0.50) feisty; urgency=low |
4345 | + |
4346 | + * gtk/apport-gtk.glade: Fix 'prolem' typo. |
4347 | + * bin/apport-retrace: Use python-launchpad-bugs to create a Report object |
4348 | + from a given Launchpad bug number (given as argument instead of the report |
4349 | + file path). Add appropriate p-l-b dependency. |
4350 | + * gtk/apport-gtk: Mark '(binary data)' string as translatable. |
4351 | + |
4352 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 8 Feb 2007 15:15:47 +0100 |
4353 | + |
4354 | +apport (0.49) feisty; urgency=low |
4355 | + |
4356 | + * gtk/apport-gtk.glade: Fix s/send/sent/ typo. Closes: LP#83061 |
4357 | + * apport/ui.py, create_crash_bug_title(): Cope with odd Tracebacks that are |
4358 | + shorter than three lines. Add test case from the bug. Closes: LP#83556 |
4359 | + * apport/python_hook: Do not create a report if the binary is ignored. Add |
4360 | + test case. Closes: LP#83566 |
4361 | + * gtk/apport-gtk: Do not save/alter crash dialog title any more, it's empty |
4362 | + now. |
4363 | + * apport/ui.py, open_url(): Check the user's session for |
4364 | + ksmserver/gnome-session to decide whether to prefer kfmclient or |
4365 | + gnome-open. Also, only call Firefox directly if gconf's prefered browser |
4366 | + is actually Firefox. Closes: LP#82007 |
4367 | + |
4368 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 6 Feb 2007 18:33:15 +0100 |
4369 | + |
4370 | +apport (0.48) feisty; urgency=low |
4371 | + |
4372 | + New feature: Infrastructure for reporting kernel Oopses: |
4373 | + |
4374 | + * Add bin/kernel_hook and ship it in /usr/share/apport. The kernel can call |
4375 | + this on an Oops. Add a test suite for it to test-hooks. |
4376 | + * apport/ui.py: Add support for reporting ProblemType: Kernel reports, and |
4377 | + add test suite for the workflow. |
4378 | + * gtk/apport-gtk{,.glade}: Add implementation for ui_present_kernel_error(). |
4379 | + |
4380 | + Improvements: |
4381 | + |
4382 | + * Merged various apport-retrace improvements from Kees' branch: |
4383 | + - Add various options to override some report fields with local values. |
4384 | + - Add --verbose option and be quiet by default. |
4385 | + - Read ProcMaps for additional library dependencies, to also catch |
4386 | + libraries loaded at runtime (plugins). |
4387 | + - Set correct debug file directory when starting an interactive gdb |
4388 | + session with -g. |
4389 | + * Add gtk/apport-gtk.desktop.in: Desktop file for calling apport-gtk in |
4390 | + 'file a distro bug' mode, to be displayed in gnome-panel's System menu |
4391 | + (see bug-reporting-tool spec). Also add a Makefile to do the |
4392 | + intltool-merge dance, add it to POTFILES.in, and ship it in |
4393 | + debian/apport-gtk.install. |
4394 | + * bin/apport: Call add_os_info(), so that we get architecture information |
4395 | + even for 'naked' reports which didn't go through UI enrichment. |
4396 | + * Add ./test-hooks: Test suite for the various package hooks shipped with |
4397 | + apport. Test the package problem hook for now. |
4398 | + |
4399 | + Bug fixes: |
4400 | + |
4401 | + * debian/control: Add missing python-apt dependency to apport |
4402 | + (apport-retrace needs it). Thanks to Kees Cook for noticing. |
4403 | + * debian/control: Add gdb dependency to python-apport. |
4404 | + * backends/packaging-dpkg.py test suite: Verify that packages returned by |
4405 | + get_dependencies() actually exist. This catches the 'chops off first |
4406 | + letter of package name sometimes' bug. |
4407 | + * backends/packaging-dpkg.py, _init_status(): Add missing space to Depends: |
4408 | + field format in dpkg-query call. This fixes the chopped-off first letters |
4409 | + in the 'Dependencies' report field. |
4410 | + * setup.py: Remove version attribute, we do not update and use it anyway. |
4411 | + * apport/ui.py: Do not crash if Package: specifies a nonexisting package. |
4412 | + Display a proper error message instead. Add test_run_crash_errors() test |
4413 | + case. |
4414 | + * apport/report.py, add_package_info(): Fix crash when the first dependency |
4415 | + is not installed. Closes: LP#82561 |
4416 | + * gtk/apport-gtk.glade: Remove window titles in alert dialogs to comply with |
4417 | + Gnome HIG. Closes: LP#83123 |
4418 | + |
4419 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 5 Feb 2007 12:19:35 +0100 |
4420 | + |
4421 | +apport (0.47) feisty; urgency=low |
4422 | + |
4423 | + * apport/report.py, add_hooks_info(): Only use first part of 'Package:', |
4424 | + there might be a version number and a changed files list which we must not |
4425 | + propagate to the import statement. Closes: LP#82566 |
4426 | + |
4427 | + -- Kees Cook <kees@ubuntu.com> Wed, 31 Jan 2007 15:37:11 -0800 |
4428 | + |
4429 | +apport (0.46) feisty; urgency=low |
4430 | + |
4431 | + * debian/control: Bump dependencies to python-apport due to recent changes |
4432 | + in expected return values in some UI functions. Closes: LP#82267 |
4433 | + * bin/package_hook: Remove erroneous 'import apport.packaging', which |
4434 | + shadows the packaging variable in the apport package. This unbreaks the |
4435 | + package problem hook. Closes: LP#82297 |
4436 | + |
4437 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 31 Jan 2007 07:51:24 +0100 |
4438 | + |
4439 | +apport (0.45) feisty; urgency=low |
4440 | + |
4441 | + New feature: Infrastructure for package install/upgrade failures: |
4442 | + |
4443 | + * Add bin/package_hook: Script for creating a report for a package |
4444 | + installation/upgrade failure. It receives a package name, a number of log |
4445 | + files, and an ErrorMessage: from stdin. This will be called from e.g. |
4446 | + dist-upgrader. |
4447 | + * setup.py, debian/apport.install: Ship package_hook. |
4448 | + * apport/ui.py: If ProblemType is 'Package', call a new function |
4449 | + self.ui_present_package_error() instead of presenting a crash. Add test |
4450 | + suite checks for the package error report workflow. |
4451 | + * apport/ui.py, create_crash_bug_title(): Create default bug title for |
4452 | + package reports. Add various test cases. |
4453 | + * gtk/apport-gtk{,.glade}: GTK implementation of ui_present_package_error(). |
4454 | + |
4455 | + New feature: Maintain a per-binary blacklist to inhibit apport crash reports |
4456 | + until the binary changes. Closes: LP#79408 |
4457 | + |
4458 | + * apport/report.py: Add new Report methods check_ignored() and mark_ignore() |
4459 | + to check for/set ignore list entries. Add test cases. |
4460 | + * apport/ui.py: Add another return value of ui_present_crash() to specify |
4461 | + whether or not to blacklist the current crash's executable. Check workflow |
4462 | + of both responses in the test suite. |
4463 | + * gtk/apport-gtk{,.glade}: Add a blacklist checkbox to the crash |
4464 | + notification dialogs. |
4465 | + * bin/apport: Do nothing if the current crash is blacklisted. |
4466 | + * test-apport: Test blacklisting. |
4467 | + |
4468 | + Bug fixes: |
4469 | + |
4470 | + * gtk/apport-gtk: Fix return code for restarting the application ('reopen' -> |
4471 | + 'restart'). Closes: LP#81422 |
4472 | + * test-apport: Adapt to new core_pattern kernel interface mode: |
4473 | + - Check core_pattern instead of the obsolete crashdump sysctl to determine |
4474 | + whether or not apport is running. |
4475 | + - Give apport max. 10 seconds to complete. The current kernel reaps the |
4476 | + crashed process as soon as writing the core dump to the pipe is |
4477 | + finished, but apport still needs to write the report file. |
4478 | + - Do not EXFAIL the test for crashes in nonwriteable cwd any more, since |
4479 | + it is now supposed to work (we do not write a core dump to the disk any |
4480 | + more). |
4481 | + * run-tests, use-local: Adapt to new core_pattern kernel interface. |
4482 | + * apport: Improve logging of exceptions, include environment variables. |
4483 | + * apport/report.py test suite: Use gdb to generate a test core dump, do not |
4484 | + rely on kill(SIGSEGV) and the kernel to do it (since we now use a pipe in |
4485 | + core_pattern). |
4486 | + * backends/packaging-dpkg.py: Fix return value of get_modified_files() if |
4487 | + dpkg .list file is missing. |
4488 | + * apport/report.py, add_package_info(): Do not produce stray empty lines for |
4489 | + uninstalled alternative dependencies. |
4490 | + * apport/report.py: Fix test_add_gdb_info_script() to not leave behind a |
4491 | + stray gzip process which randomly blocks stdin. Closes: LP#78421 |
4492 | + * backends/packaging-dpkg.py: Do not read the dpkg status in the |
4493 | + constructor, but lazily initialize it when actually calling a query |
4494 | + function. This avoids imposing the dpkg-query overhead for programs that |
4495 | + import the apport package without doing package queries (such as any |
4496 | + Python program under Ubuntu, due to the Python crash hook). |
4497 | + * apport/ui.py, create_crash_bug_title(): |
4498 | + - Do not crash on an empty StacktraceTop. Closes: LP#81677 |
4499 | + - Do not mention an unknown function name ('??') in the bug title; |
4500 | + instead, use the topmost function with a known name, or leave it out |
4501 | + at all. |
4502 | + - Add test cases for these situations. |
4503 | + * apport/report.py, _get_ignore_dom(): Do not throw an error for an empty |
4504 | + ignore list file. |
4505 | + |
4506 | + Code cleanups: |
4507 | + |
4508 | + * apport/report.py test suite: Refactorize generation of test crash program |
4509 | + and core dump generation. |
4510 | + * Consistently use 'in'/'not in' instead of find() for substring searches. |
4511 | + * Changed the packaging backend import, so that its methods can now be |
4512 | + accessed at apport.packaging instead of apport.packging.impl. |
4513 | + |
4514 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sun, 28 Jan 2007 12:34:05 +0100 |
4515 | + |
4516 | +apport (0.44) feisty; urgency=low |
4517 | + |
4518 | + Some more 'Need for Speed' optimizations: |
4519 | + |
4520 | + * backends/packaging-dpkg.py, _check_files_md5(): Also accept a md5sum |
4521 | + string in addition to a md5sum file. |
4522 | + * backends/packaging-dpkg.py, get_modified_files(): Compare package file's |
4523 | + ctime and mtime against the package list file's mtime and only md5sum the |
4524 | + files that are newer. This drastically reduces the amount of md5suming |
4525 | + (usually to zero) and thus speeds up the information collection. |
4526 | + * backends/packaging-dpkg.py: Use a single hackish 'dpkg-query --show *' |
4527 | + as a portable variant of 'cat /var/lib/dpkg/status' to pre-fill the status |
4528 | + cache with all packages instead of calling dpkg -s on every single package |
4529 | + we query. This changes the time for figuring out dependencies and their |
4530 | + versions from 'unbearable for many packages' to 'barely noticeable'. |
4531 | + |
4532 | + New feature: per-package apport hooks to collect additional information: |
4533 | + |
4534 | + * apport/report.py: Add method add_hooks_info() which executes a function |
4535 | + add_info(report) from /usr/share/apport/<package>.py. Also add |
4536 | + appropriate test cases. This provides per-package hooks for apport. |
4537 | + * apport/ui.py: Call add_hooks_info() in the information collection thread. |
4538 | + |
4539 | + Bug fixes: |
4540 | + |
4541 | + * apport/report.py: Add some more test cases for _check_interpreted() for |
4542 | + Python scripts. |
4543 | + * apport/python_hook.py: Check for a correct ExecutablePath in |
4544 | + test_general(). |
4545 | + * apport/python_hook.py: Use fileutils.likely_packaged() instead of |
4546 | + checking for /tmp and home, so that we ignore stuff in /usr/local, too. |
4547 | + Closes: LP#81244 |
4548 | + * apport/python_hook.py: If we figure out an ExecutablePath which is not |
4549 | + actually an executable, do not create a report. This particularly affects |
4550 | + interactive python sessions where sys.argv[0] is empty and thus |
4551 | + ExecutablePath ends up being the current directory. Add test cases. |
4552 | + Closes: LP#81237 |
4553 | + |
4554 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 24 Jan 2007 17:16:04 +0100 |
4555 | + |
4556 | +apport (0.43) feisty; urgency=low |
4557 | + |
4558 | + * apport/ui.py: Add method create_crash_bug_title() to construct a |
4559 | + reasonable standard bug title for crash reports, so that the automatic |
4560 | + duplicate detection actually has a chance to work. Also add test cases for |
4561 | + various signal crashes and an unhandled Python exception. |
4562 | + * apport/ui.py, file_report(): Submit a default bug title for crash reports. |
4563 | + Closes: LP#79657 |
4564 | + |
4565 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 23 Jan 2007 16:26:40 +0100 |
4566 | + |
4567 | +apport (0.42) feisty; urgency=low |
4568 | + |
4569 | + New feature: https://wiki.ubuntu.com/ApportImprovements (kernel interface |
4570 | + change): |
4571 | + |
4572 | + * bin/apport: Support calling without arguments, to support new semantics |
4573 | + agreed in the ApportImprovements spec: macro values (in particular, pid |
4574 | + and signal number) are passed as environment variables. |
4575 | + * preloadlib/libapport.c: Simulate new kernel behaviour described above. |
4576 | + * debian/apport.init: Set the kernel's core_pattern sysctl to pipe to apport |
4577 | + if the edgy-style 'crashdump-helper' sysctl helper does not exist. |
4578 | + |
4579 | + Bug fixes: |
4580 | + |
4581 | + * bin/apport-retrace: Beautify error message when report file is not |
4582 | + accessible. Closes: LP#79568 |
4583 | + * apport/ui.py: Fix crash in the bug pattern search thread if we could |
4584 | + not determine a package name. Closes: LP#77872 |
4585 | + * bin/apport: Only unlink the core dump if it still exists. Closes: LP#80866 |
4586 | + * gtk/apport-gtk.glade: Fix expand/fill attributes so that the expander gets |
4587 | + all the space when resizing the window. Closes: LP#80987 |
4588 | + * problem_report.py, write_mime(): Make sure that multi-line values that go |
4589 | + to the summary are terminated with a newline. |
4590 | + * apport/ui.py: Fix error message invocation for reporting cloakroom upload |
4591 | + failure. |
4592 | + * problem_report.py, write_mime(): Fix off-by-one comparison of the 'inline |
4593 | + text' treshold, so that apport's StacktraceTop field appears in bug |
4594 | + summaries. Also fix a corner case in CR line ending handling. Check both |
4595 | + things in the test suite. |
4596 | + * gtk/apport-gtk: Add missing 'import subprocess.'. Closes: LP#81007 |
4597 | + * debian/control: Bump apport's and apport-gtk's dependency to python-apport |
4598 | + to make sure that apport.ui is available. Closes: LP#81019 |
4599 | + * apport/ui.py: Add missing 'import pwd'. Closes: LP#81033 |
4600 | + |
4601 | + Minor improvements: |
4602 | + |
4603 | + * apport/ui.py: Get the cloakroom ticket number from the |
4604 | + X-Launchpad-Blob-Token HTTP header instead of parsing the resulting page. |
4605 | + |
4606 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 23 Jan 2007 11:27:20 +0100 |
4607 | + |
4608 | +apport (0.41) feisty; urgency=low |
4609 | + |
4610 | + New feature: Use Malone cloakroom for uploading reports. Closes: LP#70919 |
4611 | + |
4612 | + * gtk/apport-gtk.glade: Redesign bug reporting dialog to have a 'Create bug |
4613 | + report' and a 'Cancel' button. Also assign GTK_RESPONSE_* constants to the |
4614 | + dialog buttons. Go back to Glade 2 since Glade 3 still sucks too much. |
4615 | + * gtk/apport-gtk: Adjust workflow for sending report to Malone cloakroom |
4616 | + instead of asking the user to attach the file. Sending is not yet |
4617 | + implemented, though. |
4618 | + * gtk/apport-gtk: Do not show any dialogs any more when filing a bug. |
4619 | + * Add apport/MultipartPostHandler.py: This module provides an urllib2 opener |
4620 | + for uploading file attachments to forms over HTTP POST. This module is |
4621 | + (C) 2006 Will Holcomb <wholcomb@gmail.com> and was taken from |
4622 | + http://odin.himinbi.org/MultipartPostHandler.py. (This is a serious hole |
4623 | + of the Python standard library IMHO.) |
4624 | + * apport/ui.py, file_report(): Upload blob to Malone (edge.launchpad.net for |
4625 | + now), retrieve the ticket, and pass it to +filebug. |
4626 | + |
4627 | + Refactorizations: |
4628 | + |
4629 | + * gtk/apport-gtk: Major refactorization to use modal dialogs and run() |
4630 | + instead of loosely coupled event handlers. |
4631 | + * Add apport/ui.py: Abstract frontend which encapsulates the logic, workflow |
4632 | + and UI independent bits and provides UI hooks for concrete |
4633 | + implementations. This both makes it easy to write more frontends like Qt |
4634 | + or CLI, and also makes the code automatically testable. Add an extensive |
4635 | + testsuite. |
4636 | + * run-tests: Add ui.py testsuite. |
4637 | + * gtk/apport-gtk: Port to ui.py's UserInterface (which means moving 1/3 of |
4638 | + the code into the new ui_*() methods and throwing away the rest). |
4639 | + * Add apport/REThread.py: Enhanced threading.Thread class that can propagate |
4640 | + the return value and uncaught exceptions of run() to the calling thread. |
4641 | + * apport/ui.py: Get rid of thread_check_bugpatterns() and hackish exception |
4642 | + handling, rewrite using REThread. |
4643 | + * apport/ui.py, gtk/apport-gtk: Add progress bar to report upload. It is |
4644 | + indefinite for now, because neither urllib2 nor httplib support upload |
4645 | + progress. |
4646 | + |
4647 | + Bug fixes: |
4648 | + |
4649 | + * gtk/apport-gtk.glade: Merged Gnome HIG fixes from Sebastian Heinlein, |
4650 | + thank you! |
4651 | + * Merge patch from Sebastian Heinlein to properly treat the apport-gtk icon |
4652 | + the dh_iconcache way and make it themeable. Thank you! |
4653 | + * gtk/apport-gtk: Remove periods from primary dialog texts to comply with |
4654 | + Gnome HIG standards. |
4655 | + * backends/packaging-dpkg.py, get_file_package(): Process list files in |
4656 | + chunks of 100, so that we do not exceed the maximum command line length if |
4657 | + there is a large number of packages installed. Closes: LP#64839 |
4658 | + * gtk/apport-gtk: Use pgrep with -u instead of pidof for testing whether the |
4659 | + crashed process is already running again, so that we do not match |
4660 | + processes of other users. Add procps package dependency for this. |
4661 | + * gtk/apport-gtk: Only offer to restart programs that are in the $PATH. E. |
4662 | + g. /usr/lib/firefox/firefox-bin cannot be called directly. |
4663 | + Closes: LP#79623 |
4664 | + * apport/report.py: Disassemble 16 instructions instead of 32 bytes to |
4665 | + become independent of the instruction size. Thanks to Kees Cook for the |
4666 | + patch! |
4667 | + |
4668 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 22 Jan 2007 10:47:33 +0100 |
4669 | + |
4670 | +apport (0.40) feisty; urgency=low |
4671 | + |
4672 | + * debian/control: Add missing python-dev build dependency, which is |
4673 | + apparently required for 2.5 now. |
4674 | + |
4675 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 15 Jan 2007 11:06:20 +0100 |
4676 | + |
4677 | +apport (0.39) feisty; urgency=low |
4678 | + |
4679 | + * Introduce abstract packaging interface and move all dpkg/apt specific bits |
4680 | + to a dpkg implementation of this packaging interface (merge |
4681 | + apport/abstract-pkg branch): |
4682 | + - Add apport/packaging.py: Abstract packaging system query interface. |
4683 | + - Add backends/packaging-dpkg.py: dpkg implementation of abstract |
4684 | + packaging interface. |
4685 | + - run-tests: Run tests of all backends. |
4686 | + - apport/fileutils.py, apport/report.py: Port to packaging.py interface. |
4687 | + - debian/control: Drop python-apport's 'python-apt' dependency since the |
4688 | + backend only uses dpkg now (without measurable performance penalty since |
4689 | + it uses internal caching). |
4690 | + - debian/rules: Install backends/packaging-dpkg.py as our packaging |
4691 | + backend to apport/packaging_impl.py and remove it again on clean. |
4692 | + |
4693 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 13 Jan 2007 15:53:08 +0100 |
4694 | + |
4695 | +apport (0.38) feisty; urgency=low |
4696 | + |
4697 | + * Add ./COPYING: GPL license. |
4698 | + * debian/rules: Build POT file again. |
4699 | + * apport/fileutils.py: Add get_all_system_reports() and |
4700 | + get_new_system_reports() and added test cases. Now the test suite can also |
4701 | + be run as root to be able to actually check their complete behaviour. |
4702 | + Adapt the other tests to get along with running the tests as root. |
4703 | + * bin/apport-checkreports: Add option --system to check for system crash |
4704 | + reports. Closes: LP#62316 |
4705 | + * gtk/apport-gtk: If called through sudo to process system crashes, drop |
4706 | + privileges to the original user in open_url() so that we get the web |
4707 | + browser correctly. (LP#62316) Caveat: The user cannot actually attach the |
4708 | + crash report file directly since it is not accessible to the user; this |
4709 | + will get fixed once Malone is able to link a bug report with uploaded |
4710 | + blobs. |
4711 | + |
4712 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 12 Jan 2007 14:29:44 +0100 |
4713 | + |
4714 | +apport (0.37) feisty; urgency=low |
4715 | + |
4716 | + * problem_report.py: Remove the requirement that values must not contain |
4717 | + empty lines. Add test cases that reading and writing values with empty |
4718 | + lines works, and add a test case that load() properly complains about |
4719 | + empty lines in debcontrol encoding (empty lines in values are encoded with |
4720 | + a single space). Closes: LP#78094 |
4721 | + * apport/report.py test suite: Do not rely on a particular structure of the |
4722 | + 'cat' stacktrace; apparently this is not consistent across architectures. |
4723 | + Instead, compile a segfaulting mini C program, let it dump core, and test |
4724 | + add_gdb_info() on it instead. This also allows us for a more rigid check |
4725 | + of StacktraceTop. |
4726 | + |
4727 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 8 Jan 2007 14:44:08 +0100 |
4728 | + |
4729 | +apport (0.36) feisty; urgency=low |
4730 | + |
4731 | + * gtk/apport-gtk.glade: Restore pulse step of progress bar (this apparently |
4732 | + got destroyed when saving with Glade 3). |
4733 | + * gtk/apport-gtk{,.glade}: Terminate the program properly when closing the |
4734 | + progress dialog instead of exiting with an exception. |
4735 | + * gtk/apport-gtk: Defer opening of the bug reporting window a bit so that |
4736 | + it appears on top of the browser window. Also enable the task bar blinking |
4737 | + for it when it is in the background. |
4738 | + * gtk/apport-gtk.glade: Restore vertical padding of bug report dialog labels |
4739 | + (another Glade 3 transition regression). |
4740 | + * bin/apport-retrace, apport/report.py: Call gdb on InterpreterPath if |
4741 | + present; calling it on a script does not yield anything useful. Add a test |
4742 | + case to report.py. |
4743 | + * debian/apport.init: Use mkdir -p instead of install -d, since install is |
4744 | + not in /bin. Thanks to Kees Cook for catching this. |
4745 | + * debian/control: Add missing python-apport dependency 'python-apt', which |
4746 | + is not caught by ${python:Depends}. |
4747 | + * gtk/apport-gtk: Catch MemoryError when loading a report and display an |
4748 | + error dialog instead of just crashing. Closes: LP#76235 |
4749 | + * gtk/apport-gtk: Properly catch exceptions from the bug pattern check |
4750 | + thread to avoid useless backtraces like in bug #75160. |
4751 | + * gtk/apport-gtk: Catch exceptions from decoding of damaged reports and |
4752 | + display an error message instead of crashing. Closes: LP#77149 |
4753 | + * apport/report.py: Add missing import of 'time' to test suite. |
4754 | + |
4755 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 5 Jan 2007 09:49:01 +0100 |
4756 | + |
4757 | +apport (0.35) feisty; urgency=low |
4758 | + |
4759 | + Optimizations: |
4760 | + |
4761 | + * apport/fileutils.py: Split out heuristics for determining whether a file |
4762 | + belongs to a package to new function likely_packaged() and add test cases. |
4763 | + * bin/apport: Do not use the expensive find_file_package() any more, use |
4764 | + likely_packaged() instead. This will create initial reports in some |
4765 | + corner cases (like custom non-packaged executables in /usr/bin/), but |
4766 | + greatly reduces I/O impact at crash time. We rely on apport-gtk to deal |
4767 | + with reports that do not actually belong to a packaged executable. |
4768 | + * apport/report.py, add_gdb_info(): Call gdb just once and split the output |
4769 | + instead of calling it again for each command. This should significantly |
4770 | + speed up the gdb stage especially for large programs/core dumps. |
4771 | + * Use cStringIO instead of StringIO in modules. |
4772 | + * gtk/apport-gtk: Code cleanup and refactorization: |
4773 | + - Move iteration over crash reports into __main__ to simplify housekeeping |
4774 | + in the ApportGTK class and get rid of some functions. |
4775 | + - Refactor creation of temporary report file. |
4776 | + * gtk/apport-gtk.glade: Split the text in the progress bar dialog so that we |
4777 | + can use it for multiple steps (like uploading data to Malone) while not |
4778 | + breaking translations. |
4779 | + |
4780 | + New feature: Bug reporting tool (https://wiki.ubuntu.com/BugReportingTool) |
4781 | + |
4782 | + * gtk/apport-gtk: Split out crash report initialization to new function |
4783 | + show_crashes() so that we can use the frontend for other purposes like bug |
4784 | + reporting. |
4785 | + * gtk/apport-gtk: Add --file-bug, --package, and --pid options; if given, |
4786 | + create a bug report about the given package instead of viewing crash |
4787 | + reports. |
4788 | + * gtk/apport-gtk{,.glade}: Generalize some strings to not talk about 'crash' |
4789 | + any more, to make them suitable for bug reporting, too. |
4790 | + * gtk/apport-gtk: Support --file-bug without specifying a package or a PID |
4791 | + for filing generic distro bugs. |
4792 | + * problem_report.py: Add new method write_mime() to encode a problem report |
4793 | + in MIME/Multipart RFC 2822 format (i. e. an email with attachments). Short |
4794 | + values are aggregated into the first inline text/plain part, large values, |
4795 | + binary values, and file references get gzip compressed separate |
4796 | + attachments. Also add various test cases. |
4797 | + |
4798 | + Bug/crash information: |
4799 | + |
4800 | + * apport/report.py, add_user_info(): Add list of system groups that the user |
4801 | + belongs to. |
4802 | + * bin/apport: Call add_user_info(), check functionality in test-apport. |
4803 | + * apport/report.py, add_gdb_info(): Add field 'StacktraceTop' with the top |
4804 | + five functions on the stack and no local variables. This reduced 'glimpse' |
4805 | + is suitable for inline display in bug reports and automatic processing |
4806 | + (dup finders, etc). |
4807 | + |
4808 | + Bug fixes: |
4809 | + |
4810 | + * po/Makefile: Add top_srcdir to work with current intltool. |
4811 | + * po/de.po: Unfuzz some strings. |
4812 | + * apport/report.py, add_gdb_info(): Strip away the 'No symbol table info |
4813 | + available' messages from stack traces. |
4814 | + * apport/report.py, test_search_bug_patterns(): Use security.u.c. instead |
4815 | + of archive.u.c., since the latter times out too often. |
4816 | + |
4817 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 3 Jan 2007 16:45:20 +0100 |
4818 | + |
4819 | +apport (0.34) feisty; urgency=low |
4820 | + |
4821 | + * apport/fileutils.py, mark_report_seen(): Do not bail out if os.utime() |
4822 | + fails due to access permissions. This happens if the file does not belong |
4823 | + to the user calling apport-gtk, but is world-readable (such as ubiquity |
4824 | + crash reports). If utime() fails, repeatedly open()/close() the file for |
4825 | + reading until atime != ctime, or the 1.2s timeout is reached. |
4826 | + Closes: LP#72250 |
4827 | + * apport/python_hook.py: Add unit test, call that in run-tests. |
4828 | + * apport/python_hook.py: Chmod the generated report to 0600 to not expose |
4829 | + potentially private data to the world, and to be consistent with other |
4830 | + crash reports. |
4831 | + * apport/fileutils.py: Add check_files_md5() and test cases. |
4832 | + * apport/report.py, add_package_info(): Append list of modified package |
4833 | + files to Package: and Dependencies: value. Closes: LP#70946 |
4834 | + * bin/apport-retrace: Get along with Package:/Dependencies: fields with list |
4835 | + of modified files. |
4836 | + |
4837 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 22 Dec 2006 12:40:55 +0100 |
4838 | + |
4839 | +apport (0.33) feisty; urgency=low |
4840 | + |
4841 | + * debian/rules: Convert to cdbs. This fixes the dh_pysupport invocation |
4842 | + along the way, too. |
4843 | + * gtk/apport-gtk: Rework web browser invocation: Use kfmclient if available, |
4844 | + fall back to firefox-remote, then to webbrowser.open(). Do not call |
4845 | + x-www-browser any more since this would block if no running browser was |
4846 | + open before. |
4847 | + * Drop the apport_utils module (and with it the python-apport-utils |
4848 | + package), it became too much of a dumping ground. The report file handling |
4849 | + functions now live in apport.fileutils, and the debugging information |
4850 | + collectors are now methods of a new 'Report' class (subclass of |
4851 | + ProblemReport) in the new apport.report module. Adjust all programs |
4852 | + accordingly. |
4853 | + * Add debian/python-apport.postinst: Remove old .pyc and .pyo cruft on |
4854 | + upgrades to clean up after our broken dh_pysupport invocation in earlier |
4855 | + versions, so that the new modules are actually used. |
4856 | + * Remove debian/apport.postinst: Those cleanups were only necessary for |
4857 | + intra-edgy upgrades. |
4858 | + |
4859 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 19 Dec 2006 01:15:27 +0100 |
4860 | + |
4861 | +apport (0.32) feisty; urgency=low |
4862 | + |
4863 | + * apport_utils.py: Filter out "no debugging symbols found" warnings from gdb |
4864 | + outputs, and add some tests for this. Thanks to Kees Cook for the patch! |
4865 | + * test-apport: Fix AGENTPATH directory when building the preload library |
4866 | + (recently moved to bin/). |
4867 | + * use-local: Fix path to apport as well (recently moved to bin/). |
4868 | + * apport-retrace: Use ldd on InterpreterPath if present; ldd'ing scripts |
4869 | + will not get us very far. Closes: LP#72201 |
4870 | + |
4871 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 14 Dec 2006 13:42:58 +0100 |
4872 | + |
4873 | +apport (0.31) feisty; urgency=low |
4874 | + |
4875 | + * Move scripts to bin/ in source package. |
4876 | + * Add apport/python_hook.py: Default exception handler for Python, to create |
4877 | + apport reports for unhandled exceptions. Thanks to Robert Collins |
4878 | + <robert@ubuntu.com> for this! Closes: LP#70957 |
4879 | + * Add new package python-apport to ship the new Python package 'apport'. |
4880 | + This includes the python crash hook for now, but in the near future |
4881 | + apport-utils will get redesigned and put into this package, too. |
4882 | + * debian/control: apport now depends on python-apport instead of |
4883 | + python-apport-utils. |
4884 | + * apport_utils.py: Quiesce gdb error messages in test suite. |
4885 | + |
4886 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 25 Nov 2006 12:30:41 +0100 |
4887 | + |
4888 | +apport (0.30) feisty; urgency=low |
4889 | + |
4890 | + * test-apport, use-local: Support both kernel 2.6.17 and 2.6.19 sysctl names |
4891 | + (crashdump-helper vs. crashdump). |
4892 | + * gtk/apport-gtk.glade: Improve dialog title capitalization. |
4893 | + Closes: LP#70652. |
4894 | + * debian/apport.cron.daily: Immediately exit if /var/crash does not exist. |
4895 | + Create /var/crash in debian/apport.init if it does not exist. |
4896 | + Closes: LP#71599 |
4897 | + * Convert all tabs in Python source code files to spaces to comply to PEP 8. |
4898 | + Thanks to Robert Collins for pointing this out. |
4899 | + * apport_utils.py, gtk/apport-gtk: Do not pass None to subprocess arguments |
4900 | + if report belongs to a non-packaged program. Thanks to Robert Collins for |
4901 | + discovering and fixing this! Closes: LP#70942 |
4902 | + * debian/apport.init: Change /var/crash permissions to 1777, so that custom |
4903 | + crash handlers (in Python/Mono/etc.) can put reports there. |
4904 | + |
4905 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 25 Nov 2006 10:44:33 +0100 |
4906 | + |
4907 | +apport (0.29) feisty; urgency=low |
4908 | + |
4909 | + * apport-retrace: Do not crash if a linked library is not a dependency. |
4910 | + Closes: LP#65914 |
4911 | + * apport_utils.py: |
4912 | + - Add test_find_file_package_diversion() selftest to check diversion |
4913 | + handling. |
4914 | + - find_file_package(): Check for and respect diversions. |
4915 | + - Closes: LP#65917 |
4916 | + * debian/apport.init, test-apport, use-local: Adapt to 'crashdump-helper' -> |
4917 | + 'crashdump' sysctl renaming in 2.6.19. |
4918 | + * test-apport: Restore cwd even when failing a test. |
4919 | + * problem_report.py, ProblemReport.write(): Support file-like objects as |
4920 | + argument of file references to support direct reading from pipes. Add test |
4921 | + case test_write_fileobj(). |
4922 | + * apport: Support '-' as core file argument, in which case the core will be |
4923 | + read from stdin. This paves the way for using Linux 2.6.19's 'pipe |
4924 | + core_pattern' feature. Bump python-problem-report dependency to >= 0.29 |
4925 | + for this. |
4926 | + * apport: Confine permissions of log file to root:adm 0640, just in case. |
4927 | + * apport: Temporarily drop real u/gid to target user for the os.access() |
4928 | + tests, so that normal users cannot verify the existence of a given |
4929 | + inaccessible file. Add comprehensive tests to apport_utils' test suite and |
4930 | + test-apport. Thanks to Kees Cook for this patch! |
4931 | + * apport_utils.py, find_file_package(): Terminate fgrep options with '--' to |
4932 | + avoid problems with funny file names. Thanks to Kees Cook for spotting |
4933 | + this! |
4934 | + * test-apport: Automatically detect whether ULIMIT_CORE is nonzero, and |
4935 | + adapt tests accordingly: check that core still exists after invoking |
4936 | + apport, and clean it up. |
4937 | + * apport-retrace: Add new mode -g/--gdb which starts an interactive gdb |
4938 | + session with the report's core dump. Add this to man/apport-retrace.1, too. |
4939 | + * apport-retrace: If -c is given, completely remove the CoreDump field from |
4940 | + the report instead of setting it to 'removed'. |
4941 | + * test-apport: When using 'lib' mode, point APPORT_LOG_FILE to a temporary |
4942 | + file. Print it if the test suite fails. |
4943 | + * test-apport: Fix EXFAILure of the 'core dump works for non-writable cwds' |
4944 | + test case. |
4945 | + * preloadlib: Support -DPIPE_CORE mode which emulates the |
4946 | + pipe-in-core_pattern mode of kernel 2.6.19. |
4947 | + * test-apport: Build preload library with core piping. No more failed test |
4948 | + suite checks in 'lib' mode. |
4949 | + |
4950 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sun, 5 Nov 2006 07:10:30 -0800 |
4951 | + |
4952 | +apport (0.28) edgy; urgency=low |
4953 | + |
4954 | + "No core - ignore!" |
4955 | + |
4956 | + * apport: Do not create a report for crashes which we do not get a core dump |
4957 | + for. The reports are useless and only clutter our bug tracker. |
4958 | + |
4959 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 9 Oct 2006 15:22:32 +0200 |
4960 | + |
4961 | +apport (0.27) edgy; urgency=low |
4962 | + |
4963 | + * apport: Ignore SIGABRT for now; it's usually signalled from abort() or |
4964 | + assertion failures and we only get reports with unusable stack traces for |
4965 | + it (see #61938). |
4966 | + * gtk/apport-gtk: If gnome-open is not available, fall back to x-www-browser |
4967 | + instead of using webbrowser.py, to respect default browser in XFCE. |
4968 | + Closes: LP#64209 |
4969 | + * apport: use os.nice() instead of executing 'renice'. Thanks to Benoit |
4970 | + Boissinot for noticing. |
4971 | + * apport_utils.py, find_file_package(): Lower() both strings in the speedup |
4972 | + heuristics to match e. g. /usr/bin/Xorg -> xserver-xorg. Thanks to Kees |
4973 | + Cook! |
4974 | + * apport_utils.py, report_add_package_info(): Do not crash if we encounter a |
4975 | + 'None' current version, which can happen with uninstalled alternative |
4976 | + dependencies. Thanks to Kees Cook for tracking this down! |
4977 | + |
4978 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 6 Oct 2006 17:15:08 +0200 |
4979 | + |
4980 | +apport (0.26) edgy; urgency=low |
4981 | + |
4982 | + * apport-retrace: Clean up code a bit: |
4983 | + - Move option parsing to separate function. |
4984 | + - Use apport_utils' report_add_gdb_info() instead of duplicating the gdb |
4985 | + code. |
4986 | + * apport_utils.py, report_add_gdb_info(): Add optional parameter 'debugdir' |
4987 | + to specify an alternate debug file symbol root directory. |
4988 | + * apport-retrace: Add option -d/--download-debug to automatically download |
4989 | + available ddebs, create a temporary debug symbol directory from already |
4990 | + installed and downloaded ddebs, and point gdb to use that. Also add option |
4991 | + -C/--cache-dir to specify a permanent ddeb cache directory (by default, a |
4992 | + temporary one is used). Update the manpage accordingly. |
4993 | + * apport-retrace: Make the best out of a report without packaging |
4994 | + information (which can happen if the user does not click on 'report bug' |
4995 | + in apport-gtk). |
4996 | + * apport_utils, report_add_proc_info(): |
4997 | + - Move heuristics for detecting interpreted scripts to a separate function |
4998 | + to be able to provide separate test cases for it. Check a few more |
4999 | + special cases for mono programs. |
5000 | + - Make interpreter heuristics even scarier to detect some more mono corner |
Would be nice to get this in for alpha3 to help with the live cd space issues. Having two notifiers isn't very nice either. :)