Note: This web site is only kept up to date for OSG Software 1.2 (VDT 2.0.0). If you are looking for information for the most recent release, the RPM-based OSG Software 3.0, please see the OSG documentation web site

Debian Build Recipe

Making a Change

  1. Sync the SVN checkout and the corresponding build directory

    How this works in practice varies considerably from package to package. Some packages have a simple “pull-files” script that copies files from the build directory to SVN. At least GSI-OpenSSH now has a bidirectional “sync-files” script. And some packages might not have any helper script or even SVN files yet.

  2. Make the changes
  3. Add the new release to the top of the “changelog” file

    This is a critical step, because it provides the new version and/or release number to the Debian packaging tools.

  4. Check the other “metadata” files in the debian directory to see if any need updates along with the main change
  5. Try a test build, fix bugs, etc., until happy

    Typically, it is possible to do a build from the directory that contains the “debian” subdirectory:

    debian/rules build
  6. Sync the SVN checkout and the corresponding build directory
  7. Commit changes

Doing the Final Build

  1. If building from a pre-existing source package, make sure you have the prerequisite build files:
    • PACKAGE_VERSION-REVISION.diff.gz
    • PACKAGE_VERSION-REVISION.dsc
    • PACKAGE_VERSION.orig.tar.gz

    Otherwise, if building from a source checkout, do these steps:

    1. Remove all build products:
      [pkg dir:] fakeroot debian/rules clean
    2. Build the source package (.dsc and .diff.gz files) from the source directory:
      [root dir:] dpkg-source -b PACKAGE-NAME
  2. Make sure the pbuilder environment is up-to-date
    sudo pbuilder --update
    or
    sudo pbuilder --update --basetgz /var/cache/pbuilder/base-i386.tgz
  3. Build the package in the pbuilder clean environment
    [root dir:] sudo pbuilder --build PACKAGE-NAME.dsc
    or
    [root dir:] sudo pbuilder --build --basetgz /var/cache/pbuilder/base-i386.tgz PACKAGE-NAME.dsc
  4. Upload the package build results to the repository
    /home/cat/bin/pup PACKAGE VERSION REVISION

Reindexing the Debian Repository

Note: This step must be performed on a CSL/AFS machine.

Once files have been uploaded to the testing repository, or moved from testing to production (see below), it is a simple step to reindex the repository that changed:

/p/condor/workspaces/vdt/native/index-apt-repo testing

or

/p/condor/workspaces/vdt/native/index-apt-repo production

The Debian script that actually does the reindexing will complain a lot, but most of the warnings can be ignored. In particular, do not worry about the following kind of message:

 ! Package ... (filename ...deb) is repeat but newer version;
   used that one and ignored data from ...deb !

or this kind of message (and the list that follows it):

** Packages in archive but missing from override file: **

Moving Packages From Testing to Production

Note: This step must be performed on a CSL/AFS machine.

When LIGO approves moving a package or set of packages from testing to production, there is a script to help you.

/p/condor/workspaces/vdt/native/debian-test2prod PACKAGE_VERSION-REVISION ...

The package named should be the source package name. For example:

/p/condor/workspaces/vdt/native/debian-test2prod vdt-gsi-openssh_5.3p1+gsi4.7-5

will move the source package and all of the -client and -server binary packages.

The command will output the complete list of files that were checked and moved. After running it, both testing and production repositories should be reindexed (see above).