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