Wiki

Aller au contenu | Aller au menu | Aller à la recherche

 

Goals

This script help to create a staging area. This area is dedicated to work on a small set of package maintained by a team in a so called "transition state". The idea is to provide a way to have very fast synchronization among the team using a small area. It should also provides a way to break less thing inside unstable... which will be the final target of all the package that are worked inside the staging area.

It should solve issue such as :

  • a part of the team is working on an arch and the other part on another (ppc/i386 or i386/amd64), limiting the number of arch to rebuild and rebuild it fast enable fast synchronization
  • two member of the team work on two dependents package, it is best if they have a team archive where to upload there package, so every member can get the latest working version of the package

Specifications

  • a staging area is build against another full archives and distribution, it is not intended to be standalone
  • a staging area is not a permanent area, it should be closed when the transition is done or after a while
  • package should be build for a subset of arch supported by debian, this subset is defined by taking into account the different arches which can be found among the team member
  • there should be a public apt-gettable archives which contains every builded packages
  • ability to try to do binNMU, it should be possible to fetch automatically a package from the full archives and try to build it inside the staging area
  • prevent a package which cannot build on all team arches to reach the staging area archive, which should prevent a lot of archive breakage, such as arch: all arch: any interdependent packages
  • the set of staging area packages to manage should be defined
  • a script which test validity of the packages must be defined
  • when the validity script validate every staging area packages, this is the end of the staging area
  • automatic upload of packages into the full archives are done at the end of the staging area, this upload compute the order of upload and upload packages when dependent packages have been for every arches of debian archives

Processes

Layout

  • $STAGE_DIR: base directory, contains most of the published data
  • $STAGE_DIR/etc/: directory containing configuration information (keyring, configuration db)
  • $STAGE_DIR/var/: directry containing data concerning status of the staging area
  • $STAGE_DIR/incoming: location of the incoming packages
  • $STAGE_DIR/builder: location of data related to package begin build
  • $STAGE_DIR/builder/queue: location where there are one directory per source package to build
  • $STAGE_DIR/builder/done: locate where builded package are placed
  • $STAGE_DIR/archive: archive apt-gettable

Transition:

  • incoming to builder/queue/XXX: dscverify on incoming/XXX.dsc
  • builder/queue/XXX to builder/done: all binary package build for every team arches
  • builder/done to archive: dscverify on builder/done/XXX.dsc

Change of states are triggered using a inotify daemon which try to verify the condition given above.

Create a gpg key

gpg --keyring $STAGE_DIR/keyring --no-default-keyring --secret-keyring $STAGE_DIR/keyring 

Check consistency of a source package

dscverify --keyring $STAGE_DIR/keyring $STAGE_DIR/incoming/ZZZ.dsc

Create/run a builder

pbuilder

mkdir $PBUILDER_DIR/build $PBUILDER_DIR/result $PBUILDER_DIR/aptcache
sudo pbuilder create --basetgz $PBUILDER_DIR/base.tgz --buildplace $PBUILDER_DIR/build/ --buildresult $PBUILDER_DIR/result/ --aptcache $PBUILDER_DIR/aptcache --distribution unstable --othermirror "deb http://yocto/~gildor/debstage/archive unstable main"
sudo pbuilder build --basetgz $PBUILDER_DIR/base.tgz --buildplace $PBUILDER_DIR/build/ --buildresult $PBUILDER_DIR/result/ --aptcache $PBUILDER_DIR/aptcache $STAGE_DIR/builder/queue/ZZZ/ZZZ.dsc

Create/update an archive

debarchiver

mkdir $STAGE_DIR/dists
mkdir $STAGE_DIR/rebuild
debarchiver -d $STAGE_DIR/dists -i $STAGE_DIR/builder/done

Lang: Perl

Status

In progress