<task>

  $$==========================================================$$
  $$                                                          $$
  $$                  CCP4 Releaase 6.3.1                     $$
  $$                                                          $$
  $$    Task description for CCP4 Package Manager Update      $$
  $$                   MAC OS X VERSION                       $$
  $$                                                          $$
  $$==========================================================$$

  $$ "version" referes to the version of Package Manager.     $$
  $$ Package Manager will refuse improper versions and        $$
  $$ prompt the user to update                                $$
  <version>1.04</version>

  $$ "fetch" records specify data that Package Manager        $$
  $$ downloads from CCP4 server and keeps internally. Data    $$
  $$ type is identified by the "type" attribute, which must   $$
  $$ have one of predefined values.                           $$

  <fetch type="updates_list">updates.xml</fetch>

  <page template="title">

    $$ This is the updater's title page. In the end of release $$
    $$ life time, make a clear indication on the page that new $$
    $$ release is available, and simultaneously, set 'expired' $$
    $$ to "yes" in the followed record. This signal will be    $$
    $$ passed to ccp4i for permanent reminding of the new      $$
    $$ release.                                                $$

    <expired>no</expired>

    $$ text to be displayed on the right-hand side of the page $$
    <rhs type="text">
{b}Collaborative Computational Project No. 4{/b}{br}
{font size="-1"}
Science and Technology Facilities Council{br}
Rutherford Appleton Laboratory{br}
Didcot, Oxon, OX11 0FA, United Kingdom{br}
http://www.ccp4.ac.uk{br}
{/font}
{br}
{h1}CCP4 Software Suite{/h1}
{h3}Version 6.3.1{/h3}
{h2}Update{/h2}
{br}
This program will guide you through the update process for{br}
CCP4 Software Suite on your computer.
{p}
Press "Next" button to continue.
    </rhs>

  $$ If “Next” button is removed from the screen, Package    $$
  $$ will show “title” page for 1.5 secs and them move on to $$
  $$ the next one.                                           $$
    <next>1</next>

  $$ Request the presence of "Cancel" button on the page.    $$
    <cancel>1</cancel>

  </page>

  <page template="update_list">

    $$ Base URL of the server from which the updates will be   $$
    $$ downloaded. This may override the URL hard-coded in     $$
    $$ the Package Manager, if necesary                        $$
    <server>http://www.ccp4.ac.uk/update/6.3.1/macosx-x86</server>

    $$ 'package' records give the list of updatable packages.  $$
    $$ Every package represents a directory in $CCP4_MASTER,   $$
    $$ e.g. ccp4-6.3.1 or arpwarp-7.4. If no packages are spe- $$
    $$ cified, only CCP4 is assumed to be updatable, and the   $$
    $$ update root is set to $CCP4. If package statements are  $$
    $$ present, the update root is set to $CCP4_MASTER. The    $$
    $$ updater (ccp4um) identifies which directories, among    $$
    $$ those given by 'package's, are present in client setup, $$
    $$ and applies updates only to them. Mandatory attribute   $$
    $$ "key" specifies the keyword, which forms conditional    $$
    $$ statements, such as $IF_ARPWARP to $ENDIF_ARPWARP, in   $$
    $$ update descriptions. Using these keywords, ccp4um cuts  $$
    $$ parts of the update descriptions that correspond to     $$
    $$ packages not found in a particular client setup. The    $$
    $$ keywords are not hardcoded anywhare and are actually    $$
    $$ defined by their 'package' statements.                  $$
    $$   Note that key "CCP4" is redundant, because CCP4 Core  $$
    $$ Packages are necesserily present for ccp4um to operate, $$
    $$ yet, the core package ought to be listed for formal     $$
    $$ consistency.                                            $$
    <package key="CCP4">ccp4-6.3.1</package>
    <package key="ARPWARP">arpwarp-7.4</package>

    <title>
{h2}CCP4 update, step 1 out of 3{/h2}
{h3}Choose updates to install or remove:{/h3}
    </title>

    <next>1</next>
    <cancel>1</cancel>

  </page>

  <page template="downloads">
    <title>
{h2}CCP4 update, step 2 out of 3{/h2}
{h3}Downloading selected updates{/h3}
    </title>

    $$ Allow for the "Back" button here                      $$
    <back>1</back>

    $$ When the "Next" button is switched off here, Package  $$
    $$ Manager will advance to the next page once all        $$
    $$ downloads are successfully completed. Otherwise, the  $$
    $$ user has to press "Next" in order to proceed. Note,   $$
    $$ that even when switched off, "Next" button still may  $$
    $$ be forced on the page at some navigation scenarios.   $$
    <next>0</next>

    $$ When the "Download" button is switched off here,      $$
    $$ Package Manager will start downloads automatically.   $$
    $$ Otherwise, the user has to press "Download" in order  $$
    $$ to proceed.                                           $$
    <download>0</download>
    <cancel>1</cancel>

  </page>

  <page template="update">
    <title>
{h2}CCP4 setup, step 3 out of 3{/h2}
{h3}Applying changes{/h3}
    </title>

    $$ When the "Apply" button ('update') is switched off    $$
    $$ here, Package Manager will start making changes       $$
    $$ automatically. Otherwise, the user has to press       $$
    $$ "Apply" in order to proceed.                          $$
    <update>0</update>
    <back>1</back>
    <cancel>1</cancel>

  </page>

</task>

