README.config 13.1 KB
Newer Older
J
James Troup 已提交
1 2
Explanation of configuration files options for dak
==================================================
J
sync  
James Troup 已提交
3 4 5 6 7 8 9 10 11 12 13 14 15

DB
--

Essential.  List of database details, e.g.

| DB
| {
|   Name "projectb";
|   Host ""; 
|   Port -1;
| };

16
Name (required): The name of the PostgreSQL database which has been created
J
James Troup 已提交
17
for dak.
18 19 20 21 22 23

Host (required): The name of the host on which the database is located.  If
the database is local, Host should be blank.

Port (required): The port of the database.  If the port is the default
value (5432), this option should be set to -1.
J
sync  
James Troup 已提交
24 25 26 27 28 29 30 31 32 33

================================================================================

Dir
---

Mandatory.  List of directory locations, e.g.

| Dir
| {
J
update  
James Troup 已提交
34 35
|   Root "/org/ftp.debian.org/ftp/";
|   Pool "/org/ftp.debian.org/ftp/pool/";
J
James Troup 已提交
36
|   Templates "/org/ftp.debian.org/dak/templates/";
J
sync  
James Troup 已提交
37
|   PoolRoot "pool/";
J
update  
James Troup 已提交
38 39 40
|   Override "/org/ftp.debian.org/scripts/override/";
|   Lists "/org/ftp.debian.org/database/dists/";
|   Log "/org/ftp.debian.org/log/";
J
sync  
James Troup 已提交
41
|   Morgue "/org/ftp.debian.org/morgue/";
42
|   MorgueReject "reject";
43
|   QueueBuild "/org/incoming.debian.org/buildd/";
J
update  
James Troup 已提交
44 45 46 47 48 49 50 51 52 53 54
|   UrgencyLog "/org/ftp.debian.org/testing/urgencies/";
|   Queue
|   {  
|     Accepted "/org/ftp.debian.org/queue/accepted/";
|     Byhand "/org/ftp.debian.org/queue/byhand/";
|     Done "/org/ftp.debian.org/queue/done/";
|     Holding "/org/ftp.debian.org/queue/holding/";
|     New "/org/ftp.debian.org/queue/new/";
|     Reject "/org/ftp.debian.org/queue/reject/";
|     Unchecked "/org/ftp.debian.org/queue/unchecked/";
|   };
J
sync  
James Troup 已提交
55 56
| };

57 58
Root (required): Specifies the path of the root of the FTP archive.

J
James Troup 已提交
59 60 61 62
Pool (required): This variable specifies the path of the pool
directory.  Debian packages will be placed in the pool by 'dak
process-accepted' after they have been accepted by dak
process-unchecked.
63

J
James Troup 已提交
64
Templates (required): dak sends various mails and uses templates from
65 66 67 68 69 70
this directory.

PoolRoot (required): This variable specifies the basename of the pool
directory.

Override (optional): This directory optionally stores override files (used
J
James Troup 已提交
71
by 'dak make-overrides').
72 73

Lists (optional): This directory holds file lists used by apt-ftparchive to
J
James Troup 已提交
74
generate Packages and Sources files (used by 'dak make-suite-file-list').
75 76 77 78 79

Log (required): Log files are put in this directory.

Morgue (required): Removed files are moved there.  The morgue has various
sub-directories, including (optionally) those defined by
J
James Troup 已提交
80
Clean-Queues::MorgueSubDir and Clean-Suites::MorgueSubDir.
81

J
James Troup 已提交
82
MorgueReject (required): if dak cannot move a rejected package to
83 84 85
Dir::Queue::Reject, it will try to move it to the Dir::MorgueReject
directory located under Dir::Morgue.

86 87
QueueBuild (optional): This variable is only relevant if any suites
are to be auto built, i.e. if Dinstall::QueueBuildSuites has any
88 89
values.

J
James Troup 已提交
90 91 92
UrgencyLog (optional): If this directory is specified, 'dak
process-accepted' will store the urgency value of each upload.  This
is mainly used for britney (the testing script).
93 94 95 96 97 98

