summaryrefslogtreecommitdiffstats
path: root/btparser/ChangeLog
blob: b2e36bbf04853b90b3a0e9bfdced2bae8c0e68f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
2010-10-14  Karel Klíč  <kklic@redhat.com>

	* configure.ac: Increase version to 0.7.

	* tests/strbuf.at: New file, includes tests for
	btp_strbuf_append_char and btp_strbuf_append_str.

	* README: Fixed a typo.

	* TODO: Updated. Includes list of functions which need a test in
	the testsuite.

	* lib/Makefile.am (libbtparser_la_LDFLAGS): Increase current
	interface version.

	* lib/utils.c (btp_file_to_string): Use open, lseek, read, close
	instead of fopen, fseek, fread, fclose.

	* lib/normalize_dbus.c (btp_normalize_dbus_thread):
	* lib/normalize_gdk.c (btp_normalize_gdk_thread):
	* lib/normalize_glib.c (btp_normalize_glib_thread):
	* lib/normalize_glibc.c (btp_normalize_glibc_thread):
	* lib/normalize_libstdcpp.c (btp_normalize_libstdcpp_thread):
	* lib/normalize_linux.c (btp_normalize_linux_thread):
	* lib/normalize_xorg.c (btp_normalize_xorg_thread): Store
	next_frame at the beginning of block to simplify the code a
	bit.

2010-09-23  Karel Klíč  <kklic@redhat.com>

	* Makefile.am (EXTRA_DIST): Added autogen.sh.

2010-09-22  Karel Klíč  <kklic@redhat.com>

	* Released as btparser-0.6.

	* NEWS (Changes): Document recent changes.

	* lib/frame.h, lib/frame.c (btp_frame_parse_header): Simplified
	the function interface. Now it returns a pointer to frame or NULL
	in the case of failure. The frame argument was removed.
	* lib/frame.c (btp_frame_parse):
	* tests/frame.at (btp_frame_parse_header): Keep up with the
	btp_frame_parse_header interface change.

	* lib/backtrace.h, lib/backtrace.c (btp_backtrace_parse):
	Simplified the function interface. Now it returns a pointer to
	backtrace or NULL in the case of failure. The backtrace argument
	was removed.
	* btparser.c (main):
	* tests/backtrace.at (btp_backtrace_find_crash_thread)
	(btp_backtrace_limit_frame_depth, btp_backtrace_quality_complex):
	Keep up with the btp_backtrace_parse interface change.

	* lib/thread.h, lib/thread.c (btp_thread_parse): Simplified the
	function interface. Now it returns a pointer to thread or NULL in
	the case of failure. The thread argument was removed.
	* tests/thread.at (btp_thread_parse, btp_thread_parse-locations):
	* lib/backtrace.c (btp_backtrace_parse): Keep up with the
	btp_thread_parse interface change.

	* tests/frame.at (btp_frame_parse): Check whether the expected_frame is
	NULL when the frame is also NULL.

2010-09-21  Karel Klíč  <kklic@redhat.com>

	* lib/frame.h, lib/frame.c (btp_frame_parse): Simplified the
	function interface. Now it returns a pointer to frame or NULL in
	the case of failure. The frame argument was removed.
	* tests/frame.at (btp_frame_parse):
	* lib/backtrace.c (btp_backtrace_parse_header):
	* lib/thread.c (btp_thread_parse): Keep up with the
	btp_frame_parse interface change.

	* lib/utils.h, lib/utils.c: Removed unused function
	btp_parse_regexp.

	* tests/utils.at: Removed a test for btp_parser_regexp.

