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