cdlogo
Departments | Computing Division | Fermilab at Work | Fermilab Home
_____________________________________________________________________________________________________
UPS, UPD and UPP v4
Complete Guide and Reference Manual
Document number: GG0014
UPS/UPD v4_7
Oct 8, 2002

Manual intro page - Contents - Index - Quick Reference Card
Document Abstract - Acknowledgments - UPS product page

Updates to Manual

This table lists entries in order of appearance in the manual (entries upto UPS v4_7 included). These plus some other changes are included in the 10/16/02 update to the manual.

Date Chapter or Section Description Updated in HTML? Updated in source?
12/7/01 (Part I)1.7.2 Changes UPS Makes to your Environment Sets FTP_PASSIVE in the environment on setup, so that upd works behind certain firewalls. yes yes
10/02 v4_7, 3.1 Add -4 for ups flavor (previously, it was -0 through -3)    
10/02 v4_7, 3.4.2 Qualifiers can be explicitly mandatory or explicitly optional    
10/02 v4_7, 6.2.1 Add -4 everywhere there's -0 through -3    
11/28/00 (Part III) Chap 13 Bootstrapping CoreFUE To install UPS/UPD temporarily on a machine see instructions at http://www.fnal.gov/docs/products/bootstrap/TemporaryInstall.html yes yes
10/02 v4_7, Chap 21 Kerberos implemented, many changes here due to that.    
7/21/00 (Part VI) 22.11.4 ups list reference, more detailed description UPD_USERCODE_DB is not a valid keyword (UPD_USERCODE_DIR is ok as listed). yes yes
10/02 v4_7, Chap 23, 24 Add -4 everywhere there's -0 through -3    
10/02 v4_7, Chap 25 Qualifiers can be explicitly mandatory or explicitly optional    
12/7/01 (Parts II and VI) UPS v4_5_3 and following versions include: ups parent [ups list options] which is the inverse (converse?) of depend. Instead of telling what the product depends upon, it says what products depend upon this one. This probably goes in the product installer guide, since it's really useful for deciding what products you can remove. yes yes
12/7/01 (Part VII)27.4 List of Supported Keywords and (PartVIII)35.4 Table File Structure and Contents v4_6: Two new Table file actions:
"installprodserver" sets up a cron job to run upp with a subscription file that updates all dependencies of the "autoupp" product
"installasroot" sets up a cron job to run upp with a subscription file that does a "ups installasroot autoupp" when any autoupp products were installed by "installprodserver", above.
By running "ups installprodserver upd" on your products server system, and "ups installasroot upd" on each node using that products server, you get automatic updates of kerberos and the products it needs.
yes yes
4/17/01 (Part VII) 31.2 Product Instance Identification and Matching For upd v4_6:
"Value"s here can now have ${VARIABLE} strings, which are expanded from the environment. In particular you can have:
dist_node=file://localhost${PRODUCTS}
to subscribe to changes in your local databases (for example if you want mail when someone updates products on your local system), or
mail_address=${USER}@fnal.gov
to send mail to whoever runs the upp command.
yes yes
4/17/01 (Part VII) 32.2.2 Conditions and Instructions For upd v4_6:
In the "List of Functions" table, add:
ups_configure
Run the ups configure action for the product
ups_installasroot
Run the ups installasroot action for the product
yes yes
4/17/01
and 12/07/01
(Part VII) 32: The UPP Subscription File For upd v4_6:
32.1 "value"s here can now have ${VARIABLE} strings, which are expanded from the environment, in particular you can have dist_node=file://localhost${PRODUCTS} to subscribe to changes in your local databases (for example if you want mail when someone updates products on your local system) -- or mail_address=${USER}@fnal.gov to send mail to whover runs the upp command.
32.2.2 In the List of Functions table, add: ups_configure Run the ups configure action for the product ups_installasroot Run the ups installasroot action for the product
32.3 (UPP file) Examples We could add an example of:
file=upp
mail_address=${USER}@fnal.gov
dist_node=file://localhost${PRODUCTS} data_dir=${HOME}/.upp/myproduct
begin
product=my_product
action=current
notify
end

which will mail you whenever my_product versions are made current on the local system.
This release adds a "host_types" entry to the upp subscription file header which can be a list of platforms (i.e. ups or upd -H options) for which to do product surveys -- defaults to `ups flavor`
yes yes
7/21/00 (Part VIII) 34.6 Local Read-Only Variables Available to Functions Add to list:
${UPS_SHELL} values: csh or sh
${UPS_SOURCE} values: "source" for sh or "." for sh
(12/7/01:)
${UPS_DIR}

${UPS_OVERRIDE} About:
1) setups.{csh,sh} looks for $SETUPS_DIR/ups_override.<hostname> and if it finds it, it reads a string from there and sets the UPS_OVERRIDE environment variable, and sets MACH_OS to the base of that flavor (i.e. IRIX).
${UPS_OVERRIDE} as of 10/2000 can be set to something like "-H IRIX+6.5.7a" possibly later it might be "-H IRIX+6.5.7 -q mips3?:mips6?" to allow default qualifiers too.
2) The ups commands and funame all use UPS_OVERRIDE's -H value for the system flavor if it is present, but this does not override an explicit mention of -H on the command line.
Also, you can create a file $SETUPS_DIR/ups_override.`funame` and the $SETUPS_DIR/setups.{sh,csh} scripts will set UPS_OVERRIDE to the contents of that file when initializing your ups environment.
yes yes
12/7/01 (Part VIII)34.2, 34.3, 34.5 v4_6:
In a table file, we allow some new functions:
If( command ) Else() EndIf( command )
Where we do the text between If() and Else() if "command" succeeds and the text between Else() and Endif(command) if "command" fails.
Similarly Unless( command ) Else() EndUnless( command )
To do things based on whether command fails.
Now you may be asking, why is there a test command on the EndIf? It's because we have to be able to invert this to get an unsetup action -- remember when we unsetup, we invert the order, and call the inverse of the actions. So the inverse of If() is EndIf(), and vice versa. The command in the EndIf() has to exactly (bit for bit) match the command in the If() -- similarly for Unless()/EndUnless()
Example:
Action=Setup ProdDir() SetupEnv() EnvSetIfNotSet(FOO,":") EnvPrepend(FOO, ${UPS_PROD_DIR}/basic) If( test -d ${UPS_PROD_DIR}/exciting ) EnvPrepend(FOO, ${UPS_PROD_DIR}/exciting) Else() EnvPrepend(FOO, ${UPS_PROD_DIR}/boring) EndIf( test -d ${UPS_PROD_DIR}/exciting )
yes yes
7/21/00 (Part VIII) Chapter 35 Table Files I left out the list of keywords that can be used in table files! Click here to find it. yes, a link added yes
10/02 v4_7, 35.6 Add ${REQ_PROD_QUALIFIERS}    

For assistance contact helpdesk@fnal.gov
Information compiled and maintained by Anne Heavey (aheavey@fnal.gov)