2010-09-20  Karel Klíč  <kklic@redhat.com>

	* lib/normalize_dbus.h, lib/normalize_gdk.h, normalize_glib.h:
	* normalize_glibc.h, normalize_libstdcpp.h, normalize_linux.h:
	* normalize_xorg.h: Function definitions were moved to
	normalize.h, and these header files were removed.

	* lib/Makefile.am, lib/backtrace.c, lib/normalize.c:
	* lib/normalize.h, lib/normalize_dbus.c, lib/normalize_gdk.c:
	* lib/normalize_glib.c, lib/normalize_glibc.c:
	* lib/normalize_libstdcpp.c, lib/normalize_libstdcpp.c:
	* lib/normalize_xorg.c: Keep up with the normalize_*.h removal.

	* lib/normalize_glib.c (btp_normalize_glib_thread): Optimized and
	simplified the IA__ prefix removal code.

	* lib/normalize_glibc.c (btp_normalize_glibc_thread): Used strcpy
	instead of free and strdup functions in the
	NORMALIZE_ARCH_SPECIFIC macro.

	* tests/backtrace.at (btp_backtrace_remove_threads_except_one):
	Include required stdlib.h header.

	* lib/backtrace.h, lib/frame.h, lib/thread.h, lib/utils.h: Moved includes
	section out of extern "C" section.

	* lib/backtrace.h, lib/frame.h, lib/normalize.h:
	* lib/normalize_dbus.h, lib/normalize_gdk.h, lib/normalize_glib.h:
	* lib/normalize_glibc.h, lib/normalize_libstdcpp.h:
	* lib/normalize_linux.h, lib/normalize_xorg.h, lib/thread.h:
	Removed /* Declarations */ comment.

	* lib/backtrace.h, lib/frame.h, lib/thread.h: Removed superfluous
	stdio.h include.

	* lib/backtrace.c, lib/frame.c: Include required header stdio.h.

	* NEWS: Document recent changes.

	* lib/backtrace.h, lib/backtrace.c (btp_backtrace_dup):
	* lib/frame.h, lib/frame.c (btp_frame_dup):
	* lib/thread.h, lib/thread.c (btp_thread_dup): Remove the shallow
	parameter to simplify the interface.

	* tests/frame.at (btp_frame_dup):
	* lib/backtrace.c (btp_backtrace_quality_complex)
	(btp_backtrace_get_crash_frame)
	(btp_backtrace_get_duplication_hash, btp_backtrace_parse):
	* lib/frame.c (btp_frame_parse_header):
	* lib/thread.c (btp_thread_parse): Keep up with the shallow
	parameter removal.

	* configure.ac: Increase version to 0.6.

	* lib/frame.h, lib/frame.c: Function btp_frame_eq0 was renamed to
	btp_frame_calls_func, btp_frame_eq1 was renamed to
	btp_frame_calls_func_in_file, btp_frame_eq2 was renamed to
	btp_frame_calls_func_in_file2, btp_frame_eq3 was renamed to
	btp_frame_calls_func_in_file3, btp_frame_eq4 was renamed to
	btp_frame_calls_func_in_file4.

	* lib/normalize_dbus.c, lib/normalize_gdk.c, lib/normalize_glib.c:
	Keep up with the renames.
	* lib/normalize_glibc.c, lib/normalize_libstdcpp.c: Likewise.
	* lib/normalize_linux.c, lib/normalize_xorg.c: Likewise.

2010-09-02  Nikola Pajkovský  <npajkovsk@redhat.com>

	* lib/utils.c (btp_file_to_string): Use %zd instead of %d in a
	fprintf call to allow compilation on 64-bit architectures.

2010-08-31  Karel Klíč  <kklic@redhat.com>

	* Released as btparser-0.5.

	* NEWS: Document the fix of rhbz#592523.

	* configure.ac: Changed version to 0.5.

	* lib/normalize.c (btp_normalize_thread): If the last frame has
	address 0x0000 and its name is '??', remove it. This frame is not
	really invalid, and it affects backtrace quality rating. See Red
	Hat Bugzilla bug #592523.

2010-08-30  Karel Klíč  <kklic@redhat.com>

	* Released as btparser-0.4.

	* NEWS: RPM spec news.

	* Makefile.am: Added 'rpm' and 'srpm' targets.

	* btparser.spec.in: Newly created RPM spec file.

	* Released as btparser-0.3.

	* configure.ac, Makefile.am: Generate and distribute btparser.pc.

	* btparser.pc.in: New file - template for pkg-config metadata file
	btparser.pc.

	* tests/Makefile.am (package.m4): Do not depend on configure.ac,
	but depend on the Makefile.in directly.  Removed $srcdir prefix as
	it's superfluous.

	* tests/frame.at: Added a test for btp_frame_dup function.

	* README: Added a "what is btparser" section.

	* lib/frame.h: Added documentation to functions btp_frame_eq0,
	btp_frame_eq1, btp_frame_eq2, and btp_frame_eq3.

	* configure.ac: Increase version to 0.3.

2010-08-28  Karel Klíč  <kklic@redhat.com>

	* Released as btparser-0.2.

	* tests/Makefile.am (EXTRA_DIST): Added backtrace subdirectory to
	EXTRA_DIST, as it should be a part of the distribution.

