[[PageOutline]] = 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, `` 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 ` **Native and non-native packages**: * `dasource -u ` * builds source package * `dapublish ` * 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 At the end of this process, the packages will be in the `-development` APT repository. They can 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 ` * '''' is the repository you are moving the package '''to'''. (one of `production`, or `proposed`) * '''' is the repository you are moving the package '''from'''. (one of `proposed` or `development`) * '''' is the name of the package * '''damove''' will warn you if you accidentally swap arguments