Queue (required): This sub-tree defines important directories for the
incoming queue.  The following variables have to be set: Accepted, Byhand
Done, Holding, New, Reject, Unchecked.  An explanation of the function of
these directores can be found in README.new-incoming.

99 100 101
Queue::BTSVersionTrack (optional): this directory holds the DebBugs
Version Tracking support files.

J
sync  
James Troup 已提交
102 103 104 105 106 107 108 109 110 111 112 113 114
================================================================================

Suite
-----

Mandatory.  List of all suites, e.g. 

| Suite
| {
|   Unstable
|   {
| 	Components 
| 	{
115
| 	  main;
J
sync  
James Troup 已提交
116 117 118
| 	};
| 	Architectures 
| 	{
119 120 121
| 	  source; 
| 	  all;
| 	  i386;
J
sync  
James Troup 已提交
122 123 124 125 126 127 128 129 130 131
| 	};
| 	Announce "debian-devel-changes@lists.debian.org";
| 	Origin "Debian";
| 	Description "Debian Unstable - Not Released";
| 	CodeName "sid";
| 	OverrideCodeName "sid";
| 	Priority "5";
|   };
| };

132 133
Announce (optional): controls where "Installed foo" mails are sent.

J
James Troup 已提交
134 135
CodeName, Origin and Description (optional): This settings are used by
'dak generate-releases' and put in the Release files.
136

J
James Troup 已提交
137
OverrideCodeName (optional): used by 'dak make-overrides'.
138 139

Priority (optional) determines which suite is used for the Maintainers file
J
James Troup 已提交
140
as generated by 'dak make-maintainers' (highest wins).
J
sync  
James Troup 已提交
141

142 143 144 145
CopyChanges (optional): if this variable is present it should be a path
into the archive (i.e. "Dir::RootDir"); any upload targeted for a suite
with this config option present will have the .changes file copied into
that path.
146

J
James Troup 已提交
147
CopyDotDak (optional): if this is present it should be an absolute path; any
148
upload targeted for a suite with this config option present will have the
J
James Troup 已提交
149
.dak file copied into that path.  This option is similar to CopyChanges
150
and will most often be used with it; they're seperate because .changes
J
James Troup 已提交
151
files are mirrored and .dak files aren't, so the paths will usually be
152 153 154
different.

There are more optional variables, such as VersionChecks.  Please see
J
James Troup 已提交
155
dak.conf for examples.
156

J
sync  
James Troup 已提交
157 158
================================================================================

J
update  
James Troup 已提交
159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
SuiteMappings
-------------

Optional.  List of mappings for the Distribution file in a .changes file, e.g.:

| SuiteMappings
| {
|    "map stable proposed-updates";
|    "map frozen unstable";
|    "map-unreleased stable unstable";
|    "map-unreleased proposed-updates unstable";
|    "ignore testing";
| };

There are three mapping types:

(1) map <source> <dest>

      Any target suite of '<source>' is unconditionally overriden to
      '<dest>'.

(2) map-unreleased <source> <dest>

      Any upload targeted for suite '<source>' will be mapped to
      '<dest>' iff it contains uploads for an architecture that is not
      part of '<source>'.

(3) ignore <suite>

      Any target suite of '<suite>' is unconditionally removed from
      the list of target suites.  NB: if the upload had only one
      target suite this will lead to rejection.

NB: ordering is not guaranteed.

================================================================================

J
sync  
James Troup 已提交
196 197 198 199 200 201 202
Dinstall
--------

Mandatory.  List of dinstall options, e.g.:

