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