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

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 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 unstable main
deb-src unstable main
deb testing main
deb-src testing main

deb unstable main
deb-src unstable main

sid is also supported as an alternative to unstable.

Incoming directories

Examples of for emdebian uploads

fqdn =
login = <your login>
method = scp
incoming = /var/emdebian/debian/incoming-unstable/

fqdn =
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 "/var/emdebian/sqlite/dput-incoming emdebian"

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


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



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.

  # 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"

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



CategoryPermalink CategoryEmdebian