wiki:BuildingAndUploading

Version 3 (modified by jdreed, 14 years ago) (diff)

--

(these are my rough notes, please correct them)

Building

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

Building a new package that hasn't been built before? Run gen-packages in /mit/debathena/packages

  1. cd /mit/debathena/packages/subdir
    • subdir corresponds to the subdirectories under trunk/debathena in the repository. Note that trunk/athena is also here.
  1. dasource packagename
    • This checks out the latest revision of the package, unpacks it, and builds the source package.
  1. cd packagename
  1. da [-A] sbuildhack dsc-file
    • dsc-file is the .dsc file for the current version of the package (created by dasource).
    • da essentially runs its arguments for all distributions and architectures that we know about. -A is used when building an architecture-independent (Architecture: all) package. It only builds one architecture for each distribution (currently, amd64). If the da script fails, you will be prompted to continue or give up. It will print a summary of the successful builds when it completes.
  1. Verify that the .debs were created in the current directory. Proceeding to Uploading

Uploading

NOTE: The cwd is assumed to be /mit/debathena/packages/subdir/packagename (where the Building step ended).

  1. daupload-proposed [-A] source-changes
    • source-changes is the source package's .changes file.
    • Like da, daupload and friends take -A if the package is architecture independent
    • To upload to the -development repository instead, replace daupload-proposed with daupload-dev

Moving between repositories

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

  1. damove destination source packagename
    • destination is the repository you are moving the package to. Use an empty string ("") to indicate the production repository.
    • source is the repository you are moving the package from.
    • packagename is the name of the package
    • damove will warn you if you accidentally swap the desintation and source arguments

Equivs Packages

NOTE: The equivs packages are all located in /mit/debathena/packages/meta.

  1. cd /mit/debathena/packages/meta/packagename
    • packagename is the name of the package (without the debathena- prefix)
  1. svn update
    • There is no dasource for equivs packages.
  1. equivs-build --full equivs-file
    • equivs-file is the name of the .equivs file for the package
  1. daupload-equivs-proposed source-changes
    • source-changes is the source package's .changes file. No, it's the amd64.changes file
    • To upload to the -development repository instead, replace daupload-equivs-proposed with daupload-equis-dev
  1. When moving the equivs package between repositories, the same damove syntax is used as with regular packages.

Example

An example, using version 1.18.2 of the package debathena-printing-config, whose source is located at trunk/debathena/config/printing-config

  1. cd /mit/debathena/packages/config
  1. dasource debathena-printing-config
  1. cd debathena-printing-config
  1. da -A sbuildhack debathena-printing-config_1.18.2.dsc
  1. daupload-proposed -A debathena-printing-config_1.18.2_source.changes
  1. (wait for 3 days of testing)
  1. damove "" "-proposed" debathena-printing-config