Getting Started Documentation Glish Learn More Programming Contact Us
Version 1.9 Build 1367
News FAQ
Search Home


next up previous
Next: Installation Up: No Title Previous: The directory tree

Distribution

Packaging of the AIPS++ source code for distribution to end-users, and also of updates for the RCS repositories to consortium sites, is handled at Charlottesville by a single script called exhale. exhale's behaviour is determined by the contents of, and last modification time of the VERSION file in ãips++/master_ftp.

If the VERSION file contains the string ``mm.-'', where mm is a two digit number which defines the major version number, exhale interprets this as a signal to produce a new base release. It produces a compressed tar file for the ãips++/master tree, and also for each of the ãips++/code subdirectories. If all goes well it then installs these in the ãips++/master_ftp and ãips++/code_ftp directories. If this succeeds, exhale finishes by installing a new VERSION file containing the major and minor version number with a timestamp and file modification time pertaining to when exhale started execution.

If, on the other hand, exhale finds a string of the form ``mm.nnn'' in the VERSION file, where nnn is the minor version number, it will produce an update for the ãips++/slave repositories at the consortium sites. Incremental updates consist of a compressed tar file containing all files in the ãips++/master repository which are newer than the VERSION file itself. In addition, it produces a cumulative update which consists of all master files modified since the base release for the current major version. Only after successfully installing these in ãips++/master_ftp does it update the VERSION file.

The master guarantees to create two new updates per day for the slave, one by 0700 and the other by 1900 Charlottesville time via cron jobs which activate exhale a half-hour beforehand.

exhale maintains a LOGFILE which it updates every time it executes. It is designed to be fail-safe, and to date it has operated flawlessly for about a month, except on one occasion when it ran out of disk space and did fail safe. The AIPS++ ftp directories currently contain the following:

                         +--- README
                         +--- VERSION
                         +--- compress-4.0.1.tar
                         +--- cpp-0.00.tar.Z
         +- import_ftp --+--- make-3.62.tar.Z
         |               +--- make_doc-3.62.tar.Z
         |               +--- perl-4.019.tar.Z
         |               +--- rcs-5.6.tar.Z
         |
         |               +--- LOGFILE
         |               +--- README
         |               +--- VERSION
         |               +--- atnf-00.000.tar.Z
         |               +--- bima-00.000.tar.Z
         |               +--- configure
         |               +--- contrib-00.000.tar.Z
         |               +--- dish-00.000.tar.Z
         |               +--- drao-00.000.tar.Z
      ---+-- code_ftp ---+--- install-00.000.tar.Z
         |               +--- kernel-00.000.tar.Z
         |               +--- nfra-00.000.tar.Z
         |               +--- nral-00.000.tar.Z
         |               +--- nrao-00.000.tar.Z
         |               +--- synthesis-00.000.tar.Z
         |               +--- tifr-00.000.tar.Z
         |               +--- vlbi-00.000.tar.Z
         |
         |               +--- LOGFILE
         |               +--- README
         |               +--- VERSION
         +-- master_ftp -+--- master-00.000.tar.Z
                         +--- master-00.001.tar.Z
                         +--- master-00.002.tar.Z
                         +--- master-00.003.tar.Z
                         +--- master-00.003.ALL.tar.Z

At the remote consortium sites a script called inhale fetches the latest consortium updates and applies them. On its first invokation inhale constructs the ãips++/slave subdirectory and fetches the base file plus cumulative update. Thereafter it maintains a VERSION file in ãips++/slave, and decides which incremental updates it needs to fetch from Charlottesville on the basis of the version stored therein. It does, however, accept a ``-c'' option which forces it to fetch the cumulative update. This should be done every once in a while at the remote site in order to ensure that the slave is faithfully synchronized with the master.

After fetching the compressed tar files inhale unloads them in reverse order. It then invokes GNU make to recursively rebuild AIPS++. inhale also maintains VERSION files in ãips++/code and ãips++/$ARCH. There are corresponding LOGFILEs for each of the three VERSION files used by inhale

Like exhale, inhale is designed to be fail-safe and can be invoked at any time. However, it should normally be invoked by cron after 1900 hours local time, and not within an hour of the time scheduled for exhale to run in Charlottesville. It works directly on ãips++/slave so there should never be any danger of it overwriting ãips++/master.


next up previous
Next: Installation Up: No Title Previous: The directory tree
Please send questions or comments about AIPS++ to aips2-request@nrao.edu.
Copyright © 1995-2000 Associated Universities Inc., Washington, D.C.

Return to AIPS++ Home Page
2006-03-28