]> git.decadent.org.uk Git - dak.git/blobdiff - docs/README.config
Merge remote-tracking branch 'jcristau/cs-set-log-suite'
[dak.git] / docs / README.config
index 92772185bbaae5c6ec06796c149648a17595fbdc..feb2a27af2bb8f3f531c9a3cfdc55a99f12ea503 100644 (file)
-Explanation of configuration files options for katie
-====================================================
-
+///////////////////////////////////////////////////////////
+// Example annotated configuration file for dak
+///////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////
+// Common settings
+///////////////////////////////////////////////////////////
+Common
+{
+    //// ThreadCount (optional):  Maximum number of threads to use.  Defaults to 1
+    ThreadCount 1;
+};
+
+///////////////////////////////////////////////////////////
+// Essential.  List of database details.
+///////////////////////////////////////////////////////////
 DB
---
-
-Essential.  List of database details, e.g.
-
-| DB
-| {
-|   Name "projectb";
-|   Host ""; 
-|   Port -1;
-| };
-
-If the database is local, Host should be blank.  If the port is the
-default (5432), it should be set to -1.
-
-================================================================================
-
-Dir
----
-
-Mandatory.  List of directory locations, e.g.
-
-| Dir
-| {
-|   RootDir "/org/ftp.debian.org/ftp/";
-|   PoolDir "/org/ftp.debian.org/ftp/pool/";
-|   TemplatesDir "/org/ftp.debian.org/katie/templates/";
-|   PoolRoot "pool/";
-|   IncomingDir "/org/ftp.debian.org/incoming/";
-|   OverrideDir "/org/ftp.debian.org/scripts/override/";
-|   ListsDir "/org/ftp.debian.org/database/dists/";
-|   LogDir "/org/ftp.debian.org/log/";
-|   Morgue "/org/ftp.debian.org/morgue/";
-| };
-
-================================================================================
-
-Suite
------
-
-Mandatory.  List of all suites, e.g. 
-
-| Suite
-| {
-|   Unstable
-|   {
-|      Components 
-|      {
-|        main "";
-|      };
-|      Architectures 
-|      {
-|        "source" ""; 
-|        "all" "";
-|        "i386" "";
-|      };
-|      Announce "debian-devel-changes@lists.debian.org";
-|      Origin "Debian";
-|      Description "Debian Unstable - Not Released";
-|      CodeName "sid";
-|      OverrideCodeName "sid";
-|      Priority "5";
-|   };
-| };
-
-Announce controls where "Installed foo" mails are sent; leave empty to
-not send any.  CodeName, Origin and Description are used by ziyi and
-put in the Release files.  OverrideCodeName is used by Denise.
-Priority determines which suite is used for the Maintainers file as
-generated by charisma/da_mkmaintainers (highest wins).
-
-================================================================================
-
+{
+    //// Name (required): The name of the PostgreSQL database which has been
+    //// created for dak.
+    Name "projectb";
+
+    //// Host (optional): The name of the host on which the database is located.
+    //// Not necessary if the the database is local.
+    //Host "";
+
+    //// Port (optional): The port of the database if it is remote.  If the port
+    //// is the default value (5432), this option can be set to -1.
+    //Port -1;
+
+    //// PoolSize (optional): should be at least ThreadCount + 1
+    PoolSize 5;
+
+    //// MaxOverflow (optional): shouldn't exceed postgresql.conf's
+    //// max_connections - PoolSize
+    MaxOverflow 13;
+
+    //// Unicode (optional but seriously suggested).  Should be false for
+    //// encoding == SQL_ASCII which is highly recommended.  Do not set this to
+    //// anything else unless you really know what you're doing.
+    Unicode "false";
+};
+
+///////////////////////////////////////////////////////////
+// Dinstall general settings
+///////////////////////////////////////////////////////////
 Dinstall
