Builds can be performed on dixie.torproject.org.

Uploads must be go to palmeri.torproject.org.

Preliminary setup

In ~/.ssh/config:

Host dixie.torproject.org
        ProxyCommand ssh -4 perdulce.torproject.org -W %h:%p

In ~/.dput.cf:

[tor]
login = *
fqdn = palmeri.torproject.org
method = scp
incoming = /srv/deb.torproject.org/incoming

Currently available distributions

  • Debian:
    • lenny-backport
    • experimental-lenny-backport
    • squeeze-backport
    • experimental-squeeze-backport
    • wheezy-backport
    • experimental-wheezy-backport
    • unstable
    • experimental
  • Ubuntu:
    • hardy-backport
    • lucid-backport
    • experimental-lucid-backport
    • natty-backport
    • experimental-natty-backport
    • oneiric-backport
    • experimental-oneiric-backport
    • precise-backport
    • experimental-precise-backport
    • quantal-backport
    • experimental-quantal-backport
    • raring-backport
    • experimental-raring-backport

Create source packages

Source packages must be created for the right distributions.

Helper scripts:

Build packages

Upload source packages to dixie:

dcmd rsync -v *.dsc dixie.torproject.org:

Build arch any packages:

ssh dixie.torproject.org
for i in *.dsc; do ~weasel/bin/sbuild-stuff $i && linux32 ~weasel/bin/sbuild-stuff --binary-only $i || break; done

Or build arch all packages:

ssh dixie.torproject.org
for i in *.dsc; do ~weasel/bin/sbuild-stuff $i || break; done

Packages with dependencies in deb.torproject.org must be built using $suite-debtpo-$arch-sbuild, e.g. by running:

DIST=wheezy-debtpo ~weasel/bin/sbuild-stuff $DSC

Retrieve build results:

rsync -v $(ssh dixie.torproject.org dcmd '*.changes' | sed -e 's/^/dixie.torproject.org:/') .

Upload first package with source

Pick the first changes file and stick the source in:

changestool $CHANGES_FILE includeallsources

Sign it:

debsign $CHANGES_FILE

Upload:

dput tor $CHANGES_FILE

Start a first dinstall:

ssh -t palmeri.torproject.org sudo -u tordeb /srv/deb.torproject.org/bin/dinstall

Move changes file out of the way:

dcmd mv $CHANGES_FILE archives/

Upload other builds

Sign the remaining changes files:

debsign *.changes

Upload them:

dput tor *.changes

Run dinstall:

ssh -t palmeri.torproject.org sudo -u tordeb /srv/deb.torproject.org/bin/dinstall

Archive remaning build products:

dcmd mv *.changes archives/

Uploading admin packages

There is a separate Debian archive, on db.torproject.org, which can be used to upload packages specifically designed to run on torproject.org infrastructure. The following .dput.cf should allow you to upload built packages to the server, provided you have the required accesses:

[tpo-admin]
fqdn = alberti.torproject.org
incoming = /srv/db.torproject.org/ftp-archive/archive/pool/tpo-all/
method = sftp

Then to install the packages:

ssh alberti.torproject.org make -C /srv/db.torproject.org/ftp-archive

This might require fixing some permissions. Do a chmod g+w on the broken directories if this happens and open a ticket if it does, to create a service account instead of that hack.