| Dinstall
| {
203 204 205 206
|    GPGKeyring {
|       "/org/keyring.debian.org/keyrings/debian-keyring.gpg";
|       "/org/keyring.debian.org/keyrings/debian-keyring.pgp";
|    };
J
sync  
James Troup 已提交
207
|    SigningKeyring "/org/ftp.debian.org/s3kr1t/dot-gnupg/secring.gpg";
208
|    SendmailCommand "/usr/sbin/sendmail -odq -oi -t";
J
sync  
James Troup 已提交
209 210 211 212 213 214
|    MyEmailAddress "Debian Installer <installer@ftp-master.debian.org>";
|    MyAdminAddress "ftpmaster@debian.org";
|    MyHost "debian.org";  // used for generating user@my_host addresses in e.g. manual_reject()
|    MyDistribution "Debian";
|    BugServer "bugs.debian.org";
|    PackagesServer "packages.debian.org";
215
|    TrackingServer "packages.qa.debian.org";
J
James Troup 已提交
216
|    LockFile "/org/ftp.debian.org/dak/lock";
J
sync  
James Troup 已提交
217
|    Bcc "archive@ftp-master.debian.org";
218
|    FutureTimeTravelGrace 28800; // 8 hours
J
sync  
James Troup 已提交
219
|    PastCutoffYear "1984";
220
|    BXANotify "false";
221
|    QueueBuildSuites
222 223 224
|    {
|      unstable;
|    };
J
sync  
James Troup 已提交
225 226
| };

227 228
GPGKeyring (required): filenames of the PGP and GnuPG
keyrings to be used by dak.
229

J
James Troup 已提交
230 231
SigningKeyring (optional): this is the private keyring used by 'dak
generate-releases'.
232 233

SendmailCommand (required): command to call the MTA.
J
sync  
James Troup 已提交
234

235 236
MyEmailAddress (required): this is used as the From: line for sending mails
as a script/daemon.
J
sync  
James Troup 已提交
237

238
MyAdminAddress (required): used as a contact address in mails.
J
sync  
James Troup 已提交
239

240
MyDistribution (required): this variable is used in emails sent out by
J
James Troup 已提交
241
dak and others.  It should indicate the name of the distribution.
J
sync  
James Troup 已提交
242

J
James Troup 已提交
243 244
BugServer (required): is used by 'dak process-unchecked' and 'dak rm'
when closing bugs.
J
sync  
James Troup 已提交
245

J
James Troup 已提交
246 247
PackagesServer (requried): used by 'dak rm' when carbon-copying a bug
close mail to a package maintainer.
J
sync  
James Troup 已提交
248

J
James Troup 已提交
249 250 251
TrackingServer (optional): used by 'dak process-unchecked' and 'dak
rm' to send messages for the maintainer also to an alias for people
tracking a specific source package.
252

253 254 255 256 257 258 259 260
LockFile (required): contains the filename of the lockfile used by dinstall
when in action mode (i.e. not using -n/--no-action).

All sent mail is blind carbon copied to the email address in Bcc if it's
not blank.

FutureTimeTravelGrace (required): specifies how many seconds into the
future timestamps are allowed to be inside a deb before being rejected.
J
sync  
James Troup 已提交
261

262 263
PastCutoffYear (required): specifies the cut-off year which is used when
deciding whether or not to reject packages based on the file timestamp.
J
sync  
James Troup 已提交
264

265 266
BXANotify (optional): a boolean (default: no); if true (Debian-specific)
BXA notification is sent.  The template for the BXA notification is located
J
James Troup 已提交
267
in Dir::Templates/process-new.bxa_notification and should be changed if this
268
option is set.
J
sync  
James Troup 已提交
269

270
OverrideDisparityCheck (optional): a boolean (default: no); if true,
J
James Troup 已提交
271
dak process-unchecked compares an uploads section/priority with the overrides and whines
272
at the maintainer if they differ.
J
update  
James Troup 已提交
273

274 275
CloseBugs (optional): a boolean (default: no); if true the automated bug
closing feature of dinstall is activated.
J
update  
James Troup 已提交
276

277
QueueBuildSuites (optional): a list of suites which should be auto
278
build.
J
update  
James Troup 已提交
279

280
QueueBuild is a boolean; if true it activates support
J
update  
James Troup 已提交
281 282
for auto-building from accepted.

283
OverrideMaintainer (optional): be used to globally override the
J
update  
James Troup 已提交
284 285 286
__MAINTAINER_TO__ and __MAINTAINER_FROM__ variables in template mails.
Use with caution.

