1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
#!/usr/bin/env python
import os, sys, getopt, FixUtil
def usage():
print "Usage: " + sys.argv[0] + " version"
print
print "Options:"
print "-h, --help Show this message."
print
if len(sys.argv) < 2:
usage()
sys.exit(0)
try:
opts, args = getopt.getopt(sys.argv[1:], "h", ["help"])
except getopt.GetoptError:
usage()
sys.exit(1)
for o, a in opts:
if o in ("-h", "--help"):
usage()
sys.exit(0)
if len(args) != 1:
usage()
sys.exit(1)
version = args[0]
ice_dir = os.path.normpath(os.path.join(os.path.dirname(__file__)))
FixUtil.checkVersion(version)
FixUtil.fileMatchAndReplace(os.path.join(ice_dir, "config", "Make.common.rules"),
[("VERSION_MAJOR[\t\s]*= ([0-9]*)", FixUtil.majorVersion(version)),
("VERSION_MINOR[\t\s]*= ([0-9]*b?)", FixUtil.minorVersion(version) + FixUtil.betaVersion(version)),
("SHORT_VERSION[\t\s]*= ([0-9]*\.[0-9]*)", FixUtil.shortVersion(version)),
("VERSION_PATCH[\t\s]*= ([0-9]*)", FixUtil.patchVersion(version)),
("VERSION[\t\s]*= " + FixUtil.vpatMatch, version),
("SOVERSION[\t\s]*= ([0-9]+b?)", FixUtil.soVersion(version))])
FixUtil.fileMatchAndReplace(os.path.join(ice_dir, "config", "Make.common.rules.mak"),
[("^VERSION[\t\s]*= " + FixUtil.vpatMatch, version),
("INTVERSION[\t\s]*= " + FixUtil.vpatMatch, FixUtil.majorVersion(version) + "." + \
FixUtil.minorVersion(version) + "." + FixUtil.patchVersion(version)),
("SHORT_VERSION[\t\s]*= ([0-9]*\.[0-9]*)", FixUtil.shortVersion(version)),
("VERSION_PATCH[\t\s]*= ([0-9]*)", FixUtil.patchVersion(version)),
("SOVERSION[\t\s]*= ([0-9]+b?)", FixUtil.soVersion(version))])
FixUtil.fileMatchAndReplace(os.path.join(ice_dir, "distribution", "src", "rpm", "ice.spec"),
[("Version: " + FixUtil.vpatMatch, version)])
FixUtil.fileMatchAndReplace(os.path.join(ice_dir, "distribution", "src", "rpm", "ice.spec"),
[("%define soversion ([0-9]+b?)", FixUtil.soVersion(version))])
FixUtil.fileMatchAndReplace(os.path.join(ice_dir, "distribution", "src", "rpm", "ice.spec"),
[("%define dotnetversion ([0-9]*\.[0-9]*\.[0-9]*)",
FixUtil.majorVersion(version) + "." + FixUtil.minorVersion(version) + "." + \
"." + FixUtil.patchVersion(version))])
FixUtil.fileMatchAndReplace(os.path.join(ice_dir, "distribution", "src", "common", "build.properties"),
[("ice\.version[\t\s]*= " + FixUtil.vpatMatch, version)])
for f in FixUtil.find(os.path.join(ice_dir, "distribution", "bin"), "*.py"):
FixUtil.fileMatchAndReplace(f, [("iceVersion[\t\s]*= '" + FixUtil.vpatMatch, version)])
#
# Fix version in C++ sources
#
ice_home = os.path.join(ice_dir, "cpp")
if ice_home:
FixUtil.fileMatchAndReplace(os.path.join(ice_home, "include", "IceUtil", "Config.h"),
[("ICE_STRING_VERSION \"" + FixUtil.vpatMatch + "\"", version), \
("ICE_INT_VERSION ([0-9]*)", FixUtil.intVersion(version))])
FixUtil.fileMatchAndReplace(os.path.join(ice_home, "src", "ca", "iceca"),
[("Ice-" + FixUtil.vpatMatch, version)])
FixUtil.fileMatchAndReplace(os.path.join(ice_home, "doc", "swish", "swish.conf"),
[("doc/Ice-" + FixUtil.vpatMatch, version)])
FixUtil.fileMatchAndReplace(os.path.join(ice_home, "doc", "swish", "swishcgi.conf"),
[("ice_version[\t\s]*= '" + FixUtil.vpatMatch, version)])
FixUtil.fileMatchAndReplace(os.path.join(ice_home, "demo", "IceStorm", "clock", "config.icebox"),
[("IceStormService,([0-9]+b?)", FixUtil.soVersion(version))])
FixUtil.fileMatchAndReplace(os.path.join(ice_home, "demo", "IceStorm", "counter", "config.icebox"),
[("IceStormService,([0-9]+b?)", FixUtil.soVersion(version))])
FixUtil.fileMatchAndReplace(os.path.join(ice_home, "demo", "IceStorm", "replicated2", "config.ib1"),
[("IceStormService,([0-9]+b?)", FixUtil.soVersion(version))])
FixUtil.fileMatchAndReplace(os.path.join(ice_home, "demo", "IceStorm", "replicated2", "config.ib2"),
[("IceStormService,([0-9]+b?)", FixUtil.soVersion(version))])
FixUtil.fileMatchAndReplace(os.path.join(ice_home, "demo", "IceStorm", "replicated2", "config.ib3"),
[("IceStormService,([0-9]+b?)", FixUtil.soVersion(version))])
FixUtil.fileMatchAndReplace(os.path.join(ice_home, "demo", "IceStorm", "replicated", "application.xml"),
[("IceStormService,([0-9]+b?)", FixUtil.soVersion(version))])
FixUtil.fileMatchAndReplace(os.path.join(ice_home, "config", "templates.xml"),
[("IceStormService,([0-9]+b?)", FixUtil.soVersion(version))])
for f in FixUtil.find(os.path.join(ice_home, "src"), "*.rc"):
FixUtil.fileMatchAndReplace(f, [("\"FileVersion\", \"" + FixUtil.vpatMatch, version), \
("\"ProductVersion\", \"" + FixUtil.vpatMatch, version), \
("INTERNALNAME \"[^0-9]*2?([0-9][0-9]b?)d?", FixUtil.soVersion(version)), \
("ORIGINALFILENAME \"[^0-9]*2?([0-9][0-9]b?)d?\.dll", FixUtil.soVersion(version)), \
("FILEVERSION ([0-9]+,[0-9]+,[0-9]+)", FixUtil.commaVersion(version)), \
("PRODUCTVERSION ([0-9]+,[0-9]+,[0-9]+)", FixUtil.commaVersion(version))])
#
# Fix version in Java sources
#
icej_home = os.path.join(ice_dir, "java")
if icej_home:
FixUtil.fileMatchAndReplace(os.path.join(icej_home, "config", "build.properties"),
[("ice\.version[\t\s]*= " + FixUtil.vpatMatch, version)])
FixUtil.fileMatchAndReplace(os.path.join(icej_home, "config", "build.properties"),
[("C:/Ice-" + FixUtil.vpatMatch, version)])
FixUtil.fileMatchAndReplace(os.path.join(icej_home, "src", "IceUtil", "Version.java"),
[("ICE_STRING_VERSION = \"" + FixUtil.vpatMatch +"\"", version), \
("ICE_INT_VERSION = ([0-9]*)", FixUtil.intVersion(version))])
FixUtil.fileMatchAndReplace(os.path.join(icej_home, "src", "Ice", "Util.java"),
[("return \"" + FixUtil.vpatMatch +"\".*A=major", version), \
("return ([0-9]*).*AA=major", FixUtil.intVersion(version))])
FixUtil.fileMatchAndReplace(os.path.join(icej_home, "demo", "IceStorm", "clock", "config.icebox"),
[("IceStormService,([0-9]+b?)", FixUtil.soVersion(version))])
#
# Fix version in C# sources
#
icecs_home = os.path.join(ice_dir, "cs")
if icecs_home:
for f in FixUtil.find(icecs_home, "AssemblyInfo.cs"):
if f.find("generate") < 0 and f.find("ConsoleApplication") < 0:
FixUtil.fileMatchAndReplace(f, [("AssemblyVersion\(\"" + FixUtil.vpatMatch + "\"",
FixUtil.majorVersion(version) + "." + FixUtil.minorVersion(version) + "." + \
FixUtil.patchVersion(version))])
FixUtil.fileMatchAndReplace(os.path.join(icecs_home, "demo", "IceStorm", "clock", "config.icebox"),
[("IceStormService,([0-9]+b?)", FixUtil.soVersion(version))])
for f in FixUtil.find(icecs_home, "*.pc"):
print "matching " + f
FixUtil.fileMatchAndReplace(f, [("[\t\s]*version[\t\s]*=[\t\s]* " + FixUtil.vpatMatch,
FixUtil.majorVersion(version) + "." + FixUtil.minorVersion(version) + "." + \
FixUtil.patchVersion(version))])
for f in FixUtil.find(icecs_home, "config*"):
print "matching " + f
FixUtil.fileMatchAndReplace(f,
[("Version=*([0-9]*\.[0-9]*\.[0-9]*).0",
FixUtil.majorVersion(version) + "." + FixUtil.minorVersion(version) + "." +
FixUtil.patchVersion(version))],
False) # Disable warnings as many files might not have SSL configuration
FixUtil.fileMatchAndReplace(os.path.join(icecs_home, "src", "Ice", "Util.cs"),
[("return \"" + FixUtil.vpatMatch +"\".*A=major", version), \
("return ([0-9]*).*AA=major", FixUtil.intVersion(version))])
#
# Fix version in VB sources
#
icevb_home = os.path.join(ice_dir, "vb")
if icevb_home:
FixUtil.fileMatchAndReplace(os.path.join(icevb_home, "demo", "IceStorm", "clock", "config.icebox"),
[("IceStormService,([0-9]+b?)", FixUtil.soVersion(version))])
for f in FixUtil.find(icevb_home, "config*"):
print "matching " + f
FixUtil.fileMatchAndReplace(f,
[("Version=*([0-9]*\.[0-9]*\.[0-9]*).0",
FixUtil.majorVersion(version) + "." + FixUtil.minorVersion(version) + "." + \
FixUtil.patchVersion(version))],
False) # Disable warnings as many files might not have SSL configuration
#
# Fix version in PHP sources
#
#icephp_home = os.path.join(ice_dir, "php")
#if icephp_home:
#
# Fix version in IcePy
#
icepy_home = os.path.join(ice_dir, "py")
if icepy_home:
FixUtil.fileMatchAndReplace(os.path.join(icepy_home, "demo", "IceStorm", "clock", "config.icebox"),
[("IceStormService,([0-9]+b?)", FixUtil.soVersion(version))])
#
# Fix version in IceRuby
#
#icerb_home = os.path.join(ice_dir, "rb")
#if icerb_home:
|