]> git.decadent.org.uk Git - dak.git/blob - docs/README.config
daklib/policy.py: also import Suite from daklib.dbconn
[dak.git] / docs / README.config
1 ///////////////////////////////////////////////////////////
2 // Example annotated configuration file for dak
3 ///////////////////////////////////////////////////////////
4
5 ///////////////////////////////////////////////////////////
6 // Common settings
7 ///////////////////////////////////////////////////////////
8 Common
9 {
10     //// ThreadCount (optional):  Maximum number of threads to use.  Defaults to 1
11     ThreadCount 1;
12 };
13
14 ///////////////////////////////////////////////////////////
15 // Essential.  List of database details.
16 ///////////////////////////////////////////////////////////
17 DB
18 {
19     //// Name (required): The name of the PostgreSQL database which has been
20     //// created for dak.
21     Name "projectb";
22
23     //// Host (optional): The name of the host on which the database is located.
24     //// Not necessary if the the database is local.
25     //Host "";
26
27     //// Port (optional): The port of the database if it is remote.  If the port
28     //// is the default value (5432), this option can be set to -1.
29     //Port -1;
30
31     //// PoolSize (optional): should be at least ThreadCount + 1
32     PoolSize 5;
33
34     //// MaxOverflow (optional): shouldn't exceed postgresql.conf's
35     //// max_connections - PoolSize
36     MaxOverflow 13;
37
38     //// Unicode (optional but seriously suggested).  Should be false for
39     //// encoding == SQL_ASCII which is highly recommended.  Do not set this to
40     //// anything else unless you really know what you're doing.
41     Unicode "false";
42 };
43
44 ///////////////////////////////////////////////////////////
45 // Dinstall general settings
46 ///////////////////////////////////////////////////////////
47 Dinstall
48 {
49     //// SigningKeyring (optional): this is the private keyring used by
50     //// 'dak generate-releases'.
51     SigningKeyring "/srv/dak/s3kr1t/dot-gnupg/secring.gpg";
52
53     //// SigningPubKeyring (optional): this is the public keyring used by
54     //// 'dak generate-releases'.
55     SigningPubKeyring "/srv/dak/s3kr1t/dot-gnupg/pubring.gpg";
56
57     //// Options::No-Mail (optional): Highly recommended.  This prevents dak
58     //// from spamming people you didn't mean it to.  If you're not using this,
59     //// you almost certainly want to use the MailWhiteList option
60     Options::No-Mail "true";
61
62     //// MailWhiteList (optional).  If you're not using No-Mail, this provides
63     //// a list of email addresses or regular expressions, one per line which
64     //// dak is allowed to email.  Regular expressions need to be prefixed by "RE:".
65     //// Examples: "jane.doe@domain.com" or "RE:jane[^@]@domain.com", where the first will
66     //// only allow to mail jane.doe@domain.com while the second will mail all of jane*@domain.com
67     //// MailWhiteList "/some/path/to/a/file";
68
69     //// SendmailCommand (required unless No-Mail is set): command to call the MTA.
70     // SendmailCommand "/usr/sbin/sendmail -oi -t";
71
72     //// MyEmailAddress (required): this is used as the From: line for sending mails
73     //// as a script/daemon.
74     MyEmailAddress "FTP Masters <ftpmaster@example.org>";
75
76     //// MyAdminAddress (required): used as a contact address in mails.
77     MyAdminAddress "ftpmaster@example.org";
78
79     //// MyDistribution (required): this variable is used in emails sent out by
80     //// dak and others.  It should indicate the name of the distribution.
81     MyDistribution "MyDistro";
82
83     //// BugServer (optional): is used by 'dak process-upload' and 'dak rm'
84     //// when closing bugs.
85     // BugServer "bugs.example.org";
86
87     //// CloseBugs (optional): a boolean (default: no); if true the automated bug
88     //// closing feature of dinstall is activated.  Must have BugServer set
89     //// for this to work.
90     CloseBugs "true";
91
92     //// PackagesServer (optional): used by 'dak rm' and 'dak override' when
93     //// carbon-copying a bug close mail to a package maintainer.
94     // PackagesServer "packages.example.org";
95
96     //// TrackingServer (optional): used by 'dak process-upload' and 'dak
97     //// rm' to send messages for the maintainer also to an alias for people
98     //// tracking a specific source package.
99     // TrackingServer "packages.qa.example.org";
100
101     //// All sent mail is blind carbon copied to the email address in Bcc if it's
102     //// not blank.
103     // Bcc "archive@example.org";
104
105     //// BXANotify (optional): a boolean (default: false); if true (Debian-specific)
106     //// BXA notification is sent.  The template for the BXA notification is located
107     //// in Dir::Templates/process-new.bxa_notification and should be changed if this
108     //// option is set.
109     // BXANotify "true";
110
111     //// FutureTimeTravelGrace (required): specifies how many seconds into the
112     //// future timestamps are allowed to be inside a deb before being rejected.
113     //// 28800 = 8 hours
114     FutureTimeTravelGrace 28800;
115
116     //// PastCutoffYear (required): specifies the cut-off year which is used when
117     //// deciding whether or not to reject packages based on the file timestamp.
118     PastCutoffYear "1984";
119
120     //// SkipTime (required): an integer value which is the number of seconds
121     //// that a file must be older than (via it's last modified timestamp)
122     //// before dak process-upload will REJECT rather than SKIP the package.
123     SkipTime 300;
124
125     //// OverrideDisparityCheck (optional): a boolean (default: false); if true,
126     //// dak process-upload compares an uploads section/priority with the overrides and whines
127     //// at the maintainer if they differ.
128     OverrideDisparityCheck "false";
129
130     //// OverrideMaintainer (optional): be used to globally override the
131     //// __MAINTAINER_TO__ and __MAINTAINER_FROM__ variables in template mails.
132     //// Use with caution.
133     // OverrideMaintainer "";
134
135     //// DefaultSuite (optional): which suite to default to where one isn't
136     //// specified.  Defaults to "unstable" if not set.
137     // DefaultSuite "unstable";
138
139     //// LintianTags (optional): A set of lintian tags on which to reject
140     //// packages at upload time.  Format is a YAML file; see the ftp-master
141     //// version for an example.
142     // LintianTags "/srv/dak/dak/config/debian/lintian.tags";
143
144     //// ReleaseTransitions (optional): YAML File for blocking uploads to unstable
145     // ReleaseTransitions "/srv/dak/web/transitions.yaml";
146
147     //// KeyAutoFetch (optional): boolean (default: false), which if set (and
148     //// not overriden by explicit argument to check_signature()) will enable
149     //// auto key retrieval.  Requires KeyServer variable be
150     //// set.  NB: you should only enable this variable on production systems
151     //// if you have strict control of your upload queue.
152     // KeyAutoFetch "false";
153
154     //// KeyServer (optional): keyserver used for key auto-retrieval
155     //// (c.f. KeyAutoFetch).
156     // KeyServer "wwwkeys.eu.pgp.net";
157 };
158
159
160 ///////////////////////////////////////////////////////////
161 // Dir (mandatory).  List of directory locations, e.g.
162 ///////////////////////////////////////////////////////////
163 Dir
164 {
165     //// Root (required): Specifies the path of the root of the FTP archive.
166     Root "/srv/dak/ftp/";
167
168     //// Pool (required): This variable specifies the path of the pool
169     //// directory.  Debian packages will be placed in the pool by
170     //// 'dak process-upload'
171     Pool "/srv/dak/ftp/pool/";
172
173     //// Templates (required): dak sends various mails and uses templates from
174     //// this directory.
175     Templates "/srv/dak/dak/templates/";
176
177     //// Override (optional): This directory optionally stores override files (used
178     //// by 'dak make-overrides').
179     // Override "/src/dak/scripts/override/";
180
181     //// Lists (optional): This directory holds file lists used by apt-ftparchive to
182     //// generate Packages and Sources files (used by 'dak make-suite-file-list').
183     //// Deprecated in favour of use of generate-packages-sources2
184     // Lists "/srv/dak/database/dists/";
185
186     //// Log (required): Directory to store dak logs in
187     Log "/srv/dak/log/";
188
189     //// Lock directory (required): Directory to store dak locks in
190     Lock "/srv/dak/lock/";
191
192     //// Morgue (required): Removed files are moved there.  The morgue has various
193     //// sub-directories, including (optionally) those defined by
194     //// Clean-Queues::MorgueSubDir and Clean-Suites::MorgueSubDir.
195     Morgue "/srv/dak/morgue/";
196
197     //// UrgencyLog (optional): If this directory is specified, 'dak
198     //// process-upload' will store the urgency value of each upload.  This
199     //// is mainly used for britney (the testing script).
200     // UrgencyLog "/srv/dak/testing/urgencies/";
201
202     //// Holding (required): Directory to use for temporary storage during
203     //// process-upload
204     Holding "/srv/dak/queue/holding/";
205
206     //// Done (required): Directory in which to store processed .changes files
207     Done "/srv/dak/queue/done/";
208
209     //// BTSVersionTrack (optional): this directory holds the DebBugs
210     //// Version Tracking support files.
211     // BTSVersionTrack "/srv/dak/btsversiontrack";
212
213     //// Queue (required): This sub-tree defines important directories for the
214     //// incoming queue.  The following variables have to be set: Byhand, New
215     //// NewStage, Reject, Unchecked.  An explanation of the function of
216     //// these directores can be found in README.new-incoming.
217     Queue
218     {  
219         Byhand "/srv/dak/queue/byhand/";
220         New "/srv/dak/queue/new/";
221         NewStage "/srv/dak/queue/newstage/";
222         Reject "/srv/dak/queue/reject/";
223         Unchecked "/srv/dak/queue/unchecked/";
224     };
225 };
226
227 ///////////////////////////////////////////////////////////
228 // SuiteMappings: (optional).  List of mappings for the Distribution file in a
229 // .changes file, e.g.:
230 ///////////////////////////////////////////////////////////
231
232 // There are three mapping types:
233 //
234 // (1) map <source> <dest>
235 // Any target suite of '<source>' is unconditionally overriden to '<dest>'.
236 // (2) map-unreleased <source> <dest>
237 // Any upload targeted for suite '<source>' will be mapped to '<dest>' iff it
238 // contains uploads for an architecture that is not part of '<source>'.
239 // (3) ignore <suite>
240 // Any target suite of '<suite>' is unconditionally removed from the list of
241 // target suites.  NB: if the upload had only one target suite this will lead
242 // to rejection.
243
244 SuiteMappings
245 {
246    "map stable proposed-updates";
247    "map frozen unstable";
248    "map-unreleased stable unstable";
249    "map-unreleased proposed-updates unstable";
250    "ignore testing";
251 };
252
253 ///////////////////////////////////////////////////////////
254 // Urgency (mandatory) This defines the valid and default urgency of an upload.
255 // If a package is uploaded with an urgency not listed here, it will be
256 // rejected.
257 ///////////////////////////////////////////////////////////
258
259 Urgency
260 {
261   Default "low";
262   Valid
263   {
264     low;
265     medium;
266     high;
267     emergency;
268     critical;
269   };
270 };
271