287
SkipTime (required): an integer value which is the number of seconds that a
J
James Troup 已提交
288
file must be older than (via it's last modified timestamp) before dak process-unchecked
289
will REJECT rather than SKIP the package.
J
sync  
James Troup 已提交
290

291 292 293 294 295 296 297 298 299
KeyAutoFetch (optional): boolean (default: false), which if set (and
not overriden by explicit argument to check_signature()) will enable
auto key retrieval.  Requires KeyServer and SigningKeyIds variables be
set.  NB: you should only enable this variable on production systems
if you have strict control of your upload queue.

KeyServer (optional): keyserver used for key auto-retrieval
(c.f. KeyAutoFetch).

J
sync  
James Troup 已提交
300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316
================================================================================

Archive
-------

Mandatory.  List of all archives, e.g.

| Archive
| {
|   ftp-master
|   {
|     OriginServer "ftp-master.debian.org";
|     PrimaryMirror "ftp.debian.org";
|     Description "Master Archive for the Debian project";
|   };
| };

J
James Troup 已提交
317
OriginServer and PrimaryMirror (required): used 'dak rm's bug closing mail
318 319
templates.  The host name and it's OriginServer and Description are part of
the SQL database in the 'archive' table.
J
sync  
James Troup 已提交
320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335

================================================================================

Architectures
-------------

Mandatory.  List of all architectures, e.g.

| Architectures
| {
|   source "Source";
|   all	   "Architecture Independent";
|   i386   "Intel ia32";
| };

Both values go into the SQL database's 'architecture' table.
336
The description is currently unused.
J
sync  
James Troup 已提交
337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365

================================================================================

Component
---------

Mandatory.  List of all components, e.g.

| Component
| {
|   main
|   {
| 	Description "Main";
| 	MeetsDFSG "true";
|   };
| };

All three values go into the SQL database's 'component' table.
MeetsDFSG is currently unused.

================================================================================

Section
-------

Mandatory.  List of all valid sections, e.g.

| Section
| {
366
|   base;
J
sync  
James Troup 已提交
367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399
| };

The section goes into the 'section' table in SQL database.

================================================================================

Priority
--------

Mandatory.  List of all valid priorities, e.g.

| Priority
| {
|   required 1;
|   important 2;
|   standard 3;
|   optional 4;
|   extra 5;
|   source 0; // i.e. unused
| };

The value is the sorting key.  Both the section and it's sorting key
go into the SQL database's 'priority' table.

================================================================================

OverrideType
------------

Mandatory.  List of al valid override types, e.g.

| OverrideType
| {
J
sync  
James Troup 已提交
400 401 402
|   deb;
|   dsc;
|   udeb;
J
sync  
James Troup 已提交
403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419
| };

The type goes into the 'override_type' table in the SQL database.

================================================================================

Location
--------

Mandatory.  List all locations, e.g.

| Location
| {
|   /org/ftp.debian.org/ftp/pool/
|     {
|       Archive "ftp-master";
|       Type "pool";
420 421 422 423 424
|	Suites
|	{
|	  Stable;
|	  Unstable;
|	};
J
sync  
James Troup 已提交
425 426 427
|     };
| };

428 429 430 431 432 433 434
There are three valid values for 'Type': 'legacy', 'legacy-mixed' and
'pool'.  'legacy' and 'pool' are assumed to have sections for all
components listed in the Components section 'legacy-mixed' are assumed
to mix all components into one location.  The 'Archive' and 'Type'
sections go into the SQL database's 'location' table.  'Suites' is a
list of existent suites that should be used to populate the SQL
database.
J
sync  
James Troup 已提交
435

436 437 438
Note that the archive value specified here must correspond to one defined
in Archive.

J
sync  
James Troup 已提交
439
[Note: yes, this is horrible, it dates back to the original `import
J
James Troup 已提交
440
       the existent archive into the SQL Database' script ('dak import-archive') and
J
sync  
James Troup 已提交
441 442 443 444
       isn't otherwise used.  It should be revisted at some stage.]

================================================================================

445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466
Urgency
-------

Mandatory.

| Urgency
| {
|   Default "low";
|   Valid
|   {
|     low;
|     medium;
|     high;
|     emergency;
|     critical;
|   };
| };

This defines the valid and default urgency of an upload.  If a package is
uploaded with an urgency not listed here, it will be rejected.

================================================================================