2010-08-27  Karel Klíč  <kklic@redhat.com>

	* NEWS: Add duplication hash quality comparison of various
	versions of btparser.  Add parser precision comparison with
	abrt-backtrace utility.

	* README:  Removed older parser precision comparison.

	* TODO: Remove finished tasks.

	* btparser.1: Synchronize with btparser interface changes.  Old
	options removed, new options documented.

	* btparser.c: --debug short option changed from -p to -d.
	Fixed a typo in an error message.

	* lib/backtrace.c
	(btp_backtrace_find_crash_thread_from_crash_frame): Display
	debugging information when btp_debug_parser is enabled.
	(btp_backtrace_quality_complex): Use btp_normalize_backtrace so
	that the quality is measured on the normalized backtrace.  The
	quality near the crash frame now includes the top 5 frames of the
	normalized thread.
	(btp_backtrace_get_crash_frame): Use btp_normalize_backtrace to
	find the crash frame. A disadvantage of backtrace normalization is
	that the frame returned is a duplicate and must be released by the
	function caller.
	(btp_backtrace_get_duplication_hash): Use btp_normalize_backtrace,
	and the limit the frame depth to 3 frames to get the duplication
	hash.

	* lib/backtrace.h ( btp_backtrace_get_crash_frame): Document the
	need to release the returned frame by btp_frame_free().

	* lib/frame.c, lib/frame.h: New functions btp_frame_eq0,
	btp_frame_eq1, btp_frame_eq2, btp_frame_eq3, and btp_frame_eq4.

	* lib/normalize.c, lib/normalize.h: New functions
	btp_normalize_thread and btp_normalize_backtrace.

	* lib/ops.c: Renamed to normalize.c.
	* lib/ops.h: Renamed to normalize.h.
	* lib/ops-dbus.h, lib/ops-dbus.c, lib/ops-gdk.c,
	lib/ops-gdk.h:Renamed to normalize_xxx.[ch].
	* lib/ops-glib.c, lib/ops-glib.h, lib/ops-glibc.c: Likewise.
	* lib/ops-glibc.h, lib/ops-libstdcpp.c, lib/ops-libstdcpp.h:
	Likewise.
	* lib/ops-linux.c, lib/ops-linux.h, lib/ops-xorg.c: Likewise.
	* lib/ops-xorg.h: Likewise.

	* lib/Makefile.am: Synchronize with the file renaming.

	* scripts/btparser-bz-downloader: Rewritten to get the search
	results first, then sort the bugs depending on last update time,
	then fetch the data. Added more progress logging output.

	* scripts/btparser-cache-dupchecker: Simplified data
	structures. Added more logging, and change existing output to be
	clearer. Only include Fedora bugs in dupclosecount.

	* scripts/btparser-cache-improvetips: Use the new btparser command
	line interface instead of the now-defunct old one.

2010-08-25  Karel Klíč  <kklic@redhat.com>

	* lib/ops-glibc.c (btp_glibc_frame_is_exit): raise() might be in
	libpthread.so.

	* btparser.c (main): Fixed a typo in an error message.

	* scripts/btparser-compare: Removed.

	* scripts/btparser-compare-all: Renamed to btparser-cache-compare.

	* lib/frame.c (btp_frame_parse_file_location): Added an underscore
	to supported file name characters.
	(btp_frame_parseadd_operator): Do not modify the parameter target
	unless the operator is really detected.

	* lib/frame.h (btp_frame_parseadd_operator): Mention that the
	target buffer is not modified if no operator is found.

	* tests/frame.at: Several tests were extended to catch more cases.

	* scripts/btparser-cache-dupchecker: Adapted to the new btparser
	command line interface.
	* scripts/btparser-cache-improvetips: Likewise.

	* scripts/btparser-compare-all: Read the backtraces from the cache
	subdirectory, where they usually resides, not from the current
	directory.

	* TODO: New file.

	* configure.ac: Increase version to 0.2.

	* tests/backtrace.at: New file. Added tests of
	btp_backtrace_remove_threads_except_one,
	btp_backtrace_find_crash_thread, btp_backtrace_limit_frame_depth,
	btp_backtrace_quality_complex.

	* lib/backtrace.c (btp_backtrace_get_duplication_hash): Do not
	free the backtrace before creating a textual representation of it.

	* lib/frame.c (btp_frame_dup): Fix the duplication crash when run
	with siblings parameter set to true.

	* lib/thread.c (btp_thread_dup): Fix the duplication crash when
	run with siblings parameter set to true.
	(btp_thread_get_frame_count): Rename variable 'f' to 'frame' to
	improve code readability.

