death-to-permit-xprt-h-20010327
[openafs.git] / src / WINNT / install / InstallShield5 / HowToSetTheVersion.txt
1 Copyright 2000, International Business Machines Corporation and others.
2 All Rights Reserved.
3
4 This software has been released under the terms of the IBM Public
5 License.  For details, see the LICENSE file in the top-level source
6 directory or online at http://www.openafs.org/dl/license10.html
7
8 HOW TO SET THE AFS FOR WINDOWS VERSION INFORMATION
9
10
11 DECIDE WHAT THE VERSION INFO SHOULD BE
12
13 First decide what the version information should be.  There are
14 the following values that will need to be set:
15
16 MajorVersion
17 MinorVersion
18 PatchLevel
19 BetaLevel
20 ReleaseType
21 Title (called VersionString in the registry)
22
23 MajorVersion is the first number in a dotted version scheme.  For 
24 example, if the version is 3.5, then MajorVersion is set to 3.
25
26 MinorVersion is the second number in a dotted version scheme.  For
27 example, if the version is 3.5, then MinorVersion is set to 5.
28
29 PatchLevel is an integer number representing the patch level.  If
30 the patch level is 4, then PatchLevel is set to 400.  If the patch 
31 level is 3.32, then PatchLevel is set to 332.  The reason patch
32 numbers aren't just 1, 2, etc., is that they are currently set to
33 the cml configuration number of the build used to produce the patch.
34 We may later switch to just making the patch level a single digit,
35 in which case the PatchLevel value must be set to something big
36 enough so that in a comparison with the old patch levels, it will
37 evaluate as bigger.  So if you want a patch level of 4, use a 
38 PatchLevel setting of 400.  If this is not a patch release, then
39 set PatchLevel to 0.
40
41 BetaLevel is an integer number representing the beta level.  This is
42 just a way to have multiple beta releases.  So if this is the first
43 beta release, set BetaLevel to 1.  If this is not a beta release,
44 then set BetaLevel to 0.
45
46 ReleaseType is kind of redundant; it is set to the string "GA" if 
47 this is a non-beta release and "Beta" if this is a beta release.
48
49 Title is the product version as a full string.  So if this is
50 release 3.5 3.22, then Title is set to "3.5 3.22".  If this is
51 3.6 Beta 2, then Title is set to "3.6 Beta 2".
52
53 Title is used when showing the version to the user, like, for
54 example, in the afs creds tool.
55
56 ************************* NOTE ******************************
57 You MUST set all of these values correctly and in a consistent
58 manner from one release to the next so that the installer can
59 properly determine whether to perform upgrades, downgrades, or
60 reinstalls.
61
62 Look at the function CompareVersions in file setup.rul to see
63 how these values are used to make version info decisions.
64
65
66 SET THE VERSION IN THE INSTALLSHIELD FILES
67
68 You will need to edit the following InstallShield files:
69
70 value.shl:
71
72 This file contains all of the strings used by the program.  Set
73 all of the following identifiers to the new version number:
74
75 TITLE_MAIN
76 UNINST_DISPLAY_NAME_CC
77 UNINST_DISPLAY_NAME_CLIENT
78 UNINST_DISPLAY_NAME_DOCS
79 UNINST_DISPLAY_NAME_LIGHT_CLIENT
80 UNINST_DISPLAY_NAME_SERVER
81
82 These identifiers below correspond to the version information
83 discussed in the first section above.
84
85 PRODUCT_VERSION_MAJOR
86 PRODUCT_VERSION_MINOR
87 PRODUCT_VERSION_PATCH_LEVEL
88 PRODUCT_VERSION_BETA_LEVEL
89 PRODUCT_VERSION_RELEASE_TYPE
90 PRODUCT_VERSION_TITLE
91
92 Default.rge:
93
94 This file contains information that will be written to the registry
95 at install time.
96
97 Change all occurances of the following to the proper verison info:
98
99 MajorVersion (set to same value as PRODUCT_VERSION_MAJOR in value.shl)
100 MinorVersion (set to same value as PRODUCT_VERSION_MINOR in value.shl)
101 PatchLevel (set to same value as PRODUCT_VERSION_PATCH_LEVEL in value.shl)
102 BetaLevel (set to same value as PRODUCT_VERSION_BETA_LEVEL in value.shl)
103 ReleaseType (set to same value as PRODUCT_RELEASE_TYPE in value.shl)
104 VersionString (set to same value as PRODUCT_VERSION_TITLE in value.shl)
105
106 Finally, change any string matching the form below to have the new verison
107 info:
108
109 HKLMn=Software\TransarcCorporation\Product Name\Version
110
111 For example, one such string may be:
112
113 HKLM2=Software\TransarcCorporation\AFS Control Center\3.5 3.32
114
115 To update the verison info to 3.6 patch 3, the string would change
116 to:
117
118 HKLM2=Software\TransarcCorporation\AFS Control Center\3.6 3
119
120 That's it!  Build and test the thing, making sure that the version info
121 in the registry is correct for each app, and that upgrades of previous
122 versions, downgrades to previous versions from this version, and reinstalls
123 of this version work correctly.
124
125 If you're the poor sucker who had to do this, then I offer you my sympathy!
126
127