---------
-
-Mandatory.  List of dinstall options, e.g.:
-
-| Dinstall
-| {
-|    PGPKeyring "/org/keyring.debian.org/keyrings/debian-keyring.pgp";
-|    GPGKeyring "/org/keyring.debian.org/keyrings/debian-keyring.gpg";
-|    SigningKeyring "/org/ftp.debian.org/s3kr1t/dot-gnupg/secring.gpg";
-|    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";
-|    TrackingServer "packages.qa.debian.org";
-|    LockFile "/org/ftp.debian.org/katie/lock";
-|    Bcc "archive@ftp-master.debian.org";
-|    GroupOverrideFilename "override.group-maint";
-| };
-
-PGPKeyring and GPGKeyring are mandatory fields which are filenames of
-the PGP and GnuPG keyrings to be used by katie respectively.
-
-SigningKeyring is the private keyring used by ziyi.
-
-MyEmailAddress is used as the From: line for sending mails as a
-script/daemon.  MyAdminAddress is used as a contact address in mails.
-
-MyDistribution is used in emails sent out by katie and others.
-
-BugServer is used by katie and melanie when closing bugs.
-
-PackagesServer is used by melanie when carbon-copying a bug close mail
-to a package maintainer.
-
-TrackingServer is used by katie and melanie to send messages for the
-maintainer also to an alias for people tracking a specific source
-package.
-
-LockFile is a mandatory field and 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.  
-
-GroupOverrideFilename, if non-blank, is the override file which
-contains the list of email addresses which, if part of the Maintainer
-field, cause uploads to always be treated as maintainer uploads.
-
-================================================================================
-
-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";
-|   };
-| };
-
-OriginServer and PrimaryMirror are mandatory and are used melanie's
-bug closing mail templates.  The host name and it's OriginServer and
-Description are part of the SQL database in the 'archive' table.
-
-================================================================================
-
-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.
-Description is currently unused.
-
-================================================================================
-
-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
-| {
-|   base "";
-| };
-
-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
-| {
-|   deb "";
-|   dsc "";
-|   udeb "";
-| };
-
-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";
-|     };
-| };
-
-There are three types: '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.
-
-[Note: yes, this is horrible, it dates back to the original `import
-       the existent archive into the SQL Database' script (neve) and
-       isn't otherwise used.  It should be revisted at some stage.]
-
-================================================================================
+{
+    //// SigningKeyring (optional): this is the private keyring used by
+    //// 'dak generate-releases'.
+    SigningKeyring "/srv/dak/s3kr1t/dot-gnupg/secring.gpg";
+
+    //// SigningPubKeyring (optional): this is the public keyring used by
+    //// 'dak generate-releases'.
+    SigningPubKeyring "/srv/dak/s3kr1t/dot-gnupg/pubring.gpg";
+
+    //// Options::No-Mail (optional): Highly recommended.  This prevents dak
+    //// from spamming people you didn't mean it to.  If you're not using this,
+    //// you almost certainly want to use the MailWhiteList option
+    Options::No-Mail "true";
+
+    //// MailWhiteList (optional).  If you're not using No-Mail, this provides
+    //// a list of email addresses or regular expressions, one per line which
+    //// dak is allowed to email.  Regular expressions need to be prefixed by "RE:".
+    //// Examples: "jane.doe@domain.com" or "RE:jane[^@]@domain.com", where the first will
+    //// only allow to mail jane.doe@domain.com while the second will mail all of jane*@domain.com
+    //// MailWhiteList "/some/path/to/a/file";
+
+    //// SendmailCommand (required unless No-Mail is set): command to call the MTA.
+    // SendmailCommand "/usr/sbin/sendmail -oi -t";
+
+    //// MyEmailAddress (required): this is used as the From: line for sending mails
+    //// as a script/daemon.
+    MyEmailAddress "FTP Masters <ftpmaster@example.org>";
+
+    //// MyAdminAddress (required): used as a contact address in mails.
+    MyAdminAddress "ftpmaster@example.org";
+
+    //// MyDistribution (required): this variable is used in emails sent out by
+    //// dak and others.  It should indicate the name of the distribution.
+    MyDistribution "MyDistro";
+
+    //// BugServer (optional): is used by 'dak process-upload' and 'dak rm'
+    //// when closing bugs.
+    // BugServer "bugs.example.org";
+
+    //// CloseBugs (optional): a boolean (default: no); if true the automated bug
+    //// closing feature of dinstall is activated.  Must have BugServer set
+    //// for this to work.
+    CloseBugs "true";
+
+    //// PackagesServer (optional): used by 'dak rm' and 'dak override' when
+    //// carbon-copying a bug close mail to a package maintainer.
+    // PackagesServer "packages.example.org";
+
+    //// TrackingServer (optional): used by 'dak process-upload' and 'dak
+    //// rm' to send messages for the maintainer also to an alias for people
+    //// tracking a specific source package.
+    // TrackingServer "packages.qa.example.org";
+
+    //// All sent mail is blind carbon copied to the email address in Bcc if it's
+    //// not blank.
+    // Bcc "archive@example.org";
+
+    //// BXANotify (optional): a boolean (default: false); if true (Debian-specific)
+    //// BXA notification is sent.  The template for the BXA notification is located
+    //// in Dir::Templates/process-new.bxa_notification and should be changed if this
+    //// option is set.
+    // BXANotify "true";
+
+    //// FutureTimeTravelGrace (optional): specifies how many seconds into the
+    //// future timestamps are allowed to be inside a deb before being rejected.
+    //// Defaults to 86400 (24 hours) if not specified.
+    FutureTimeTravelGrace 86400;
+
+    //// PastCutoffYear (optional): specifies the cut-off year which is used when
+    //// deciding whether or not to reject packages based on the file timestamp.
+    //// Defaults to "1975" if not specified.
+    PastCutoffYear "1975";
+
+    //// SkipTime (required): an integer value which is the number of seconds
+    //// that a file must be older than (via it's last modified timestamp)
+    //// before dak process-upload will REJECT rather than SKIP the package.
+    SkipTime 300;
+
+    //// OverrideDisparityCheck (optional): a boolean (default: false); if true,
+    //// dak process-upload compares an uploads section/priority with the overrides and whines
+    //// at the maintainer if they differ.
+    OverrideDisparityCheck "false";
+
+    //// OverrideMaintainer (optional): be used to globally override the
+    //// __MAINTAINER_TO__ and __MAINTAINER_FROM__ variables in template mails.
+    //// Use with caution.
+    // OverrideMaintainer "";
+
+    //// DefaultSuite (optional): which suite to default to where one isn't
+    //// specified.  Defaults to "unstable" if not set.
+    // DefaultSuite "unstable";
+
+    //// LintianTags (optional): A set of lintian tags on which to reject
+    //// packages at upload time.  Format is a YAML file; see the ftp-master
+    //// version for an example.
+    // LintianTags "/srv/dak/dak/config/debian/lintian.tags";
+
+    //// ReleaseTransitions (optional): YAML File for blocking uploads to unstable
+    // ReleaseTransitions "/srv/dak/web/transitions.yaml";
+
+    //// KeyAutoFetch (optional): boolean (default: false), which if set (and
+    //// not overridden by explicit argument to check_signature()) will enable
+    //// auto key retrieval.  Requires KeyServer variable be
+    //// set.  NB: you should only enable this variable on production systems
+    //// if you have strict control of your upload queue.
+    // KeyAutoFetch "false";
+
+    //// KeyServer (optional): keyserver used for key auto-retrieval
+    //// (c.f. KeyAutoFetch).
+    // KeyServer "wwwkeys.eu.pgp.net";
+};
+
+
+///////////////////////////////////////////////////////////
+// Dir (mandatory).  List of directory locations, e.g.
+///////////////////////////////////////////////////////////
+Dir
+{
+    //// Root (required): Specifies the path of the root of the FTP archive.
+    Root "/srv/dak/ftp/";
+
+    //// Pool (required): This variable specifies the path of the pool
+    //// directory.  Debian packages will be placed in the pool by
+    //// 'dak process-upload'
+    Pool "/srv/dak/ftp/pool/";
+
+    //// Templates (required): dak sends various mails and uses templates from
+    //// this directory.
+    Templates "/srv/dak/dak/templates/";
+
+    //// Override (optional): This directory optionally stores override files (used
+    //// by 'dak make-overrides').
+    // Override "/src/dak/scripts/override/";
+
+    //// Lists (optional): This directory holds file lists used by apt-ftparchive to
+    //// generate Packages and Sources files (used by 'dak make-suite-file-list').
+    //// Deprecated in favour of use of generate-packages-sources2
+    // Lists "/srv/dak/database/dists/";
+
+    //// Log (required): Directory to store dak logs in
+    Log "/srv/dak/log/";
+
+    //// Lock directory (required): Directory to store dak locks in
+    Lock "/srv/dak/lock/";
+
+    //// Morgue (required): Removed files are moved there.  The morgue has various
+    //// sub-directories, including (optionally) those defined by
+    //// Clean-Queues::MorgueSubDir and Clean-Suites::MorgueSubDir.
+    Morgue "/srv/dak/morgue/";
+
+    //// UrgencyLog (optional): If this directory is specified, 'dak
+    //// process-upload' will store the urgency value of each upload.  This
+    //// is mainly used for britney (the testing script).
+    // UrgencyLog "/srv/dak/testing/urgencies/";
+
+    //// Done (required): Directory in which to store processed .changes files
+    Done "/srv/dak/queue/done/";
+
+    //// BTSVersionTrack (optional): this directory holds the DebBugs
+    //// Version Tracking support files.
+    // BTSVersionTrack "/srv/dak/btsversiontrack";
+
+    //// Queue (required): This sub-tree defines important directories for the
+    //// incoming queue.  The following variables have to be set: Byhand, New
+    //// NewStage, Reject, Unchecked.  An explanation of the function of
+    //// these directories can be found in README.new-incoming.
+    Queue
+    {  
+        Byhand "/srv/dak/queue/byhand/";
+        New "/srv/dak/queue/new/";
+        NewStage "/srv/dak/queue/newstage/";
+        Reject "/srv/dak/queue/reject/";
+        Unchecked "/srv/dak/queue/unchecked/";
+    };
+};
+
+///////////////////////////////////////////////////////////
+// SuiteMappings: (optional).  List of mappings for the Distribution file in a
+// .changes file, e.g.:
+///////////////////////////////////////////////////////////
+
+// There are three mapping types:
+//
+// (1) map <source> <dest>
+// Any target suite of '<source>' is unconditionally overridden 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.
+
+SuiteMappings
+{
+   "map stable proposed-updates";
+   "map frozen unstable";
+   "map-unreleased stable unstable";
+   "map-unreleased proposed-updates unstable";
+   "ignore testing";
+};
+
+///////////////////////////////////////////////////////////
+// Urgency (mandatory) 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.
+///////////////////////////////////////////////////////////
+
+Urgency
+{
+  Default "low";
+  Valid
+  {
+    low;
+    medium;
+    high;
+    emergency;
+    critical;
+  };
+};
 
--- 
-James Troup <james@nocrew.org>, Horsforth, Leeds
-Wed, 26 Sep 2001 03:20:39 +0100