Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • T TPA team
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Issues 165
    • Issues 165
    • List
    • Boards
    • Service Desk
    • Milestones
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
  • Wiki
    • Wiki
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • The Tor Project
  • TPA
  • TPA team
  • Wiki
    • Howto
  • build_and_upload_debs

Last edited by Antoine Beaupré Jun 24, 2020
Page history

build_and_upload_debs

title: Build and upload Debian packages

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:

  • backports
  • build-tor-sources

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 = db.torproject.org
incoming = /srv/db.torproject.org/ftp-archive/archive/pool/tpo-all/
method = sftp
post_upload_command = ssh root@db.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. See also ticket 34371 for plans to turn this into a properly managed Debian archive.

Clone repository

Quick links

  • Support
  • User documentation
  • Sysadmin how-to's
  • Service list
  • Machine list
  • Policies
  • Meetings
  • Roadmaps