Notes ===== o Please be careful: dak sends out lots of emails and if not configured properly will happily send them to lots of people who probably didn't want those emails. o Don't use the debian dak.conf, apt.conf, cron.* etc. as starting points for your own configuration files, they're highly Debian specific. Start from scratch and refer to the security.debian.org config files (-security) as they're a better example for a private archive. What do all these scripts do? ============================= Generic and generally useful ---------------------------- o To process queue/: * dak process-unchecked - processes queue/unchecked * dak process-accepted - move files from queue/accepted into the pool (and database) * dak process-new - allows ftp administrator to processes queue/new and queue/byhand o To generate indices files: * dak dominate - removes obsolete packages from suites * dak generate-filelist - generates file lists for apt-ftparchive * dak generate-releases - generates Release o To clean things up: * dak clean-suites - to remove obsolete files from the pool * dak clean-queues - to remove obsolete/stray files from the queue * dak rm - to remove package(s) from suite(s) * dak override - to change individual override entries o Information display: * dak ls - shows information about package(s) * dak queue-report - shows information about package(s) in queue/ * dak override - can show you individual override entries * dak graph - creates some pretty graphs of queue sizes over time Generic and useful, but only for those with existing archives ------------------------------------------------------------- o dak poolize - migrates packages from legacy locations to the pool o dak init-archive - initializes a projectb database from an exisiting archive Generic but not overly useful (in normal use) --------------------------------------------- o dak dot-dak-decode - dumps info in .dak files o dak import-users-from-passwd - sync PostgreSQL users with system users o dak cruft-report - check for obsolete or duplicated packages o dak init-dirs - directory creation in the initial setup of an archive o dak check-archive - various sanity checks of the database and archive o dak control-overrides - manpiulates/list override entries o dak control-suite - removes/adds/lists package(s) from/to/for a suite o dak stats - produces various statistics o dak find-null-maintainers - checks for users with no packages in the archive Semi-generic ------------ To generate less-used indices files: o dak make-maintainers - generates Maintainers file used by, e.g. debbugs o dak make-overrides - generates override. files Mostly Debian(.org) specific ---------------------------- o dak security-install - wrapper for Debian security team o dak clean-proposed-updates - removes obsolete .changes files from proposed-updates o dak check-proposed-updates - basic dependency checking for proposed-updates o dak reject-proposed-updates - manually reject packages from proposed-updates o dak import-ldap-fingerprints - syncs fingerprint and uid information with a debian.org LDAP DB Very Incomplete or otherwise not generally useful ------------------------------------------------- o dak init-db - currently only initializes a DB from a dak.conf config file o dak compare-suites - looks for version descrepancies that shouldn't exist in many archives o dak check-overrides - override cruft checker that doesn't work well with New Incoming Scripts invoked by other scripts -------------------------------- o dak examine-package - invoked by 'dak process-new' to "check" NEW packages o dak symlink-dists - invoked by 'dak poolize' to determine packages still in legacy locations How do I get started? ===================== [Very incomplete - FIXME] o Write your own dak.conf and apt.conf files. dak looks for those config files in /etc/dak/. /etc/dak/dak.conf can define alternative configuration files with Config::host::DakConfig and Config::host::AptConfig (where "host" is the fully qualified domain name of your machine). o Create a PostgreSQL database on the host given in dak.conf's DB::Host with the name specified in DB::Name. o Run 'dak init-dirs': this will create all directories which are specified in dak.conf and apt.conf. o If you have an existing archive: * Run 'dak init-archive' otherwise: * Create the table structure. init_pool.sql contains all SQL statements which are needed for this. After changing all occurences of "projectb" to the name of your database (as defined in DB::Name) you can run: psql < init_pool.sql * Create the following groups in postgres: ftpmaster ftpteam ftptrainee * Run 'dak update-db' to upgrade the database schema. * Run 'dak init-db': it will populate your database with the values from dak.conf and apt.conf. * Run 'psql < add_constraints.sql'. o Copy all templates from the "templates" directory to to the directory specified in Dir::Templates, and adapt them to your distribution.