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.
- builds any package for which there are source but no binary
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