]> git.decadent.org.uk Git - dak.git/blob - ChangeLog
Merge the cleanup branch, part 1
[dak.git] / ChangeLog
1 2008-05-04  Joerg Jaspert  <joerg@debian.org>
2
3         * dak/check_proposed_updates.py: Import stuff from daklib as
4         "import daklib.foo as foo"
5         * dak/clean_proposed_updates.py: likewise
6         * dak/clean_queues.py: likewise
7
8         * dak/check_archive.py (check_files_not_symlinks): Remove
9         long-time unused and commented code. Import stuff from daklib as
10         "import daklib.foo as foo"
11
12 2008-05-03  Joerg Jaspert  <joerg@debian.org>
13
14         * dak/examine_package.py: clean up pychecker warnings (merged with
15         Thomas changes to the NEW display)
16
17 2008-05-03  Mark Hymers <mhy@debian.org>
18
19         * dak/check_archive.py: clean up pychecker warnings
20         * dak/check_overrides.py: likewise
21         * dak/check_proposed_updates.py: likewise
22         * dak/clean_proposed_updates.py: likewise
23         * dak/clean_queues.py: likewise
24         * dak/control_overrides.py: likewise
25         * dak/control_suite.py: likewise
26         * dak/decode_dot_dak.py: likewise
27         * dak/examine_package.py: likewise
28         * dak/process_new.py: likewise
29         * dak/process_unchecked.py: likewise
30         * dak/queue_report.py: likewise
31         * dak/reject_proposed_updates.py: likewise
32         * dak/security_install.py: likewise
33         * dak/show_new.py: likewise
34         * dak/stats.py: likewise
35         * dak/symlink_dists.py: likewise
36         * dak/transitions.py: likewise
37
38 2008-05-03  Joerg Jaspert  <joerg@debian.org>
39
40         * config/debian/cron.daily: Rename to
41         * config/debian/cron.dinstall: this, as its not really something run
42         daily for some time now. And while dinstall is an OLD name, its
43         recognized pretty well within Debian
44         Also add some more timing information
45         Do not allow automated [o-]p-u-new processing to break dinstall
46
47 2008-05-03  Thomas Viehmann  <tv@beamnet.de>
48
49         * web/,web/style.css: add web dir and current style.css
50
51         * dak/examine_package.py, dak/show_new.py: improve NEW html pages,
52         based on mock-up by M. Ferrari.
53         remove Checksums-* from examine-package output
54
55 2008-05-03  Thomas Viehmann  <tv@beamnet.de>
56
57         * dak/process_unchecked.py (check_hashes): Reject on error while
58         parsing Checksums-*.
59
60 2008-05-02  Joerg Jaspert  <joerg@debian.org>
61
62         * config/debian/pseudo-packages*: Removed listarchives, closes #468667
63         added wiki.debian.org (currently pointing to debian-www), closes #194206
64         added security-tracker, closes #436152
65         added release.debian.org, closes #451005
66
67         * config/debian/cron.buildd: Cleanup unreachable code. (If someone
68         still wants it - its in revision control...)
69
70         * config/debian/cron.daily: Modify call to update-ftpstats to only
71         use files log/2*, instead of log/*, so it ignores the new cron/
72         subdir. Makes sure it can't get confused, and is also safe for
73         nearly thousand years. If this code is really in use in year 3000,
74         im sure people can adjust it! :)
75
76         * config/debian/vars: Add logdir as a place for cronjob log output
77
78         * config/debian/cron.daily: Use a logfile and be more verbose of
79         whats going on.
80           Also moved the commented VACUUM ; VACUUM ANALYZE calls over to
81         cron.weekly, ...
82         * config/debian/cron.weekly: likewise,
83           ... and activate those calls again. Once a week, as an
84         additional safety bet to be sure the stuff does get run is ok,
85         even if we have autovacuum by default.
86
87 2008-05-02  Thomas Viehmann  <tv@beamnet.de>
88
89         * dak/process_unchecked.py (check_hashes): fix typo in
90           checksum reject message.
91
92 2008-05-02  Joerg Jaspert  <joerg@debian.org>
93
94         * config/debian/extensions.py: used reindent.py from the python
95         2.x source examples to get all dak code use the same indentation
96         style, no longer a mix of 4 spaces / 1 tab.
97         * dak/check_archive.py: likewise
98         * dak/check_overrides.py: likewise
99         * dak/check_proposed_updates.py: likewise
100         * dak/clean_proposed_updates.py: likewise
101         * dak/clean_queues.py: likewise
102         * dak/clean_suites.py: likewise
103         * dak/compare_suites.py: likewise
104         * dak/control_overrides.py: likewise
105         * dak/control_suite.py: likewise
106         * dak/cruft_report.py: likewise
107         * dak/dak.py: likewise
108         * dak/decode_dot_dak.py: likewise
109         * dak/examine_package.py: likewise
110         * dak/find_null_maintainers.py: likewise
111         * dak/generate_index_diffs.py: likewise
112         * dak/generate_releases.py: likewise
113         * dak/import_archive.py: likewise
114         * dak/import_keyring.py: likewise
115         * dak/import_ldap_fingerprints.py: likewise
116         * dak/import_users_from_passwd.py: likewise
117         * dak/init_db.py: likewise
118         * dak/init_dirs.py: likewise
119         * dak/ls.py: likewise
120         * dak/make_maintainers.py: likewise
121         * dak/make_overrides.py: likewise
122         * dak/make_suite_file_list.py: likewise
123         * dak/mirror_split.py: likewise
124         * dak/new_security_install.py: likewise
125         * dak/override.py: likewise
126         * dak/poolize.py: likewise
127         * dak/process_accepted.py: likewise
128         * dak/process_new.py: likewise
129         * dak/process_unchecked.py: likewise
130         * dak/queue_report.py: likewise
131         * dak/reject_proposed_updates.py: likewise
132         * dak/rm.py: likewise
133         * dak/security_install.py: likewise
134         * dak/show_new.py: likewise
135         * dak/split_done.py: likewise
136         * dak/stats.py: likewise
137         * dak/symlink_dists.py: likewise
138         * dak/test/001/test.py: likewise
139         * dak/test/002/test.py: likewise
140         * dak/transitions.py: likewise
141         * daklib/extensions.py: likewise
142         * daklib/logging.py: likewise
143         * daklib/queue.py: likewise
144         * daklib/utils.py: likewise
145         * scripts/debian/insert_missing_changedby.py: likewise
146
147         * dak/process_new.py (recheck): Make the path check more robust,
148         so we no longer have to keep process_new seperate trees between
149         security and normal archive.
150
151 2008-04-27  Joerg Jaspert  <joerg@debian.org>
152
153         * dak/process_accepted.py (Urgency_Log.__init__): Warn if the
154         configured path does not exist or is not writeable by us. Use a
155         tmp path if so, so we do not lose the urgencies in such cases.
156
157         * config/debian/dak.conf: Changed path for UrgencyLog
158         Same for the ReleaseTransitions file
159
160         * config/debian/cron.daily: Notify qa user on merkel of dinstall
161         start, Remove the britney call
162
163 2008-04-26  Joerg Jaspert  <joerg@debian.org>
164
165         * dak/process_new.py: Call end() whenever we try to leave by
166         pressing Q
167
168         * config/debian/cron.daily: Also report NBS in experimental
169
170 2008-04-25  Joerg Jaspert  <joerg@debian.org>
171
172         * dak/cruft_report.py (main): Make it possible to look at
173         experimental too, especially NBS
174
175         * dak/split_done.py (main): Only move files into their subdirs if
176         they are older than 30 days. That enables us to run this script as
177         part of a cronjob.
178
179         * config/debian/cron.weekly: Run dak split-done
180
181 2008-04-23  Thomas Viehmann  <tviehmann@debian.org>
182
183         * dak/process_unchecked.py: add changes["sponsoremail"]
184           for sponsored uploads if desired
185         * daklib/queue.py: add changes["sponsoremail"] to
186           Subst["__MAINTAINER_TO__"] if present
187         * daklib/utils.py: add functions
188           is_email_alias to check which accounts allow email forwarding,
189           which_alias_file to find the alias file, and
190           gpg_get_key_addresses to find uid addresses for a given
191             fingerprint
192
193 2008-04-22  Joerg Jaspert  <joerg@debian.org>
194
195         * setup/init_pool.sql: added a function/aggregate for the release
196         team to base some script on it.
197
198         * config/debian/cron.daily: push katie@merkel to immediately start
199         the sync of projectb there.
200
201 2008-04-21  Joerg Jaspert  <joerg@debian.org>
202
203         * scripts/debian/expire_dumps: New script, expires old database
204         dumps, using a scheme to keep more of the recent dumps.
205
206         * config/debian/cron.daily: Use the new script. Also - compress
207         all files older than 7 days, instead of 30.
208
209         * dak/process_accepted.py (install): Do not break if a
210         source/maintainer combination is already in src_uploaders, "just"
211         warn us.
212
213 2008-04-20  Thomas Viehmann  <tviehmann@debian.org>
214
215         * daklib/utils.py (build_file_list): Deal with "Format 3 style"
216         Format lines (ie. those having extra text appended).
217
218 2008-04-19  Joerg Jaspert  <joerg@debian.org>
219
220         * dak/process_unchecked.py (check_files): Sanity check the
221         provides field, which closes #472783
222
223 2008-04-18  Joerg Jaspert  <joerg@debian.org>
224
225         * config/debian/dak.conf: Add mapping stable-proposed-updates
226           -> proposed-updates.
227
228         * dak/transitions.py (load_transitions): Additionally check for
229         invalid package list indentation
230
231 2008-04-17  Joerg Jaspert  <joerg@debian.org>
232
233         * config/debian/dak.conf: Add TempPath statement for the Release
234         Transitions script
235
236         * dak/transitions.py (temp_transitions_file): Use the TempPath
237         (write_transitions_from_file): Check if the file we should get our
238         transitions from is in our TempPath, error out if it isnt
239         (main): Check for TempPath existance
240
241 2008-04-12  James Troup  <troup@debian.org>
242
243         * dak/clean_proposed_updates.py: add support for -s/--suite and
244         -n/--no-action.
245
246 2008-04-11  Anthony Towns  <ajt@debian.org>
247
248         * dak/utils.py: build_file_list() extra parameters so it can
249         build a file list for checksums-foo fields. Don't use float() to
250         compare formats, because Format: 1.10 should compare greater than
251         Format: 1.9 (use "1.9".split(".",1) and tuple comparison instead)
252
253         * dak/process_unchecked.py: check_md5sum becomes check_hashes
254         and check_hash. If changes format is 1.8 or later, also check
255         checksums-sha1 and checksums-sha256 for both .changes and .dsc,
256         and reject on presence/absence of un/expected checksums-* fields.
257
258 2008-04-07  Joerg Jaspert  <joerg@debian.org>
259
260         * daklib/utils.py (build_file_list): Check for dpkg .changes
261         adjusted to reject newer (and right now broken) 1.8 version, until
262         dpkg (or debsign) is fixed and doesn't produce invalid .changes anymore
263
264 2008-03-22  Joerg Jaspert  <joerg@debian.org>
265
266         * dak/transitions.py (load_transitions): Check if all our keys are
267         defined, if there are only keys defined we want and also the types
268         of the various keys.
269
270 2008-03-22  Anthony Towns  <ajt@debian.org>
271
272         * dak/edit_transitions.py: Add --import option.
273         Add --use-sudo option. Use fcntl locking for writing.
274         Move writing into a function (write_transitions).
275         Reinvoke self using sudo and --import if necessary.
276         Move temporary file creation into a function, use mkstemp.
277         Rename to "dak transitions".
278
279 2008-03-21  Joerg Jaspert  <joerg@debian.org>
280
281         * dak/edit_transitions.py (edit_transitions): Use sudo to copy the
282         edited file back in place
283         (check_transitions): Use proper locking and also use sudo to copy
284         the new file in place
285
286 2008-03-21  Anthony Towns <ajt@debian.org>
287
288         * config/debian/extensions.py: Add infrastructure for replacing
289         functions in dak modules; add upload blocking for dpkg.
290
291 2008-03-12  Joerg Jaspert  <joerg@debian.org>
292
293         * dak/edit_transitions.py: Done a number of cleanups to make code
294         working. Also changed the way prompting/answering goes, to not
295         have to import daklib/queue.
296         (edit_transitions): When done with a successful edit - also print
297         a final overview about defined transitions
298
299 2008-03-11  Joerg Jaspert  <joerg@debian.org>
300
301         * dak/process_unchecked.py: Import syck module directly, not "from
302         syck import *"
303         (check_transition): Do the check for sourceful upload in here
304         Also adjust the syck loading commands, rename new_vers to
305         expected, curvers to current, to make it more clear what they mean.
306
307         * daklib/database.py (get_suite_version): Renamed from
308         get_testing_version. Also changed the cache variables name
309
310         * The above changes are based on modifications from Anthony.
311
312         * dak/dak.py (init): Renamed check -> edit transitions
313
314         * dak/edit_transitions.py: Renamed from check_transitions.py
315         (main): Also rename new_vers/curvers to expected/current
316         Basically a nice rewrite, so it now does checks and edit,
317         depending on how you call it. Check also removes old transitions,
318         if user wants it.
319
320 2008-03-02  Joerg Jaspert  <joerg@debian.org>
321
322         * debian/control (Suggests): Add python-syck to Depends:
323
324         * dak/dak.py (init): Tell it about check_transitions
325
326         * dak/check_transitions.py (usage): Added, checks the transitions
327         file (if any)
328
329         * daklib/database.py (get_testing_version): Added. Returns the
330         version for the source in testing, if any
331
332         * dak/process_unchecked.py (check_transition): Added. Checks if a
333         release team member defined a transition, and rejects based on
334         that data.
335         (process_it): Use it.
336         (check_transition): Warn on broken transitions file and return,
337         not doing anything.
338         (check_transition): Moved out of here, into daklib/queue
339         (process_it): Call check_transitions only if
340         changes[architecture] has source included.
341         (check_transition): Now call the database.get_testing_version
342
343 2008-02-09  Christoph Berg <myon@debian.org>
344
345         * daklib/queue.py (get_type): fubar does not exist in global
346         namespace.
347
348         * setup/add_constraints.sql setup/init_pool.sql: Add changedby column
349         to source table, and move src_uploaders after source so the REFERNCES
350         clause works.
351         * dak/process_accepted.py (install): Fill the changedby column from
352         the information found in the .changes. This will allow to identify
353         NMUs and sponsored uploads more precisely in tools querying projectb.
354         * scripts/debian/insert_missing_changedby.py: Script to import yet
355         missing fields from filippo's uploads-history DB.
356
357 2008-02-06  Joerg Jaspert  <joerg@debian.org>
358
359         * daklib/utils.py (check_signature): Make variable key available,
360         so we can access it.
361
362 2008-01-07  Joerg Jaspert  <joerg@debian.org>
363
364         * dak/examine_package.py (check_deb): Remove linda call. It
365         provides no added benefit to lintian anymore.
366
367 2008-01-07  Joerg Jaspert  <joerg@debian.org>
368
369         * dak/examine_package.py (check_deb): Remove linda call. It
370         provides no added benefit to lintian anymore.
371
372 2008-01-06  Joerg Jaspert  <joerg@debian.org>
373
374         * dak/examine_package.py (do_lintian): lintian now supports html
375         coloring, so use it.
376         (do_command): Dont escape html chars if param escaped = 1
377
378 2008-01-06  Joerg Jaspert  <joerg@debian.org>
379
380         * dak/examine_package.py (do_lintian): lintian now supports html
381         coloring, so use it.
382         (do_command): Dont escape html chars if param escaped = 1
383
384 2007-12-31  Anthony Towns  <ajt@debian.org>
385
386         * dak/process_new.py (recheck): pass "" for prefix_str to reject()
387         when processing result of check_dsc_against_db so we don't promote
388         warnings to rejections.
389
390 2007-12-31  Anthony Towns  <ajt@debian.org>
391
392         * dak/process_new.py (recheck): pass "" for prefix_str to reject()
393         when processing result of check_dsc_against_db so we don't promote
394         warnings to rejections.
395
396 2007-12-30  Joerg Jaspert  <joerg@debian.org>
397
398         * dak/dak.py (init): add show-new. This is based on a patch
399         submitted by Thomas Viehmann in Bug #408318, but large parts of
400         handling it are rewritten and show-new is done by me.
401
402         * dak/queue_report.py (table_row): Add link to generated html page
403         for NEW package.
404
405         * dak/show_new.py: new file, generates html overview for NEW
406         packages, similar to what we see with examine-package.
407
408         * config/debian/cron.hourly: Add show-new call
409
410         * config/debian/dak.conf: Add HTMLPath for Show-New
411
412         * dak/examine_package.py (print_copyright): ignore stderr when
413         finding copyright file.
414         (main): add html option
415         (html_escape): new function
416         (escape_if_needed): ditto
417         (headline): ditto
418         (colour_output): ditto
419         (print_escaped_text): ditto
420         (print_formatted_text): ditto
421         - use those functions everywhere where we generate output, as they
422         easily know if we want html or not and just DTRT
423         (do_lintian): new function
424         (check_deb): use it
425         (output_deb_info): Use print_escaped_text, not print_formatted_text.
426         Also import daklib.queue, determine_new now lives there
427
428         Also add a variable to see if we want html output. Default is
429         disabled, show_new enables it for its use.
430         Most of html, besides header/footer are in examine_package instead
431         of show_new, as it makes it a whole lot easier to deal with it at
432         the point the info is generated.
433
434
435         * dak/process_new.py (determine_new): Moved out of here.
436         (check_valid): Moved out of here.
437         (get_type): Moved out of here.
438
439         * daklib/queue.py (determine_new): Moved here.
440         (check_valid): Moved here.
441         (get_type): Moved here.
442
443         * dak/init_db.py (do_section): Remove non-US code
444
445         * dak/make_overrides.py (main): ditto
446
447         * dak/process_new.py (determine_new): ditto
448
449         * daklib/queue.py (Upload.in_override_p),
450         (Upload.check_override): ditto
451
452         * daklib/utils.py (extract_component_from_section):,
453         (poolify): ditto
454
455         * dak/import_archive.py (update_section): ditto
456
457         * dak/symlink_dists.py (fix_component_section): ditto
458
459         * scripts/debian/mkmaintainers: ditto
460
461         * scripts/debian/update-mirrorlists (masterlist): ditto
462
463         * config/debian-non-US/*: Remove subdir
464
465         * scripts/debian/update-readmenonus: Removed.
466
467
468 2007-12-30  Joerg Jaspert  <joerg@debian.org>
469
470         * dak/dak.py (init): add show-new. This is based on a patch
471         submitted by Thomas Viehmann in Bug #408318, but large parts of
472         handling it are rewritten and show-new is done by me.
473
474         * dak/queue_report.py (table_row): Add link to generated html page
475         for NEW package.
476
477         * dak/show_new.py: new file, generates html overview for NEW
478         packages, similar to what we see with examine-package.
479
480         * config/debian/cron.hourly: Add show-new call
481
482         * config/debian/dak.conf: Add HTMLPath for Show-New
483
484         * dak/examine_package.py (print_copyright): ignore stderr when
485         finding copyright file.
486         (main): add html option
487         (html_escape): new function
488         (escape_if_needed): ditto
489         (headline): ditto
490         (colour_output): ditto
491         (print_escaped_text): ditto
492         (print_formatted_text): ditto
493         - use those functions everywhere where we generate output, as they
494         easily know if we want html or not and just DTRT
495         (do_lintian): new function
496         (check_deb): use it
497         (output_deb_info): Use print_escaped_text, not print_formatted_text.
498         Also import daklib.queue, determine_new now lives there
499
500         Also add a variable to see if we want html output. Default is
501         disabled, show_new enables it for its use.
502         Most of html, besides header/footer are in examine_package instead
503         of show_new, as it makes it a whole lot easier to deal with it at
504         the point the info is generated.
505
506
507         * dak/process_new.py (determine_new): Moved out of here.
508         (check_valid): Moved out of here.
509         (get_type): Moved out of here.
510
511         * daklib/queue.py (determine_new): Moved here.
512         (check_valid): Moved here.
513         (get_type): Moved here.
514
515         * dak/init_db.py (do_section): Remove non-US code
516
517         * dak/make_overrides.py (main): ditto
518
519         * dak/process_new.py (determine_new): ditto
520
521         * daklib/queue.py (Upload.in_override_p),
522         (Upload.check_override): ditto
523
524         * daklib/utils.py (extract_component_from_section):,
525         (poolify): ditto
526
527         * dak/import_archive.py (update_section): ditto
528
529         * dak/symlink_dists.py (fix_component_section): ditto
530
531         * scripts/debian/mkmaintainers: ditto
532
533         * scripts/debian/update-mirrorlists (masterlist): ditto
534
535         * config/debian-non-US/*: Remove subdir
536
537         * scripts/debian/update-readmenonus: Removed.
538
539
540 2007-12-28  Anthony Towns  <ajt@debian.org>
541
542         * daklib/utils.py (check_signature): add NOTATION_DATA and
543         NOTATION_NAME to known keywords.
544
545         * daklib/queue.py (Upload.check_source_against_db):
546
547         * dak/make_suite_file_list.py: add -f/--force option.
548
549         * dak/generate_releases.py: add -a/--apt-conf=FILE and
550         -f/--force-touch options.  Pull version info from the database.
551         Make suite description optional.
552
553         * config/debian/dak.conf: update
554         Reject-Proposed-Updates::MoreInfoURL.  Comment out
555         Suite::Stable::Version and ::Description.
556
557         * config/debian/apt.conf: Add hurd-i386 to unstable
558         debian-installer stanza.
559
560 2007-12-28  Joerg Jaspert  <joerg@debian.org>
561
562         * KEYEXPIRED is actually a known keyword. We do check it earlier
563         on and reject in case the sig is bad (or unknown)
564
565 2007-12-28  Anthony Towns  <ajt@debian.org>
566
567         * daklib/utils.py (check_signature): add NOTATION_DATA and
568         NOTATION_NAME to known keywords.
569
570         * daklib/queue.py (Upload.check_source_against_db):
571
572         * dak/make_suite_file_list.py: add -f/--force option.
573
574         * dak/generate_releases.py: add -a/--apt-conf=FILE and
575         -f/--force-touch options.  Pull version info from the database.
576         Make suite description optional.
577
578         * config/debian/dak.conf: update
579         Reject-Proposed-Updates::MoreInfoURL.  Comment out
580         Suite::Stable::Version and ::Description.
581
582         * config/debian/apt.conf: Add hurd-i386 to unstable
583         debian-installer stanza.
584
585 2007-12-28  Joerg Jaspert  <joerg@debian.org>
586
587         * KEYEXPIRED is actually a known keyword. We do check it earlier
588         on and reject in case the sig is bad (or unknown)
589
590 2007-12-24  Joerg Jaspert  <joerg@debian.org>
591
592         * Also run lintian on the .dsc file to check the source itself.
593
594         * Fix the direct usage of ar | tar etc to get the copyright file
595         and use dpkg-deb, which is made for this and makes us able to
596         process data.tar.bz2 (or whatever format it will be in the
597         future).
598
599 2007-12-24  Joerg Jaspert  <joerg@debian.org>
600
601         * Also run lintian on the .dsc file to check the source itself.
602
603         * Fix the direct usage of ar | tar etc to get the copyright file
604         and use dpkg-deb, which is made for this and makes us able to
605         process data.tar.bz2 (or whatever format it will be in the
606         future).
607
608 2007-12-21  Joerg Jaspert  <joerg@debian.org>
609
610         * Remove the (now useless) check for a pre-depends on dpkg for
611           binaries that contain bzip2 compressed data tarballs.
612
613 2007-12-21  Joerg Jaspert  <joerg@debian.org>
614
615         * Remove the (now useless) check for a pre-depends on dpkg for
616           binaries that contain bzip2 compressed data tarballs.
617
618 2007-08-28  Anthony Towns  <ajt@debian.org>
619
620         * process_unchecked.py: Add support for automatic BYHAND
621         processing.
622         * config/debian/dak.conf, scripts/debian/byhand-tag: Automatic
623         processing of tag-overrides.
624         * examine_package.py: Summarise duplicate copyright file entries
625         (same md5sum) with a reference to the previous instance, rather
626         than repeating them.
627         * process_new.py: When rejecting from the p-u-new or o-p-u-new
628         holding queues, don't worry if dak has its own reasons for
629         rejecting the package as well as the SRMs.
630
631 2007-08-28  Anthony Towns  <ajt@debian.org>
632
633         * process_unchecked.py: Add support for automatic BYHAND
634         processing.
635         * config/debian/dak.conf, scripts/debian/byhand-tag: Automatic
636         processing of tag-overrides.
637         * examine_package.py: Summarise duplicate copyright file entries
638         (same md5sum) with a reference to the previous instance, rather
639         than repeating them.
640         * process_new.py: When rejecting from the p-u-new or o-p-u-new
641         holding queues, don't worry if dak has its own reasons for
642         rejecting the package as well as the SRMs.
643
644 2007-06-19  Anthony Towns  <ajt@debian.org>
645
646         * Add nm.debian.org pseudopackage
647
648 2007-06-19  Anthony Towns  <ajt@debian.org>
649
650         * Add nm.debian.org pseudopackage
651
652 2007-06-18  Anthony Towns  <ajt@debian.org>
653
654         * daklib/logging.py: Set umask to not exclude group-writability
655         so we don't get reminded at the start of each month. Thanks to
656         Random J.
657         * dak/override.py: More changes from Herr von Wifflepuck: warn
658         if section of source is different to binary section; restore
659         functionality on source-only overrides; croak if trying to set
660         priority of a source override; never set priority of source
661         overrides; correct typo in logging (s/priority/section/ at
662         one place)
663
664         * config/debian/apt.conf.oldstable: Added for oldstable point releases.
665         * config/debian/cron.daily: auotmatically accept/reject
666         oldstable-proposed-updates based on COMMENTS directory
667
668 2007-06-18  Anthony Towns  <ajt@debian.org>
669
670         * config/debian/apt.conf, config/debian/apt.conf.stable,
671         config/debian/dak.conf: update for 4.0r0 (etch), and 3.1r6
672         (sarge), support for oldstable-proposed-updates, dropping m68k
673         from etch, creating etch-m68k suite, creating lenny.
674
675         * config/debian/vars: update for lenny
676
677         * config/debian/dak.conf: typo fix for Dinstall::GPGKeyring,
678         drop upload limitations, add release postgres user
679
680         * dak/process_new.py: support for automatically accepting and rejecting
681         packages from proposed-updates holding queues via COMMENTS directory
682         * cron.daily: automatically process COMMENTS-based approvals
683         and rejections for proposed-updates holding queues
684
685         * dak/process_unchecked.py: add support for oldproposedupdates
686         holding queue
687
688         * dak/control_suite.py: allow control-suite to work with etch-m68k
689
690         * dak/generate_releases.py: unlink old Release files before updating
691         them if nlinks > 1 (ie, if two files used to be the same, maybe they
692         shouldn't be when generate-releases is run)
693
694         * dak/generate_releases.py: add a couple of commented lines to make
695         it easier to deal with point releases
696
697         * dak/make_overrides.py: generate overrides for !contrib udebs
698
699         * docs/README.stable-point-release: update docs for doing a
700         point release
701
702 2007-06-18  Anthony Towns  <ajt@debian.org>
703
704         * daklib/logging.py: Set umask to not exclude group-writability
705         so we don't get reminded at the start of each month. Thanks to
706         Random J.
707         * dak/override.py: More changes from Herr von Wifflepuck: warn
708         if section of source is different to binary section; restore
709         functionality on source-only overrides; croak if trying to set
710         priority of a source override; never set priority of source
711         overrides; correct typo in logging (s/priority/section/ at
712         one place)
713
714         * config/debian/apt.conf.oldstable: Added for oldstable point releases.
715         * config/debian/cron.daily: auotmatically accept/reject
716         oldstable-proposed-updates based on COMMENTS directory
717
718 2007-06-18  Anthony Towns  <ajt@debian.org>
719
720         * config/debian/apt.conf, config/debian/apt.conf.stable,
721         config/debian/dak.conf: update for 4.0r0 (etch), and 3.1r6
722         (sarge), support for oldstable-proposed-updates, dropping m68k
723         from etch, creating etch-m68k suite, creating lenny.
724
725         * config/debian/vars: update for lenny
726
727         * config/debian/dak.conf: typo fix for Dinstall::GPGKeyring,
728         drop upload limitations, add release postgres user
729
730         * dak/process_new.py: support for automatically accepting and rejecting
731         packages from proposed-updates holding queues via COMMENTS directory
732         * cron.daily: automatically process COMMENTS-based approvals
733         and rejections for proposed-updates holding queues
734
735         * dak/process_unchecked.py: add support for oldproposedupdates
736         holding queue
737
738         * dak/control_suite.py: allow control-suite to work with etch-m68k
739
740         * dak/generate_releases.py: unlink old Release files before updating
741         them if nlinks > 1 (ie, if two files used to be the same, maybe they
742         shouldn't be when generate-releases is run)
743
744         * dak/generate_releases.py: add a couple of commented lines to make
745         it easier to deal with point releases
746
747         * dak/make_overrides.py: generate overrides for !contrib udebs
748
749         * docs/README.stable-point-release: update docs for doing a
750         point release
751
752 2007-03-05  Anthony Towns  <ajt@debian.org>
753
754         * config/debian/dak.conf: update for 3.1r5.
755         * scripts/debian/ssh-move: add ssh-move script from debbugs
756         * config/debian/cron.unchecked: push version info to debbugs using
757         ssh-move.
758
759 2007-03-05  Anthony Towns  <ajt@debian.org>
760
761         * config/debian/dak.conf: update for 3.1r5.
762         * scripts/debian/ssh-move: add ssh-move script from debbugs
763         * config/debian/cron.unchecked: push version info to debbugs using
764         ssh-move.
765
766 2007-02-14  James Troup  <troup@ries.debian.org>
767
768         * docs/README.config: remove Dinstall::GroupOverrideFilename.
769         * config/debian/dak.conf: likewise.
770         * config/debian-non-US/dak.conf: likewise.
771         * config/debian-security/dak.conf: likewise.
772
773         * daklib/queue.py (Upload.close_bugs): no longer handle NMUs or
774         experimental differently, just close the bugs and let version
775         tracking sort it out.
776          (nmu_p): remove entire class - now unused.
777          (Upload.__init__): don't use nmu_p.
778
779 2007-02-14  James Troup  <troup@ries.debian.org>
780
781         * docs/README.config: remove Dinstall::GroupOverrideFilename.
782         * config/debian/dak.conf: likewise.
783         * config/debian-non-US/dak.conf: likewise.
784         * config/debian-security/dak.conf: likewise.
785
786         * daklib/queue.py (Upload.close_bugs): no longer handle NMUs or
787         experimental differently, just close the bugs and let version
788         tracking sort it out.
789          (nmu_p): remove entire class - now unused.
790          (Upload.__init__): don't use nmu_p.
791
792 2007-02-08  Anthony Towns  <ajt@debian.org>
793
794         * config/debian/dak.conf: update for 3.1r4.  Use new 'etch'
795         signing key.  Drop maximum index diffs down to 14.
796
797         * config/debian/apt.conf: add udeb support for non-free (testing,
798         unstable) and experimental.
799         * config/debian/dak.conf: likewise.
800
801         * dak/generate_releases.py (main): handle udebs in any component.
802
803         * daklib/queue.py (Upload.build_summaries): handle files without a
804         'type' gracefully.
805
806         * dak/generate_releases.py (print_sha256_files): new function.
807         (main): use it.
808
809         * dak/process_accepted.py (stable_install): fix name of template
810         mail.
811
812         * dak/process_unchecked.py (is_stableupdate): fix invocation of
813         database.get_suite_id().
814
815         * templates/process-new.bxa_notification: Update on request
816         of/after discussion with BIS staff.
817
818         * scripts/debian/mkfilesindices: also handle proposed-updates.
819
820 2007-02-08  Ryan Murray  <rmurray@debian.org>
821
822         * config/debian/cron.monthly: use $ftpgroup instead of hardcoding
823         group name for chgrp of mail archives.
824
825         * daklib/queue.py (Upload.check_dsc_against_db): handle multiple
826         orig.tar.gz's by picking the first one by file id.
827
828         * dak/override.py (main): limit to binary overrides only for now.
829         (usage): update to match.
830
831         * config/debian/cron.daily: track when we have the accepted lock
832         and clean it up on exit if we have it.  Take/check the
833         cron.unchecked lock just before traping to cleanup on exit.
834         Remove potato override handling.  Remove any dangling symlinks in
835         /srv/incoming.d.o/buildd.  Clean up apt-ftparchive's databases.
836
837         * config/debian/apt.conf: change default compression scheme for
838         both Sources and Packages to gzip and bzip2 rather than
839         uncompressed and gzip (Packages) and gzip (Sources).  Use old
840         defaults for proposed-updates.
841
842         * dak/control_overrides.py (main): refuse to operate on
843         untouchable suites.
844
845         * config/debian/pseudo-packages.maintainers: drop install,
846         installation, boot-floppy, slink-cd, potato-cd and
847         nonus.debian.org.  Update base.
848         * config/debian/pseudo-packages.description: likewise.
849
850         * daklib/utils.py (re_srchasver): new regex.
851         (parse_changes): use regex to split 'Source (Version)' style
852         Source fields into 'source' and 'source-version'.
853
854         * config/debian/cron.daily: use $base instead of hardcoding path
855         name.
856
857         * scripts/debian/mkfilesindices: source 'vars' file and use it's
858         variables instead of hardcoding path names.
859
860         * config/debian/apt.conf: switch from /org to /srv.
861         * config/debian/apt.conf.buildd: likewise.
862         * config/debian/apt.conf.stable: likewise.
863         * config/debian/cron.daily: likewise.
864         * config/debian/cron.hourly: likewise.
865         * config/debian/cron.monthly: likewise.
866         * config/debian/cron.unchecked: likewise.
867         * config/debian/cron.weekly: likewise.
868         * config/debian/dak.conf: likewise.
869         * config/debian/vars: likewise.
870         * scripts/debian/mkfilesindices: likewise.
871
872 2007-02-08  James Troup  <james@nocrew.org>
873
874         * dak/process_unchecked.py (check_signed_by_key): new function to
875         ensure .changes files are signed by an authorized uploader.
876         (process_it): use it.
877
878         * config/debian/dak.conf (Binary-Upload-Restrictions): new stanza
879         to configure per suite/component/architecture binary upload
880         restrictions.
881
882 2007-02-08  Anthony Towns  <ajt@debian.org>
883
884         * config/debian/dak.conf: update for 3.1r4.  Use new 'etch'
885         signing key.  Drop maximum index diffs down to 14.
886
887         * config/debian/apt.conf: add udeb support for non-free (testing,
888         unstable) and experimental.
889         * config/debian/dak.conf: likewise.
890
891         * dak/generate_releases.py (main): handle udebs in any component.
892
893         * daklib/queue.py (Upload.build_summaries): handle files without a
894         'type' gracefully.
895
896         * dak/generate_releases.py (print_sha256_files): new function.
897         (main): use it.
898
899         * dak/process_accepted.py (stable_install): fix name of template
900         mail.
901
902         * dak/process_unchecked.py (is_stableupdate): fix invocation of
903         database.get_suite_id().
904
905         * templates/process-new.bxa_notification: Update on request
906         of/after discussion with BIS staff.
907
908         * scripts/debian/mkfilesindices: also handle proposed-updates.
909
910 2007-02-08  Ryan Murray  <rmurray@debian.org>
911
912         * config/debian/cron.monthly: use $ftpgroup instead of hardcoding
913         group name for chgrp of mail archives.
914
915         * daklib/queue.py (Upload.check_dsc_against_db): handle multiple
916         orig.tar.gz's by picking the first one by file id.
917
918         * dak/override.py (main): limit to binary overrides only for now.
919         (usage): update to match.
920
921         * config/debian/cron.daily: track when we have the accepted lock
922         and clean it up on exit if we have it.  Take/check the
923         cron.unchecked lock just before traping to cleanup on exit.
924         Remove potato override handling.  Remove any dangling symlinks in
925         /srv/incoming.d.o/buildd.  Clean up apt-ftparchive's databases.
926
927         * config/debian/apt.conf: change default compression scheme for
928         both Sources and Packages to gzip and bzip2 rather than
929         uncompressed and gzip (Packages) and gzip (Sources).  Use old
930         defaults for proposed-updates.
931
932         * dak/control_overrides.py (main): refuse to operate on
933         untouchable suites.
934
935         * config/debian/pseudo-packages.maintainers: drop install,
936         installation, boot-floppy, slink-cd, potato-cd and
937         nonus.debian.org.  Update base.
938         * config/debian/pseudo-packages.description: likewise.
939
940         * daklib/utils.py (re_srchasver): new regex.
941         (parse_changes): use regex to split 'Source (Version)' style
942         Source fields into 'source' and 'source-version'.
943
944         * config/debian/cron.daily: use $base instead of hardcoding path
945         name.
946
947         * scripts/debian/mkfilesindices: source 'vars' file and use it's
948         variables instead of hardcoding path names.
949
950         * config/debian/apt.conf: switch from /org to /srv.
951         * config/debian/apt.conf.buildd: likewise.
952         * config/debian/apt.conf.stable: likewise.
953         * config/debian/cron.daily: likewise.
954         * config/debian/cron.hourly: likewise.
955         * config/debian/cron.monthly: likewise.
956         * config/debian/cron.unchecked: likewise.
957         * config/debian/cron.weekly: likewise.
958         * config/debian/dak.conf: likewise.
959         * config/debian/vars: likewise.
960         * scripts/debian/mkfilesindices: likewise.
961
962 2007-02-08  James Troup  <james@nocrew.org>
963
964         * dak/process_unchecked.py (check_signed_by_key): new function to
965         ensure .changes files are signed by an authorized uploader.
966         (process_it): use it.
967
968         * config/debian/dak.conf (Binary-Upload-Restrictions): new stanza
969         to configure per suite/component/architecture binary upload
970         restrictions.
971
972 2006-10-09  James Troup  <james.troup@canonical.com>
973
974         * dak/process_unchecked.py (check_timestamps): change match to
975         search as recent versions of python-apt prefix the string with 'E: '.
976
977 2006-10-09  James Troup  <james.troup@canonical.com>
978
979         * dak/process_unchecked.py (check_timestamps): change match to
980         search as recent versions of python-apt prefix the string with 'E: '.
981
982 2006-06-26  Ryan Murray  <rmurray@debian.org>
983
984         * dak/process_unchecked.py (check_files): strip optional source version
985         from Source: field in changes file, and ensure what is left is a valid
986         package name.
987
988 2006-06-26  Ryan Murray  <rmurray@debian.org>
989
990         * dak/process_unchecked.py (check_files): strip optional source version
991         from Source: field in changes file, and ensure what is left is a valid
992         package name.
993
994 2006-06-23  Ryan Murray  <rmurray@debian.org>
995
996         * dak/process_unchecked.py (check_files): also check ProposedUpdates
997         queue for source.
998
999 2006-06-23  Ryan Murray  <rmurray@debian.org>
1000
1001         * dak/process_unchecked.py (check_files): also check ProposedUpdates
1002         queue for source.
1003
1004 2006-06-18  Ryan Murray  <rmurray@debian.org>
1005
1006         * dak/scripts/debian/update-ftpstats: look for dak named processes in
1007         the log, too.
1008
1009         * dak/process_unchecked.py (check_files): only check embargoed and
1010         unembargoed queues if the keys are set.
1011
1012         * dak/config/debian-security/apt.conf: set Packages::Compress to gzip
1013         and bzip2 for etch.
1014
1015 2006-06-18  Ryan Murray  <rmurray@debian.org>
1016
1017         * dak/scripts/debian/update-ftpstats: look for dak named processes in
1018         the log, too.
1019
1020         * dak/process_unchecked.py (check_files): only check embargoed and
1021         unembargoed queues if the keys are set.
1022
1023         * dak/config/debian-security/apt.conf: set Packages::Compress to gzip
1024         and bzip2 for etch.
1025
1026 2006-06-16  James Troup  <james@nocrew.org>
1027
1028         * dak/dak.py (init): add new-security-install.
1029
1030         * dak/new_security_install.py: cleanups and adapt for new naming
1031         scheme and other changes.
1032
1033 2006-06-16  Anthony Towns  <ajt@debian.org>
1034
1035         * dak/new_security_install.py: initial version imported from
1036         klecker.
1037
1038 2006-06-16  James Troup  <james@nocrew.org>
1039
1040         [Merged changes from klecker - original author unknown.]
1041
1042         * daklib/queue.py (Upload.dump_vars): also save changes["adv id"].
1043
1044         * dak/security_install.py (do_upload): fix check for oldstable and
1045         upload file list handling.
1046
1047         * dak/process_unchecked.py (check_files): update "check for
1048         source" code to also look in Embargoed and Unembargoed queues.
1049         (is_unembargo): fix handling of Dir::Queue::Disembargo.
1050
1051         * dak/decode_dot_dak.py (main): add support for changes["adv id"].
1052
1053         * config/debian-security/vars (disembargo): add.
1054
1055         * config/debian-security/dak.conf (Dinstall::SigningKeyIds):
1056         update.
1057         (Process-Unchecked::AcceptedLockFile): add.
1058         (Suite::Testing): clean up Version and Description.
1059         (SuiteMappings): add silent map from etch-secure to testing.
1060
1061         * config/debian-security/cron.unchecked: add support for
1062         disembargoed queues.
1063
1064         * config/debian-security/apt.conf.buildd: add bzip2ed Packages
1065         files too.
1066
1067         * config/debian-security/apt.conf: add amd64 to architectures for
1068         testing-security.
1069
1070 2006-06-11  James Troup  <troup@spohr.debian.org>
1071
1072         * config/debian/cron.daily: invoke process-accepted not
1073         process-unchecked.
1074
1075         * config/debian/vars (scriptsdir): new variable.
1076         * config/debian/cron.daily: use it.
1077
1078         * scripts/debian/mkmaintainers: put Maintainers_Versions-non-US in
1079         $base/misc/ instead of versioned $masterdir.  Correct 'dak
1080         make-maintainers' invocation to look in $configdir for
1081         pseudo-packages.maintainers.
1082
1083         * daklib/queue.py (Upload.do_reject): use correct name for
1084         rejection template.
1085
1086 2006-06-11  James Troup  <james@nocrew.org>
1087
1088         * dak/override.py (main): temporarily add content of old X-Katie
1089         header back as the PTS apparently filters on it.
1090         * dak/process_accepted.py (main): likewise.
1091         * dak/process_new.py (main): likewise.
1092         * dak/process_unchecked.py (main): likewise.
1093         * dak/reject_proposed_updates.py (main): likewise.
1094         * dak/rm.py (main): likewise.
1095         * daklib/queue.py (Upload.do_reject): likewise.
1096
1097         * config/debian/cron.unchecked: set -u to error out on undefined
1098         variables.  Preset LOCKDAILY to "" accordingly.
1099         * config/debian/cron.hourly: likewise.
1100         * config/debian/cron.monthly: likewise.
1101         * config/debian/cron.weekly: likewise.
1102
1103         * config/debian/vars (configdir): add new variable pointing to
1104         this directory.
1105
1106         * config/debian/cron.daily: use $configdir inplace of $masterdir
1107         when that's what we mean, and don't cd into $masterdir just to run
1108         dak scripts as we don't need to do that anymore.
1109         * config/debian/cron.hourly: likewise.
1110         * config/debian/cron.unchecked: likewise.
1111         * config/debian/cron.weekly: likewise.
1112
1113         * config/debian/dak.conf
1114         (Import-Users-From-Passwd::KnownPostgres): temporarily add 'katie'
1115         user back to list of known users as it's non-trivial to entirely
1116         change the owner of a database with postgresql 7.4.
1117
1118         * daklib/queue.py (Upload.source_exists): use string object
1119         methods rather than string module.
1120         (Upload.get_anyversion): likewise.
1121
1122         * daklib/utils.py (validate_changes_file_arg): update filename
1123         slicing to cope with new .dak filenames.
1124
1125         * dak/ls.py (main): add back 'heidi' as a valid argument for
1126         -f/--format as people are using it in scripts and breaking that
1127         without warning seems rude.
1128
1129 2006-05-21  James Troup  <james@nocrew.org>
1130
1131         * dak/rm.py (main): use string .isdigit() rather than
1132         utils.str_isnum().
1133         * dak/process_new.py (edit_overrides): likewise.
1134
1135         * daklib/utils.py (str_isnum): removed accordingly.  Also drop
1136         string import.
1137
1138 2006-05-21  James Troup  <james@nocrew.org>
1139
1140         * dak/check_archive.py (check_indices_files_exist): use list
1141         comprehension instead of map().  No longer need to import
1142         deprecated string module as a side-effect.
1143         * dak/check_overrides.py (process): likewise.
1144         (main): likewise.
1145         * dak/cruft_report.py (do_obsolete_source): likewise.
1146         (main): likewise.
1147         * dak/ls.py (main): likewise.
1148         * dak/make_suite_file_list.py (write_filelists): likewise.
1149         * dak/process_accepted.py (stable_install): likewise.
1150         * dak/rm.py (main): likewise.
1151         * dak/stats.py (number_of_packages): likewise.
1152         * daklib/logging.py (Logger.log): likewise.
1153         * daklib/queue.py (Upload.source_exists): likewise.
1154         (Upload.cross_suite_version_check): likewise.
1155         * daklib/utils.py (parse_args): likewise.
1156
1157 2006-05-21  James Troup  <james@nocrew.org>
1158
1159         * daklib/utils.py (process_gpgv_output): new function, split out
1160         of check_signature().
1161         (check_signature): adapt accordingly.
1162         (retrieve_key): new function that will try to retrieve the key
1163         that signed a given file from a keyserver.
1164         (check_signature): add 'autofetch' argument that if not set
1165         defaults to the value of Dinstall::KeyAutoFetch (if that exists).
1166         If 'autofetch' is true, invoke retrieve_key().
1167
1168         * docs/README.config: document Dinstall::KeyAutoFetch and
1169         Dinstall:KeyServer.
1170
1171 2006-05-20  James Troup  <james@nocrew.org>
1172
1173         * dak/find_null_maintainers.py (main):
1174         s/createtimestamp/createTimestamp/ to make things work with modern
1175         slapd.
1176
1177         * config/debian/dak.conf: Update StableRejector, MoreInfoURL,
1178         Stable::Version and Stable::Description for 3.1r2.
1179
1180         * config/debian-non-US/dak.conf: sync with klecker - update
1181         version number of 3.0 and MoreInfoURL.
1182
1183         * docs/README.stable-point-release: Add notes about updating
1184         dak.conf and Reject-Proposed-Updates section in particular.
1185         s/woody/stable/.  Also need to update README.html.
1186
1187         * scripts/debian/mklslar: drop support for uncompressed ls-lR file.
1188
1189         * config/debian/apt.conf: Add udeb tree for proposed-updates.
1190
1191 2006-05-20  Ryan Murray  <rmurray@debian.org>
1192
1193         * scripts/debian/update-ftpstats: new script to update daily
1194         architecture size graph data.
1195
1196         * config/debian/cron.buildd: sync with spohr - due to ftp-master /
1197         buildd split, simply ssh to buildd.d.o and call 'trigger.often'
1198         there.
1199
1200         * config/debian/cron.daily: ssh to buildd and run 'trigger.daily'
1201         before we finish.  Don't push to merkel.
1202
1203         * dak/process_unchecked.py (check_changes): Also look in
1204         ProposedUpdates queue dir.
1205         (check_files): likewise.
1206
1207 2006-05-20  Anthony Towns  <ajt@debian.org>
1208
1209         * scripts/debian/mkfilesindices: new script to generate file
1210         indices used for partial mirroring.
1211
1212         * config/debian/cron.daily: add progress timestamps.
1213
1214         * config/debian/dak.conf: update Dinstall::SigningKeyIds. Add
1215         amd64 to testing, unstable and experimental.  Drop sh from
1216         experimental.  Move Experimental to dists/experimental.  Add
1217         Dir::ProposedUpdates.  Add Architectures::amd64.
1218
1219         * config/debian/apt.conf: add amd64 to testing, unstable and
1220         experimental.  Drop uncompressed Packages files from testing. Drop
1221         sh from experimental.  Move experimental to dists/experimental/.
1222
1223         * config/debian/vars (archs): add amd64.
1224
1225         * dak/process_unchecked.py (action): Add support for
1226         proposed-updates approval queue.
1227         (is_stableupdate): new function - checks if the upload is targeted
1228         at proposed-updates.
1229         (do_stableupdate): likewise - moves upload to proposed-updates
1230         holding area.
1231
1232         * dak/process_new.py (do_new): warn if original or new target
1233         suite are invalid.
1234
1235         * dak/generate_releases.py (print_md5sha_files): less whitespace
1236         between the hash and size.
1237
1238         * dak/generate_index_diffs.py (genchanges): don't say we're not
1239         doing anything.  Better formatting of other messages.
1240         (main): don't skip experimental and remove some 'doing stuff'
1241         prints.
1242
1243 2006-05-18  James Troup  <james@nocrew.org>
1244
1245         * dak/clean_suites.py (clean_binaries): remove debug print of SQL
1246         query.
1247
1248         * dak/init_dirs.py: pylint cleanups - long lines, unused globals,
1249         docstrings, untabify, don't shadow builtins, lowercase non-global
1250         variable names, spaces after commas.  Also bail if given any
1251         arguments since we don't accept any.
1252         * dak/init_db.py: likewise.  Also split large main() into
1253         subfunctions and rename get() to sql_get().
1254
1255         * dak/init_db.py (main): check returned value from
1256         database.get_archive_id().
1257
1258         * dak/dak.py: renamed from shell.py.  Update to support new source
1259         layout.  Created init() and usage() functions.  Various
1260         pylint-inspired cleanups.  Use daklib utils.warn() and
1261         utils.fubar().  Change 'functionality' variable to only have
1262         (command, description) and always invoke main() when running the
1263         module.  Also support -h.
1264
1265 2006-05-17  James Troup  <james@nocrew.org>
1266
1267         * dak/check_archive.py: remove $Id$ and $Revision$ strings.  Update
1268         imports of and calls to daklib modules.  Change script name
1269         everywhere, i.e. in output, mails, comments and configuration tree
1270         + filenames.  Also update references to other renamed scripts,
1271         classes and templates.  Use '.dak' instead of '.katie' for the
1272         queue info storage files.
1273         (Renamed from tea)
1274         * dak/check_overrides.py: likewise.  (Renamed from cindy)
1275         * dak/check_proposed_updates.py: likewise.  (Renamed from jeri)
1276         * dak/clean_proposed_updates.py: likewise.  (Renamed from halle)
1277         * dak/clean_queues.py: likewise.  (Renamed from shania)
1278         * dak/clean_suites.py: likewise.  (Renamed from rhona)
1279         * dak/compare_suites.py: likewise.  (Renamed from andrea)
1280         * dak/control_overrides.py: likewise.  (Renamed from natalie)
1281         * dak/control_suite.py: likewise.  (Renamed from heidi)
1282         * dak/cruft_report.py: likewise.  (Renamed from rene)
1283         * dak/decode_dot_dak.py: likewise.  (Renamed from ashley)
1284         * dak/find_null_maintainers.py: likewise.  (Renamed from rosamund)
1285         * dak/generate_index_diffs.py: likewise.  (Renamed from tiffani)
1286         * dak/generate_releases.py: likewise.  (Renamed from ziyi)
1287         * dak/import_archive.py: likewise.  (Renamed from neve)
1288         * dak/import_ldap_fingerprints.py: likewise. (Renamed from emilie)
1289         * dak/import_users_from_passwd.py: likewise. (Renamed from julia)
1290         * dak/init_db.py: likewise. (Renamed from alyson)
1291         * dak/init_dirs.py: likewise. (Renamed from rose)
1292         * dak/ls.py: likewise. (Renamed from madison)
1293         * dak/make_maintainers.py: likewise.  (Renamed from charisma)
1294         * dak/make_overrides.py: likewise.  (Renamed from denise)
1295         * dak/make_suite_file_list.py: likewise.  (Renamed from jenna)
1296         * dak/mirror_split.py: likewise.  (Renamed from billie)
1297         * dak/override.py: likewise.  (Renamed from alicia)
1298         * dak/poolize.py: likewise.  (Renamed from catherine)
1299         * dak/process_accepted.py: likewise.  (Renamed from kelly)
1300         * dak/process_new.py: likewise.  (Renamed from lisa)
1301         * dak/process_unchecked.py: likewise.  (Renamed from jennifer)
1302         * dak/queue_report.py: likewise.  (Renamed from helena)
1303         * dak/reject_proposed_updates.py: likewise.  (Renamed from lauren)
1304         * dak/rm.py: likewise.  (Renamed from melanie)
1305         * dak/security_install.py: likewise.  (Renamed from amber)
1306         * dak/split_done.py: likewise.  (Renamed from nina)
1307         * dak/stats.py: likewise.  (Renamed from saffron)
1308         * dak/symlink_dists.py: likewise.  (Renamed from saffron)
1309         * daklib/database.py: likewise.  (Renamed from db_access)
1310         * daklib/queue.py: likewise.  'Katie' class -> 'Upload'. (Renamed from katie)
1311         * daklib/utils.py: likewise.
1312
1313         * dak/cruft_report.py: Use '[auto-cruft]' as the magic "this removal
1314         doesn't need to notify anyone" string.
1315         * dak/rm.py: likewise, look for '[auto-cruft]' as the magic string.
1316
1317         * dak/process_accepted.py (init): drop -V/--version argument.
1318         * dak/process_new.py (init): likewise.
1319         * dak/process_unchecked.py (init): likewise.
1320         * dak/reject_proposed_updates.py (init): likewise
1321
1322         * dak/shell.py: Renamed from dak.  ".katie" -> ".dak"
1323
1324         * dak/stats.py: in usage() output change STAT to MODE.
1325
1326 2006-05-15  James Troup  <james@nocrew.org>
1327
1328         * dak/queue_report.py: remove unused encodings imports.
1329
1330         * dak/mirror_split.py: drop unused pg, pwd, db_access and logging
1331         imports.  Initalize 'Cnf' as a global.
1332         (BillieDB._internal_recurse): fix 'util.' typo.
1333
1334         * dak/import_ldap_fingerprints.py (main): drop unused time import and
1335         commented out time check for LDAP search.
1336
1337 2005-12-16  Ryan Murray  <rmurray@debian.org>
1338
1339         * halle: add support for udebs
1340         * kelly: stable_install: add support for binNMU versions
1341
1342 2005-12-05  Anthony Towns  <aj@erisian.com.au>
1343
1344         * katie.py: Move accept() autobuilding support into separate function 
1345         (queue_build), and generalise to build different queues
1346
1347         * db_access.py: Add get_or_set_queue_id instead of hardcoding accepted=0
1348
1349         * jennifer: Initial support for enabling embargo handling with the
1350         Dinstall::SecurityQueueHandling option.
1351         * jennifer: Shift common code into remove_from_unchecked and move_to_dir
1352         functions.
1353
1354         * katie.conf-security: Include embargo options
1355         * katie.conf-security: Add Lock dir
1356         * init_pool.sql-security: Create disembargo table
1357         * init_pool.sql-security: Add constraints for disembargo table
1358
1359 2005-11-26  Anthony Towns  <aj@erisian.com.au>
1360
1361         * Merge of changes from klecker, by various people
1362
1363         * amber: special casing for not passing on amd64 and oldstable updates
1364         * amber: security mirror triggering
1365         * templates/amber.advisory: updated advisory structure
1366         * apt.conf.buildd-security: update for sarge's release
1367         * apt.conf-security: update for sarge's release
1368         * cron.buildd-security: generalise suite support, update for sarge's release
1369         * cron.daily-security: update for sarge's release, add udeb support
1370         * vars-security: update for sarge's release
1371         * katie.conf-security: update for sarge's release, add amd64 support,
1372         update signing key
1373
1374         * docs/README.names, docs/README.quotes: include the additions
1375
1376 2005-11-25  Anthony Towns  <aj@erisian.com.au>
1377
1378         * Changed accepted_autobuild to queue_build everywhere.
1379         * Add a queue table.
1380         * Add a "queue" field in the queue_build table (currently always 0)
1381
1382         * jennifer: Restructure to make it easier to support special
1383         purpose queues between unchecked and accepted.
1384
1385 2005-11-25  Anthony Towns  <aj@erisian.com.au>
1386
1387         * Finishing merge of changes from spohr, by various people still
1388
1389         * jennifer: If changed-by parsing fails, set variables to "" so REJECT
1390         works
1391         * jennifer: Re-enable .deb ar format checking
1392         * katie.py: Convert to +bX binNMU special casing
1393         * rhona: Add some debug output when deleting binaries
1394         * cron.daily: Add emilie
1395         * cron.unchecked: Add lock files
1396
1397 2005-11-15  Anthony Towns  <aj@erisian.com.au>
1398
1399         * Merge of changes from spohr, by various people.
1400
1401         * tiffani: new script to do patches to Packages, Sources and Contents
1402         files for quicker downloads.
1403         * ziyi: update to authenticate tiffani generated files
1404
1405         * dak: new script to provide a single binary with less arbitrary names
1406         for access to dak functionality.
1407
1408         * cindy: script implemented
1409
1410         * saffron: cope with suites that don't have a Priority specified
1411         * heidi: use get_suite_id()
1412         * denise: don't hardcode stable and unstable, or limit udebs to unstable
1413         * denise: remove override munging for testing (now done by cindy)
1414         * helena: expanded help, added new, sort and age options, and fancy headers
1415         * jennifer: require description, add a reject for missing dsc file
1416         * jennifer: change lock file
1417         * kelly: propogation support
1418         * lisa: honour accepted lock, use mtime not ctime, add override type_id
1419         * madison: don't say "dep-retry"
1420         * melanie: bug fix in output (missing %)
1421         * natalie: cope with maintainer_override == None; add type_id for overrides
1422         * nina: use mtime, not ctime
1423
1424         * katie.py: propogation bug fixes
1425         * logging.py: add debugging support, use | as the logfile separator
1426
1427         * katie.conf: updated signing key (4F368D5D)
1428         * katie.conf: changed lockfile to dinstall.lock
1429         * katie.conf: added Lisa::AcceptedLockFile, Dir::Lock
1430         * katie.conf: added tiffani, cindy support
1431         * katie.conf: updated to match 3.0r6 release
1432         * katie.conf: updated to match sarge's release
1433
1434         * apt.conf: update for sarge's release
1435         * apt.conf.stable: update for sarge's release
1436         * apt.conf: bump daily max Contents change to 25MB from 12MB
1437
1438         * cron.daily: add accepted lock and invoke cindy
1439         * cron.daily: add daily.lock
1440         * cron.daily: invoke tiffani
1441         * cron.daily: rebuild accepted buildd stuff
1442         * cron.daily: save rene-daily output on the web site
1443         * cron.daily: disable billie
1444         * cron.daily: add stats pr0n
1445
1446         * cron.hourly: invoke helena
1447
1448         * pseudo-packages.maintainers,.descriptions: miscellaneous updates
1449         * vars: add lockdir, add etch to copyoverrides
1450         * Makefile: add -Ipostgresql/server to CXXFLAGS
1451
1452         * docs/: added README.quotes
1453         * docs/: added manpages for alicia, catherine, charisma, cindy, heidi,
1454         julia, katie, kelly, lisa, madison, melanie, natalie, rhona.
1455
1456         * TODO: correct spelling of "conflicts"
1457
1458 2005-05-28  James Troup  <james@nocrew.org>
1459
1460         * helena (process_changes_files): use MTIME rather than CTIME (the
1461         C's not for 'creation', stupid).
1462         * lisa (sort_changes): likewise.
1463
1464         * jennifer (check_distributions): use has_key rather than an 'in'
1465         test which doesn't work with python2.1.  [Probably by AJ]
1466
1467 2005-03-19  James Troup  <james@nocrew.org>
1468
1469         * rene (main): use Suite::<suite>::UdebComponents to determine
1470         what components have udebs rather than assuming only 'main' does.
1471
1472 2005-03-18  James Troup  <james@nocrew.org>
1473
1474         * utils.py (rfc2047_encode): use codecs.lookup() rather than
1475         encodings.<encoding>.Codec().decode() as encodings.utf_8 no longer
1476         has a Codec() module in python2.4.  Thanks to Andrew Bennetts
1477         <andrew@ubuntu.com>.
1478
1479 2005-03-06  Joerg Jaspert  <ganneff@debian.org>
1480
1481         * helena: add -n/--new HTML output option and improved sorting
1482         options.
1483
1484 2005-03-06  Ryan Murray  <rmurray@debian.org>
1485
1486         * shania(main): use Cnf::Dir::Reject instead of REJECT
1487
1488 2005-02-08  James Troup  <james@nocrew.org>
1489
1490         * rene (main): add partial NBS support by checking that binary
1491         packages are built by their real parent and not some random
1492         stranger.
1493         (do_partial_nbs): likewise.
1494
1495 2005-01-18  James Troup  <james@nocrew.org>
1496
1497         * katie.py (Katie.build_summaries): avoid leaking file handle when
1498         extracting package description.
1499         (Katie.force_reject): remember and close each file descriptor we
1500         use.
1501         (Katie.do_reject): s/file/temp_fh/ to avoid pychecker warning.
1502         s/reason_file/reason_fd/ because it's a file descriptor.
1503         (Katie.check_dsc_against_db): avoid leaking file handle whenever
1504         invoking apt_pkg.md5sum().
1505
1506         * jennifer (check_deb_ar): new function: sanity check the ar
1507         contents of a .deb.
1508         (check_files): use it.
1509         (check_timestamps): check for data.tar.bz2 if data.tar.gz can't be
1510         found.
1511         (check_files): accept 'raw-installer' as an alias for 'byhand'.
1512
1513 2005-01-14  Anthony Towns  <ajt@debian.org>
1514
1515         * kelly: when UNACCEPTing, don't double up the "Rejecting:"
1516
1517         * propup stuff (thanks to Andreas Barth)
1518         * katie.conf: add stable MustBeOlderThan testing, add -security
1519           propup
1520         * jennifer: set distribution-version in .katie if propup may be needed
1521         * katie.py: add propogation to cross_suite_version_check
1522
1523 2004-11-27  James Troup  <james@nocrew.org>
1524
1525         * nina: new script to split monolithic queue/done into date-based
1526         hierarchy.
1527
1528         * rene (usage): document -s/--suite.
1529         (add_nbs): use .setdefault().
1530         (do_anais): likewise.
1531         (do_nbs): don't set a string to "" and then += it.
1532         (do_obsolete_source): new function - looks for obsolete source
1533         packages (i.e source packages whose binary packages are ALL a)
1534         claimed by someone else and b) newer when built from the other
1535         source package).
1536         (main): support -s/--suite.  Add 'obsolete source' to both 'daily'
1537         and 'full' check modes.  Check for obsolete source packages.
1538         linux-wlan-ng has been fixed - remove hideous bodge.
1539
1540         * jennifer (check_distributions): support 'reject' suite map type.
1541
1542         * utils.py (validate_changes_file_arg): s/file/filename/.
1543         s/fatal/require_changes/.  If require_changes is -1, ignore errors
1544         and return the .changes filename regardless.
1545         (re_no_epoch): s/\*/+/ as there must be a digit in an epoch.
1546         (re_no_revision): don't escape '-', it's not a special character.
1547         s/\*/+/ as there must be at least one non-dash character after the
1548         dash in a revision.  Thanks to Christian Reis for noticing both of
1549         these.
1550
1551         * ashley (main): pass require_changes=-1 to
1552         utils.validate_changes_file_arg().
1553
1554         * pseudo-packages.maintainers (kernel): switch to 'Debian Kernel
1555         Team <debian-kernel@lists.debian.org>'.
1556
1557         * katie.py (Katie.in_override_p): fix .startswith() usage.
1558
1559         * katie.conf (Dinstall::DefaultSuite): add as 'unstable'.
1560         (Lauren::MoreInfoURL): update to 3.0r3.
1561         (Suite::Stable::Version): likewise.
1562         (Suite::Stable::Description): likewise.
1563
1564         * cron.daily: disable automatic task override generation.
1565
1566         * cindy (process): restrict "find all packages" queries by
1567         component.  Respect Options["No-Action"].
1568         (main): add -n/--no-action support.  Only run on unstable.  Rename
1569         type to otype (pychecker).
1570
1571 2004-11-27  Daniel Silverstone  <dsilvers@digital-scurf.org>
1572
1573         * katie.conf (Billie::BasicTrees): add all architectures.
1574         (Billie::CombinationTrees): remove 'welovehp' and 'embedded', add
1575         'everything'.
1576
1577         * cron.daily: Update a 'current' symlink when creating the
1578         post-daily-cron-job database backup to aid mirroring to merkel.
1579         Run billie.
1580
1581         * billie (BillieTarget.poolish_match): handle .udeb too.
1582
1583 2004-10-13  Ryan Murray  <rmurray@debian.org>
1584
1585         * amber (do_upload): Sort changes files in "katie" order so that
1586           source always arrives before binary-only rebuilds
1587
1588 2004-10-05  James Troup  <james@nocrew.org>
1589
1590         * jennifer (check_dsc): correct reject message on invalid
1591         Maintainer field.
1592
1593 2004-09-20  James Troup  <james@nocrew.org>
1594
1595         * alicia: remove unused 'pwd' import.
1596
1597         * tea (check_override): underline suite name in output properly.
1598
1599         * rene (main): read a compressed Packages file.
1600         * tea (validate_packages): likewise.
1601
1602         * katie.py (re_fdnic): add 'r' prefix.
1603         (re_bin_only_nmu_of_mu): likewise.
1604         (re_bin_only_nmu_of_nmu): likewise.
1605
1606         * madison (main): retrieve component information too and display
1607         it if it's not 'main'.
1608         * melanie (reverse_depends_check): likewise.
1609
1610         * utils.py (pp_dep): renamed...
1611         (pp_deps): ... to this.
1612         * jeri (check_dep): update calls to utils.pp_deps().
1613         * melanie (reverse_depends_check): likewise.
1614
1615         * jennifer (check_changes): move initalization of email variables
1616         from here...
1617         (process_it): ...to here as we no longer always run
1618         check_changes().  Don't bother to initialize
1619         changes["architecture"].
1620
1621         * denise (list): renamed to...
1622         (do_list): ...this to avoid name clash with builtin 'list'.
1623         Similarly, s/file/output_file/, s/type/otype/.  Use .setdefault()
1624         for dictionaries.
1625         (main): Likewise for name clash avoidance and also
1626         s/override_type/suffix/.  Adjust call to do_list().
1627
1628 2004-09-01  Ryan Murray  <rmurray@debian.org>
1629
1630         * tea (check_files): check the pool/ directory instead of dists/
1631
1632 2004-08-04  James Troup  <james@nocrew.org>
1633
1634         * jenna (cleanup): use .setdefault() for dictionaries.
1635         (write_filelists): likewise.
1636
1637         (write_filelists): Use utils.split_args() not split() to split
1638         command line arguments.
1639         (stable_dislocation_p): likewise.
1640
1641         (write_filelists): Add support for mapping side of suite-based
1642         "Arch: all mapping".
1643         (do_da_do_da): ensure that if we're not doing all suites that we
1644         process enough to be able correct map arch: all packages.
1645
1646         * utils.py (cant_open_exc): correct exception string,
1647         s/read/open/, s/.$//.
1648
1649         * templates/amber.advisory: update to match reality a little
1650         better.
1651
1652         * melanie (reverse_depends_check): read Packages.gz rather than
1653         Packages.
1654
1655         * jennifer (check_files): check for unknown component before
1656         checking for NEWness.
1657
1658         * katie.py (Katie.in_override_p): use .startswith in favour of a
1659         slice.
1660
1661         * docs/melanie.1.sgml: document -R/--rdep-check.
1662
1663 2004-07-12  Daniel Silverstone  <dsilvers@digital-scurf.org>
1664
1665         * billie (main): Make the verbatim lists include all the README
1666           elements.
1667         * docs/README.names: Add billie in (correcting oversight)
1668
1669 2004-07-01  James Troup  <james@nocrew.org>
1670
1671         * emilie (main): handle woody's case-sensitive python-ldap,
1672         s/keyfingerprint/keyFingerPrint/.
1673
1674 2004-06-25  James Troup  <james@nocrew.org>
1675
1676         * debian/control (Depends): add dpkg-dev since jennifer uses
1677         dpkg-source.
1678
1679 2004-06-24  James Troup  <james@nocrew.org>
1680
1681         * melanie (main): s/file/temp_file/ and close file handle before
1682         removing the temporary file.
1683         (main): don't warn about needing a --carbon-copy if in no-action
1684         mode.
1685
1686         * rene (do_nbs): pcmcia-cs has been fixed - remove hideous bodge.
1687         (main): likewise.
1688
1689         * test/006/test.py (main): check bracketed email-only form.
1690
1691         * utils.py (fix_maintainer): if the Maintainer string is bracketed
1692         email-only, strip the brackets so we don't end up with
1693         <<james@nocrew.org>>.
1694
1695 2004-06-20  James Troup  <james@nocrew.org>
1696
1697         * jennifer (process_it): only run check_changes() if
1698         check_signature() returns something.  (Likewise)
1699
1700         * utils.py (changes_compare): if there's no changes["version"] use
1701         "0" rather than None.  (Avoids a crash on unsigned changes file.)
1702
1703 2004-06-17  Martin Michlmayr  <tbm@cyrius.com>
1704
1705         * jeri (pp_dep): moved from here to ...
1706         * utils.py (pp_dep): here.
1707
1708         * melanie (main): add reverse dependency checking.
1709
1710 2004-06-17  James Troup  <james@nocrew.org>
1711
1712         * jennifer (check_dsc): s/dsc_whitespace_rules/signing_rules/.
1713         * tea (check_dscs): likewise.
1714
1715         * utils.py (parse_changes): s/dsc_whitespace_rules/signing_rules/,
1716         change from boolean to a variable with 3 possible values, 0 and 1
1717         as before, -1 means don't require a signature.  Makes
1718         parse_changes() useful for parsing arbitary RFC822-style files,
1719         e.g. 'Release' files.
1720         (check_signature): add support for detached signatures by passing
1721         the files the signature is for as an optional third argument.
1722         s/filename/sig_filename/g.  Add a fourth optional argument to
1723         choose the keyring(s) to use.  Don't os.path.basename() the
1724         sig_filename before checking it for taint.
1725         (re_taint_free): allow '/'.
1726
1727 2004-06-11  James Troup  <james@nocrew.org>
1728
1729         * tea (check_files): make override.unreadable optional.
1730         (validate_sources): close the Sources file handle.
1731
1732         * docs/README.first: clarify that 'alyson' and running
1733         add_constraints.sql by hand is something you only want to do if
1734         you're not running 'neve'.
1735
1736         * docs/README.config (Location::$LOCATION::Suites): document.
1737
1738         * db_access.py (do_query): also print out the result of the query.
1739
1740 2004-06-10  James Troup  <james@nocrew.org>
1741
1742         * katie.py (Katie.cross_suite_version_check): post-woody versions
1743         of python-apt's apt_pkg.VersionCompare() function apparently
1744         returns variable integers for less than or greater than results -
1745         update our result checking to match.
1746         * jenna (resolve_arch_all_vs_any): likewise.
1747         * charisma (main): likewise.
1748
1749 2004-06-09  James Troup  <james@nocrew.org>
1750
1751         * jennifer (process_it): s/changes_valid/valid_changes_p/.  Add
1752         valid_dsc_p and don't run check_source() if check_dsc() failed.
1753         (check_dsc): on fatal failures return 0 so check_source() isn't
1754         run (since it makes fatal assumptions about the presence of
1755         mandatory .dsc fields).
1756         Remove unused and obsolete re_bad_diff and re_is_changes regexps.
1757
1758 2004-05-07  James Troup  <james@nocrew.org>
1759
1760         * katie.conf (Rhona::OverrideFilename): unused and obsolete, remove.
1761         * katie.conf-non-US (Rhona::OverrideFilename): likewise.
1762
1763         * katie.conf (Dir::Override): remove duplicate definition.
1764
1765         * neve (get_or_set_files_id): add an always-NULL last_used column
1766         to output.
1767
1768 2004-04-27  James Troup  <james@nocrew.org>
1769
1770         * apt.conf-security (tree "dists/stable/updates"): add
1771         ExtraOverride - noticed by Joey Hess (#246050).
1772         (tree "dists/testing/updates"): likewise.
1773
1774 2004-04-20  James Troup  <james@nocrew.org>
1775
1776         * jennifer (check_files): check for existing .changes or .katie
1777         files of the same name in the Suite::<suite>::Copy{Changes,Katie}
1778         directories.
1779
1780 2004-04-19  James Troup  <james@nocrew.org>
1781
1782         * jennifer (check_source): handle failure to remove the temporary
1783          directory (used for source tree extraction) better, specifically:
1784          if we fail with -EACCES, chmod -R u+rwx the temporary directory
1785          and try again and if that works, REJECT the package.
1786
1787 2004-04-17  James Troup  <james@nocrew.org>
1788
1789         * docs/madison.1.sgml: document -b/--binary-type,
1790         -g/--greaterorequal and -G/--greaterthan.
1791
1792         * madison (usage): -b/--binary-type only takes a single argument.
1793         Document -g/--greaterorequal and -G/--greaterthan.
1794         (main): add support for -g/--greaterorequal and -G/--greaterthan.
1795
1796 2004-04-12  Daniel Silverstone  <dsilvers@digital-scurf.org>
1797
1798         * billie: Cleaned up a load of comments, added /README.non-US to
1799           the verbatim matches list.
1800
1801 2004-04-07  Daniel Silverstone  <dsilvers@digital-scurf.org>
1802
1803         * utils.py (size_type): Make it use real binary megabytes and
1804           kilobytes, instead of the marketing terms used before.
1805
1806 2004-04-07  James Troup  <james@nocrew.org>
1807
1808         * katie.py (Katie.check_dsc_against_db): in the case we're
1809         ignoring an identical-to-existing orig.tar.gz remember the path to
1810         the existent version in pkg.orig_tar_gz.  Adjust query to grab
1811         location.path too to be able to do so.
1812
1813 2004-04-03  James Troup  <james@nocrew.org>
1814
1815         * debian/control (Depends): add python2.1-email | python (>= 2.2)
1816         needed for new utils.rfc2047_encode() function.
1817
1818         * utils.py (re_parse_maintainer): allow whitespace inside the
1819         email address.
1820         (Error): new exception base class.
1821         (ParseMaintError): new exception class.
1822         (force_to_utf8): new function.
1823         (rfc2047_encode): likewise.
1824         (fix_maintainer): rework.  use force_to_utf8() to force name and
1825         rfc822 return values to always use UTF-8.  use rfc2047_encode() to
1826         return an rfc2047 value.  Validate the address to catch missing
1827         email addresses and (some) broken ones.
1828
1829         * katie.py (nmu_p.is_an_nmu): adapt for new utils.fix_maintainer()
1830         by adopting foo2047 return value.
1831         (Katie.dump_vars): add changedby2047 and maintainer2047 as
1832         mandatory changes fields.  Promote changes and maintainer822 to
1833         mandatory fields.
1834         (Katie.update_subst): default maintainer2047 rather than
1835         maintainer822.  User foo2047 rather than foo822 when setting
1836         __MAINTAINER_TO__ or __MAINTAINER_FROM__.
1837
1838         * jennifer (check_changes): set default changes["maintainer2047"]
1839         and changes["changedby2047"] values rather than their 822
1840         equivalents.  Makes changes["changes"] a mandatory field.  Adapt
1841         to new utils.fix_maintainer() - reject on exception and adopt
1842         foo2047 return value.
1843         (check_dsc): if a mandatory field is missing don't do any further
1844         checks and as a result reduce paranoia about dsc[var] existence.
1845         Validate the maintainer field by calling new
1846         utils.fix_maintainer().
1847
1848         * ashley (main): add changedby2047 and maintainer2047 to mandatory
1849         changes fields.  Promote maintainer822 to a mandatory changes
1850         field.  add "pool name" to files fields.
1851
1852         * test/006/test.py: new file - tests for new
1853         utils.fix_maintainer().
1854
1855 2004-04-01  James Troup  <james@nocrew.org>
1856
1857         * templates/lisa.prod (To): use __MAINTAINER_TO__ not __MAINTAINER__.
1858
1859         * jennifer (get_changelog_versions): create a symlink mirror of
1860         the source files in the temporary directory.
1861         (check_source): if check_dsc_against_db() couldn't find the
1862         orig.tar.gz bail out.
1863
1864         * katie.py (Katie.check_dsc_against_db): if the orig.tar.gz is not
1865         part of the upload store the path to it in pkg.orig_tar_gz and if
1866         it can't be found set pkg.orig_tar_gz to -1.
1867
1868         Explicitly return the second value as None in the (usual) case
1869         where we don't have to reprocess.  Remove obsolete diagnostic
1870         logs.
1871
1872         * lisa (prod_maintainer): don't return anything, no one cares. (pychecker)
1873
1874         * utils.py (temp_filename): new helper function that wraps around
1875         tempfile.mktemp().
1876
1877         * katie.py (Katie.do_reject): use it and don't import tempfile.
1878         * lisa (prod_maintainer): likewise.
1879         (edit_note): likewise.
1880         (edit_new): likewise.
1881         * lauren (reject): likewise.
1882         * melanie (main): likewise.
1883         * neve (do_sources): likewise.
1884         * rene (main): likewise.
1885         * tea (validate_sources): likewise.
1886
1887 2004-03-31  James Troup  <james@nocrew.org>
1888
1889         * tea (validate_sources): remove unused 's' temporary variable.
1890
1891 2004-03-15  James Troup  <james@nocrew.org>
1892
1893         * jennifer (check_dsc): check changes["architecture"] for
1894         source before we do anything else.
1895
1896 2004-03-21  Daniel Silverstone  <dsilvers@digital-scurf.org>
1897
1898         * billie: Added
1899         * katie.conf (Billie): Added sample Billie stanza to katie.conf
1900
1901 2004-03-12  James Troup  <james@nocrew.org>
1902
1903         * docs/README.config (Dir::Queue::BTSVersionTrack): document.
1904
1905         * katie.conf (Dir::Queue::BTSVersionTrack): define.
1906
1907         * katie.py (Katie.accept): add support for DebBugs Version
1908         Tracking by writing out .versions (generated in jennifer's
1909         get_changelog_versions()) and .debinfo (mapping of binary ->
1910         source) files.
1911
1912         * ashley (main): add dsc["bts changelog"].
1913
1914         * katie.py (Katie.dump_vars): store dsc["bts changelog"] too.
1915
1916         * jennifer (check_diff): obsoleted by check_source(), removed.
1917         (check_source): new function: create a temporary directory and
1918         move into it and call get_changelog_versions().
1919         (get_changelog_versions): new function: extract the source package
1920         and optionally parse debian/changelog to obtain the version
1921         history for the BTS.
1922         (process_it): call check_source() rather than check_diff().
1923
1924 2004-03-08  James Troup  <james@nocrew.org>
1925
1926         * lisa (edit_index): Fix logic swapo from 'use "if varfoo in
1927         listbar" rather than "if listbar.count(varfoo)"' change on
1928         2004-02-24.
1929
1930 2004-03-05  James Troup  <james@nocrew.org>
1931
1932         * alicia (main): don't warn about not closing bugs - we don't
1933         manage overrides through the BTS.
1934
1935 2004-02-27  Martin Michlmayr  <tbm@cyrius.com>
1936
1937         * docs/README.config: lots of updates and corrections.
1938         * docs/README.first: likewise.
1939
1940         * docs/README.config: drop unused Dir::Queue::Root.
1941         * katie.conf-non-US: likewise.
1942         * katie.conf: likewise.
1943         * katie.conf-security: likewise.
1944
1945 2004-02-27  James Troup  <james@nocrew.org>
1946
1947         * rose (process_tree): use 'if var in [ list ]' rather than long
1948         'if var == foo or var == bar or var == baz'.  Suggested by Martin
1949         Michlmayr.
1950
1951         * jennifer (check_files): reduce 'if var != None' to 'if var' as
1952         suggested by Martin Michlmayr.
1953         * catherine (poolize): likewise.
1954         * charisma (main): likewise.
1955         * halle (check_changes): likewise.
1956         * heidi (main): likewise.
1957         (process_file): likewise.
1958         * kelly (install): likewise.
1959         (stable_install): likewise.
1960         * utils.py (fix_maintainer): likewise.
1961
1962         * apt.conf: add support for debian-installer in testing-proposed-updates.
1963         * katie.conf (Suite::Testing-Proposed-Updates::UdebComponents):
1964         add - set to main.
1965
1966         * mkmaintainers: add "-T15" option to wget of non-US packages file
1967         so that we don't hang cron.daily if non-US is down.
1968
1969         * templates/lisa.prod (Subject): Prefix with "Comments regarding".
1970
1971         * templates/jennifer.bug-close: add Source and Source-Version
1972         pseudo-headers that may be used for BTS Version Tracking someday
1973         [ajt@].
1974
1975         * rene (do_nbs): special case linux-wlan-ng like we do for pcmcia.
1976         (main): likewise.
1977
1978         * cron.unchecked: it's /org/ftp.debian.org not ftp-master.
1979
1980 2004-02-25  James Troup  <james@nocrew.org>
1981
1982         * katie.conf (SuiteMappings): don't map testing-security to
1983         proposed-updates.
1984
1985 2004-02-24  James Troup  <james@nocrew.org>
1986
1987         * katie.py (Katie.__init__): remove unused 'values' field.
1988
1989         * utils.py (extract_component_from_section): use 's.find(c) != -1'
1990         rather than 's.count(c) > 0'.
1991
1992         * katie.py (Katie.source_exists): use "if varfoo in listbar"
1993         rather than "if listbar.count(varfoo)".
1994         * halle (check_joey): likewise.
1995         * jeri (check_joey): likewise.
1996         * lisa (edit_index): likewise.
1997         * jenna (stable_dislocation_p): likewise.
1998
1999         * jennifer (main): remove unused global 'nmu'.
2000
2001 2004-02-03  Daniel Silverstone  <dsilvers@digital-scurf.org>
2002
2003         * pseudo-packages.maintainers (ftp.debian.org): Changed the maintainer
2004           to be ftpmaster@ftp-master.debian.org to bring it into line with how
2005           the dak tools close bugs.
2006
2007 2004-02-02  Daniel Silverstone  <dsilvers@digital-scurf.org>
2008
2009         * katie.conf (Alicia): Added an Alicia section with email address
2010         * templates/alicia.bug-close: Added
2011         * docs/alicia.1.sgml: Added the docs for the -d/--done argument
2012         * alicia (main): Added a -d/--done argument
2013
2014 2004-02-02  Daniel Silverstone  <dsilvers@digital-scurf.org>
2015
2016         * templates/lisa.prod: Oops, missed a BITCH->PROD conversion
2017
2018 2004-01-29  Daniel Silverstone  <dsilvers@digital-scurf.org>
2019
2020         * lisa (prod_maintainer): Added function to prod the maintainer without
2021           accepting or rejecting the package
2022         * templates/lisa.prod: Added this template for the prodding mail
2023
2024         * .cvsignore: Added neve-files which turns up in new installations
2025
2026 2004-01-30  Daniel Silverstone  <dsilvers@digital-scurf.org>
2027
2028         * alicia (usage): Fixed usage message to offer section and priority
2029           as seperately optional arguments.
2030         * alicia (main): Added a % (arg) interpolation needed when only
2031           one of section or priority is provided and it cannot be found.
2032
2033 2004-01-29  Daniel Silverstone  <dsilvers@digital-scurf.org>
2034
2035         * alicia: Added
2036         * docs/alicia.1.sgml: Added
2037         * docs/Makefile: Added alicia to the list of manpages to build
2038         * docs/README.names: Noted what alicia does
2039         * docs/README.first: Noted where alicia is useful
2040
2041 2004-01-21  James Troup  <james@nocrew.org>
2042
2043         * madison (main): add -b/--binary-type.
2044         (usage): likewise.
2045
2046         * denise (main): generate debian-installer overrides for testing
2047         too.
2048         * apt.conf: add support for debian-installer in testing.
2049         * katie.conf (Suite::Testing::UdebComponents): set to main.
2050
2051         * katie.conf (Dinstall::SigningKeyIds): 2004 key.
2052         * katie.conf-non-US (Dinstall::SigningKeyIds): likewise.
2053         * katie.conf-security (Dinstall::SigningKeyIds): likewise.
2054
2055         * utils.py (parse_changes): don't process data not inside the
2056         signed data.  Thanks to Andrew Suffield <asuffield@debian.org> for
2057         pointing this out.
2058         * test/005/test.py (main): new test to test for above.
2059
2060 2004-01-04  James Troup  <james@nocrew.org>
2061
2062         * jenna (write_filelists): correct typo, s/Components/Component/
2063         for Options.
2064
2065 2004-01-04  Ryan Murray  <rmurray@debian.org>
2066
2067         * cron.buildd: move update of overrides and Packages file...
2068         * cron.unchecked: to here.
2069         * katie.conf-non-US: (Dinstall::SingingKeyIds) update for 2003v2 key
2070         * katie.conf-security: likewise
2071
2072 2003-11-20  James Troup  <james@nocrew.org>
2073
2074         * jenna (main): don't use utils.try_with_debug(), it produces way
2075         too much output.
2076
2077         * halle (check_changes): don't error out if a .changes refers to a
2078         non-existent package, just warn and skip the file.
2079
2080         * docs/README.stable-point-release: mention halle and .changes
2081         obsoleted by removal through melanie.  Update for 3.0r2.
2082
2083         * katie.conf (Suite::Stable::Version): bump to 3.0r2.
2084         (Suite::Stable::Description): update for 3.0r2.
2085         (Lauren::MoreInfoURL): likewise.
2086         * katie.conf-non-US (Suite::Stable::Version): likewise.
2087         (Suite::Stable::Description): likewise.
2088         (Lauren::MoreInfoURL): likewise.
2089
2090         * apt.conf.stable (Default): don't define MaxContentsChange.
2091         * apt.conf.stable-non-US (Default): likewise.
2092
2093         * lauren (reject): hack to work around partial replacement of an
2094         upload, i.e. one or more binaries superseded by another source
2095         package.
2096
2097 2003-11-17  James Troup  <james@nocrew.org>
2098
2099         * pseudo-packages.maintainers: point installation-reports at
2100         debian-boot@l.d.o rather than debian-testing@l.d.o at jello@d.o's
2101         request.
2102
2103         * utils.py (parse_changes): calculate the number of lines once
2104         with len() rather than max().
2105
2106         * jennifer (check_dsc): handle the .orig.tar.gz disappearing from
2107         files, since check_dsc_against_db() deletes the .orig.tar.gz
2108         entry.
2109
2110 2003-11-13  Ryan Murray  <rmurray@debian.org>
2111
2112         * apt.conf: specify a src override file for debian-installer
2113
2114 2003-11-10  James Troup  <james@nocrew.org>
2115
2116         * fernanda.py (strip_pgp_signature): new function - strips PGP
2117         signature from a file and returns the modified contents of the
2118         file in a string.
2119         (display_changes): use it.
2120         (read_dsc): likewise.
2121
2122 2003-11-09  Ryan Murray  <rmurray@debian.org>
2123
2124         * cron.buildd: export accepted_autobuild table for unstable, and use
2125         it to generate the incoming Packages/Sources rather than having apt
2126         walk the directory.
2127         * apt.conf.buildd: use exported table from cron.buildd to generate
2128         Packages/Sources
2129
2130 2003-11-07  James Troup  <james@nocrew.org>
2131
2132         * kelly: import errno.
2133
2134         * katie.py (Katie.build_summaries): sort override disparities.
2135
2136         * kelly (install): set dsc_component based on the .dsc's component
2137         not a random binaries.
2138
2139 2003-10-29  James Troup  <james@nocrew.org>
2140
2141         * katie.py (Katie.build_summaries): don't assume changes["source"]
2142         exists since it might not.
2143
2144 2003-10-20  James Troup  <james@nocrew.org>
2145
2146         * pseudo-packages.maintainers: update security.d.o to use
2147         team@s.d.o at joy@'s request.
2148
2149 2003-10-17  James Troup  <james@nocrew.org>
2150
2151         * jennifer (check_dsc): use .startswith rather than .find() == 0.
2152
2153 2003-10-17  Martin Michlmayr  <tbm@cyrius.com>
2154
2155         * tea (chk_bd_process_dir): use .endswith rather than slice.
2156
2157 2003-10-14  James Troup  <james@nocrew.org>
2158
2159         * tea (check_build_depends): new function.
2160         (chk_bd_process_dir): likewise.  Validates build-depends in .dsc's
2161         in the archive.
2162         (main): update for new function.
2163         (usage): likewise.
2164
2165         * katie.py (Katie.do_reject): sanitize variable names,
2166         s/reject_filename/reason_filename/, s/fd/reason_fd/.  Move shared
2167         os.close() to outside if clause.
2168
2169         * jennifer (check_dsc): check build-depends and
2170         build-depends-indep by running them past apt_pkg.ParseSrcDepends.
2171         Fold the ARRAY check into the same code block and tidy up it's
2172         rejection message.
2173         (check_changes): ensure that the Files field is non-empty.
2174         Suggested by Santiago Vila <sanvila@unex.es>
2175         (check_changes): normalize reject messages.
2176         (check_dsc): instead of doing most of the checks inside a for loop
2177         and an if, find the dsc_filename in a short loop over files first
2178         and then do all the checks.  Add check for more than one .dsc in a
2179         .changes which we can't handle.  Normalize reject messages.
2180
2181 2003-10-13  James Troup  <james@nocrew.org>
2182
2183         * katie.conf (Dinstall::Reject::NoSourceOnly): set to true.
2184         * katie.conf-non-US (Dinstall::Reject::NoSourceOnly): likewise.
2185
2186         * jennifer (check_files): Set 'has_binaries' and 'has_source'
2187         variables while iterating over 'files'.  Don't regenerate it when
2188         checking for source if source is mentioned.
2189
2190         Reject source only uploads if the config variable
2191         Dinstall::Reject::NoSourceOnly is set.
2192
2193 2003-10-03  James Troup  <james@nocrew.org>
2194
2195         * rene (main): add nasty hardcoded reference to debian-installer
2196         so we detect NBS .udebs.
2197
2198 2003-09-29  James Troup  <james@nocrew.org>
2199
2200         * apt.conf (old-proposed-updates): remove.
2201         * apt.conf-non-US (old-proposed-updates): likewise.
2202
2203 2003-09-24  James Troup  <james@nocrew.org>
2204
2205         * tea (check_files_not_symlinks): new function, ensure files
2206         mentioned in the database aren't symlinks.  Includes code to
2207         update any files that are like this to their real filenames +
2208         location; commented out by though.
2209         (usage): update for new function.
2210         (main): likewise.
2211
2212 2003-09-24  Anthony Towns  <ajt@debian.org>
2213
2214         * vars: external-overrides variable added
2215         * cron.daily: Update testing/unstable Task: overrides from joeyh
2216         managed external source.
2217
2218 2003-09-22  James Troup  <james@nocrew.org>
2219
2220         * kelly (install): if we can't move the .changes into queue/done,
2221         fail don't warn and carry on.  The old behaviour pre-dates NI and
2222         doesn't make much sense now since jennifer checks both
2223         queue/accepted and queue/done for any .changes files it's
2224         processing.
2225
2226         * utils.py (move): don't throw exceptions on existing files or
2227         can't overwrite, instead just fubar out.
2228
2229         * jennifer (check_dsc): also check Build-Depends-Indep for
2230         ARRAY-lossage.  Noticed by Matt Zimmerman <mdz@debian.org>.
2231
2232 2003-09-18  James Troup  <james@nocrew.org>
2233
2234         * katie.py (Katie.close_bugs): only log the bugs we've closed
2235         once.
2236
2237         * kelly (main): log as 'kelly', not 'katie'.
2238
2239 2003-09-16  James Troup  <james@nocrew.org>
2240
2241         * katie.py (Katie.check_binary_against_db): likewise noramlize.
2242
2243         * jennifer (check_changes): normalize reject message for "changes
2244         file already exists" to be %s: <foo>.
2245         (check_dsc): add a check for 'Build-Depends: ARRAY(<hex>)'
2246         produced by broken dpkg-source in 1.10.11.  Tone down and
2247         normalize rejection message for incompatible 'Format' version
2248         numbers.
2249         (check_diff): likewise tone down and normalize.
2250
2251 2003-09-07  James Troup  <james@nocrew.org>
2252
2253         * utils.py (parse_changes): if dsc_whitespace_rules is false,
2254         don't bomb out on bogus empty lines.
2255         (build_file_list): check for changes["files"] earlier.  use Dict
2256         to create files[name] dictionary.
2257         (send_mail): don't bother validating arguments.
2258         (check_signature): minor improvements to some of the rejection
2259         messages including listing the key id of the key that wasn't found
2260         in the keyring.
2261         (wrap): new function.
2262
2263         * tea: add new check 'validate-indices' that ensures all files
2264         mentioned in indices (Packages, Sources) files do in fact exist.
2265
2266         * catherine (poolize): use a local re_isadeb which handles legacy
2267         (i.e. no architecture) style .deb filenames.
2268
2269         * rosamund: new script.
2270
2271         * rhona (check_binaries): when checking for binary packages not in
2272         a suite, don't bother selecting files that already have a
2273         last_used date.
2274         (check_sources): likewise.
2275
2276         * rhona: change all SQL EXISTS sub-query clauses to use the
2277         postgres suggested convention of "SELECT 1 FROM".
2278         * andrea (main): likewise.
2279         * tea (check_override): likewise.
2280         * catherine (main): likewise.
2281
2282         * katie.conf (Suite): remove OldStable and Old-Proposed-Updates
2283         entries and in other suites MustBeNewerThan's.
2284         (SuiteMappings): likewise
2285         * katie.conf-non-US: likewise.
2286         * katie.conf-security: likewise.
2287
2288         * apt.conf-security: remove oldstable.
2289         * apt.conf.stable: likewise.
2290         * apt.conf.stable-non-US: likewise.
2291         * cron.buildd-security: likewise.
2292         * cron.daily-security: likewise.
2293         * vars-security (suites): likewise.
2294         * wanna-build/trigger.daily: likewise.
2295
2296         * claire.py (clean_symlink): move...
2297         * utils.py (clean_symlink): here.
2298
2299         * claire.py (find_dislocated_stable): update accordingly.
2300
2301 2003-08-16  Anthony Towns  <ajt@debian.org>
2302
2303         * katie.py (source_exists): expand the list of distributions
2304         the source may exist in to include any suite that's mapped to
2305         the destination suite (even transitively (a->b->c)). This should
2306         unbreak binary uploads to *-proposed-updates.
2307
2308 2003-08-09  Randall Donald  <rdonald@debian.org>
2309
2310         * lisa (recheck): change changes["distribution"].keys() to
2311         Katie.pkg.changes...
2312
2313 2003-08-08  Randall Donald  <rdonald@debian.org>
2314
2315         * katie.py: only tag bugs as fixed-in-experimental for
2316         experimental uploads
2317
2318 2003-07-26  Anthony Towns  <ajt@debian.org>
2319
2320         * katie.py (source_exists): add an extra parameter to limit the
2321         distribution(s) the source must exist in.
2322         * kelly, lisa, jennifer: update to use the new source_exists
2323
2324 2003-07-15  Anthony Towns  <ajt@debian.org>
2325
2326         * ziyi: quick hack to support a FakeDI line in apt.conf to generate
2327         checksums for debian-installer stuff even when it's just a symlink to
2328         another suite
2329
2330         * apt.conf: add the FakeDI line
2331
2332 2003-06-09  James Troup  <james@nocrew.org>
2333
2334         * kelly (check): make sure the 'file' we're looking for in 'files'
2335         hasn't been deleted by katie.check_dsc_against_db().
2336
2337 2003-05-07  James Troup  <james@nocrew.org>
2338
2339         * helena (time_pp): fix s/years/year/ typo.
2340
2341 2003-04-29  James Troup  <james@nocrew.org>
2342
2343         * madison (usage): document -c/--component.
2344
2345         * madison (usage): Fix s/seperated/separated/.
2346         * melanie (usage): likewise.
2347         * jenna (usage): likewise.
2348
2349 2003-04-24  James Troup  <james@nocrew.org>
2350
2351         * cron.daily-non-US: if there's nothing for kelly to install, say
2352         so.
2353
2354         * jennifer (check_timestamps): print sys.exc_value as well as
2355         sys.exc_type when capturing exceptions.  Prefix 'timestamp check
2356         failed' with 'deb contents' to make it clearer what timestamp(s)
2357         are being checked.
2358
2359 2003-04-15  James Troup  <james@nocrew.org>
2360
2361         * cron.daily-non-US: only run kelly if there are some .changes
2362         files in accepted.
2363
2364         * rene: add -m/--mode argument which can be either daily (default)
2365         or full.  In daily mode only 'nviu' and 'nbs' checks are run.
2366         Various changes to make this possible including a poor attempt at
2367         splitting main() up a little.  De-hardcode suite numbers from SQL
2368         queries and return quietly from do_nviu() if experimental doesn't
2369         exist (i.e. non-US).  Hardcode pcmcia-cs as dubious NBS since it
2370         is.
2371
2372         * debian/control (Depends): remove python-zlib as it's obsolete.
2373
2374         * charisma (main): don't slice the \n off strings when we're
2375         strip()-ing it anyway.
2376         * heidi (set_suite): likewise.
2377         (process_file): likewise.
2378         * natalie (process_file): likewise.
2379
2380 2003-04-08  James Troup  <james@nocrew.org>
2381
2382         * katie.py (Katie.check_dsc_against_db): improve the speed of two
2383         slow queries by using one LIKE '%foo%' and then matching against
2384         '%s' or '/%s$' in python.  Also only join location when we need it
2385         (i.e. the .orig.tar.gz query).  On auric, this knocks ~3s of each
2386         query, so 6s for each sourceful package.
2387
2388         * cron.daily: invoke rene and send the report to ftpmaster.
2389         * cron.daily-non-US: likewise.
2390
2391 2003-03-14  James Troup  <james@nocrew.org>
2392
2393         * utils.py (send_mail): default filename to blank.
2394         * amber (make_advisory): adapt.
2395         * jennifer (acknowledge_new): likewise.
2396         * katie.py (Katie.close_bugs): likewise.
2397         (Katie.announce): likewise.
2398         (Katie.accept): likewise.
2399         (Katie.check_override): likewise.
2400         (Katie.do_reject): likewise.
2401         * kelly (do_reject): likewise.
2402         (stable_install): likewise.
2403         * lisa (do_bxa_notification): likewise.
2404         * lauren (reject): likewise.
2405         * melanie (main): likewise.
2406
2407         * rene (add_nbs): check any NBS packages against unstable to see
2408         if they haven't been removed already.
2409
2410         * templates/katie.rejected: remove paragraph about rejected files
2411         since they're o-rwx due to c-i-m and the uploader can't do
2412         anything about them and shania will take care of them anyway.
2413
2414         * madison (usage): update usage example to use comma seperation.
2415         * melanie (usage): likewise.
2416
2417         * utils.py (split_args): new function; splits command line
2418         arguments either by space or comma (whichever is used).  Also has
2419         optional-but-default DWIM spurious space detection to avoid
2420         'command -a i386, m68k' problems.
2421         (parse_args): use it.
2422         * melanie (main): likewise.
2423
2424         * melanie (main): force the admin to tell someone if we're not
2425         doing a rene-led removal (or closing a bug, which counts as
2426         telling someone).
2427
2428 2003-03-05  James Troup  <james@nocrew.org>
2429
2430         * katie.conf (Section): add embedded, gnome, kde, libdevel, perl
2431         and python sections.
2432         * katie.conf-security (Section): likewise.
2433
2434         * add_constraints.sql: add uid and uid_id_seq to grants.
2435
2436         * lisa (determine_new): also warn about adding overrides to
2437         oldstable.
2438
2439         * madison (main): make the -S/--source-and-binary query obey
2440         -s/--suite restrictions.
2441
2442 2003-03-03  James Troup  <james@nocrew.org>
2443
2444         * madison (main): if the Archive_Maintenance_In_Progress lockfile
2445         exists, warn the user that our output might seem strange.  (People
2446         get confused by multiple versions in a suite which happens
2447         post-kelly but pre-jenna.)
2448
2449 2003-02-21  James Troup  <james@nocrew.org>
2450
2451         * kelly (main): we don't need to worry about StableRejector.
2452
2453         * melanie (main): sort versions with apt_pkg.VersionCompare()
2454         prior to output.
2455
2456         * lauren: new script to manually reject packages from
2457         proposed-updates.  Updated code from pre-NI kelly (nee katie).
2458
2459 2003-02-20  James Troup  <james@nocrew.org>
2460
2461         * kelly (init): remove unused -m/--manual-reject argument.
2462
2463         * katie.py (Katie.force_reject): renamed from force_move to make
2464         it more explicit what this function does.
2465         (Katie.do_reject): update to match.
2466
2467         * utils.py (prefix_multi_line_string): add an optional argument
2468         include_blank_lines which defaults to 0.  If non-zero, blank lines
2469         will be includes in the output.
2470
2471         * katie.py (Katie.do_reject): don't add leading space to each line
2472         of the reject message.  Include blank lines when showing the
2473         message to the user.
2474
2475 2003-02-19  Martin Michlmayr  <tbm@cyrius.com>
2476
2477         * utils.py (fix_maintainer): replace pointless re.sub() with
2478         simple string format.
2479
2480 2003-02-11  James Troup  <james@nocrew.org>
2481
2482         * lisa (edit_overrides): only strip-to-one-char and upper-case
2483         non-numeric answers.  Fixes editing of items with indices >= 10;
2484         noticed by Randall.
2485         (edit_overrides): correct order of arguments to "not a valid
2486         index" error message.
2487
2488         * jenna (cleanup): call resolve_arch_all_vs_any() rather than
2489         remove_duplicate_versions(); thanks to aj for the initial
2490         diagnosis.
2491         (remove_duplicate_versions): correct how we return
2492         dominant_versions.
2493         (resolve_arch_all_vs_any): arch_all_versions needs to be a list of
2494         a tuple rather than just a tuple.
2495
2496 2003-02-10  James Troup  <james@nocrew.org>
2497
2498         * emilie: new script - sync fingerprint and uid tables with a
2499         debian.org LDAP DB.
2500
2501         * init_pool.sql: new table 'uid'; contains user ids.  Reference it
2502         in 'fingerprint'.
2503
2504         * db_access.py (get_or_set_uid_id): new function.
2505
2506         * jennifer (main): update locking to a) not used FCNTL (deprecated
2507         in python >= 2.2) and b) acknowledge upstream's broken
2508         implementation of lockf (see Debian bug #74777), c) try to acquire
2509         the lock non-blocking.
2510         * kelly (main): likewise.
2511
2512         * contrib/python_1.5.2-fcntl_lockf.diff: obsolete, removed.
2513
2514         * madison (main): only append the package to new_packages if it's
2515         not already in there; fixes -S/--source-and-binary for cases where
2516         the source builds a binary package of the same name.
2517
2518 2003-02-10  Anthony Towns  <ajt@debian.org>
2519
2520         * madison (main): use explicit JOIN syntax for
2521         -S/--source-and-binary queries to reduce the query's runtime from
2522         >10 seconds to negligible.
2523
2524 2003-02-08  James Troup  <james@nocrew.org>
2525
2526         * rene (main): in the NVIU output, append items to lists, not
2527         extend them; fixes amusing suggestion that "g n u m e r i c" (sic)
2528         should be removed.
2529
2530 2003-02-07  James Troup  <james@nocrew.org>
2531
2532         * apt.conf (tree "dists/unstable"): Add bzip2-ed Packages and
2533         Sources [aj].
2534
2535         * pseudo-packages.maintainers (bugs.debian.org): s/Darren
2536         O. Benham/Adam Heath/.
2537
2538         * katie.conf (Suite::Stable::Version): bump to 3.0r1a.
2539         (Suite::Stable::Description): update for 3.0r1a.
2540         (Dinstall::SigningKeyIds): update for 2003 key [aj].
2541
2542         * utils.py (gpgv_get_status_output): rename from
2543         get_status_output().
2544
2545         * neve (check_signature): use gpgv_get_status_output and Dict from
2546         utils().  Add missing newline to error message about duplicate tokens.
2547
2548         * saffron (per_arch_space_use): also print space used by source.
2549         (output_format): correct string.join() invocation.
2550
2551         * jennifer (check_signature): ignored duplicate EXPIRED tokens.
2552
2553 2003-02-04  James Troup  <james@nocrew.org>
2554
2555         * cron.buildd: correct generation of Packages/Sources and grep out
2556         non-US/non-free as well as non-free.
2557
2558 2003-02-03  Ryan Murray  <rmurray@debian.org>
2559
2560         * cron.buildd: generate quinn-diff output with full Packages/Sources
2561           files to get out-of-date vs. uncompiled right.
2562         * apt.conf.buildd: no longer generate uncompressed files, as they
2563           are generated in cron.buildd instead
2564         * add -i option to quinn-diff to ignore binary-all packages
2565         * apt.conf.buildd: remove and readd udeb to extensions.  If the udebs
2566           aren't in the packages file, the arch that uploaded them will build
2567           them anyways...
2568
2569 2003-01-30  James Troup  <james@nocrew.org>
2570
2571         * rene (main): only print suggested melanie command when there's
2572         some NBS to remove.
2573
2574 2003-01-30  Ryan Murray  <rmurray@debian.org>
2575
2576         * cron.buildd: fix incorrectly inverted lockfile check
2577
2578 2003-01-29  Ryan Murray  <rmurray@debian.org>
2579
2580         * cron.buildd: generate override.sid.all3.src
2581         * apt.conf.buildd: use generated override.sid.all3.src
2582
2583 2003-01-27  Martin Michlmayr  <tbm@cyrius.com>
2584
2585         * utils.py (get_status_output): moved from jennifer.
2586         (Dict): likewise.
2587         (check_signature): likewise.
2588
2589         * jennifer (get_status_output): moved to utils.py.
2590         (Dict): likewise.
2591         (check_signature): likewise.
2592
2593         * utils.py (check_signature): add an argument to specifiy which
2594         function to call when an error was found.
2595         (check_signature): document this function better.
2596
2597         * jennifer (check_files): pass the reject function as an argument
2598         to utils.check_signature.
2599         (process_it): likewise.
2600
2601 2003-01-20  James Troup  <james@nocrew.org>
2602
2603         * rene (main): lots of changes to improve the output and make it
2604         more useful.
2605
2606         * katie.py (Katie.check_override): make the override messages
2607         clearer (hopefully).
2608
2609 2002-12-26  James Troup  <james@nocrew.org>
2610
2611         * ziyi (usage): document the ability to pass suite(s) as
2612         argument(s).
2613         (main): read apt.conf after checking for -h/--help.
2614
2615         * tea (main): take the check to run as an argument.
2616
2617         * saffron.R: R script to graph daily install runs.
2618
2619         * saffron: new script; various stats functions.
2620
2621         * rhona (main): connect to the database after checking for -h/--help.
2622
2623         * neve (do_da_do_da): if no -a/--action option is given, bail out.
2624
2625         * melanie (main): sort versions with utils.arch_compare_sw().
2626
2627         * madison (usage): alphabetize order of options.
2628         * melanie (usage): likewise.
2629
2630         * kelly (usage): fix usage short description (we aren't dinstall).
2631
2632         * julia (usage): fix usage description and alphabetize order of
2633         options.
2634
2635         * jeri (usage): fix usage short description.
2636
2637         * jennifer (main): move --help and --version checks from here...
2638         (init): to here so that they work with an empty katie.conf.
2639         * kelly: likewise.
2640
2641         * alyson (usage): new function.
2642         (main): use it.
2643         * andrea: likewise.
2644         * ashley: likewise.
2645         * cindy: likewise.
2646         * denise: likewise.
2647         * helena: likewise.
2648         * neve: likewise.
2649         * rene: likewise.
2650         * rose: likewise.
2651         * tea: likewise.
2652
2653         * apt.conf.stable (tree "dists/stable"): add missing ExtraOverride
2654         entry that caused tasks to be omitted from 3.0r1.
2655
2656 2002-12-10  James Troup  <james@nocrew.org>
2657
2658         * jennifer (check_files): sanity check the Depends field to ensure
2659         it's non-empty if present since apt chokes on an empty one.
2660         Thanks to Ryan Murray for the idea.
2661
2662 2002-12-08  James Troup  <james@nocrew.org>
2663
2664         * katie.conf-security (Helena::Directories): new; include accepted
2665         in addition to byhand and new.
2666
2667         * helena (process_changes_files): use utils.arch_compare_sw().
2668         Justify things based on the longest [package, version,
2669         architecture].  Reduce '[note]' to '[N]' to save space, and remove
2670         the commas in architecture and version lists for the same reason.
2671         (main): make directories we process configurable through
2672         Helena::Directories in the config file; if that doesn't exist
2673         default to the old hardcoded values (byhand & new).
2674
2675         * utils.py (arch_compare_sw): moved here from madison.
2676         * madison (main): adjust to compensate.
2677
2678 2002-12-06  James Troup  <james@nocrew.org>
2679
2680         * ziyi (main): fix "suite foo not in apt.conf" msg to use the
2681         right filename.
2682
2683 2002-12-05  James Troup  <james@nocrew.org>
2684
2685         * katie.conf-non-US (Julia::KnownPostgres): add 'udmsearch'.
2686
2687 2002-11-28  Randall Donald  <rdonald@debian.org>
2688
2689         * fernanda.py (read_control): fix typo of 'Architecture'.
2690
2691 2002-11-26  James Troup  <james@nocrew.org>
2692
2693         * lisa (check_pkg): call less with '-R' so we see the colour from
2694         Randall's fernanda changes.
2695
2696         * neve (process_sources): if Directory points to a legacy location
2697         but the .dsc isn't there; assume it's broken and look in the pool.
2698         (update_section): new, borroed from alyson.
2699         (do_da_do_da): use it.
2700         (process_packages): add suite_it to the cache key used for
2701         arch_all_cache since otherwise we only add a package to the first
2702         suite it's in and ignore any subsequent ones.
2703
2704         * katie.conf-non-US (Location): fixed to reflect reality (all
2705         suites, except old-proposed-updates (which is legacy-mixed)) are
2706         pool.
2707
2708         * utils.py (try_with_debug): wrapper for print_exc().
2709         * jenna (main): use it.
2710         * neve (main): likewise.
2711
2712 2002-11-25  Randall Donald  <rdonald@debian.org>
2713
2714         * fernanda.py (main): added -R to less command line for raw control
2715         character support to print colours
2716         (check_deb): Instead of running dpkg -I on deb file, call
2717         output_deb_info, the new colourized control reporter.
2718         (check_dsc): add call to colourized dsc info reader, read_dsc, instead
2719         of printing out each .dsc line.
2720         (output_deb_info): new function. Outputs each key/value pair from
2721         read_control except in special cases where we highlight section,
2722         maintainer, architecture, depends and recommends.
2723         (create_depends_string): new function. Takes Depends tree and looks
2724         up it's compontent via projectb db, colourizes and constructs a
2725         depends string in original order.
2726         (read_dsc): new function. reads and parses .dsc info via
2727         utils.parse_changes. Build-Depends and Build-Depends-Indep are
2728         colourized.
2729         (read_control): new function. reads and parses control info via
2730         apt_pkg. Depends and Recommends are split in to list structures,
2731         Section and Architecture are colourized. Maintainer is colourized
2732         if it has a localhost.localdomain address.
2733         (split_depends): new function. Creates a list of lists of
2734         dictionaries of depends (package,version relation). Top list is
2735         colected from comma delimited items. Sub lists are | delimited.
2736         (get_comma_list): new function. splits string input among commas
2737         (get_or_list): new function. splits string input among | delimiters
2738         (get_depends_parts): new function. Creates dictionary of package name
2739         and version relation from dependancy string.
2740         Colours for section and depends are per component. Unfound depends
2741         are in bold. Lookups using version info is not supported yet.
2742
2743 2002-11-22  James Troup  <james@nocrew.org>
2744
2745         * katie.conf-security (Julia::KnownPostgres): add 'www-data' and
2746         'udmsearch'.
2747
2748         * amber (make_advisory): string.atol() is deprecated and hasn't
2749         been ported to string methods.  Use long() instead.
2750
2751         * init_pool.sql: explicitly specify the encoding (SQL_ASCII) when
2752         creating the database since we'll fail badly if it's created with
2753         e.g. UNICODE encoding.
2754
2755         * rose (main): AptCnf is a global.
2756
2757         * neve (get_location_path): new function determines the location
2758         from the the first (left-most) directory of a Filename/Directory.
2759         (process_sources): don't need 'location' anymore.  Use
2760         utils.warn().  Use the Directory: field for each package to find
2761         the .dsc.  Use get_location_path() to determine the location for
2762         each .dsc.
2763         (process_packages): do't need 'location' anymore.  Use
2764         utils.warn().  Use get_location_path().
2765         (do_sources): don't need 'location', drop 'prefix' in favour of
2766         being told the full path to the Sources file, like
2767         process_packages().
2768         (do_da_do_da): main() renamed, so that main can call us in a
2769         try/except.  Adapt for the changes in do_sources() and
2770         process_packages() above.  Assume Sources and Packages file are in
2771         <root>/dists/<etc.>.  Treat pool locations like we do legacy ones.
2772
2773         * katie.conf-security (Location): fixed to reflect reality (all
2774         suites are pool, not legacy).
2775
2776         * utils.py (print_exc): more useful (i.e. much more verbose)
2777         traceback; a recipe from the Python cookbook.
2778         * jenna (main): use it.
2779         * neve (main): likewise.
2780
2781 2002-11-19  James Troup  <james@nocrew.org>
2782
2783         * kelly (install): fix brain-damaged CopyChanges/CopyKatie
2784         handling which was FUBAR for multi-suite uploads.  Now we just
2785         make a dictionary of destinations to copy to and iterate over
2786         those.
2787
2788         * fernanda.py (check_deb): run linda as well as lintian.
2789
2790 2002-10-21  James Troup  <james@nocrew.org>
2791
2792         * melanie (main): change X-Melanie to X-Katie and prefix it with
2793         'melanie '.
2794
2795         * lisa (main): prefix X-Katie with 'lisa '.
2796
2797         * jennifer (clean_holding): fix typo in string method changes;
2798         s/file.find(file/file.find(/.
2799
2800         * cron.daily: invoke helena and send the report to ftpmaster.
2801         * cron.daily-non-US: likewise.
2802
2803 2002-10-16  James Troup  <james@nocrew.org>
2804
2805         * kelly (check): call reject() with a blank prefix when parsing
2806         the return of check_dsc_against_db() since it does its own
2807         prefix-ing.
2808
2809         * rose: new script; only handles directory creation initally.
2810
2811         * katie.conf (Dinstall::NewAckList): obsolete, removed.
2812         * katie.conf-non-US (Dinstall::NewAckList): likewise.
2813
2814 2002-10-06  James Troup  <james@nocrew.org>
2815
2816         * rene (main): remove bogus argument handling.
2817
2818         * kelly: katie, renamed.
2819         * cron.daily: adapt for katie being renamed to kelly.
2820         * cron.daily-non-US: likewise.
2821         * amber (main): likewise.
2822
2823         * Changes for python 2.1.
2824
2825         * kelly: time.strftime no longer requires a second argument of
2826         "time.localtime(time.time())".
2827         * logging.py: likewise.
2828         * rhona: likewise.
2829         * shania (init): likewise.
2830
2831         * amber: use augmented assignment.
2832         * catherine (poolize): likewise.
2833         * claire.py (fix_component_section): likewise.
2834         * halle (check_changes): likewise.
2835         * helena: likewise.
2836         * jenna: likewise.
2837         * jennifer: likewise.
2838         * jeri: likewise.
2839         * katie.py: likewise.
2840         * kelly: likewise.
2841         * lisa: likewise.
2842         * madison (main): likewise.
2843         * melanie: likewise.
2844         * natalie: likewise.
2845         * neve: likewise.
2846         * rhona: likewise.
2847         * tea: likewise.
2848         * utils.py: likewise.
2849         * ziyi: likewise.
2850
2851         * amber: use .endswith.
2852         * fernanda.py: likewise.
2853         * halle (main): likewise.
2854         * jennifer: likewise.
2855         * jeri: likewise.
2856         * katie.py: likewise.
2857         * kelly: likewise.
2858         * lisa: likewise.
2859         * neve: likewise.
2860         * shania (main): likewise.
2861         * utils.py: likewise.
2862
2863         * alyson: use string methods.
2864         * amber: likewise.
2865         * andrea: likewise.
2866         * ashley: likewise.
2867         * catherine: likewise.
2868         * charisma: likewise.
2869         * claire.py: likewise.
2870         * db_access.py: likewise.
2871         * denise: likewise.
2872         * halle: likewise.
2873         * heidi: likewise.
2874         * helena: likewise.
2875         * jenna: likewise.
2876         * jennifer: likewise.
2877         * jeri: likewise.
2878         * julia: likewise.
2879         * katie.py: likewise.
2880         * kelly: likewise.
2881         * lisa: likewise.
2882         * logging.py: likewise.
2883         * madison: likewise.
2884         * melanie: likewise.
2885         * natalie: likewise.
2886         * neve: likewise.
2887         * rene: likewise.
2888         * tea: likewise.
2889         * utils.py: likewise.
2890         * ziyi: likewise.
2891
2892 2002-09-20  Martin Michlmayr  <tbm@cyrius.com>
2893
2894         * utils.py (parse_changes): use <string>.startswith() rather than
2895         string.find().
2896
2897 2002-08-27  Anthony Towns  <ajt@debian.org>
2898
2899         * katie.py (in_override_p): when searching for a source override,
2900         and the dsc query misses, search for both udeb and deb overrides
2901         as well. Should fix the UNACCEPT issues with udebs.
2902
2903 2002-08-24  James Troup  <james@nocrew.org>
2904
2905         * melanie (main): remove gratuitous WHERE EXISTS sub-select from
2906         source+binary package finding code which was causing severe
2907         performance degradation with postgres 7.2.
2908
2909 2002-08-14  James Troup  <james@nocrew.org>
2910
2911         * julia (main): use the pwd.getpwall() to get system user info
2912         rather than trying to read a password file.  Add a -n/--no-action
2913         option.
2914
2915         * cron.hourly: julia no longer takes any arguments.
2916         * cron.hourly-non-US: likewise.
2917
2918 2002-08-07  James Troup  <james@nocrew.org>
2919
2920         * katie (install): handle multi-suite uploads when CopyChanges
2921         and/or CopyKatie are in use, ensuring we only copy stuff once.
2922
2923 2002-08-01  Ryan Murray  <rmurray@debian.org>
2924
2925         * wanna-build/trigger.daily: initial commit, with locking
2926         * cron.buildd: add locking against daily run
2927
2928 2002-07-30  James Troup  <james@nocrew.org>
2929
2930         * melanie (main): readd creation of suite_ids_list so melanie is
2931         remotely useful again.
2932
2933         * katie.conf: adopt for woody release; diable
2934         StableDislocationSupport, add oldstable, adjust other suites and
2935         mappings, fix up location.
2936         * katie.conf-non-US: likewise.
2937         * katie.conf-security: likewise.
2938
2939         * apt.conf.stable: adapt for woody release; add oldstable, adjust
2940         stable.
2941         * apt.conf.stable-non-US: likewise.
2942
2943         * apt.conf-security: adapt for woody release; adding oldstable,
2944         oldstable, adjust stable and testing.
2945         * cron.daily-security: likewise.
2946         * cron.buildd-security: likewise.
2947
2948         * apt.conf: adapt for woody release; rename woody-proposed-updates
2949         to testing-proposed-updates and proposed-updates to
2950         old-proposed-updates.
2951         * apt.conf-non-US: likewise.
2952
2953         * vars-non-US (copyoverrides): add sarge.
2954         * vars (copyoverrides): likewise.
2955
2956         * vars-security (suites): add oldstable.
2957
2958 2002-07-22  Ryan Murray  <rmurray@debian.org>
2959
2960         * apt.conf.security-buildd: use suite codenames instead of
2961           distnames.
2962
2963 2002-07-16  James Troup  <james@nocrew.org>
2964
2965         * denise (main): fix filenames for testing override files.
2966
2967 2002-07-14  James Troup  <james@nocrew.org>
2968
2969         * jennifer (process_it): call check_md5sums later so we can check
2970         files in the .dsc too
2971         (check_md5sums): check files in the .dsc too.  Check both md5sum
2972         and size.
2973
2974         * melanie (main): use parse_args() and join_with_commas_and() from
2975         utils.  If there's nothing to do, say so and exit, don't ask for
2976         confirmation etc.
2977
2978         * amber (join_with_commas_and): moved from here to ...
2979         * utils.py (join_with_commas_and): here.
2980
2981 2002-07-13  James Troup  <james@nocrew.org>
2982
2983         * madison (main): use parse_args() from utils.  Support
2984         -c/--component.
2985
2986         * jenna (parse_args): moved from here to ...
2987         * utils.py (parse_args): here.
2988
2989         * katie.conf (Architectures): minor corrections to the description
2990         for arm, mips and mipsel.
2991         * katie.conf-non-US (Architectures): likewise.
2992         * katie.conf-security (Architectures): likewise.
2993
2994         * cron.daily-security: use natalie's new -a/--add functionality to
2995         flesh out the security overrides.
2996
2997 2002-07-12  James Troup  <james@nocrew.org>
2998
2999         * cron.buildd (ARCHS): add arm.
3000
3001         * katie.conf: 2.2r7 was released.
3002         * katie.conf-non-US: likewise.
3003
3004         * utils.py (parse_changes): handle a multi-line field with no
3005         starting line.
3006
3007 2002-06-25  James Troup  <james@nocrew.org>
3008
3009         * templates/amber.advisory (To): add missing email address since
3010         __WHOAMI__ is only a name.
3011
3012         * katie.conf-security (Melane::LogFile): correct to go somewhere
3013         katie has write access to.
3014         (Location::/org/security.debian.org/ftp/dists/::Suites): add
3015         Testing.
3016
3017         * natalie: add support for -a/-add which adds packages only
3018         (ignoring changes and deletions).
3019
3020         * katie.py (Katie.announce): Dinstall::CloseBugs is a boolean so
3021         use FindB, not get.
3022
3023 2002-06-22  James Troup  <james@nocrew.org>
3024
3025         * jennifer (check_files): validate the package name and version
3026         field.  If 'Package', 'Version' or 'Architecture' are missing,
3027         don't try any further checks.
3028         (check_dsc): likewise.
3029
3030         * utils.py (re_taint_free): add '~' as a valid character.
3031
3032 2002-06-20  Anthony Towns  <ajt@debian.org>
3033
3034         * katie.conf-non-US: add OverrideSuite for w-p-u to allow uploads
3035
3036 2002-06-09  James Troup  <james@nocrew.org>
3037
3038         * jennifer (check_files): reduce useless code.
3039
3040         * cron.daily-security: run symlinks -dr on $ftpdir.
3041
3042         * vars-security (ftpdir): add.
3043
3044 2002-06-08  James Troup  <james@nocrew.org>
3045
3046         * neve (update_override_type): transaction is handled higher up in
3047         main().
3048         (update_priority): likewise.
3049         (process_sources): remove code that makes testing a duplicate of
3050         stable.
3051         (process_packages): likewise.
3052
3053         * templates/amber.advisory: add missing mail headers.
3054
3055         * cron.daily-security: also call apt-ftparchive clean for
3056         apt.conf.buildd-security.
3057         * cron.weekly: likewise.
3058
3059         * amber (do_upload): write out a list of source packages (and
3060         their version) uploaded for testing.
3061         (make_advisory): add more Subst mappings for the mail headers.
3062         (spawn): check for suspicious characters in the command and abort
3063         if their found.
3064
3065 2002-06-07  James Troup  <james@nocrew.org>
3066
3067         * ziyi (main): remove the 'nonus'/'security' hacks and use
3068         Dinstall::SuiteSuffix (if it exists) instead.  Always try to write
3069         the lower level Release files, even if they don't exist.  fubar
3070         out if we can't open a lower level Release file for writing.
3071
3072         * katie.conf-non-US (Dinstall): add SuiteSuffix, used to simplify
3073         ziyi.
3074         * katie.conf-security (Dinstall): likewise.
3075
3076         * amber (do_upload): renamed from get_file_list().  Determine the
3077         upload host from the original component.
3078         (init): Add a -n/--no-action option.  Fix how we get changes_files
3079         (i.e. from the return value of apt_pkg.ParseCommandLine(), not
3080         sys.argv).  Add an Options global.
3081         (make_advisory): support -n/--no-action.
3082         (spawn): likewise.
3083         (main): likewise.
3084         (usage): document -n/--no-action.
3085
3086         * cron.buildd-security: fix path to Packages-arch-specific in
3087         quinn-diff invocation.
3088
3089         * katie.conf-security (Dinstall::AcceptedAutoBuildSuites): change
3090         to proper suite names (i.e. stable, testing) rather than codenames
3091         (potato, woody).
3092         (Dinstall::DefaultSuite): likewise.
3093         (Suite): likewise.
3094         (Location::/org/security.debian.org/ftp/dists/::Suites): likewise.
3095         * vars-security (suites): likewise.
3096         * apt.conf-security: likewise.
3097
3098         * katie.conf-security (Component): add "updates/" prefix.
3099         (Suite::*::Components): likewise.
3100         (ComponentMappings): new; map all {ftp-master,non-US} components
3101         -> updates/<foo>.
3102
3103         * katie.conf-security (Natalie): removed; the options have
3104         defaults and ComponentPosition is used by alyson which doesn't
3105         work on security.d.o.
3106         (Amber): replace UploadHost and UploadDir with ComponentMappings
3107         which is a mapping of components -> URI.
3108         (Suite::*::CodeName): strip bogus "/updates" suffix hack.
3109         (SuiteMappings): use "silent-map" in preference to "map".
3110
3111         * cron.unchecked-security: fix call to cron.buildd-security.
3112
3113         * cron.daily-security: map local suite (stable) -> override suite
3114         (potato) when fixing overrides.  Correct component in natalie call
3115         to take into account "updates/" prefix.  Fix cut'n'waste in
3116         override.$dist.all3 generation, the old files weren't being
3117         removed, so they were endlessly growing.
3118
3119         * neve (main): don't use .Find for the CodeName since we require
3120         it.  Location::*::Suites is a ValueList.
3121         (check_signature): ignore duplicate SIGEXPIRED tokens.  Don't bomb
3122         out on expired keys, just warn.
3123         (update_override_type): new function; lifted from alyson.
3124         (update_priority): likewise.
3125         (main): use update_{override_type,priority}().
3126
3127         * jennifer (check_distributions): remove redunant test for
3128         SuiteMappings; ValueList("does-not-exist") returns [] which is
3129         fine.  Add support for a "silent-map" type which doesn't warn
3130         about the mapping to the user.
3131         (check_files): add support for ComponentMappings, similar to
3132         SuiteMappings, but there's no type, just a source and a
3133         destination and the original component is stored in "original
3134         component".
3135         * katie.py (Katie.dump_vars): add "original component" as an
3136         optionsal files[file] dump variable.
3137
3138         * claire.py (find_dislocated_stable): dehardcode 'potato' in SQL
3139         query.  Add support for section-less legacy locations like current
3140         security.debian.org through YetAnotherConfigBoolean
3141         'LegacyStableHasNoSections'.
3142         * katie.conf-security (Dinstall): LegacyStableHasNoSections is true.
3143
3144         * utils.py (real_arch): moved here from ziyi.
3145         * ziyi (real_arch): moved to utils.py.
3146         * ziyi (main): likewise.
3147
3148         * claire.py (find_dislocated_stable): use real_arch() with
3149         filter() to strip out source and all.
3150         * neve (main): likewise.
3151         * rene (main): likewise.
3152         * jeri (parse_packages): likewise.
3153
3154 2002-06-06  James Troup  <james@nocrew.org>
3155
3156         * tea (check_missing_tar_gz_in_dsc): modifed patch from Martin
3157         Michlmayr <tbm@cyrius.com> to be more verbose about what we're
3158         doing.
3159
3160 2002-05-23  Martin Michlmayr  <tbm@cyrius.com>
3161
3162         * jeri (check_joey): check if the line contains two elements
3163         before accessing the second.  Also, strip trailing spaces as well
3164         as the newline.
3165         * halle (check_joey): likewise.
3166
3167 2002-06-05  James Troup  <james@nocrew.org>
3168
3169         * cron.unchecked-security: new file; like cron.unchecked but if
3170         there's nothing to do exit so we don't call cron.buildd-security.
3171
3172         * apt.conf.buildd-security: new file.
3173
3174         * vars (archs): alphabetize.
3175         * vars-non-US (archs): likewise.
3176
3177         * vars-security: add unchecked.
3178
3179         * madison (main): reduce rather bizarrely verbose and purposeless
3180         code to print arches to a simple string.join.
3181
3182         * katie.conf (Suites::Unstable): add UdebComponents, a new
3183         valuelist of suites, used by jenna to flesh out the list of
3184         <suite>_main-debian-installer-binary-<arch>.list files generated.
3185         (Dinstall): add StableDislocationSupport, a new boolean used by
3186         jenna to enable or disable stable dislocation support
3187         (i.e. claire), as true.
3188
3189         * katie.conf (Dinstall): add StableDislocationSupport, a new
3190         boolean used by jenna to enable or disable stable dislocation
3191         support (i.e. claire), as true.
3192         * katie.conf-non-US: likewise.
3193         * katie.conf-security: likewise.
3194
3195         * cron.daily-security: generate .all3 overrides for the buildd
3196         support.  Freshen a local copy of Packages-arch-specific from
3197         buildd.debian.org.
3198
3199         * claire.py (find_dislocated_stable): disable the support for
3200         files in legacy-mixed locations since none of the Debian archives
3201         have any anymore.
3202
3203         * helena: new script; produces a report on NEW and BYHAND
3204         packages.
3205
3206         * jenna: rewritten from scratch to fix speed problems.  Run time
3207         on auric goes down from 31.5 minutes to 3.5 minutes.  Of that 3.5
3208         minutes, 105 seconds are the monster query and 70 odd seconds is
3209         claire.
3210
3211         * apt.conf.buildd (Default): remove MaxContentsChange as it's
3212         irrelevant.
3213
3214 2002-06-05  Ryan Murray  <rmurray@debian.org>
3215
3216         * cron.buildd-security: new file.
3217
3218 2002-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
3219
3220         * denise (list): take a file argument and use it.
3221         (main): don't abuse sys.stdout, just write to the file.
3222
3223         * claire.py (usage): Fix misspelling.
3224         (clean_symlink): Simplify.
3225         (find_dislocated_stable): Avoid unnecessary work.
3226
3227 2002-05-29  James Troup  <james@nocrew.org>
3228
3229         * cameron: removed; apt-ftparchive can simply walk the directory.
3230
3231 2002-05-26  Anthony Towns  <ajt@debian.org>
3232
3233         * katie.conf{,-non-US}: Map testing to testing-proposed-updates
3234         for the autobuilders.
3235
3236 2002-05-24  Ryan Murray  <rmurray@debian.org>
3237
3238         * cron.buildd: update override files before running apt-ftparchive
3239
3240 2002-05-23  Martin Michlmayr  <tbm@cyrius.com>
3241
3242         * amber (main): remove extra space in prompt.
3243
3244         * utils.py (validate_changes_file_arg): use original filename in
3245         error messages.
3246
3247         * jeri (check_joey): close file after use.
3248         (parse_packages): likewise.
3249         (main): setup debug option properly.
3250
3251         * melanie (main): remove unused packages variable and simplify the
3252         code to build up con_packages by using repr().
3253
3254 2002-05-23  James Troup  <james@nocrew.org>
3255
3256         * lisa (recheck): when we reject, also return 0 so the package is
3257         skipped.
3258         (sg_compare): fix note sorting.
3259         (recheck): remove the .katie file after rejection.
3260
3261         * katie.py (Katie.accept): accepted auto-build support take 3;
3262         this time adding support for security.  Security needs a) non-pool
3263         files copied rather than symlinked since accepted is readable only
3264         by katie/security and www-data needs to be able to see the files,
3265         b) needs per-suite directories.  SpecialAcceptedAutoBuild becomes
3266         AcceptedAutoBuildSuites and is a ValueList containing the suites.
3267         SecurityAcceptedAutoBuild is a new boolean which controls whether
3268         or not normal or security style is used.  The unstable_accepted
3269         table was renamed to accepted_autobuild and a suite column added.
3270         Also fix a bug noticed by Ryan where an existent orig.tar.gz
3271         didn't have it's last_used/in_accepted flags correctly updated.
3272         * katie (install): likewise.
3273         * rhona (clean_accepted_autobuild): likewise.
3274
3275 2002-05-22  James Troup  <james@nocrew.org>
3276
3277         * lisa (sort_changes): new function; sorts changes properly.
3278         Finally.
3279         (sg_compare): new function; helper for sort_changes().  Sorts by
3280         have note and time of oldest upload.
3281         (indiv_sg_compare): new function; helper for sort_changes().
3282         Sorts by source version, have source and filename.
3283         (main): use sort_changes().
3284         (changes_compare): obsoleted; removed.
3285
3286 2002-05-20  James Troup  <james@nocrew.org>
3287
3288         * rhona (clean_accepted_autobuild): don't die if a file we're
3289         trying to remove doesn't exist.  Makes rhona more friendly to
3290         katie/katie.py crashes/bugs without any undue cost.
3291
3292 2002-05-19  James Troup  <james@nocrew.org>
3293
3294         * lisa (main): if sorting a large number of changes give some
3295         feedback.
3296         (recheck): new function, run the same checks (modulo NEW,
3297         obviously) as katie does, if they fail do the standard
3298         reject/skip/quit dance.
3299         (do_pkg): use it.
3300
3301         * katie (install): don't try to unlink the symlink in the
3302         AcceptedAutoBuild support if the destination is not a symlink (or
3303         doesn't exist).  Avoids unnecessary bombs on previous partial
3304         accepts and will still bomb hard if the file exists and isn't a
3305         symlink.
3306
3307         * utils.py: blah, commands _is_ used when the mail stuff isn't
3308         commented out like it is in my test environment.
3309
3310         * lisa (changes_compare): "has note" overrides everything else.
3311         Use .katie files rather than running parse_changes, faster and
3312         allows "has note" to work.  Correct version compare, it was
3313         reversed.  Ctime check should only kick in if the source packages
3314         are not the same.
3315         (print_new): print out and return any note.  Rename 'ret_code' to
3316         'broken'.
3317         (edit_new): renamed from spawn_editor.  Don't leak file
3318         descriptors.  Clean up error message if editor fails.
3319         (edit_note): new function, allows one to edit notes.
3320         (do_new): add note support, editing and removing.
3321         (init): kill -s/--sort; with notes we always want to use our
3322         sorting method.
3323         (usage): likewise.
3324
3325         * katie.py (Katie.dump_vars): add "lisa note" as an optional
3326         changes field.
3327
3328         * utils.py (build_file_list): rename 'dsc' to 'is_a_dsc' and have
3329         it default to 0.  Adapt tests to assume it's boolean.
3330         * fernanda.py (check_changes): adjust call appropriately.
3331         * halle (check_changes): likewise.
3332         * jennifer (check_changes): likewise.
3333         * jeri (check_changes): likewise.
3334         * shania (flush_orphans): likewise.
3335
3336         * jennifer (check_dsc): pass is_a_dsc by name when calling
3337         build_file_list() for clarity.
3338         * shania (flush_orphans): likewise.
3339         * tea (check_missing_tar_gz_in_dsc): likewise.
3340
3341         * jennifer (check_dsc): pass dsc_whitespace_rules by name when
3342         calling parse_changes() for clarity.
3343         * tea (check_dscs): likewise.
3344
3345         * utils.py (parse_changes): make dsc_whitespace_rules default to
3346         not true.
3347         * halle (check_changes): adjust call appropriately.
3348         * jennifer (check_changes): likewise.
3349         * jeri (check_changes): likewise.
3350         * lisa (changes_compare): likewise.
3351         * utils.py (changes_compare): likewise.
3352         * melanie (main): likewise.
3353         * shania (flush_orphans): likewise.
3354         * fernanda.py (check_changes): likewise.
3355
3356 2002-05-18  James Troup  <james@nocrew.org>
3357
3358         * katie.py (Katie.dump_vars): make the .katie file unreadable,
3359         it's not useful and by and large a duplication of information
3360         available in readable format in other files.
3361
3362 2002-05-16  Ryan Murray  <rmurray@debian.org>
3363
3364         * melanie: Dir::TemplatesDir -> Dir::Templates
3365
3366 2002-05-15  Ryan Murray  <rmurray@debian.org>
3367
3368         * cameron: correct the use of os.path.join
3369
3370 2002-05-15  Anthony Towns  <ajt@debian.org>
3371
3372         * ziyi: Update to match the new format for Architectures/Components
3373         in katie.conf.
3374
3375 2002-05-14  James Troup  <james@nocrew.org>
3376
3377         * amber: new script; 'installer' wrapper script for the security
3378         team.
3379
3380         * katie.py (Katie.announce): remove unused 'dsc' local
3381         variable. (pychecker)
3382
3383         * ziyi: pre-define AptCnf and out globals to None. (pychecker)
3384
3385         * neve: don't import sys, we don't use it. (pychecker)
3386         (check_signature): fix return type mismatch. (pychecker)
3387
3388         * utils.py: don't import commands, we don't use it.  (pychecker)
3389
3390         * katie (install): SpecialAcceptedAutoBuild is a boolean.
3391
3392         * katie.py (Katie.dump_vars): don't store "oldfiles", it's
3393         obsoleted by the change to "othercomponents" handling in jennifer
3394         detailed below.
3395         (Katie.cross_suite_version_check): new function; implements
3396         cross-suite version checking rules specified in the conf file
3397         while also enforcing the standard "must be newer than target
3398         suite" rule.
3399         (Katie.check_binary_against_db): renamed, since it's invoked once
3400         per-binary, "binaries" was inaccurate.  Use
3401         cross_suite_version_check() and don't bother with the "oldfiles"
3402         rubbish as jennifer works out "othercomponents" herself now.
3403         (Katie.check_source_against_db): use cross_suite_version_check().
3404
3405         * katie (check): the version and file overwrite checks
3406         (check_{binary,source,dsc}_against_db) are not per-suite.
3407
3408         * jennifer (check_files): less duplication of
3409         'control.Find("Architecture", "")' by putting it in a local
3410         variable.
3411         (check_files): call check_binary_against_db higher up since it's
3412         not a per-suite check.
3413         (check_files): get "othercomponents" directly rather than having
3414         check_binary_against_db do it for us.
3415
3416         * heidi (main): 'if x:', not 'if x != []:'.
3417         * katie.py (Katie.in_override_p): likewise.
3418         (Katie.check_dsc_against_db): likewise.
3419         * natalie (main): likewise.
3420         * rene (main): likewise.
3421         * ziyi (real_arch): likewise.
3422
3423         * alyson (main): Suite::%s::Architectures, Suite::%s::Components
3424         and OverrideType are now value lists, not lists.
3425         * andrea (main): likewise.
3426         * cindy (main): likewise.
3427         * claire.py (find_dislocated_stable): likewise.
3428         * denise (main): likewise.
3429         * jenna (main): likewise.
3430         * jennifer (check_distributions): likewise.
3431         (check_files): likewise.
3432         (check_urgency): likewise (Urgency::Valid).
3433         * jeri (parse_packages): likewise.
3434         * neve (main): likewise (and Location::%s::Suites).
3435         * rene (main): likewise.
3436
3437 2002-05-13  James Troup  <james@nocrew.org>
3438
3439         * katie.py (Katie.check_source_against_db): correct case of reject
3440         message to be consistent with binary checks.
3441
3442         * jennifer (get_status_output): don't leak 2 file descriptors per
3443         invocation.
3444         (check_signature): add missing '\n' to "duplicate status token"
3445         error message.
3446
3447 2002-05-09  James Troup  <james@nocrew.org>
3448
3449         * utils.py (validate_changes_file_arg): new function; validates an
3450         argument which should be a .changes file.
3451         * ashley (main): use it.
3452         * lisa (main): likewise.
3453
3454         * katie.py (Katie.check_dsc_against_db): since there can be more
3455         than one .orig.tar.gz make sure we don't assume the .orig.tar.gz
3456         entry still exists in files.
3457
3458         * jennifer (check_dsc): handle the .orig.tar.gz disappearing from
3459         files, since check_dsc_against_db() deletes the .orig.tar.gz
3460         entry.
3461
3462         * cameron: cleanups.
3463
3464         * utils.py (changes_compare): change sort order so that source
3465         name and source version trump 'have source'; this should fix
3466         UNACCEPT problems in katie where -1 hppa+source & i386, -2
3467         i386&source & hppa lead to -1 i386 unaccept.  Problem worked out
3468         by Ryan.
3469
3470         * lisa (main): allow the arguments to be .katie files too.
3471
3472 2002-05-07  Ryan Murray  <rmurray@debian.org>
3473
3474         * cron.buildd: add s390 to arch list again
3475
3476 2002-05-05  Ryan Murray  <rmurray@debian.org>
3477
3478         * cron.buildd: new script, update w-b database from unstable_accepted
3479         table
3480         * cameron: new script, take list in unstable_accepted and write out
3481         a file list for apt-ftparchive
3482         * apt.conf.buildd: new apt configuration for Packages/Sources for
3483         unstable_accepted
3484         * vars: add s390 to arch list.
3485
3486 2002-05-03  James Troup  <james@nocrew.org>
3487
3488         * neve (main): don't hard code the calling user as that doesn't
3489         work with modern postgres installs.  Fix psql invocation for
3490         init_pool.sql (database name required).  Dont' hard code the
3491         database name.
3492         (process_sources): add support for fingerprint and install_date.
3493         (process_packages): add support for fingerprint.
3494         (do_sources): pass in the directory, fingerprint support needs it.
3495         (get_status_output): borrowed from jennifer.
3496         (reject): likewise.
3497         (check_signature): likewise.
3498
3499         * katie (install): only try to log urgencies if Urgency_Logger is
3500         defined.
3501         (main): only initialize Urgency_Logger is Dir::UrgencyLog is
3502         defined; only close Urgency_Logger if it's defined.
3503
3504         * catherine (poolize): adapt for Dir rationalization.
3505         * claire.py (find_dislocated_stable): likewise.
3506         * denise (main): likewise.
3507         * halle (check_joey): likewise.
3508         * jenna: likewise.
3509         * jennifer: likewise.
3510         * jeri: likewise.
3511         * katie.py: likewise.
3512         * katie: likewise.
3513         * lisa (do_bxa_notification): likewise.
3514         * logging.py (Logger.__init__): likewise
3515         * rene (main): likewise.
3516         * rhona (clean): likewise.
3517         * shania (init): likewise.
3518         * tea: likewise.
3519         * ziyi: likewise.
3520
3521         * lisa (add_overrides): Dinstall::BXANotify is a boolean, use
3522         FindB, not FindI.
3523
3524         * rhona (clean_accepted_autobuild): SpecialAcceptedAutoBuild is a
3525         boolean, use FindB, not get.
3526
3527         * katie.py (Katie.check_dsc_against_db): ignore duplicate
3528         .orig.tar.gz's which are an exact (size/md5sum) match.
3529
3530         * ashley (main): really allow *.katie files as arguments too;
3531         noticed by aj.
3532
3533         * sql-aptvc.cpp: postgres.h moved to a "server" subdirectory.
3534
3535 2002-05-03  Anthony Towns  <ajt@debian.org>
3536
3537         * ziyi: support for security.
3538
3539 2002-05-02  James Troup  <james@nocrew.org>
3540
3541         * jennifer (accept): call Katie.check_override() unconditional as
3542         no-mail check moved into that function.
3543         (do_byhand): likewise.
3544
3545         * katie.py (Katie.check_override): don't do anything if we're a)
3546         not sending mail or b) the override disparity checks have been
3547         disbled via Dinstall::OverrideDisparityCheck.
3548
3549         * jennifer (check_files): don't hard code Unstable as the suite
3550         used to check for architecture validity; use
3551         Dinstall::DefaultSuite instead, if it exists.
3552         (accept): conditionalize
3553
3554         * katie.py (Katie.update_subst): support global maintainer
3555         override with Dinstall::OverrideMaintainer.
3556
3557         * jennifer (check_distributions): new function, Distribution
3558         validation and mapping.  Uses new SuiteMappings variable from
3559         config file to abstract suite mappings.
3560         (check_changes): call it.
3561
3562         * natalie: renamed; nothing imports or likely will for some time.
3563
3564         * denise (main): remove unused natalie import and init().
3565
3566         * natalie.py (init): removed.
3567         (main): initalize here instead and don't hardcode the database
3568         name.
3569
3570 2002-04-30  James Troup  <james@nocrew.org>
3571
3572         * katie.py (Katie.close_bugs): new function, split out from
3573         announce().
3574         (Katie.announce): only call close_bugs() if Dinstall::CloseBugs is
3575         true.
3576         (Katie.close_bugs): new function, split out
3577         (Katie.close_bugs): return immediately if there are no bugs to
3578         close.
3579
3580         * jennifer (acknowledge_new): adapt for new utils.TemplateSubst().
3581         * katie (do_reject): likewise.
3582         (stable_install): likewise.
3583         * katie.py (Katie.announce): likewise.
3584         (Katie.accept): likewise.
3585         (Katie.check_override): likewise.
3586         (Katie.do_reject): likewise.
3587         * lisa (do_bxa_notification): likewise.
3588         * melanie (main): likewise.
3589
3590         * utils.py (TemplateSubst): change second argument to be a
3591         filename rather than a template since every caller opened a file
3592         on the fly which was ugly and leaked file descriptor.
3593
3594 2002-04-29  James Troup  <james@nocrew.org>
3595
3596         * katie.py (Katie.announce): (modified) patch from Raphael Hertzog
3597         <hertzog@debian.org> to send 'accepted' announce mails to the
3598         PTS. [#128140]
3599
3600 2002-04-24  James Troup  <james@nocrew.org>
3601
3602         * init_pool.sql (unstable_accepted): add two new fields to
3603         unstable_accepted; in_accepted is a boolean indicating whether or
3604         not the file is in accepted and last_used is a timestamp used by
3605         rhona to determine when to remove symlinks for installed packages.
3606
3607         * katie.py (Katie.accept): auto-build support take 2.  Create
3608         symlinks for all files into a seperate directory.  Add files to
3609         unstable_accepted as paths to the new directory; mark them as
3610         being in accepted for cameron.  Properly conditionalize it on a
3611         configuration variable.
3612
3613         * katie (install): likewise.  Update symlinks to point into the
3614         pool; mark the files for later deletion by rhona and mark them as
3615         not being in accepted for cameron.
3616
3617         * rhona (clean_accepted_autobuild): new function.
3618
3619 2002-04-22  James Troup  <james@nocrew.org>
3620
3621         * jennifer (check_files): handle db_access.get_location_id()
3622         returning -1 properly/better.
3623
3624         * rhona (clean_fingerprints): new function.
3625
3626 2002-04-21  James Troup  <james@nocrew.org>
3627
3628         * utils.py (touch_file): unused; remove.
3629         (plural): likewise.
3630
3631         * jennifer (check_files): close file descriptor used to get the
3632         control file.
3633         (check_md5sums): likewise.
3634         (callback): likewise.
3635
3636         * katie.py (Katie.do_reject): handle manual rejects much better;
3637         call the editor first and get confirmation from the user before
3638         proceeding.
3639
3640         * jennifer (check_signature): prefix_multi_line_string() moved to
3641         utils.
3642
3643         * utils.py (prefix_multi_line_string): moved here from jennifer.
3644
3645 2002-04-20  James Troup  <james@nocrew.org>
3646
3647         * lisa (main): handle non-existent files.
3648
3649         * ashley (main): allow *.katie files as arguments too.
3650
3651 2002-04-19  James Troup  <james@nocrew.org>
3652
3653         * katie.py (Katie.accept): add stuff to help auto-building from
3654         accepted; if the .orig.tar.gz is not part of the upload (i.e. it's
3655         in the pool), create a symlink to it in the accepted directory and
3656         add the .dsc and .{u,}deb(s) to a new 'unstable_accepted' table.
3657
3658         * katie (install): undo the "auto-building from accepted" stuff
3659         (i.e. remove the .orig.tar.gz symlink and remove the files from
3660         unstable_accepted table).
3661
3662 2002-04-16  James Troup  <james@nocrew.org>
3663
3664         * jennifer (upload_too_new): fix typo which was causing all
3665         timestamp comparisons to be against the .changes file.  Also move
3666         back to the original directory so we do the comparisons against
3667         accurate timestamps.
3668
3669         * tea (check_missing_tar_gz_in_dsc): new function.
3670
3671         * jennifer (check_dsc): add a check to ensure there is a .tar.gz
3672         file mentioned in the .dsc.
3673
3674         * lisa (main): use X-Katie in the mail headers, not X-Lisa; that
3675         way mails reach debian-{devel-,}changes@l.d.o.
3676
3677 2002-04-02  Ryan Murray  <rmurray@debian.org>
3678
3679         * cron.daily: run shania after rhona
3680         * cron.daily-non-US: likewise.
3681
3682 2002-04-01  James Troup  <james@nocrew.org>
3683
3684         * katie: re-add proposed-updates/stable install support.
3685
3686         * katie.py (Katie.dump_vars): add changes["changes"] as an
3687         optional field; should be mandatory later.
3688
3689 2002-03-31  James Troup  <james@nocrew.org>
3690
3691         * katie (install): support a Suite::<foo>::CopyKatie similar to
3692         CopyChanges.  Done seperately because .katie files don't need to
3693         be mirrored and will probably be copied to another directory as a
3694         result.
3695
3696         * halle (main): add missing debug to options.
3697
3698 2002-03-29  James Troup  <james@nocrew.org>
3699
3700         * madison (main): add a -r/--regex option.
3701
3702 2002-03-26  James Troup  <james@nocrew.org>
3703
3704         * lisa: don't trample on changes["distribution"]; make a copy of
3705         it as changes["suite"] instead and use that.
3706
3707 2002-03-16  Anthony Towns  <ajt@debian.org>
3708
3709         * templates/lisa.bxa_notification: Fix some grammatical errors.
3710         Encourage contact via bxa@ftp-master email address.
3711
3712 2002-03-15  James Troup  <james@nocrew.org>
3713
3714         * jennifer (check_timestamps): remove bogus raise in except.
3715
3716 2002-03-15  Anthony Towns  <ajt@debian.org>
3717
3718         * cron.monthly: rotate mail/archive/bxamail as well as
3719         mail/archive/mail. This is for a complete archive of
3720         correspondence with the BXA.
3721
3722 2002-03-14  Anthony Towns  <ajt@debian.org>
3723
3724         * crypto-in-main changes.
3725
3726         * utils.py (move, copy): add an optional perms= parameter to let you
3727         set the resulting permissions of the moved/copied file
3728         * katie.py (force_move): rejected/morgued files should be unreadable
3729         * jennifer (do_byhand, acknowledge_new): pending new and byhand files
3730         should be unreadable.
3731
3732 2002-03-07  Ryan Murray  <rmurray@debian.org>
3733
3734         * katie (install): check for existance of "files id" key as well as
3735         it being set to a valid value.
3736         * katie (install): check for existense and valid value for location
3737         id as well
3738
3739 2002-03-05  Ryan Murray  <rmurray@debian.org>
3740
3741         * katie.py (do_reject): reread the reason file after editing it.
3742
3743 2002-02-25  James Troup  <james@nocrew.org>
3744
3745         * jennifer (check_changes): don't enforce sanity in .changes file
3746         names since it doesn't seem to be possible; pcmica-cs and similar
3747         freak show packages in particular cause real problems.
3748
3749         * katie.py (Katie.check_dsc_against_db): initialize 'found' for
3750         each dsc_file since the .orig.tar.gz checking code now uses it as
3751         a boolean.  Fixes bizarro rejections which bogusly claimed
3752         .diff.gz md5sum/size was incorrect.
3753
3754 2002-02-24  James Troup  <james@nocrew.org>
3755
3756         * katie (process_it): reset reject_message.
3757
3758 2002-02-22  James Troup  <james@nocrew.org>
3759
3760         * db_access.py(set_files_id): disable use of
3761         currval('files_id_seq') because it was taking 3 seconds on auric
3762         which is insane (most calls take < 0.01) and simply call
3763         get_files_id() for the return value instead.
3764
3765         * katie.py (Katie.do_query): convenience function; unused by
3766         default, useful for profiling.
3767         * db_access.py (do_query): likewise.
3768
3769         * katie (install): fix insert SQL call when binary has no source.
3770
3771         * lisa (determine_new): auto-correct non-US/main to non-US.
3772         (determine_new): add a warning when adding things to stable.
3773         (edit_index): use our_raw_input().
3774         (edit_overrides): likewise.
3775         (do_new): likewise.  Use re.search() not re.match() since the
3776         default answer may not be the first one.
3777         (do_byhand): likewise.
3778         (do_new): Default to 'S'kip and never 'A'dd.
3779
3780         * jennifer (action): pass prompt to our_raw_input().
3781         * melanie (game_over): likewise.
3782         * katie (action): likewise.
3783
3784         * utils.py (our_raw_input): add an optional prompt argument to
3785         make the function more usable as a drop in replacement for
3786         raw_input().
3787
3788         * jennifer (check_files): correct reject() to not double prefix
3789         when using katie.py based functions.
3790         (check_dsc): likewise.
3791
3792         * katie.py (Katie.reject): prepend a new line if appropriate
3793         rathen than appending one to avoid double new lines when caller
3794         adds one of his own.
3795
3796         * lisa (determine_new): warn if the package is also in other
3797         components.
3798
3799 2002-02-20  James Troup  <james@nocrew.org>
3800
3801         * jennifer (check_files): if .changes file lists "source" in
3802         Architecture field, there must be a .dsc.
3803
3804 2002-02-15  James Troup  <james@nocrew.org>
3805
3806         * ashley (main): add some missing fields.
3807
3808         * katie.py (Katie.check_dsc_against_db): fix to take into account
3809         the fact that the .orig.tar.gz might be in byhand, accepted or
3810         new.  Also fix calling of reject().
3811         (Katie.check_binaries_against_db): fix calling of reject().
3812         (Katie.check_source_against_db): likewise.
3813         (Katie.dump_vars): add missing variables used for bug closures.
3814
3815         * lisa (changes_compare_by_time): sort by reverse time.
3816
3817         * katie.py (Katie.accept): log.
3818         (Katie.dump_vars): missing has_key test for optional changes fields.
3819
3820         * jennifer (main): print "Accepted blah blah" to stdout, not stderr.
3821         (process_it): traceback goes to stderr, not stdout.
3822         (acknowledge_new): log.
3823         (do_byhand): likewise.
3824
3825         * katie.py (Katie.update_subst): fix typo (Cnf vs. self.Cnf).
3826
3827         * add_constraints.sql: add grants for the new fingerprint table.
3828
3829 2002-02-13  James Troup  <james@nocrew.org>
3830
3831         * katie (do_reject): basename the .changes filename before trying
3832         to use it to construct the .reason filename.
3833         (process_it): call Katie.update_subst() so do_reject() DTRT with
3834         the mail template.
3835         (do_reject): setup the mail template correctly.
3836
3837 2002-02-12  James Troup  <james@nocrew.org>
3838
3839         * tea (process_dir): renamed 'arg' to 'unused' for clarity.
3840         (check_files): don't abuse global dictionaries.
3841         (Ent): use all variables.
3842         (check_timestamps): don't abuse global dictionaries.
3843
3844         * fernanda.py: renamed to .py so lisa can import it.
3845         (check_dsc): remove unused local variables (pychecker).
3846         (display_changes): split off from check_changes.
3847
3848         * katie: rewritten; most of the functionality moves to jennifer;
3849         what's left is the code to install packages once a day from the
3850         'accepted' directory.
3851
3852         * jennifer: new program, processes packages in 'unchecked'
3853         (i.e. most of the non-install functionality of old katie).
3854
3855         * katie.py: common functions shared between the clique of
3856         jennifer, lisa and katie.
3857
3858         * lisa: new program; handles NEW and BYHAND packages.
3859
3860         * jeri (usage): new function.
3861         (main): use it.
3862         (check_package): remove unused local variable (pychecker).
3863
3864         * init_pool.sql: new table fingerprint.  Add fingerprint colums to
3865         binaries and source.  Add install_date to source.
3866
3867         * halle (usage): new function.
3868         (main): use it.  Remove unused options.
3869         (check_changes): remove unused local variable (pychecker).
3870
3871         * add_constraints.sql: add fingerprint references.
3872
3873         * db_access.py (get_or_set_fingerprint_id): new function.
3874
3875         * ashley (main): new program; dumps the contents of a .katie file
3876         to stdout.
3877
3878         * alyson (main): remove option handling since we don't actually
3879         support any.
3880         * cindy (main): likewise.
3881
3882         * remove unnecessary imports and pre-define globals (pychecker).
3883
3884 2002-02-11  Anthony Towns  <ajt@debian.org>
3885
3886         * added installation-report and upgrade-report pseudo-packages
3887
3888 2002-01-28  Martin Michlmayr  <tbm@cyrius.com>
3889
3890         * katie (update_subst): use Dinstall::TrackingServer.
3891         * melanie (main): likewise.
3892
3893 2002-01-27  James Troup  <james@nocrew.org>
3894
3895         * shania (main): it's IntLevel not IntVal; thanks to tbm@ for
3896         noticing, jgg@ for fix.
3897
3898 2002-01-19  James Troup  <james@nocrew.org>
3899
3900         * utils.py (extract_component_from_section): handle non-US
3901         non-main properly.
3902
3903 2002-01-12  James Troup  <james@nocrew.org>
3904
3905         * madison: add support for -S/--source-and-binary which displays
3906         information for the source package and all it's binary children.
3907
3908 2002-01-13  Anthony Towns  <ajt@debian.org>
3909
3910         * katie.conf: Remove Catherine Limit and bump stable to 2.2r5
3911         * katie.conf: Add Dinstall::SigningKeyIds option, set to the 2001
3912           and 2002 key ids.
3913         * katie.conf-non-US: Likewise.
3914         * ziyi: Suppoer Dinstall::SigningKeyIds to sign a Release file with
3915           multiple keys automatically. This is probably only useful for
3916           transitioning from an expired (or revoked?) key.
3917
3918 2002-01-08  Ryan Murray  <rmurray@debian.org>
3919
3920         * debian/python-dep: new file that prints out python:Depends for
3921           substvars
3922         * debian/control: use python:Depends, build-depend on python
3923           lower Depends: on postgresql to Suggests:
3924         * debian/rules: determine python version, install to the correct
3925           versioned dir
3926
3927 2001-12-18  Anthony Towns  <ajt@debian.org>
3928
3929         * ziyi: unlink Release files before overwriting them (in case they've
3930           been merged)
3931         * ziyi: always include checksums/sizes for the uncompressed versions
3932           of Sources and Packages, even if they're not present on disk
3933
3934 2001-11-26  Ryan Murray  <rmurray@debian.org>
3935
3936         * ziyi (main): add SigningPubKey config option
3937         * katie.conf: use SigningPubKey config option
3938         * katie.conf-non-US: likewise
3939
3940 2001-11-24  James Troup  <james@nocrew.org>
3941
3942         * katie (acknowledge_new): log newness.
3943
3944 2001-11-24  Anthony Towns  <ajt@debian.org>
3945
3946         * ziyi (real_arch): bail out if some moron forgot to reset
3947         untouchable on stable.
3948         (real_arch): source Release files.
3949
3950 2001-11-19  James Troup  <james@nocrew.org>
3951
3952         * claire.py (main): don't use apt_pkg.ReadConfigFileISC and
3953         utils.get_conf().
3954         * shania (main): likewise.
3955
3956         * rhona (main): add default options.
3957
3958         * db_access.py (get_archive_id): case independent.
3959
3960         * katie (action): sort files so that ordering is consistent
3961         between mails; noticed/requested by Joey.
3962
3963 2001-11-17  Ryan Murray  <rmurray@debian.org>
3964
3965         * utils.py: add get_conf function, change startup code to read all
3966           config files to the Cnf that get_conf returns
3967           use the component list from the katie conf rather than the hardcoded
3968           list.
3969         * all scripts: use new get_conf function
3970         * shania: fix try/except around changes files
3971         * jenna: only do debian-installer if it is a section in Cnf
3972
3973 2001-11-16  Ryan Murray  <rmurray@debian.org>
3974
3975         * shania (main): Initialize days to a string of a number.
3976                  (main): Initialize Cnf vars before reading in Cnf
3977
3978 2001-11-14  Ryan Murray  <rmurray@debian.org>
3979
3980         * shania (main): Initialize days to a number.
3981
3982 2001-11-04  James Troup  <james@nocrew.org>
3983
3984         * docs/Makefile: use docbook-utils' docbook2man binary.
3985
3986         * Change all "if foo == []" constructs into "if not foo".
3987
3988         * katie (check_changes): when installing into stable from
3989         proposed-updates, remove all non-stable target distributions.
3990         (check_override): don't check for override disparities on stable
3991         installs.
3992         (stable_install): update install_bytes appropriately.
3993         (reject): stable rejection support; i.e. don't remove files when
3994         rejecting files in the pool, rather remove them from the
3995         proposed-update suite instead, rhona will do the rest.
3996         (manual_reject): support for a stable specific template.
3997         (main): setup up stable rejector in subst.
3998
3999 2001-11-04  Martin Michlmayr  <tbm@cyrius.com>
4000
4001         * debian/control (Build-Depends): docbook2man has been superseded
4002         by docbook-utils.
4003
4004         * neve (main): exit with a more useful error message.
4005         (update_suites): Suite::<suite>::Version, Origin and Description
4006         are not required, so don't fail if they don't exist.
4007
4008         * db_access.py (get_archive_id): return -1 on error rather than
4009         raise an exception.
4010         (get_location_id): likewise.
4011
4012         * madison (main): don't exit on the first not-found package,
4013         rather exit with an appropriate return code after processing all
4014         packages.
4015
4016 2001-11-03  James Troup  <james@nocrew.org>
4017
4018         * claire.py (find_dislocated_stable): add per-architecture
4019         symlinks for dislocated architecture: all debs.
4020
4021 2001-10-19  Anthony Towns  <ajt@debian.org>
4022
4023         * apt.conf*, katie.conf*: add mips, mipsel, s390 to testing.
4024
4025 2001-10-10  Anthony Towns  <ajt@debian.org>
4026
4027         * claire.py (fix_component_section): do _not_ assign to None under
4028         any circumstances
4029
4030 2001-10-07  Martin Michlmayr  <tbm@cyrius.com>
4031
4032         * melanie (main): don't duplicate architectures when removing from
4033         more than one suite.
4034
4035         * heidi (main, process_file, get_list): report suite name not ID.
4036
4037         * naima (nmu_p): be case insensitive.
4038
4039         * naima (action): more list handling clean ups.
4040
4041         * melanie (main): clean up lists handling to use string.join and
4042         IN's.
4043
4044         * madison (main): clean up suite and architecture argument parsing
4045         to use slices less and string.join more.
4046
4047         * utils.py (parse_changes): Use string.find() instead of slices for
4048         string comparisons thereby avoid hardcoding the length of strings.
4049         * ziyi (main): likewise.
4050
4051 2001-10-07  James Troup  <james@nocrew.org>
4052
4053         * Remove mode argument from utils.open_files() calls if it's the
4054         default, i.e. 'r'.
4055
4056 2001-09-27  James Troup  <james@nocrew.org>
4057
4058         * katie (init): new function; options clean up.
4059         (usage): add missing options, remove obsolete ones.
4060         (main): adapt for the two changes above.  If the lock file or
4061         new-ack log file don't exist, create them.  Don't try to open the
4062         new-ack log file except running in new-ack mode.
4063
4064         * alyson (main): initialize all the tables that are based on the
4065         conf file.
4066
4067         * utils.py (touch_file): like touch(1).
4068         (where_am_i): typo.
4069
4070         * catherine (usage): new.
4071         (main): use it.  options cleanup.
4072         * claire.py: likewise.
4073         * fernanda: likewise.
4074         * heidi: likewise.
4075         * jenna: likewise.
4076         * shania: likewise.
4077         * ziyi: likewise.
4078
4079         * andrea: options cleanup.
4080         * charisma: likewise.
4081         * julia: likewise.
4082         * madison: likewise.
4083         * melanie: likewise.
4084         * natalie: likewise.
4085         * rhona: likewise.
4086         * tea: likewise.
4087
4088 2001-09-26  James Troup  <james@nocrew.org>
4089
4090         * utils.py: default to sane config file locations
4091         (/etc/katie/{apt,katie}.conf.  They can be the actual config files
4092         or they can point to the real ones through use of a new Config
4093         section.  Based on an old patch by Adam Heath.
4094         (where_am_i): use the new default config stuff.
4095         (which_conf_file): likewise.
4096         (which_apt_conf_file): likewise.
4097
4098         * charisma (main): output defaults to
4099         `Package~Version\tMaintainer'; input can be of either form.  When
4100         parsing the new format do version comparisons, when parsing the
4101         old format assume anything in the extra file wins.  This fixes the
4102         problem of newer non-US packages being overwhelmed by older
4103         versions still in stable on main.
4104
4105 2001-09-17  James Troup  <james@nocrew.org>
4106
4107         * natalie.py (list): use result_join().
4108
4109         * denise (main): result_join() moved to utils.
4110
4111         * utils.py (result_join): move to utils; add an optional seperator
4112         argument.
4113
4114 2001-09-14  James Troup  <james@nocrew.org>
4115
4116         * heidi (set_suite): new function; does --set like natalie does,
4117         i.e. turns it into a sequence of --add's and --remove's
4118         internally.  This is a major win (~20 minute run time > ~20
4119         seconds) in the common, everday (i.e. testing) case.
4120         (get_id): common code used by set_suite() and process_file().
4121         (process_file): call set_suite() and get_id().
4122         (main): add logging support.
4123
4124         * julia: new script; syncs PostgeSQL with (LDAP-generated) passwd
4125         files.
4126
4127         * utils.py (parse_changes): use slices or simple string comparison
4128         in favour of regexes where possible.
4129
4130         * sql-aptvc.cpp (versioncmp): rewritten to take into account the
4131         fact that the string VARDATA() points to are not null terminated.
4132
4133         * denise (result_join): new function; like string.join() but
4134         handles None's.
4135         (list): use it.
4136         (main): likewise.
4137
4138         * charisma (main): python-pygresql 7.1 returns None not "".
4139
4140 2001-09-14  Ryan Murray  <rmurray@debian.org>
4141
4142         * natalie.py (list): handle python-pygresql 7.1 returning None.
4143
4144 2001-09-10  Martin Michlmayr  <tbm@cyrius.com>
4145
4146         * madison (main): return 1 if no package is found.
4147
4148 2001-09-08  Martin Michlmayr  <tbm@cyrius.com>
4149
4150         * madison (main): better error handling for incorrect
4151         -a/--architecture or -s/--suite arguments.
4152         (usage): new.
4153         (main): use it.
4154
4155 2001-09-05  Ryan Murray  <rmurray@debian.org>
4156
4157         * charisma, madison, katie: remove use of ROUser
4158         * katie.conf,katie.conf-non-US: remove defintion of ROUser
4159
4160 2001-08-26  James Troup  <james@nocrew.org>
4161
4162         * katie (nmu_p.is_an_nmu): use maintaineremail to check for group
4163         maintained packages at cjwatson@'s request.
4164
4165 2001-08-21  James Troup  <james@nocrew.org>
4166
4167         * madison (main): add -a/--architecture support.
4168
4169         * jenna: use logging instead of being overly verbose on stdout.
4170
4171 2001-08-11  Ryan Murray  <rmurray@debian.org>
4172
4173         * melanie: add functional help option
4174
4175 2001-08-07  Anthony Towns  <ajt@debian.org>
4176
4177         * apt.conf, katie.conf: Add ia64 and hppa to testing.
4178
4179 2001-07-28  James Troup  <james@nocrew.org>
4180
4181         * katie (check_dsc): ensure source version is >> than existing
4182         source in target suite.
4183
4184 2001-07-25  James Troup  <james@nocrew.org>
4185
4186         * natalie.py: add logging support.
4187
4188         * utils.py (open_file): make the second argument optional and
4189         default to read-only.
4190
4191         * rene (main): work around broken source packages that duplicate
4192         arch: all packages with arch: !all packages (no longer allowed
4193         into the archive by katie).
4194
4195 2001-07-13  James Troup  <james@nocrew.org>
4196
4197         * katie (action): don't assume distribution is a dictionary.
4198         (update_subst): don't assume architecture is a dictionary and that
4199         maintainer822 is defined.
4200         (check_changes): recognise nk_format exceptions.
4201         (check_changes): reject on 'testing' only uploads.
4202         (check_files): when checking to ensure all packages are newer
4203         versions check against arch-all packages too.
4204         (check_dsc): enforce the existent of a sane set of mandatory
4205         fields.  Ensure the version number in the .dsc (modulo epoch)
4206         matches the version number in the .changes file.
4207
4208         * utils.py (changes_compare): ignore all exceptions when parsing
4209         the changes files.
4210         (build_file_list): don't UNDEF on a changes file with no format
4211         field.
4212
4213 2001-07-07  James Troup  <james@nocrew.org>
4214
4215         * katie (nmu_p.is_an_nmu): check 'changedby822' for emptiness
4216         rather than 'changedbyname' to avoid false negatives on uploads
4217         with an email-address-only Changed-By field.
4218         (check_dsc): don't overwrite reject_message; append to it.
4219         (check_signature): likewise.
4220         (check_changes): likewise.
4221         (announce): condition logging on 'action'.
4222
4223         * logging.py: new logging module.
4224
4225         * katie: Cleaned up code by putting Cnf["Dinstall::Options"]
4226         sub-tree into a separate (global) variable.
4227         (check_dsc): ensure format is 1.0 to retain backwards
4228         compatability with dpkg-source in potato.
4229         (main): only try to obtain the lock when not running in no-action
4230         mode.
4231         Use the new logging module.
4232
4233         * christina: initial version; only partially usable.
4234
4235 2001-06-28  Anthony Towns  <ajt@debian.org>
4236
4237         * apt.conf: Add ExtraOverrides to auric.
4238
4239 2001-06-25  James Troup  <james@nocrew.org>
4240
4241         * katie (nmu_p.is_an_nmu): the wonderful dpkg developers decided
4242         they preferred the name 'Uploaders'.
4243
4244 2001-06-23  James Troup  <james@nocrew.org>
4245
4246         * katie (check_files): fix typo in uncommon rejection message,
4247         s/sourceversion/source version/.
4248
4249         * denise (main): we can't use print because stdout has been
4250         redirected.
4251
4252         * katie (source_exists): new function; moved out of check_files()
4253         and added support for binary-only NMUs of earlier sourceful NMUs.
4254
4255         * rhona (clean): find_next_free has moved.
4256
4257         * utils.py (find_next_free): new function; moved here from rhona.
4258         Change too_many to be an argument with a default value, rather
4259         than a hardcoded variable.
4260
4261         * shania: rewritten to work better; REJECTion reminder mail
4262         handling got lost though.
4263
4264 2001-06-22  James Troup  <james@nocrew.org>
4265
4266         * rhona (main): remove unused override code.
4267
4268         * fernanda (main): remove extraneous \n's from utils.warn calls.
4269         * natalie.py (list): likewise.
4270
4271         * catherine, cindy, denise, heidi, jenna, katie, neve, rhona, tea:
4272         use utils.{warn,fubar} where appropriate.
4273
4274 2001-06-21  James Troup  <james@nocrew.org>
4275
4276         * katie (nmu_p): new class that encapsulates the "is a nmu?"
4277         functionality.
4278         (nmu_p.is_an_nmu): add support for multiple maintainers specified
4279         by the "Maintainers" field in the .dsc file and maintainer groups.
4280         (nmu_p.__init__): read in the list of group maintainer names.
4281         (announce): use nmu_p.
4282
4283 2001-06-20  James Troup  <james@nocrew.org>
4284
4285         * rene (main): hardcode the suite experimental is compared to by
4286         name rather than number.
4287
4288         * katie (check_files): differentiate between doesn't-exist and
4289         permission-denied in "can not read" rejections; requested by edd@.
4290         (check_dsc): use os.path.exists rather than os.access to allow the
4291         above check to kick in.
4292
4293         * heidi (process_file): read all input before doing anything and
4294         use transactions.
4295
4296 2001-06-15  James Troup  <james@nocrew.org>
4297
4298         * fernanda: new script; replaces old 'check' shell script
4299         nastiness.
4300
4301 2001-06-14  James Troup  <james@nocrew.org>
4302
4303         * katie: actually import traceback module to avoid amusing
4304         infinite loop.
4305
4306 2001-06-10  James Troup  <james@nocrew.org>
4307
4308         * utils.py (extract_component_from_section): fix to handle just
4309         'non-free' and 'contrib'.  Also fix to handle non-US in a
4310         completely case insensitive manner as a component.
4311
4312 2001-06-08  James Troup  <james@nocrew.org>
4313
4314         * madison (arch_compare): sort function that sorts 'source' first
4315         then alphabetically.
4316         (main): use it.
4317
4318 2001-06-05  Jeff Licquia  <jlicquia@progeny.com>
4319
4320         * catherine (poolize): explicitly make poolized_size a long so it
4321         doesn't overflow when poolizing e.g. entire archives.
4322
4323 2001-06-01  James Troup  <james@nocrew.org>
4324
4325         * utils.py (send_mail): throw exceptions rather than exiting.
4326
4327         * katie (process_it): catch exceptions and ignore them.
4328
4329 2001-06-01  Michael Beattie  <mjb@debian.org>
4330
4331         * added update-mailingliststxt and update-readmenonus to update
4332         those files, respectively. modified cron.daily{,-non-US} to
4333         use them.
4334
4335 2001-05-31  Anthony Towns  <ajt@debian.org>
4336
4337         * rhona: make StayOfExecution work.
4338
4339 2001-05-31  James Troup  <james@nocrew.org>
4340
4341         * rhona (find_next_free): fixes to not overwrite files but rename
4342         them by appending .<n> instead.
4343         (clean): use find_next_free and use dated sub-directories in the
4344         morgue.
4345
4346         * utils.py (move): don't overwrite files unless forced to.
4347         (copy): likewise.
4348
4349 2001-05-24  James Troup  <james@nocrew.org>
4350
4351         * katie (check_files): determine the source version here instead
4352         of during install().
4353         (check_files): check for existent source with bin-only NMU
4354         support.
4355         (main): sort the list of changes so that the source-must-exist
4356         check Does The Right Thing(tm).
4357
4358         * utils.py (changes_compare): new function; sorts a list of
4359         changes files by 'have-source', source, version.
4360         (cc_fix_changes): helper function.
4361         (parse_changes): use compiled regexes.
4362         (fix_maintainer): likewise.
4363
4364         * rene (main): warn about packages in experimental that are
4365         superseded by newer versions in unstable.
4366
4367 2001-05-21  James Troup  <james@nocrew.org>
4368
4369         * rene (main): add support for checking for ANAIS (Architecture
4370         Not Allowed In Source) packages.
4371
4372 2001-05-17  James Troup  <james@nocrew.org>
4373
4374         * katie (check_changes): initalize `architecture' dictionary in
4375         changes global so that if we can't parse the changes file for
4376         whatever reason we don't undef later on.
4377
4378         * utils.py (parse_changes): fix handling of multi-line fields
4379         where the first line did have data.
4380
4381 2001-05-05  Anthony Towns  <ajt@debian.org>
4382
4383         * ziyi: Add "NotAutomatic: yes" to experimental Release files.
4384         (It should always have been there. Ooopsy.)
4385
4386 2001-05-03  Anthony Towns  <ajt@debian.org>
4387
4388         * jenna: Cleanup packages that move from arch:any to arch:all or
4389         vice-versa.
4390
4391 2001-04-24  Anthony Towns  <ajt@debian.org>
4392
4393         * ziyi: add ``SHA1:'' info to Release files. Also hack them up to
4394         cope with debian-installer and boot-floppies' md5sum.txt.
4395
4396 2001-04-16  James Troup  <james@nocrew.org>
4397
4398         * katie (check_changes): add missing %s format string argument.
4399         (stable_install): temporary work around for morgue location to
4400         move installed changes files into.
4401         (stable_install): helps if you actually read in the template.
4402         (manual_reject): fix for editing of reject messages which was
4403         using the wrong variable name.
4404
4405         * jenna (generate_src_list): typo; s/package/source/; fixes undef crash.
4406
4407 2001-04-13  James Troup  <james@nocrew.org>
4408
4409         * katie (manual_reject): Cc the installer.
4410         (reject): don't.
4411         (check_changes): remove unused maintainer-determination code.
4412         (update_subst): add support for Changed-By when setting the
4413         *MAINTAINER* variables.
4414
4415         * rene (bar): new function to check for packages on architectures
4416         when they shouldn't be.
4417
4418         * natalie.py (main): use fubar() and warn() from utils.
4419
4420         * utils.py (whoami): new mini-function().
4421         * melanie (main): use it.
4422         * katie (manual_reject): likewise.
4423
4424 2001-04-03  James Troup  <james@nocrew.org>
4425
4426         * katie (action): ignore exceptions from os.path.getmtime() so we
4427         don't crash on non-existent changes files (e.g. when they are
4428         moved between the start of the install run in cron.daily and the
4429         time we get round to processing them).
4430
4431         * madison (main): also list source and accept -s/--suite.
4432
4433         * jenna (generate_src_list): missing \n in error message.
4434
4435         * katie (update_subst): add sane defaults for when changes is
4436         skeletal.
4437
4438 2001-03-29  James Troup  <james@nocrew.org>
4439
4440         * melanie (main): use fubar() and warn() from utils.  Remember who
4441         the maintainer for the removed packages are and display that info
4442         to the user.  Readd support for melanie-specific Bcc-ing that got
4443         lost in the TemplateSubst transition.
4444
4445         * utils.py (fubar): new function.
4446         (warn): like wise.
4447
4448         * db_access.py (get_maintainer): as below.
4449
4450         * charisma (get_maintainer): moved the bulk of this function to
4451         db_access so that melanie can use it too.
4452
4453         * claire.py (find_dislocated_stable): restrict the override join
4454         to those entries where the suite is stable; this avoids problems
4455         with packages which have moved to new sections (e.g. science)
4456         between stable and unstable.
4457
4458 2001-03-24  James Troup  <james@nocrew.org>
4459
4460         * catherine (poolize): new function; not really independent of
4461         main() fully, yet.
4462         (main): use it.
4463
4464         * katie (stable_install): __SUITE__ needs to be space prefixed
4465         because buildd's check for 'INSTALLED$'.
4466
4467 2001-03-22  James Troup  <james@nocrew.org>
4468
4469         * utils.py (regex_safe): also need to escape '.'; noticed by ajt@.
4470
4471         * jenna: rewritten; now does deletions on a per-suite level
4472         instead of a per-suite-component-architecture-type level.  This
4473         allows mutli-component packages to be auto-cleaned (and as a
4474         bonus, reduces the code size and duplication).
4475
4476 2001-03-22  Anthony Towns  <ajt@debian.org>
4477
4478         * ziyi (main): fix ziyi to overwrite existing Release.gpg files
4479         instead of just giving a gpg error.
4480
4481 2001-03-21  James Troup  <james@nocrew.org>
4482
4483         * madison (main): use apt_pkg.VersionCompare to sort versions so
4484         that output is correctly sorted for packages like debhlper.
4485         Noticed by ajt@.
4486
4487         * tea (check_source_in_one_dir): actually find problematic source
4488         packages.
4489
4490         * katie (check_dsc): remember the orig.tar.gz's location ID if
4491         it's not in a legacy suite.
4492         (check_diff): we don't use orig_tar_id.
4493         (install): add code to handle sourceful diff-only upload of
4494         packages which change components by copying the .orig.tar.gz into
4495         the new component, if it doesn't already exist there.
4496         (process_it): reset orig_tar_location (as above).
4497
4498         * melanie (main): use template substiution for the bug closing
4499         emails.
4500         (main): don't hardcode bugs.debian.org or packages.debian.org
4501         either; use configuration items.
4502
4503         * katie: likewise.
4504
4505         * natalie.py (init): use None rather than 'localhost' for the
4506         hostname given to pg.connect.
4507
4508         * utils.py (TemplateSubst): new function; lifted from
4509         userdir-ldap.
4510
4511 2001-03-21  Ryan Murray  <rmurray@debian.org>
4512
4513         * katie (announce): fix the case of non-existent
4514         Suite::$SUITE::Announce.
4515
4516 2001-03-20  Ryan Murray  <rmurray@debian.org>
4517
4518         * debian/rules (binary-indep): install melanie into /usr/bin/ not
4519         /usr/.
4520
4521         * alyson (main): use config variable for database name.
4522         * andrea (main): likewise.
4523         * catherine (main): likewise.
4524         * charisma (main): likewise.
4525         * cindy (main): likewise.
4526         * claire.py (main): likewise.
4527         * denise (main): likewise.
4528         * heidi (main): likewise.
4529         * jenna (main): likewise.
4530         * katie (main): likewise.
4531         * madison (main): likewise.
4532         * melanie (main): likewise.
4533         * neve (main): likewise.
4534         * rhona (main): likewise.
4535         * tea (main): likewise.
4536
4537 2001-03-15  James Troup  <james@nocrew.org>
4538
4539         * rhona (check_sources): fixed evil off by one (letter) error
4540         which was causing only .dsc files to be deleted when cleaning
4541         source packages.
4542
4543         * charisma (get_maintainer_from_source): remove really stupid and
4544         gratuitous IN sub-query and replace with normal inner join.
4545         (main): connect as read-only user nobody.
4546
4547         * rhona (clean_maintainers): rewritten to use SELECT and sub-query
4548         with EXISTS.
4549         (check_files): likewise; still disabled by default though.
4550         (clean_binaries): add ' seconds' to the mysterious number in the
4551         output.
4552         (clean): likewise.
4553
4554         * tea (check_files): add missing global declaration on db_files.
4555
4556 2001-03-14  James Troup  <james@nocrew.org>
4557
4558         * rhona: rewritten large chunks. Removed a lot of the silly
4559         selecting into dictionaries and replaced it with 'where exists'
4560         based sub queries.  Added support for StayOfExecution.  Fix the
4561         problem with deleting dsc_files too early and disable cleaning of
4562         unattached files.
4563
4564 2001-03-14  Anthony Towns  <ajt@debian.org>
4565
4566         * katie (announce): also check Changed-By when trying to detect
4567         NMUs.
4568
4569 2001-03-06  Anthony Towns  <ajt@debian.org>
4570
4571         * ziyi (main): Generate Release.gpg files as well, using the key from
4572         Dinstall::SigningKey in katie.conf, if present. That key has to be
4573         passwordless, and hence kept fairly secretly.
4574
4575 2001-03-02  James Troup  <james@nocrew.org>
4576
4577         * utils.py (str_isnum): new function; checks to see if the string
4578         is a number.
4579
4580         * shania (main): fix _hideous_ bug which was causing all files > 2
4581         weeks old to be deleted from incoming, even if they were part of a
4582         valid upload.
4583
4584 2001-02-27  James Troup  <james@nocrew.org>
4585
4586         * melanie (main): accept new argument -C/--carbon-copy which
4587         allows arbitarty carbon-copying of the bug closure messages.
4588         Cleaned up code by putting Cnf["Melanie::Options"] sub-tree into a
4589         separate variable.
4590
4591 2001-02-27  Anthony Towns  <ajt@debian.org>
4592
4593         * ziyi: new program; generates Release files.
4594
4595 2001-02-25  James Troup  <james@nocrew.org>
4596
4597         * katie (reject): add missing '\n' to error message.
4598         (manual_reject): likewise.
4599         (install): catch exceptions from moving the changes file into DONE
4600         and ignore them.
4601
4602         * tea (check_md5sums): new function.
4603
4604 2001-02-25  Michael Beattie  <mjb@debian.org>
4605
4606         * melanie: use $EDITOR if available.
4607
4608 2001-02-15  James Troup  <james@nocrew.org>
4609
4610         * utils.py (parse_changes): don't crash and burn on empty .changes
4611         files.  Symptoms noticed by mjb@.
4612
4613 2001-02-15  Adam Heath  <doogie@debian.org>
4614
4615         * denise (main): use an absolute path for the output filename.
4616
4617         * sql-aptvc.cpp: don't #include <utils/builtins.h> as it causes
4618         compile errors with postgresql-dev >= 7.0.
4619
4620 2001-02-12  James Troup  <james@nocrew.org>
4621
4622         * rene: initial version.
4623
4624         * andrea: initial version.
4625
4626         * catherine (main): remove obsolete assignment of arguments.
4627
4628 2001-02-09  James Troup  <james@nocrew.org>
4629
4630         * catherine: first working version.
4631
4632 2001-02-06  James Troup  <james@nocrew.org>
4633
4634         * katie (check_files): validate the priority field; i.e. ensure it
4635         doesn't contain a '/' (to catch people prepending the priority
4636         with the component rather than the section).
4637         (check_override): don't warn about source packages; the only check
4638         is on section and we have no GUI tools that would use the Section
4639         field for a Sources file.
4640         (announce): use tags rather than severities for NMUs.  Requested
4641         by Josip Rodin <joy@>. [#78035]
4642
4643 2001-02-04  James Troup  <james@nocrew.org>
4644
4645         * tea (check_override): new function; ensures packages in suites
4646         are also in the override file.  Thanks to bod@ for noticing that
4647         such packages existed.
4648
4649         * katie: move file type compiled regular expressions to utils as
4650         catherine uses them too.
4651         (check_changes): always default maintainer822 to the installer
4652         address so that any bail out won't cause undefs later.
4653         (check_files): update file type re's to match above.
4654         (stable_install): likewise.
4655         (reject): handle any except from moving the changes files.  Fixes
4656         crashes on unreadable changes files.
4657
4658         * melanie (main): add an explanation of why things are not removed
4659         from testing.
4660
4661 2001-01-31  James Troup  <james@nocrew.org>
4662
4663         * melanie (main): ignore a) no message, b) removing from stable or
4664         testing when invoked with -n/--no-action.
4665
4666         * katie (check_override): lower section before checking to see if
4667         we're whining about 'non-US' versus 'non-US/main'.
4668
4669         * sql-aptvc.cpp: new file; wrapper around apt's version comparison
4670         function so that we can use inside of PostgreSQL.
4671
4672 2001-01-28  James Troup  <james@nocrew.org>
4673
4674         * katie: updated to pass new flag to parse_changes() and deal with
4675         the exception raised on invalid .dsc's if appropriate.
4676         * shania (main): likewise.
4677         * melanie (main): likewise.
4678
4679         * tea (check_dscs): new function to validate all .dsc files in
4680         unstable.
4681
4682         * utils.py (parse_changes): if passed an additional flag, validate
4683         the .dsc file to ensure it's extractable by dpkg-source.
4684         Requested by Ben Collins <bcollins@>.
4685
4686 2001-01-27  James Troup  <james@nocrew.org>
4687
4688         * madison (main): connect to the DB as nobody.
4689
4690         * katie (check_files): remove support for -r/--no-version-check
4691         since it makes no sense under katie (jenna will automatically
4692         remove the (new) older version) and was evil in any event.
4693         (check_changes): add missing new line to rejection message.
4694         (check_dsc): likewise.
4695         (process_it): reset reject_message here.
4696         (main): not here.  Also remove support for -r.
4697
4698 2001-01-26  James Troup  <james@nocrew.org>
4699
4700         * katie (check_override): don't whine about 'non-US/main' versus
4701         'non-US'.
4702
4703 2001-01-26  Michael Beattie  <mjb@debian.org>
4704
4705         * natalie.py (usage): new function.
4706         (main): use it.
4707
4708 2001-01-25  Antti-Juhani Kaijanaho  <gaia@iki.fi>
4709
4710         * update-mirrorlists: Update README.non-US too (request from Joy).
4711
4712 2001-01-25  James Troup  <james@nocrew.org>
4713
4714         * katie (reject): catch any exception from utils.move() and just
4715         pass, we previously only caught can't-overwrite errors and not
4716         can't-read ones.
4717
4718         * jenna (generate_src_list): use ORDER BY in selects to avoid
4719         unnecessary changes to Packages files.
4720         (generate_bin_list): likewise.
4721
4722         * utils.py (extract_component_from_section): separated out from
4723         build_file_list() as it's now used by claire too.
4724
4725         * claire.py (find_dislocated_stable): rewrite the query to extract
4726         section information and handle component-less locations properly.
4727         Thanks to ajt@ for the improved queries.
4728         (fix_component_section): new function to fix components and
4729         sections.
4730
4731 2001-01-23  James Troup  <james@nocrew.org>
4732
4733         * katie (check_files): set file type for (u?)debs first thing, so
4734         that if we continue, other functions which rely on file type
4735         existing don't bomb out.  If apt_pkg or apt_inst raise an
4736         exception when parsing the control file, don't try any other
4737         checks, just drop out.
4738         (check_changes): new test to ensure there is actually a target
4739         distribution.
4740
4741 2001-01-22  James Troup  <james@nocrew.org>
4742
4743         * katie (usage): s/dry-run/no-action/.  Noticed by Peter Gervai
4744         <grin@>.
4745         (check_changes): when mapping to unstable, remember to actually
4746         add unstable to the suite list and not just remove the invalid
4747         suite.
4748
4749 2001-01-21  James Troup  <james@nocrew.org>
4750
4751         * katie (check_files): catch exceptions from debExtractControl()
4752         and reject packages which raise any.
4753
4754 2001-01-19  James Troup  <james@nocrew.org>
4755
4756         * katie (check_signature): basename() file name in rejection
4757         message.
4758
4759 2001-01-18  James Troup  <james@nocrew.org>
4760
4761         * katie (in_override_p): remember the section and priority from
4762         the override file so we can check them against the package later.
4763         (check_override): new function; checks section and priority (for
4764         binaries) from the package against the override file and mails the
4765         maintainer about any disparities.
4766         (install): call check_override after announcing the upload.
4767
4768 2001-01-16  James Troup  <james@nocrew.org>
4769
4770         * utils.py (build_file_list): catch ValueError's from splitting up
4771         the files field and translate it into a parse error.
4772
4773         * tea: add support for finding unreferenced files.
4774
4775         * katie (in_override_p): add support for suite-aliasing so that
4776         proposed-updates uploads work again.
4777         (check_changes): catch parses errors from utils.build_file_list().
4778         (check_dsc): likewise.
4779         (check_diff): yet more dpkg breakage so we require even newer a
4780         version.
4781
4782         * jenna (generate_bin_list): don't do nasty path munging that's no
4783         longer needed.
4784
4785         * denise (main): support for non-US; and rename testing's override
4786         files so they're based on testing's codename.
4787
4788 2001-01-16  Martin Michlmayr  <tbm@cyrius.com>
4789
4790         * melanie: add to the bug closing message explaining what happens
4791         (or rather doesn't) with bugs against packages that have been
4792         removed.
4793
4794 2001-01-14  James Troup  <james@nocrew.org>
4795
4796         * charisma (main): fix silly off-by-one error; suite priority
4797         checking was done using "less than" rather than "less than or
4798         equal to" which was causing weird hesienbugs with wrong Maintainer
4799         fields.
4800
4801 2001-01-10  James Troup  <james@nocrew.org>
4802
4803         * katie (in_override_p): adapted to use SQL-based overrides.
4804         read_override_file function disappears.
4805
4806         * db_access.py: add new functions get_section_id, get_priority_id
4807         and get_override_type_id.
4808         (get_architecture_id): return -1 if the architecture is not found.
4809
4810         * heidi: switch %d -> %d in all SQL queries.
4811         (get_list): Use string.join where appropriate.
4812
4813         * rhona (in_override_p): don't die if the override file doesn't
4814         exist.
4815         (main): warn if the override file doesn't exist.
4816
4817         * alyson: new script; will eventually sync the config file and the
4818         SQL database.
4819
4820         * natalie.py: new script; manipulates overrides.
4821
4822         * melanie: new script; removes packages from suites.
4823
4824 2001-01-08  James Troup  <james@nocrew.org>
4825
4826         * katie (re_bad_diff): whee; dpkg 1.8.1.1 didn't actually fix
4827         anything it just changed the symptom.  Recognise the new breakage
4828         and reject them too.
4829
4830 2001-01-07  James Troup  <james@nocrew.org>
4831
4832         * katie (check_dsc): when adding the cwd copy of the .orig.tar.gz
4833         to the .changes file, be sure to set up files[filename]["type"]
4834         too.
4835
4836 2001-01-06  James Troup  <james@nocrew.org>
4837
4838         * katie (check_diff): new function; detects bad diff files
4839         produced by dpkg 1.8.1 and rejects thems.
4840         (process_it): call check_diff().
4841         (check_dsc): gar.  Add support for multiple versions of the
4842         .orig.tar.gz file in the archive from -sa uploads.  Check md5sum
4843         and size against all versions and use one which matches if
4844         possible and exclude any that don't from being poolized to avoid
4845         file overwrites.  Thanks to broonie@ for providing the example.
4846         (install): skip any files marked as excluded as above.
4847
4848 2001-01-05  James Troup  <james@nocrew.org>
4849
4850         * heidi (process_file): add missing argument to error message.
4851
4852 2001-01-04  James Troup  <james@nocrew.org>
4853
4854         * heidi (main): fix handling of multiple files by reading all
4855         files not just the first file n times (where n = the number of
4856         files passed as arguments).
4857
4858 2001-01-04  Anthony Towns  <ajt@debian.org>
4859
4860         * katie (check_dsc): proper fix for the code which locates the
4861         .orig.tar.gz; check for '<filename>$' or '^<filename>$'.
4862
4863 2000-12-20  James Troup  <james@nocrew.org>
4864
4865         * rhona: replace IN's with EXISTS's to make DELETE time for
4866         binaries and source sane on auric.  Add a -n/--no-action flag and
4867         make it stop actions if used.  Fixed a bug in binaries deletion
4868         with no StayOfExecution (s/</<=/).  Add working -h/--help and
4869         -V/--version.  Giving timing info on deletion till I'm sure it's
4870         sane.
4871
4872         * katie (check_changes): map testing to unstable.
4873
4874         * madison: new script; shows versions in different architectures.
4875
4876         * katie (check_dsc): ensure size matches as well as md5sum;
4877         suggested by Ben Collins <bcollins@debian.org> in Debian Bug
4878         #69702.
4879
4880 2000-12-19  James Troup  <james@nocrew.org>
4881
4882         * katie (reject): ignore the "can't overwrite file" exception from
4883         utils.move() and leave the files where they are.
4884         (reject): doh! os.access() test was reversed so we only tried to
4885         move files which didn't exist... replaced with os.path.exists()
4886         test the right way round.
4887
4888         * utils.py (move): raise an exception if we can't overwrite the
4889         destination file.
4890         (copy): likewise.
4891
4892 2000-12-18  James Troup  <james@nocrew.org>
4893
4894         * rhona: first working version.
4895
4896         * db_access.py (get_files_id): force both sizes to be integers.
4897
4898         * katie (main): use size_type().
4899
4900         * utils.py (size_type): new function; pretty prints a file size.
4901
4902 2000-12-17  James Troup  <james@nocrew.org>
4903
4904         * charisma (main): do version compares so that older packages do
4905         not override newer ones and process source first as source wins
4906         over binaries in terms of who we think of as the Maintainer.
4907
4908 2000-12-15  James Troup  <james@nocrew.org>
4909
4910         * katie (install): use the files id for the .orig.tar.gz from
4911         check_dsc().
4912         (install): limit select for legacy source to a) source in legacy
4913         or legacy-mixed type locations and b) distinct on files.id.
4914         (install): rather than the bizarre insert new, delete old method
4915         for moving legacy source into the pool, use a simple update of
4916         files.
4917         (process_it): initalize some globals before each process.
4918
4919 2000-12-14  James Troup  <james@nocrew.org>
4920
4921         * katie (in_override_p): index on binary_type too since .udeb
4922         overrides are in a different file.
4923         (read_override_file): likewise.
4924         (check_files): correct filename passed to get_files_id().
4925         (check_dsc): we _have_ to preprend '/' to the filename to avoid
4926         mismatches like jabber.orig.tar.gz versus libjabber.orig.tar.gz.
4927         (check_dsc): remember the files id of the .orig.tar.gz, not the
4928         location id.
4929
4930 2000-12-13  James Troup  <james@nocrew.org>
4931
4932         * utils.py (poolify): force the component to lower case except for
4933         non-US.
4934
4935         * katie (in_override_p): handle .udeb-specific override files.
4936         (check_files): pass the binary type to in_override_p().
4937         (check_dsc): remember the location id of the old .orig.tar.gz in
4938         case it's not in the pool.
4939         (install): use location id from dsc_files; which is where
4940         check_dsc() puts it for old .orig.tar.gz files.
4941         (install): install files after all DB work is complete.
4942         (reject): basename() the changes filename.
4943         (manual_reject): likewise.
4944
4945         * shania: new progam; replaces incomingcleaner.
4946
4947 2000-12-05  James Troup  <james@nocrew.org>
4948
4949         * katie (check_changes): if inside stable and can't find files
4950         from the .changes; assume it's installed in the pool and chdir()
4951         to there.
4952         (check_files): we are not installing for stable installs, so don't
4953         check for overwriting existing files.
4954         (check_dsc): likewise.
4955         (check_dsc): reorder .orig.tar.gz handling so that we search in
4956         the pool first and only then fall back on any .orig.tar.gz in the
4957         cwd; this avoids false positives on the overwrite check when
4958         people needlessly reupoad the .orig.tar.gz in a non-sa upload.
4959         (install): if this is a stable install, bail out to
4960         stable_install() immediately.
4961         (install): dsc_files handling was horribly broken. a) we need to
4962         add files from the .dsc and not the .changes (duh), b) we need to
4963         add the .dsc file itself to dsc_files (to be consistent with neve
4964         if for no other reason).
4965         (stable_install): new function; handles installs from inside
4966         proposed-updates to stable.
4967         (acknowledge_new): basename changes_filename before doing
4968         anything.
4969         (process_it): absolutize the changes filename to avoid the
4970         requirement of being in the same directory as the .changes file.
4971         (process_it): save and restore the cwd as stable installs can
4972         potentially jump into the pool to find files.
4973
4974         * jenna: dislocated_files support using claire.
4975
4976         * heidi (process_file): select package field from binaries
4977         explicitly.
4978
4979         * db_access.py (get_files_id): fix cache key used.
4980
4981         * utils.py (build_file_list): fix 'non-US/non-free' case in
4982         section/component splitting.
4983         (move): use os.path.isdir() rather than stat.
4984         (copy): likewise.
4985
4986         * claire.py: new file; stable in non-stable munger.
4987
4988         * tea: new file; simply ensures all files in the DB exist.
4989
4990 2000-12-01  James Troup  <james@nocrew.org>
4991
4992         * katie (check_dsc): use regex_safe().
4993         (check_changes): typo in changes{} key:
4994         s/distributions/distribution/.
4995         (install): use changes["source"], not files[file]["source"] as the
4996         latter may not exist and the former is used elsewhere.  Commit the
4997         SQL transaction earlier.
4998
4999         * utils.py (regex_safe): new function; escapes characters which
5000         have meaning to SQL's regex comparison operator ('~').
5001
5002 2000-11-30  James Troup  <james@nocrew.org>
5003
5004         * katie (install): pool_location is based on source package name,
5005         not binary package.
5006
5007         * utils.py (move): if dest is a directory, append the filename
5008         before chmod-ing.
5009         (copy): ditto.
5010
5011         * katie (check_files): don't allow overwriting of existing .debs.
5012         (check_dsc): don't allow overwriting of existing source files.
5013
5014 2000-11-27  James Troup  <james@nocrew.org>
5015
5016         * katie (check_signature): don't try to load rsaref; it's
5017         obsolete.
5018         (in_override_p): don't try to lookup override entries for packages
5019         with an invalid suite name.
5020         (announce): don't assume the suite name is valid; use Find() to
5021         lookup the mailing list name for announcements.
5022
5023         * utils.py (where_am_i): typo; hostname is in the first element,
5024         not second.
5025
5026         * db_access.py (get_suite_id): return -1 on an unknown suite.
5027
5028 2000-11-26  James Troup  <james@nocrew.org>
5029
5030         * katie (install): fix CopyChanges handling; typo in in checking
5031         Cnf for CopyChanges flag and was calling non-existent function
5032         copy_file.
5033
5034         * utils.py (copy): new function; clone of move without the
5035         unlink().
5036
5037 2000-11-25  James Troup  <james@nocrew.org>
5038
5039         * utils.py (build_file_list): handle non-US prefixes properly
5040         (i.e. 'non-US' -> 'non-US/main' and 'non-US/libs' -> 'non-US/main'
5041         + 'libs' not 'non-US/libs').
5042         (send_mail): add '-odq' to sendmail invocation to avoid DNS lookup
5043         delays.  This is possibly(/probably) exim speicifc and (like other
5044         sendmail options) needs to be in the config file.
5045
5046 2000-11-24  James Troup  <james@nocrew.org>
5047
5048         * rhona (check_sources): we need file id from dsc_files; not id.
5049         Handle non .dsc source files being re-referenced in dsc_files.
5050
5051         * katie (in_override_p): strip out any 'non-US' prefix.
5052         (check_files): use utils.where_am_i() rather than hardcoding.
5053         (check_files): validate the component.
5054         (install): use utils.where_am_i() rather than hardcoding.
5055         (install): fix mail to go to actual recepient.
5056         (reject): likewise.
5057         (manual_reject): likewise.
5058         (acknowledge_new): likewise.
5059         (announce): likewise.
5060
5061         * db_access.py (get_component_id): ignore case when searching for
5062         the component and don't crash if the component can't be found, but
5063         return -1.
5064         (get_location_id): handle -1 from get_component_id().
5065
5066         * jenna (generate_src_list): don't bring 'suite' into our big
5067         multi-table-joining select as we already know the 'suite_id'.
5068         (generate_bin_list): likewise.
5069
5070         * neve (main): don't quit if not on ftp-master.
5071         (process_packages): remove unused variable 'suite_codename'.
5072
5073         * utils.py (move): actually move the file.
5074         (build_file_list): handle non-US prefixes in the section.
5075
5076         * catherine (main): use which_conf_file().
5077         * charisma (main): likewise.
5078         * heidi (main): likewise.
5079         * jenna (main): likewise.
5080         * katie (main): likewise.
5081         * neve (main): likewise.
5082         * rhona (main): likewise.
5083
5084         * utils.py (where_am_i): new routine; determines the archive as
5085         understood by other 'dak' programs.
5086         (which_conf_file): new routine; determines the conf file to read.
5087
5088 2000-11-17  James Troup  <james@nocrew.org>
5089
5090         * katie (install): fix where .changes files for proposed-updates
5091         go.
5092
5093 2000-11-04  James Troup  <james@nocrew.org>
5094
5095         * jenna (main): handle architecture properly if no
5096         -a/--architecture argument is given, i.e. reset architecture with
5097         the values for the suite for each suite.
5098
5099         * Add apt_pkg.init() to the start of all scripts as it's now
5100         required by python-apt.
5101
5102 2000-10-29  James Troup  <james@nocrew.org>
5103
5104         * jenna (generate_bin_list): take an additional argument 'type'
5105         and use it in the SELECT.
5106         (main): if processing component 'main', process udebs and debs.
5107
5108         * neve (process_packages): set up 'type' in 'binaries' (by
5109         assuming .deb).
5110
5111         * katie (re_isadeb): accept ".udeb" or ".deb" as a file ending.
5112         (check_files): set up files[file]["dbtype"].
5113         (install): use files[file]["dbtype"] to set up the 'type' field in
5114         the 'binaries' table.
5115
5116         * init_pool.sql: add a 'type' field to the 'binaries' table to
5117         distinguisgh between ".udeb" and ".deb" files.
5118
5119         * utils.py (move): scrap basename() usage; use a "dir_p(dest) :
5120         dest ? dirname(dest)" type check instead.
5121
5122         * katie (check_dsc): handle the case of an .orig.tar.gz not found
5123         in the pool without crashing.  Also handle the case of being asked
5124         to look for something other than an .orig.tar.gz in the pool.
5125
5126 2000-10-26  James Troup  <james@nocrew.org>
5127
5128         * katie (install): fix filenames put into files table during
5129         poolification of legacy source.
5130
5131         * utils.py (move): work around a bug in os.path.basename() which
5132         cunningly returns '' if there is a trailing slash on the path
5133         passed to it.
5134
5135         * katie (check_dsc): Remove more cruft.  If we find the
5136         .orig.tar.gz in the pool and it's in a legacy (or legacy-mixed)
5137         location, make a note of that so we can fix things in install().
5138         (install): as above.  Move any old source out of legacy locations
5139         so that 'apt-get source' will work.
5140         (process_it): reset the flag that indicates to install that the
5141         source needs moved.
5142
5143         * cron.daily: more.  Nowhere near complete yet though.
5144
5145         * katie (install): don't run os.makedirs, a) utils.move() does
5146         this now, b) we weren't removing the user's umask and were
5147         creating dirs with SNAFU permissions.
5148         (check_dsc): rewrite the .orig.tar.gz handling to take into
5149         account, err, package pools.  i.e. look anywhere in the pool
5150         rather than faffing around with two simple paths.
5151
5152         * neve (process_sources): add the .dsc to dsc_files too.
5153
5154 2000-10-25  James Troup  <james@nocrew.org>
5155
5156         * neve (process_sources): don't duplicate .orig.tar.gz's.
5157
5158 2000-10-23  James Troup  <james@nocrew.org>
5159
5160         * utils.py (re_extract_src_version): moved here.
5161
5162         * neve: move re_extract_src_version to utils.
5163         (process_packages): reflect change.
5164
5165         * katie (install): reflect change.
5166
5167 2000-10-19  James Troup  <james@nocrew.org>
5168
5169         * jenna (generate_src_list): handle locations with null
5170         components.
5171         (generate_bin_list): likewise.
5172