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