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