wiki:BuildingAndUploading

Version 6 (modified by jdreed, 13 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
  1. dasnapshot

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
  1. dasnapshot

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
    • Errors regarding package signing and (for now) tempfile creation and known and ignorable.
  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. dasnapshot
  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. dasnapshot
  1. (wait for 3 days of testing)
  1. damove "" "-proposed" debathena-printing-config
  1. dasnapshot

Manual Config

builder@zulu:/mit/debathena/packages/manual-config$ ./make-manual-config … builder@zulu:/mit/debathena/packages/manual-config$ ./do-upload …