Translations


This proposal describes the infrastructure for emdebian packages and modified packaging tools for use with them. Demo infrastructure has been set up on buildd.emdebian.org

Initial ideas

Emdebian packages should be split into two aptable repositories:

Source code repository structure

trunk: In most cases, actual code resides in a trunk/ directory beneath the package name. This provides support for dedicated build-area directories, branches and SVN tags on a per-package basis. The links to the browser are to the trunk subdirectory, where trunk/ exists. When checking out a particular module, use the module name without the final trunk/.

Repository location

If you have direct access to the emdebian.org server you will find the files are stored here:

Equivalent external access URLs are:

Repository layout

Package repositories

Package repositories were prepared using reprepro tool(mirrorer)

Repository location

Repository layout

deb http://buildd.emdebian.org/debian/ unstable main
deb-src http://buildd.emdebian.org/debian/ unstable main
deb http://buildd.emdebian.org/debian/ testing main
deb-src http://buildd.emdebian.org/debian/ testing main

deb http://buildd.emdebian.org/emdebian/ unstable main
deb-src http://buildd.emdebian.org/emdebian/ unstable main

sid is also supported as an alternative to unstable.

Incoming directories

Examples of dput.cf for emdebian uploads

[emdebian-tools]
fqdn = buildd.emdebian.org
login = <your login>
method = scp
incoming = /var/emdebian/debian/incoming-unstable/

[emdebian-target]
fqdn = buildd.emdebian.org
method = scp
login = <your login>
incoming = /var/emdebian/emdebian/incoming-unstable/

Example of how to handle uploads

Emdebian does not currently use a timed queue - uploaders need to run a script via dput. e.g. for the target repository:

post_upload_command = ~/scripts/dput-emdebian

The dput-emdebian script file - on your local system - should contain:

ssh user@www.emdebian.org "/var/emdebian/sqlite/dput-incoming emdebian"

This is the /var/emdebian/sqlite/dput-incoming script (debian or emdebian should be passed as parameter).

#!/bin/sh

[ -z "$1" ] && exit 1

DIST=$1

INCOMING=/var/emdebian/$DIST/incoming-unstable/
SCRIPTS=/var/emdebian/sqlite/repo/trunk/

cd $INCOMING/../

#
#  Now import each new package that we *did* find
#
for f in $INCOMING/*.changes; do

  [ -e "$f" ] || continue;

  # Import package to the selected distribution.
  reprepro -Vb . include $DIST $f
  # Update the live sqlite data with data from this upload.
  $SCRIPTS/changes.pl $f $DIST

  # Delete the referenced files
  sed '1,/Files:/d' $f | sed '/BEGIN PGP SIGNATURE/,$d' \
       | while read MD SIZE SECTION PRIORITY NAME; do

      [ -z "$NAME" ] && continue

      rm -f "$INCOMING/$NAME"
  done

  # Finally delete the .changes file itself.
  rm $f

done

TODO


CategoryPermalink CategoryEmdebian