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