X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=setup%2FREADME;h=d5481a764d9aa1c8cb9a7f09cfacf5e1a684a316;hb=a650a6d23f898f49e738866914dba2dea7808cf1;hp=1ea78ee3a8e4c753885409591a760010b99fcef3;hpb=e2c4fd7f21c3b33cd7192bded5d6373e0ee90374;p=dak.git diff --git a/setup/README b/setup/README index 1ea78ee3..d5481a76 100644 --- a/setup/README +++ b/setup/README @@ -2,14 +2,14 @@ Initialising a dak database schema ================================== The following packages are needed for the database: - * postgresql-9.0 postgresql-client-9.0 postgresql-plperl-9.0 postgresql-plpython-9.0 postgresql-9.0-debversion + * postgresql-9.1 postgresql-client-9.1 postgresql-9.1-debversion and the following packages for dak itself: * python-psycopg2 python-sqlalchemy python-apt gnupg dpkg-dev lintian binutils-multiarch python-yaml less python-ldap python-pyrss2gen python-rrdtool symlinks python-debian -(the schema assumes at least postgresql 9.0; ftpmaster in Debian currently uses -the squeeze postgresql 9.0 backport) +(the schema assumes at least postgresql 9.1; ftpmaster in Debian currently uses +the squeeze postgresql 9.1 backport) The following roles are assumed to exist: * dak: database superuser: needs to be an actual user @@ -19,10 +19,21 @@ The following roles are assumed to exist: For the purposes of this document, we'll be working in /srv/dak -Set up the dak user on both the system and in postgres: +Set up the dak user: # sudo addgroup --system ftpmaster # sudo adduser --system dak --ingroup ftpmaster --shell /bin/bash -# sudo -u postgres createuser -s dak + +Create postgres roles and database: +# sudo -u postgres psql + CREATE USER dak CREATEROLE; + CREATE ROLE ftpmaster WITH ROLE dak; + CREATE ROLE ftpteam WITH ROLE ftpmaster; + CREATE ROLE ftptrainee WITH ROLE ftpmaster, ftpteam; + + CREATE DATABASE projectb WITH OWNER dak TEMPLATE template0 ENCODING 'SQL_ASCII'; + \c projectb + CREATE EXTENSION IF NOT EXISTS plpgsql; + CREATE EXTENSION IF NOT EXISTS debversion; Set up the dak directory: # sudo mkdir /etc/dak @@ -37,17 +48,6 @@ Create a symlink to /srv/dak/dak.conf in /etc/dak Become the dak user: # sudo -u dak -s -H -Create the additional roles: -# createuser -S -R -D ftpmaster -# createuser -S -R -D ftpteam -# createuser -S -R -D ftptrainee -# psql -d projectb -c "ALTER GROUP ftpteam ADD USER ftpmaster" -# psql -d projectb -c "ALTER GROUP ftptrainee ADD USER ftpmaster" -# psql -d projectb -c "ALTER GROUP ftptrainee ADD USER ftpteam" - -Create an empty database with SQL_ASCII encoding: -# createdb -T template0 -E SQL_ASCII -O dak projectb - Import the schema. We redirect STDOUT to /dev/null as otherwise it's impossible to see if something fails. # psql -1 -f current_schema.sql -d projectb >/dev/null @@ -100,6 +100,9 @@ Add a suite (origin=, label= and codename= are optional) signingkey= will ensure that Release files are signed # dak admin suite add-all-arches unstable x.y.z origin=MyDistro label=Master codename=sid signingkey=DDDDDDDD +Add the components to the suite +# dak admin s-c add unstable main contrib non-free + Re-run dak init-dirs to add new suite directories to /srv/dak # dak init-dirs @@ -112,41 +115,27 @@ for AMD64 and copied it into /srv/dak/queue/unchecked. We start by performing initial package checks which will result in the package being moved to NEW -# cd /srv/dak/queue/unchecked -# dak process-upload *.changes +# dak process-upload -d /srv/dak/queue/unchecked ----------------------------------------------------------------------- hello_2.6-1_amd64.changes -NEW for unstable - -(new) hello_2.6-1.debian.tar.gz optional devel -(new) hello_2.6-1.dsc optional devel -(new) hello_2.6-1_amd64.deb optional devel -The classic greeting, and a good example - The GNU hello program produces a familiar, friendly greeting. It - allows non-programmers to use a classic computer science tool which - would otherwise be unavailable to them. - . - Seriously, though: this is an example of how to do a Debian package. - It is the Debian version of the GNU Project's `hello world' program - (which is itself an example for the GNU Project). -(new) hello_2.6.orig.tar.gz optional devel -Changes: hello (2.6-1) unstable; urgency=low +hello (2.6-1) unstable; urgency=low . - * New upstream release. - * Drop unused INSTALL_PROGRAM stuff. - * Switch to 3.0 (quilt) source format. - * Standards-Version: 3.9.1 (no special changes for this). - + * New upstream release. + * Drop unused INSTALL_PROGRAM stuff. + * Switch to 3.0 (quilt) source format. + * Standards-Version: 3.9.1 (no special changes for this). -Override entries for your package: +source:hello +binary:hello -Announcing to debian-devel-changes@lists.debian.org +binary:hello is NEW. +source:hello is NEW. -[N]ew, Skip, Quit ?N -Moving to NEW queue. -Sending new ack. +[N]ew, Skip, Quit ? N +ACCEPT-TO-NEW +Installed 1 package set, 646 KB. ----------------------------------------------------------------------- We can now look at the NEW queue-report @@ -155,53 +144,36 @@ We can now look at the NEW queue-report NEW --- -hello | 2.6-1 | source amd64 | 5 seconds old +hello | 2.6-1 | source amd64 | 42 seconds old -1 new source package / 1 new package in total. +1 new source package / 1 new package in total / 0 new package to be processed. ----------------------------------------------------------------------- And we can then process the NEW queue: -# cd /srv/dak/queue/new -# dak process-new *.changes +# dak process-new ----------------------------------------------------------------------- hello_2.6-1_amd64.changes +------------------------- + + Target: unstable + Changed-By: Santiago Vila + NEW hello optional devel +dsc:hello extra misc Add overrides, Edit overrides, Check, Manual reject, Note edit, Prod, [S]kip, Quit ?A -ACCEPT +PENDING ACCEPT ----------------------------------------------------------------------- -At this stage, the package has been ACCEPTed from NEW into NEWSTAGE. -We now need to finally ACCEPT it into the pool: - -# cd /srv/dak/queue/newstage -# dak process-upload *.changes +At this stage, the package has been marked as ACCEPTed from NEW. +We now need to process the NEW policy queue: +# dak process-policy new ----------------------------------------------------------------------- -hello_2.6-1_amd64.changes -ACCEPT - - -hello_2.6-1.debian.tar.gz - to main/h/hello/hello_2.6-1.debian.tar.gz -hello_2.6-1.dsc - to main/h/hello/hello_2.6-1.dsc -hello_2.6-1_amd64.deb - to main/h/hello/hello_2.6-1_amd64.deb -hello_2.6.orig.tar.gz - to main/h/hello/hello_2.6.orig.tar.gz - - -Override entries for your package: -hello_2.6-1.dsc - optional devel -hello_2.6-1_amd64.deb - optional devel - -Announcing to debian-devel-changes@lists.debian.org -[A]ccept, Skip, Quit ?A -Installing. -Installed 1 package set, 646 KB. +Processing changes file: hello_2.6-1_amd64.changes + ACCEPT ----------------------------------------------------------------------- We can now see that dak knows about the package: @@ -226,6 +198,8 @@ And finally, we can generate the signed Release files: # dak generate-release ----------------------------------------------------------------------- +Processing new +Processing byhand Processing unstable ----------------------------------------------------------------------- (Look at /srv/dak/ftp/dists/unstable/Release, Release.gpg and InRelease)