wiki:BuildingAndUploading

Building and Uploading

Building is done on magrathea.mit.edu (originally debuild.mit.edu, then zulu.mit.edu), using the builder account. Do not forward your root tickets when ssh'ing to builder@magrathea.

Package Names

The build-system uses the submodule name, not the package name. For example, the getcluster software is provided by the debathena-getcluster package, but is in the getcluster submodule.

In the instructions below, <package> refers to the submodule name.

Building

Non-native packages: Prior to building, non-native packages must also prepare an upstream tarball:

  • athena-upstream-tarball -p <package>

Native and non-native packages:

  • dasource -u <package>
    • builds source package
  • dapublish <package>
    • publish source package to repo, sign and tag
    • You may also pass all in place of the package name, but that might break.
  • dabuild all
    • builds any package for which there are source but no binary
      • You may also pass a package name in place of all, but it's good practice to ensure there's nothing unbuilt
    • _also_ uploads the package to codename-development for all releases we support.

At the end of this process, the packages will be in the -development APT repository. They can (and should) then be moved, as described below. Typically, packages sit in -development until they're tested at least once, then go to -proposed for 3 business days, and then production.

Moving between repositories

NOTE: Unlike the build process, moving packages does use the package's full name (e.g. debathena-getcluster instead of just getcluster). Yes, this is confusing.

Packages can be moved between repositories with damove. This is the normal way in which packages should migrate from -proposed to the production repository.

  • damove <destination> <source> <packagename>
    • <destination> is the repository you are moving the package to. (one of production, or proposed)
    • <source> is the repository you are moving the package from. (one of proposed or development)
    • <packagename> is the name of the package
    • damove will warn you if you accidentally swap arguments