2010-08-24  Karel Klíč  <kklic@redhat.com>

	* btparser.c: Rewritten to use the new functions
	btp_backtrace_quality_complex, btp_backtrace_get_crash_frame,
	btp_backtrace_get_duplication_hash.  New user interface.

	* lib/backtrace.h: Extended the documentation of most
	functions. Fixed the documentation alignment. Removed extern
	keyword from function declarations.

	* lib/backtrace.h, lib/backtrace.c: Renamed function
	btp_backtrace_quality to btp_backtrace_quality_simple. Implemented
	new functions btp_backtrace_quality_complex,
	btp_backtrace_get_crash_frame, btp_backtrace_get_duplication_hash.

	* lib/backtrace.c (btp_backtrace_limit_frame_depth): Reimplemented
	using the new function btp_thread_remove_frames_below_n.
	(btp_backtrace_find_crash_thread_from_crash_frame): Marked as
	'static'.  Made the code more readable.
	(btp_backtrace_remove_threads_except_one): Renamed parameter 'one'
	to 'thread'. Renamed 'rm' to 'delete_thread'.

	* lib/ops.h, lib/ops.c: Implement new functions
	btp_ops_backtrace_remove_redundant_frames and
	btp_ops_frame_is_redundant.
	(tp_ops_thread_remove_redundant_frames): Use
	btp_ops_frame_is_redundant.

	* tests/thread.at (btp_thread_parse-locations)
	(btp_thread_remove_frames_below_n, btp_thread_remove_frames_above)
	(btp_thread_remove_frame): New tests.

	* lib/thread.h: Removed extern keyword from function
	declarations. Extended the documentation of all functions.

	* lib/thread.h, lib/thread.c: Renamed the function
	btp_thread_rating to btp_thread_quality_counts.  Implemented new
	functions btp_thread_quality, btp_thread_remove_frame,
	btp_thread_remove_frames_above, btp_thread_remove_frames_below_n.

	* lib/thread.c (btp_thread_append_to_str): More precise error
	messages.  Fixed adding a line to the location for the just-parsed
	thread header line.

	* lib/frame.c (btp_frame_add_sibling): Do not return a value.
	(btp_frame_parse_frame_start): Do not modify input if the parsing
	failed and the function is returning 0.  Calculate the returned
	value more efficiently in the case of parsing success.

	* lib/frame.h: Massively extended documentation of all functions.
	Removed extern keyword from function declarations.

	* lib/ops-gdk.h, lib/ops-glib.h, lib/ops-libstdcpp.h: Remove
	extern keyword from function declarations.
	* lib/ops-linux.h, lib/ops-xorg.h, lib/location.h: Likewise.
	* lib/ops-glibc.h: Likewise.  Plus the documentation has been
	extended.

	* lib/utils.h: Remove extern keyword from function
	declarations. Fix the documentation indentation.

	* lib/strbuf.c (btp_strbuf_free): Do not crash if the provided
	pointer is NULL.

	* lib/strbuf.h: Properly document all functions and the struct
	strbuf.

	* tests/local.at (AT_TESTFUN): Autotest ignores the stdout and
	stderr of the testing C program.

	* tests/frame.at (btp_frame_parseadd_operator): Check the parsed
	length.  Output helper data to stdout.  Added a check for an
	invalid operator.
	(btp_frame_parse_function_name, btp_frame_parse_function_call):
	Output helper data to stdout.

2010-08-23  Karel Klíč  <kklic@redhat.com>

	* lib/frame.h: Small documentation fixes.

	* lib/location.h (btp_location_add, btp_location_add_ext)
	(btp_location): Add a documentation.
	(btp_location_eat_char, btp_location_eat_char_ext): Fixed the
	documentation grammar, and extended.

2010-08-20  Karel Klíč  <kklic@redhat.com>

	* lib/location.h, lib/location.c (btp_location_eat_char): New
	function.

	* lib/frame.c (btp_frame_parseadd_operator)
	(btp_frame_parse_function_name_chunk)
	(btp_frame_parse_function_name_braces)
	(btp_frame_parse_function_name_template): Return an integer
	representing the number of parsed characters, instead of a boolean
	indicating success.
	(btp_frame_parse_function_name)
	(btp_frame_skip_function_args): Added a location parameter, and
	implemented the location support.

	* lib/frame.h (btp_frame_parseadd_operator)
	(btp_frame_parse_function_name)
	(btp_frame_parse_function_name_template)
	(btp_frame_parse_function_name_braces)
	(btp_frame_parse_function_name_chunk): Added documentation.

	* tests/frame.at (btp_frame_parse_frame_start): Added comments and
	made the code more readable.
	(btp_frame_parseadd_operator): Update the test to check for the
	returned integer value.
	(btp_frame_parse_function_name, btp_frame_skip_function_args):
	Update the test to use location parameter. The value returned in
	this parameter is not checked for correctness yet.

