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