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