2010-08-16  Karel Klíč  <kklic@redhat.com>

	* tests/frame.at, tests/thread.at: Keep up with the function
	interface changes.

	* tests/utils.at: Keep up with interface changes.  Added new tests
	for functions btp_strspn_location, btp_skip_char,
	btp_skip_char_limited, btp_skip_char_sequence, btp_skip_char_span,
	btp_skip_char_span_location, btp_parse_char_span, btp_skip_string,
	btp_skip_unsigned_integer, btp_parse_unsigned_integer.

	* lib/utils.h: New functions btp_strspn_location and
	btp_skip_char_span_location.  Functions btp_skip_char_sequence,
	btp_skip_char_span, btp_parse_char_span, btp_skip_string,
	btp_skip_unsigned_integer, btp_parse_unsigned_integer,
	btp_skip_hexadecimal_number, and btp_parse_hexadecimal_number
	return an integer (indicating the number of characters processed)
	instead of a boolean (indicating success/failure). This change is
	neccessary for implementing proper error reporting with
	line/column error location.

	* lib/thread.c (btp_thread_parse): Added the location parameter,
	and implemented its usage.

	* lib/thread.h: Added the location parameter to the function
	btp_thread_parse.

	* lib/frame.c (btp_frame_parse, btp_frame_parse_function_call):
	Added the location parameter, but the location feature has not
	been fully implemented yet.
	(btp_frame_parse_frame_start): Returns the number of characters
	parsed from input.
	(btp_frame_parseadd_operator, btp_frame_parse_function_name):
	Adapted to the changes of other functions.
	(btp_frame_parse_address_in_function)
	(btp_frame_parse_file_location, btp_frame_parse_header): Added the
	location parameter, and implemented its usage.

	* lib/frame.h: Add the location parameter to functions
	btp_frame_parse, btp_frame_parse_function_call,
	btp_frame_parse_address_in_function,
	btp_frame_parse_file_location, btp_frame_parse_header.  Function
	btp_frame_parse_frame_start returns int instead of bool. It
	returns the number of characters parsed from input.

	* lib/backtrace.c (btp_backtrace_parse): Use the newly added
	location parameter of btp_thread_parse and btp_frame_parse
	functions.

2010-08-05  Karel Klíč  <kklic@redhat.com>

	* tests/utils.at: Added btp_strcmp0, btp_strchr_location, and
	btp_strstr_location tests.

	* lib/utils.c (btp_strcmp0): Changed it so that NULL value is
	considered to be "less" than an existing string.

	* tests/utils.at: Renamed parser_elements.at to utils.at.

	* tests/frame.at: Renamed parser_frame.at to frame.at.

	* tests/thread.at: Renamed parser_thread.at to thread.at.

	* lib/utils.h: Extended the interface documentation.  Added new
	functions btp_strchr_location and btp_strstr_location.

	* lib/utils.c: Implemented new functions added to lib/utils.h.

	* lib/backtrace.h: Extended the interface documentation.  Added
	location parameter to functions btp_backtrace_parse and
	btp_backtrace_parse_header.

	* lib/backtrace.c (btp_backtrace_parse)
	(btp_backtrace_parse_header): Added location support.

	* btparser.c: Updated to use the new location feature.

	* lib/location.h, lib/location.c: New struct btp_location and
	associated helper functions.

	* lib/Makefile.am (libbtparser_la_SOURCES): Added location.h and
	location.c.
	(pkginclude_HEADERS): Added location.h.

	* scripts/btparser-bz-downloader: Skip bug downloading when
	bug.info file already exists.  Ask server for component owner only
	if it's not already available.
	(getbug): New method, repeats Bugzilla XML/RPC request if Bugzilla
	fails to answer.

	* scripts/btparser-cache-dupchecker: Put back --verbose option.
	Fixed an exception when adding a bug to component-bugs hash.

	* btparser.c (main): Added a newline to an error message.

2010-07-29  Karel Klíč  <kklic@redhat.com>

	* scripts/btparser-bz-downloader: Properly serialize duplicates.

	* scripts/btparser-bz-improvetips: btparser trims the backtrace
	output like ABRT does.  Properly deserialize duplicates from the
	input file.

2010-07-28  Karel Klíč  <kklic@redhat.com>

	* scripts/btparser-bz-improvetips: New script. It checks that the
	bugs marked as duplicates in Bugzilla are recognized as duplicates
	by btparser.

	* scripts/btparser-bz-downloader: New script. Downloads
	ABRT-reported backtraces from Bugzilla.

	* scripts/btparser-compare-all: Added some comments.

2010-06-21  Karel Klíč  <kklic@redhat.com>

	* configure.ac: Added AM_MAINTAINER_MODE.
	* Makefile.am: Add 'upload' target to .PHONY.