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