]> git.decadent.org.uk Git - dak.git/blob - docs/README.config
Changed accepted_autobuild to queue_build everywhere.Add a queue table.Add a "queue...
[dak.git] / docs / README.config
1 Explanation of configuration files options for katie
2 ====================================================
3
4 DB
5 --
6
7 Essential.  List of database details, e.g.
8
9 | DB
10 | {
11 |   Name "projectb";
12 |   Host ""; 
13 |   Port -1;
14 | };
15
16 Name (required): The name of the PostgreSQL database which has been created
17 for katie.
18
19 Host (required): The name of the host on which the database is located.  If
20 the database is local, Host should be blank.
21
22 Port (required): The port of the database.  If the port is the default
23 value (5432), this option should be set to -1.
24
25 ================================================================================
26
27 Dir
28 ---
29
30 Mandatory.  List of directory locations, e.g.
31
32 | Dir
33 | {
34 |   Root "/org/ftp.debian.org/ftp/";
35 |   Pool "/org/ftp.debian.org/ftp/pool/";
36 |   Templates "/org/ftp.debian.org/katie/templates/";
37 |   PoolRoot "pool/";
38 |   Override "/org/ftp.debian.org/scripts/override/";
39 |   Lists "/org/ftp.debian.org/database/dists/";
40 |   Log "/org/ftp.debian.org/log/";
41 |   Morgue "/org/ftp.debian.org/morgue/";
42 |   MorgueReject "reject";
43 |   QueueBuild "/org/incoming.debian.org/buildd/";
44 |   UrgencyLog "/org/ftp.debian.org/testing/urgencies/";
45 |   Queue
46 |   {  
47 |     Accepted "/org/ftp.debian.org/queue/accepted/";
48 |     Byhand "/org/ftp.debian.org/queue/byhand/";
49 |     Done "/org/ftp.debian.org/queue/done/";
50 |     Holding "/org/ftp.debian.org/queue/holding/";
51 |     New "/org/ftp.debian.org/queue/new/";
52 |     Reject "/org/ftp.debian.org/queue/reject/";
53 |     Unchecked "/org/ftp.debian.org/queue/unchecked/";
54 |   };
55 | };
56
57 Root (required): Specifies the path of the root of the FTP archive.
58
59 Pool (required): This variable specifies the path of the pool directory.
60 Debian packages will be placed in the pool by kelly after they have been
61 accepted by jennifer.
62
63 Templates (required): katie sends various mails and uses templates from
64 this directory.
65
66 PoolRoot (required): This variable specifies the basename of the pool
67 directory.
68
69 Override (optional): This directory optionally stores override files (used
70 by denise).
71
72 Lists (optional): This directory holds file lists used by apt-ftparchive to
73 generate Packages and Sources files (used by jenna).
74
75 Log (required): Log files are put in this directory.
76
77 Morgue (required): Removed files are moved there.  The morgue has various
78 sub-directories, including (optionally) those defined by
79 Shania::MorgueSubDir and Rhona::MorgueSubDir.
80
81 MorgueReject (required): if katie cannot move a rejected package to
82 Dir::Queue::Reject, it will try to move it to the Dir::MorgueReject
83 directory located under Dir::Morgue.
84
85 QueueBuild (optional): This variable is only relevant if any suites
86 are to be auto built, i.e. if Dinstall::QueueBuildSuites has any
87 values.
88
89 UrgencyLog (optional): If this directory is specified, kelly will store the
90 urgency value of each upload.  This is mainly used for britney (the testing
91 script).
92
93 Queue (required): This sub-tree defines important directories for the
94 incoming queue.  The following variables have to be set: Accepted, Byhand
95 Done, Holding, New, Reject, Unchecked.  An explanation of the function of
96 these directores can be found in README.new-incoming.
97
98 Queue::BTSVersionTrack (optional): this directory holds the DebBugs
99 Version Tracking support files.
100
101 ================================================================================
102
103 Suite
104 -----
105
106 Mandatory.  List of all suites, e.g. 
107
108 | Suite
109 | {
110 |   Unstable
111 |   {
112 |       Components 
113 |       {
114 |         main;
115 |       };
116 |       Architectures 
117 |       {
118 |         source; 
119 |         all;
120 |         i386;
121 |       };
122 |       Announce "debian-devel-changes@lists.debian.org";
123 |       Origin "Debian";
124 |       Description "Debian Unstable - Not Released";
125 |       CodeName "sid";
126 |       OverrideCodeName "sid";
127 |       Priority "5";
128 |   };
129 | };
130
131 Announce (optional): controls where "Installed foo" mails are sent.
132
133 CodeName, Origin and Description (optional): This settings are used by ziyi
134 and put in the Release files.
135
136 OverrideCodeName (optional): used by Denise.
137
138 Priority (optional) determines which suite is used for the Maintainers file
139 as generated by charisma/da_mkmaintainers (highest wins).
140
141 CopyChanges (optional): if this variable is present it should be a path
142 into the archive (i.e. "Dir::RootDir"); any upload targeted for a suite
143 with this config option present will have the .changes file copied into
144 that path.
145
146 CopyKatie (optional): if this is present it should be an absolute path; any
147 upload targeted for a suite with this config option present will have the
148 .katie file copied into that path.  This option is similar to CopyChanges
149 and will most often be used with it; they're seperate because .changes
150 files are mirrored and .katie files aren't, so the paths will usually be
151 different.
152
153 There are more optional variables, such as VersionChecks.  Please see
154 katie.conf for examples.
155
156 ================================================================================
157
158 SuiteMappings
159 -------------
160
161 Optional.  List of mappings for the Distribution file in a .changes file, e.g.:
162
163 | SuiteMappings
164 | {
165 |    "map stable proposed-updates";
166 |    "map frozen unstable";
167 |    "map-unreleased stable unstable";
168 |    "map-unreleased proposed-updates unstable";
169 |    "ignore testing";
170 | };
171
172 There are three mapping types:
173
174 (1) map <source> <dest>
175
176       Any target suite of '<source>' is unconditionally overriden to
177       '<dest>'.
178
179 (2) map-unreleased <source> <dest>
180
181       Any upload targeted for suite '<source>' will be mapped to
182       '<dest>' iff it contains uploads for an architecture that is not
183       part of '<source>'.
184
185 (3) ignore <suite>
186
187       Any target suite of '<suite>' is unconditionally removed from
188       the list of target suites.  NB: if the upload had only one
189       target suite this will lead to rejection.
190
191 NB: ordering is not guaranteed.
192
193 ================================================================================
194
195 Dinstall
196 --------
197
198 Mandatory.  List of dinstall options, e.g.:
199
200 | Dinstall
201 | {
202 |    PGPKeyring "/org/keyring.debian.org/keyrings/debian-keyring.pgp";
203 |    GPGKeyring "/org/keyring.debian.org/keyrings/debian-keyring.gpg";
204 |    SigningKeyring "/org/ftp.debian.org/s3kr1t/dot-gnupg/secring.gpg";
205 |    SendmailCommand "/usr/sbin/sendmail -odq -oi -t";
206 |    MyEmailAddress "Debian Installer <installer@ftp-master.debian.org>";
207 |    MyAdminAddress "ftpmaster@debian.org";
208 |    MyHost "debian.org";  // used for generating user@my_host addresses in e.g. manual_reject()
209 |    MyDistribution "Debian";
210 |    BugServer "bugs.debian.org";
211 |    PackagesServer "packages.debian.org";
212 |    TrackingServer "packages.qa.debian.org";
213 |    LockFile "/org/ftp.debian.org/katie/lock";
214 |    Bcc "archive@ftp-master.debian.org";
215 |    GroupOverrideFilename "override.group-maint";
216 |    FutureTimeTravelGrace 28800; // 8 hours
217 |    PastCutoffYear "1984";
218 |    BXANotify "false";
219 |    QueueBuildSuites
220 |    {
221 |      unstable;
222 |    };
223 | };
224
225 PGPKeyring and GPGKeyring (required): filenames of the PGP and GnuPG
226 keyrings to be used by katie respectively.
227
228 SigningKeyring (optional): this is the private keyring used by ziyi.
229
230 SendmailCommand (required): command to call the MTA.
231
232 MyEmailAddress (required): this is used as the From: line for sending mails
233 as a script/daemon.
234
235 MyAdminAddress (required): used as a contact address in mails.
236
237 MyDistribution (required): this variable is used in emails sent out by
238 katie and others.  It should indicate the name of the distribution.
239
240 BugServer (required): is used by katie and melanie when closing bugs.
241
242 PackagesServer (requried): used by melanie when carbon-copying a bug close
243 mail to a package maintainer.
244
245 TrackingServer (optional): used by katie and melanie to send messages for
246 the maintainer also to an alias for people tracking a specific source
247 package.
248
249 LockFile (required): contains the filename of the lockfile used by dinstall
250 when in action mode (i.e. not using -n/--no-action).
251
252 All sent mail is blind carbon copied to the email address in Bcc if it's
253 not blank.
254
255 GroupOverrideFilename (optional): this is the override file which contains
256 the list of email addresses which, if part of the Maintainer field, cause
257 uploads to always be treated as maintainer uploads.
258
259 FutureTimeTravelGrace (required): specifies how many seconds into the
260 future timestamps are allowed to be inside a deb before being rejected.
261
262 PastCutoffYear (required): specifies the cut-off year which is used when
263 deciding whether or not to reject packages based on the file timestamp.
264
265 BXANotify (optional): a boolean (default: no); if true (Debian-specific)
266 BXA notification is sent.  The template for the BXA notification is located
267 in Dir::Templates/lisa.bxa_notification and should be changed if this
268 option is set.
269
270 OverrideDisparityCheck (optional): a boolean (default: no); if true,
271 jennifer compares an uploads section/priority with the overrides and whines
272 at the maintainer if they differ.
273
274 CloseBugs (optional): a boolean (default: no); if true the automated bug
275 closing feature of dinstall is activated.
276
277 QueueBuildSuites (optional): a list of suites which should be auto
278 build.
279
280 QueueBuild is a boolean; if true it activates support
281 for auto-building from accepted.
282
283 OverrideMaintainer (optional): be used to globally override the
284 __MAINTAINER_TO__ and __MAINTAINER_FROM__ variables in template mails.
285 Use with caution.
286
287 SkipTime (required): an integer value which is the number of seconds that a
288 file must be older than (via it's last modified timestamp) before jennifer
289 will REJECT rather than SKIP the package.
290
291 ================================================================================
292
293 Archive
294 -------
295
296 Mandatory.  List of all archives, e.g.
297
298 | Archive
299 | {
300 |   ftp-master
301 |   {
302 |     OriginServer "ftp-master.debian.org";
303 |     PrimaryMirror "ftp.debian.org";
304 |     Description "Master Archive for the Debian project";
305 |   };
306 | };
307
308 OriginServer and PrimaryMirror (required): used melanie's bug closing mail
309 templates.  The host name and it's OriginServer and Description are part of
310 the SQL database in the 'archive' table.
311
312 ================================================================================
313
314 Architectures
315 -------------
316
317 Mandatory.  List of all architectures, e.g.
318
319 | Architectures
320 | {
321 |   source "Source";
322 |   all    "Architecture Independent";
323 |   i386   "Intel ia32";
324 | };
325
326 Both values go into the SQL database's 'architecture' table.
327 The description is currently unused.
328
329 ================================================================================
330
331 Component
332 ---------
333
334 Mandatory.  List of all components, e.g.
335
336 | Component
337 | {
338 |   main
339 |   {
340 |       Description "Main";
341 |       MeetsDFSG "true";
342 |   };
343 | };
344
345 All three values go into the SQL database's 'component' table.
346 MeetsDFSG is currently unused.
347
348 ================================================================================
349
350 Section
351 -------
352
353 Mandatory.  List of all valid sections, e.g.
354
355 | Section
356 | {
357 |   base;
358 | };
359
360 The section goes into the 'section' table in SQL database.
361
362 ================================================================================
363
364 Priority
365 --------
366
367 Mandatory.  List of all valid priorities, e.g.
368
369 | Priority
370 | {
371 |   required 1;
372 |   important 2;
373 |   standard 3;
374 |   optional 4;
375 |   extra 5;
376 |   source 0; // i.e. unused
377 | };
378
379 The value is the sorting key.  Both the section and it's sorting key
380 go into the SQL database's 'priority' table.
381
382 ================================================================================
383
384 OverrideType
385 ------------
386
387 Mandatory.  List of al valid override types, e.g.
388
389 | OverrideType
390 | {
391 |   deb;
392 |   dsc;
393 |   udeb;
394 | };
395
396 The type goes into the 'override_type' table in the SQL database.
397
398 ================================================================================
399
400 Location
401 --------
402
403 Mandatory.  List all locations, e.g.
404
405 | Location
406 | {
407 |   /org/ftp.debian.org/ftp/pool/
408 |     {
409 |       Archive "ftp-master";
410 |       Type "pool";
411 |       Suites
412 |       {
413 |         Stable;
414 |         Unstable;
415 |       };
416 |     };
417 | };
418
419 There are three valid values for 'Type': 'legacy', 'legacy-mixed' and
420 'pool'.  'legacy' and 'pool' are assumed to have sections for all
421 components listed in the Components section 'legacy-mixed' are assumed
422 to mix all components into one location.  The 'Archive' and 'Type'
423 sections go into the SQL database's 'location' table.  'Suites' is a
424 list of existent suites that should be used to populate the SQL
425 database.
426
427 Note that the archive value specified here must correspond to one defined
428 in Archive.
429
430 [Note: yes, this is horrible, it dates back to the original `import
431        the existent archive into the SQL Database' script (neve) and
432        isn't otherwise used.  It should be revisted at some stage.]
433
434 ================================================================================
435
436 Urgency
437 -------
438
439 Mandatory.
440
441 | Urgency
442 | {
443 |   Default "low";
444 |   Valid
445 |   {
446 |     low;
447 |     medium;
448 |     high;
449 |     emergency;
450 |     critical;
451 |   };
452 | };
453
454 This defines the valid and default urgency of an upload.  If a package is
455 uploaded with an urgency not listed here, it will be rejected.
456
457 ================================================================================
458
459 -- 
460 James Troup <james@nocrew.org>, Horsforth, Leeds
461 Wed, 26 Sep 2001 03:20:39 +0100