Merge branch 'master' of https://git.code.sf.net/p/cdesktopenv/code
[oweals/cde.git] / cde / admin / IntegTools / dbTools / UDB.tools
1
2                 UDB TOOLS
3                 ---------
4
5 The udb tools are located in the shared source tree in:
6         /x/cdesrc/admin/IntegTools/dbTools
7
8 The basic tools for manipulating "udb" databases are:
9
10         udbParseLib.awk         -- the awk parser for "udb" files.
11                    This awk file contains functions which read the udb
12                    databases into memory and set up awk-style
13                    associative arrays of keyword value pairs
14                    for all the file entries.  This "library"
15                    also contains the default set of print
16                    routines that allow the database information
17                    to be printed in a number of different
18                    formats.  
19                         Custom print routines can easily
20                    be written by following the conventions used
21                    in the default print routines.
22                         This parser is used by "udbToAny.ksh" and other
23                    scripts which manipulate the ".udb" databases.
24
25         udbToAny.ksh    --  A ksh front end which allows the contents of the
26                    "udb" file to be transformed into a number of different
27                    formats.  It also accepts the name of "custom" awk print
28                    routine which can do new and mysterious things.  The
29                    most useful output at present is the "-toLst" option which
30                    produces output suitable for the "mkProd" script.
31                         NOTE: This script accepts more than one "udb" file
32                    as input but only the Release Definitions from the first
33                    udb file will be applied.
34
35         mkProd  -- a ksh script which will create a product tree from the
36                   files in a build tree based on the contents of its input.
37                   This script takes a one-line format (.lst format) as input.
38                   This one-line format can be generated from a "udb" file by
39                   using the "-toLst" option in "udbToAny.ksh".
40                         This script calls two other ksh scripts "uncomment"
41                   and "linksLast".  They do very simple tasks and should 
42                   probably be rewritten as simple ksh functions in mkProd.
43                 NOTE:   There is shell code to do automatic stripping of
44                         executables and compression of man pages etc. but
45                         most of that is turned off.
46
47
48         There are other more complicated tools that act on "udb" databases,
49         but they are hp-ux specific.  
50
51         Example 1
52         ---------
53         Suppose /x/cde_hpux is a build tree containing a successful hpux build.
54         Suppose COE-RUN.udb and COE-RUN-ADMIN.udb are databases defining the
55         COE-RUN product.
56         To create a product tree at: "/prod/hpux/COE-RUN"
57         run the following two commands (as root):
58
59 1)      udbToAny.ksh -ReleaseStream hp-ux -toLst COE-RUN.udb COE-RUN-ADMIN.udb > COE-RUN.lst
60 2)      mkProd -D /prod/hpux/COE-RUN -S /x/cde_hpux COE-RUN.lst
61
62         NOTE: mkProd -f COE-RUN -D /prod/hpux -S /x/cde_hpux COE-RUN.lst
63               would produce essentially the same results as 2) above.
64
65         Example 2
66         ---------
67         Suppose we wanted to install the above bits on a test system.  Then
68         as root:
69
70         1) udbToAny.ksh -ReleaseStream hp-ux -toLst COE-RUN.udb COE-RUN-ADMIN.udb 
71                 | mkProd -D / -S /x/cde_hpux
72         
73         will install the bits on your root file system.
74
75                 
76
77
78                   
79
80         
81
82