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