1 |
slords |
1.1 |
diff -up anaconda-11.1.2.168/anaconda.smepatches anaconda-11.1.2.168/anaconda |
2 |
|
|
--- anaconda-11.1.2.168/anaconda.smepatches 2008-12-18 03:21:19.000000000 -0700 |
3 |
|
|
+++ anaconda-11.1.2.168/anaconda 2009-04-14 12:35:22.000000000 -0600 |
4 |
slords |
1.2 |
@@ -767,6 +767,9 @@ |
5 |
|
|
else: |
6 |
|
|
opts.display_mode = 'g' |
7 |
|
|
|
8 |
|
|
+ # we don't want to ask about vnc |
9 |
|
|
+ flags.vncquestion = False |
10 |
|
|
+ |
11 |
|
|
#we prefer vnc over text mode, so ask about that, but only if the KS file doesn't specify anything special |
12 |
|
|
if opts.display_mode == 't' and flags.vncquestion: |
13 |
|
|
title = _("Would you like to use VNC?") |
14 |
|
|
@@ -787,6 +790,9 @@ |
15 |
|
|
import instdata |
16 |
|
|
import floppy |
17 |
slords |
1.1 |
|
18 |
|
|
+ # we don't want to waste time probing |
19 |
|
|
+ opts.isHeadless = 1 |
20 |
|
|
+ |
21 |
slords |
1.2 |
if not opts.isHeadless: |
22 |
|
|
try: |
23 |
|
|
import xsetup |
24 |
slords |
1.1 |
diff -up anaconda-11.1.2.168/bootloader.py.smepatches anaconda-11.1.2.168/bootloader.py |
25 |
|
|
--- anaconda-11.1.2.168/bootloader.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
26 |
|
|
+++ anaconda-11.1.2.168/bootloader.py 2009-04-14 12:36:12.000000000 -0600 |
27 |
|
|
@@ -210,11 +210,6 @@ def writeBootloader(anaconda): |
28 |
|
|
except bootloaderInfo.BootyNoKernelWarning: |
29 |
|
|
if not justConfigFile: |
30 |
|
|
w.pop() |
31 |
|
|
- if anaconda.intf: |
32 |
|
|
- anaconda.intf.messageWindow(_("Warning"), |
33 |
|
|
- _("No kernel packages were installed on your " |
34 |
|
|
- "system. Your boot loader configuration " |
35 |
|
|
- "will not be changed.")) |
36 |
|
|
|
37 |
|
|
dosync() |
38 |
|
|
|
39 |
|
|
diff -up anaconda-11.1.2.168/findpackageset.py.smepatches anaconda-11.1.2.168/findpackageset.py |
40 |
|
|
--- anaconda-11.1.2.168/findpackageset.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
41 |
|
|
+++ anaconda-11.1.2.168/findpackageset.py 2009-04-14 12:38:55.000000000 -0600 |
42 |
|
|
@@ -108,21 +108,15 @@ def findpackageset(hdrlist, dbPath='/'): |
43 |
|
|
# loop through packages and find ones which are a newer |
44 |
|
|
# version than what we have |
45 |
|
|
for ( name, arch ) in instDict.keys(): |
46 |
|
|
- if ( name, arch ) in availDict.keys(): |
47 |
|
|
- # Exact arch upgrade |
48 |
|
|
- h = instDict[(name, arch)] |
49 |
|
|
- pkg = availDict[(name,arch)] |
50 |
|
|
- comparePackageForUpgrade(updDict, h, pkg) |
51 |
|
|
- else: |
52 |
|
|
- # See if we have a better arch than that installed |
53 |
|
|
- if name in availNames.keys(): |
54 |
|
|
- bestarch = findBestArch(availNames[name]) |
55 |
|
|
- if not bestarch: |
56 |
|
|
- continue |
57 |
|
|
- if availDict.has_key((name,bestarch)): |
58 |
|
|
- h = instDict[(name,arch)] |
59 |
|
|
- pkg = availDict[(name,bestarch)] |
60 |
|
|
- comparePackageForUpgrade(updDict, h, pkg) |
61 |
|
|
+ # See if we have a better arch than that installed |
62 |
|
|
+ if name in availNames.keys(): |
63 |
|
|
+ bestarch = findBestArch(availNames[name]) |
64 |
|
|
+ if not bestarch: |
65 |
|
|
+ continue |
66 |
|
|
+ if availDict.has_key((name,bestarch)): |
67 |
|
|
+ h = instDict[(name,arch)] |
68 |
|
|
+ pkg = availDict[(name,bestarch)] |
69 |
|
|
+ comparePackageForUpgrade(updDict, h, pkg) |
70 |
|
|
|
71 |
|
|
# handle obsoletes |
72 |
|
|
for pkg in hdlist: |
73 |
|
|
diff -up anaconda-11.1.2.168/fsset.py.smepatches anaconda-11.1.2.168/fsset.py |
74 |
|
|
--- anaconda-11.1.2.168/fsset.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
75 |
|
|
+++ anaconda-11.1.2.168/fsset.py 2009-04-14 12:47:12.000000000 -0600 |
76 |
|
|
@@ -1456,7 +1456,6 @@ class FileSystemSet: |
77 |
|
|
cf = """ |
78 |
|
|
# mdadm.conf written out by anaconda |
79 |
|
|
DEVICE partitions |
80 |
|
|
-MAILADDR root |
81 |
|
|
""" |
82 |
|
|
for ent in self.entries: |
83 |
|
|
if ent.device.getName() != "RAIDDevice": |
84 |
|
|
@@ -1611,6 +1610,7 @@ MAILADDR root |
85 |
|
|
|
86 |
|
|
if bootDev.getName() == "RAIDDevice": |
87 |
|
|
ret['boot'] = (bootDev.device, N_("RAID Device")) |
88 |
|
|
+ ret['mbr'] = (bl.drivelist[0], N_("Master Boot Record (MBR)")) |
89 |
|
|
return ret |
90 |
|
|
|
91 |
|
|
if iutil.getPPCMacGen() == "NewWorld": |
92 |
|
|
@@ -1900,6 +1900,10 @@ MAILADDR root |
93 |
|
|
entry.device.setupDevice(chroot, vgdevice = vg) |
94 |
|
|
self.volumesCreated = 1 |
95 |
|
|
|
96 |
|
|
+ def createBootRaid (self, chroot='/'): |
97 |
|
|
+ bootDev = self.getBootDev() |
98 |
|
|
+ if bootDev.getDevice().startswith('md'): |
99 |
|
|
+ bootDev.setupDevice(chroot) |
100 |
|
|
|
101 |
|
|
def makeFilesystems (self, chroot='/'): |
102 |
|
|
formatted = [] |
103 |
|
|
@@ -2478,11 +2482,20 @@ class RAIDDevice(Device): |
104 |
|
|
self.minor) |
105 |
|
|
|
106 |
|
|
def raidTab (self, devPrefix='/dev'): |
107 |
|
|
+ if self.level == 1: |
108 |
|
|
+ nDisks = max(2, self.numDisks) |
109 |
|
|
+ elif self.level == 5: |
110 |
|
|
+ nDisks = max(3, self.numDisks) |
111 |
|
|
+ elif self.level == 6: |
112 |
|
|
+ nDisks = max(4, self.numDisks) |
113 |
|
|
+ else: |
114 |
|
|
+ nDisks = self.numDisks |
115 |
|
|
+ |
116 |
|
|
entry = "" |
117 |
|
|
entry = entry + "raiddev %s/%s\n" % (devPrefix, |
118 |
|
|
self.device,) |
119 |
|
|
entry = entry + "raid-level %d\n" % (self.level,) |
120 |
|
|
- entry = entry + "nr-raid-disks %d\n" % (self.numDisks,) |
121 |
|
|
+ entry = entry + "nr-raid-disks %d\n" % (nDisks,) |
122 |
|
|
entry = entry + "chunk-size %s\n" %(self.chunksize,) |
123 |
|
|
entry = entry + "persistent-superblock 1\n" |
124 |
|
|
entry = entry + "nr-spare-disks %d\n" % (self.spares,) |
125 |
|
|
@@ -2492,6 +2505,10 @@ class RAIDDevice(Device): |
126 |
|
|
device) |
127 |
|
|
entry = entry + " raid-disk %d\n" % (i,) |
128 |
|
|
i = i + 1 |
129 |
|
|
+ while i < nDisks: |
130 |
|
|
+ entry = entry + " device dev/null\n" |
131 |
|
|
+ entry = entry + " failed-disk %d\n" % (i,) |
132 |
|
|
+ i = i + 1 |
133 |
|
|
i = 0 |
134 |
|
|
for device in [m.getDevice() for m in self.members[self.numDisks:]]: |
135 |
|
|
entry = entry + " device %s/%s\n" % (devPrefix, |
136 |
|
|
@@ -2504,6 +2521,15 @@ class RAIDDevice(Device): |
137 |
|
|
def devify(x): |
138 |
|
|
return "/dev/%s" %(x,) |
139 |
|
|
|
140 |
|
|
+ if self.level == 1: |
141 |
|
|
+ nDisks = max(2, self.numDisks) |
142 |
|
|
+ elif self.level == 5: |
143 |
|
|
+ nDisks = max(3, self.numDisks) |
144 |
|
|
+ elif self.level == 6: |
145 |
|
|
+ nDisks = max(4, self.numDisks) |
146 |
|
|
+ else: |
147 |
|
|
+ nDisks = self.numDisks |
148 |
|
|
+ |
149 |
|
|
node = "%s/%s" % (devPrefix, self.device) |
150 |
|
|
isys.makeDevInode(self.device, node) |
151 |
|
|
|
152 |
|
|
@@ -2516,12 +2542,18 @@ class RAIDDevice(Device): |
153 |
|
|
args = ["--create", "/dev/%s" %(self.device,), |
154 |
|
|
"--run", "--chunk=%s" %(self.chunksize,), |
155 |
|
|
"--level=%s" %(self.level,), |
156 |
|
|
- "--raid-devices=%s" %(self.numDisks,)] |
157 |
|
|
+ "--raid-devices=%s" %(nDisks,)] |
158 |
|
|
|
159 |
|
|
if self.spares > 0: |
160 |
|
|
args.append("--spare-devices=%s" %(self.spares,),) |
161 |
|
|
|
162 |
|
|
args.extend(memberDevs) |
163 |
|
|
+ |
164 |
|
|
+ i = 0 |
165 |
|
|
+ while self.numDisks + i < nDisks: |
166 |
|
|
+ args.append("missing") |
167 |
|
|
+ i = i + 1 |
168 |
|
|
+ |
169 |
|
|
log.info("going to run: %s" %(["/usr/sbin/mdadm"] + args,)) |
170 |
|
|
iutil.execWithRedirect ("/usr/sbin/mdadm", args, |
171 |
|
|
stderr="/dev/tty5", stdout="/dev/tty5") |
172 |
|
|
diff -up anaconda-11.1.2.168/instdata.py.smepatches anaconda-11.1.2.168/instdata.py |
173 |
|
|
--- anaconda-11.1.2.168/instdata.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
174 |
|
|
+++ anaconda-11.1.2.168/instdata.py 2009-04-14 12:48:55.000000000 -0600 |
175 |
|
|
@@ -145,8 +145,7 @@ class InstallData: |
176 |
|
|
def write(self): |
177 |
|
|
self.instLanguage.write (self.anaconda.rootPath) |
178 |
|
|
|
179 |
|
|
- if not self.isHeadless: |
180 |
|
|
- self.keyboard.write (self.anaconda.rootPath) |
181 |
|
|
+ self.keyboard.write (self.anaconda.rootPath) |
182 |
|
|
|
183 |
|
|
self.timezone.write (self.anaconda.rootPath) |
184 |
|
|
|
185 |
|
|
@@ -264,8 +263,8 @@ class InstallData: |
186 |
|
|
f.write("key %s\n" %(self.instClass.installkey,)) |
187 |
|
|
|
188 |
|
|
self.instLanguage.writeKS(f) |
189 |
|
|
+ self.keyboard.writeKS(f) |
190 |
|
|
if not self.isHeadless: |
191 |
|
|
- self.keyboard.writeKS(f) |
192 |
|
|
self.xsetup.writeKS(f, self.desktop, self.ksdata) |
193 |
|
|
self.network.writeKS(f) |
194 |
|
|
self.zfcp.writeKS(f) |
195 |
|
|
diff -up anaconda-11.1.2.168/kickstart.py.smepatches anaconda-11.1.2.168/kickstart.py |
196 |
|
|
--- anaconda-11.1.2.168/kickstart.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
197 |
|
|
+++ anaconda-11.1.2.168/kickstart.py 2009-04-14 12:50:06.000000000 -0600 |
198 |
|
|
@@ -835,6 +835,15 @@ class Kickstart(cobject): |
199 |
|
|
w.pop() |
200 |
|
|
|
201 |
|
|
def postAction(self, anaconda, serial): |
202 |
|
|
+ win = anaconda.intf.waitWindow(_("Post Install Script"), |
203 |
|
|
+ _("The post installation script is running...")) |
204 |
|
|
+ |
205 |
|
|
+ script = ( "#!/bin/sh\nmkdir -p /var/lib/dhcp; /sbin/syslogd ; sleep 2; /sbin/e-smith/signal-event post-install\n" ) |
206 |
|
|
+ s = Script(script, interp="/bin/sh", inChroot=1) |
207 |
|
|
+ log.info("%s", s) |
208 |
|
|
+ s.run(anaconda.rootPath, serial) |
209 |
|
|
+ win.pop() |
210 |
|
|
+ |
211 |
|
|
postScripts = filter (lambda s: s.type == KS_SCRIPT_POST, |
212 |
|
|
self.ksdata.scripts) |
213 |
|
|
|
214 |
|
|
diff -up anaconda-11.1.2.168/lang-table.smepatches anaconda-11.1.2.168/lang-table |
215 |
|
|
--- anaconda-11.1.2.168/lang-table.smepatches 2008-12-18 03:21:19.000000000 -0700 |
216 |
|
|
+++ anaconda-11.1.2.168/lang-table 2009-04-14 12:52:14.000000000 -0600 |
217 |
slords |
1.4 |
@@ -1,54 +1,22 @@ |
218 |
slords |
1.1 |
-Afrikaans af latarcyrheb-sun16 af_ZA.UTF-8 us Africa/Johannesburg |
219 |
|
|
-Arabic ar latarcyrheb-sun16 ar_SA.UTF-8 us Asia/Riyadh |
220 |
|
|
-Assamese as none as_IN.UTF-8 us Asia/Calcutta |
221 |
|
|
-Bengali bn none bn_BD.UTF-8 us Asia/Dhaka |
222 |
|
|
-Bengali(India) bn none bn_IN.UTF-8 us Asia/Calcutta |
223 |
|
|
Bulgarian bg latarcyrheb-sun16 bg_BG.UTF-8 bg Europe/Sofia |
224 |
|
|
-Catalan ca latarcyrheb-sun16 ca_ES.UTF-8 es Europe/Madrid |
225 |
|
|
Chinese(Simplified) zh_CN none zh_CN.UTF-8 us Asia/Shanghai |
226 |
|
|
-Chinese(Traditional) zh_TW none zh_TW.UTF-8 us Asia/Taipei |
227 |
|
|
-Croatian hr latarcyrheb-sun16 hr_HR.UTF-8 croat Europe/Zagreb |
228 |
|
|
-Czech cs latarcyrheb-sun16 cs_CZ.UTF-8 cz-lat2 Europe/Prague |
229 |
|
|
Danish da latarcyrheb-sun16 da_DK.UTF-8 dk Europe/Copenhagen |
230 |
|
|
Dutch nl latarcyrheb-sun16 nl_NL.UTF-8 nl Europe/Amsterdam |
231 |
|
|
English en latarcyrheb-sun16 en_US.UTF-8 us America/New_York |
232 |
slords |
1.3 |
Estonian et latarcyrheb-sun16 et_EE.UTF-8 et Europe/Tallinn |
233 |
slords |
1.1 |
-Finnish fi latarcyrheb-sun16 fi_FI.UTF-8 fi Europe/Helsinki |
234 |
|
|
French fr latarcyrheb-sun16 fr_FR.UTF-8 fr-latin1 Europe/Paris |
235 |
|
|
German de latarcyrheb-sun16 de_DE.UTF-8 de-latin1-nodeadkeys Europe/Berlin |
236 |
|
|
Greek el iso07u-16 el_GR.UTF-8 gr Europe/Athens |
237 |
|
|
-Gujarati gu none gu_IN.UTF-8 us Asia/Calcutta |
238 |
|
|
-Hindi hi none hi_IN.UTF-8 us Asia/Calcutta |
239 |
|
|
Hungarian hu latarcyrheb-sun16 hu_HU.UTF-8 hu Europe/Budapest |
240 |
|
|
-Icelandic is latarcyrheb-sun16 is_IS.UTF-8 is-latin1 Atlantic/Reykjavik |
241 |
|
|
Indonesian id latarcryheb-sun16 id_ID.UTF-8 us Asia/Jakarta |
242 |
|
|
Italian it latarcyrheb-sun16 it_IT.UTF-8 it Europe/Rome |
243 |
|
|
Japanese ja none ja_JP.UTF-8 jp106 Asia/Tokyo |
244 |
|
|
-Kannada kn none kn_IN.UTF-8 us Asia/Calcutta |
245 |
|
|
-Korean ko none ko_KR.UTF-8 us Asia/Seoul |
246 |
|
|
-Macedonian mk latarcyrheb-sun16 mk_MK.UTF-8 mk Europe/Skopje |
247 |
|
|
-Malay ms latarcyrheb-sun16 ms_MY.UTF-8 us Asia/Kuala_Lumpur |
248 |
|
|
-Malayalam ml none ml_IN.UTF-8 us Asia/Calcutta |
249 |
|
|
-Marathi mr none mr_IN.UTF-8 us Asia/Calcutta |
250 |
|
|
Norwegian nb latarcyrheb-sun16 nb_NO.UTF-8 no Europe/Oslo |
251 |
|
|
-Northern Sotho nso latarcyrheb-sun16 nso_ZA.UTF-8 us Africa/Johannesburg |
252 |
|
|
-Oriya or none or_IN.UTF-8 us Asia/Calcutta |
253 |
slords |
1.4 |
Polish pl latarcyrheb-sun16 pl_PL.UTF-8 pl2 Europe/Warsaw |
254 |
slords |
1.1 |
Portuguese pt latarcyrheb-sun16 pt_PT.UTF-8 pt-latin1 Europe/Lisbon |
255 |
|
|
Portuguese(Brazilian) pt_BR latarcyrheb-sun16 pt_BR.UTF-8 br-abnt2 America/Sao_Paulo |
256 |
|
|
-Punjabi pa none pa_IN.UTF-8 us Asia/Calcutta |
257 |
|
|
Russian ru latarcyrheb-sun16 ru_RU.UTF-8 ru Europe/Moscow |
258 |
|
|
-Serbian sr latarcyrheb-sun16 sr_CS.UTF-8 sr-cy Europe/Belgrade |
259 |
|
|
-Serbian(Latin) sr@Latn latarcyrheb-sun16 sr_CS.UTF-8@Latn sr-cy Europe/Belgrade |
260 |
|
|
-Sinhala si none si_LK.UTF-8 us Asia/Colombo |
261 |
|
|
-Slovak sk latarcyrheb-sun16 sk_SK.UTF-8 sk-qwerty Europe/Bratislava |
262 |
|
|
Slovenian sl latarcyrheb-sun16 sl_SI.UTF-8 slovene Europe/Ljubljana |
263 |
|
|
Spanish es latarcyrheb-sun16 es_ES.UTF-8 es Europe/Madrid |
264 |
|
|
Swedish sv latarcyrheb-sun16 sv_SE.UTF-8 sv-latin1 Europe/Stockholm |
265 |
|
|
-Tamil ta none ta_IN.UTF-8 us Asia/Calcutta |
266 |
|
|
-Telugu te none te_IN.UTF-8 us Asia/Calcutta |
267 |
|
|
Turkish tr latarcyrheb-sun16 tr_TR.UTF-8 trq Europe/Istanbul |
268 |
|
|
-Ukrainian uk latarcyrheb-sun16 uk_UA.UTF-8 ua-utf Europe/Kiev |
269 |
|
|
-Vietnamese vi latarcyrheb-sun16 vi_VN.UTF-8 us Asia/Saigon |
270 |
|
|
-Welsh cy latarcyrheb-sun16 cy_GB.UTF-8 uk Europe/London |
271 |
|
|
-Zulu zu latarcyrheb-sun16 zu_ZA.UTF-8 us Africa/Johannesburg |
272 |
|
|
diff -up anaconda-11.1.2.168/language.py.smepatches anaconda-11.1.2.168/language.py |
273 |
|
|
--- anaconda-11.1.2.168/language.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
274 |
|
|
+++ anaconda-11.1.2.168/language.py 2009-04-14 12:57:23.000000000 -0600 |
275 |
|
|
@@ -57,7 +57,9 @@ class Language: |
276 |
|
|
self.current = "en_US.UTF-8" |
277 |
|
|
|
278 |
|
|
# English name -> native name mapping |
279 |
|
|
- search = ('lang-names', '/usr/lib/anaconda/lang-names') |
280 |
|
|
+ search = ('lang-names', '/tmp/updates/lang-names', |
281 |
|
|
+ '/mnt/source/RHupdates/lang-names', |
282 |
|
|
+ '/usr/lib/anaconda/lang-names') |
283 |
|
|
for path in search: |
284 |
|
|
if os.access(path, os.R_OK): |
285 |
|
|
f = open(path, 'r') |
286 |
|
|
@@ -109,6 +111,8 @@ class Language: |
287 |
|
|
|
288 |
|
|
def getNickByName (self, name): |
289 |
|
|
for k in self.localeInfo.keys(): |
290 |
|
|
+ if k == 'C': |
291 |
|
|
+ continue |
292 |
|
|
row = self.localeInfo[k] |
293 |
|
|
if row[0] == name: |
294 |
|
|
return k |
295 |
|
|
diff -up anaconda-11.1.2.168/packages.py.smepatches anaconda-11.1.2.168/packages.py |
296 |
|
|
--- anaconda-11.1.2.168/packages.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
297 |
|
|
+++ anaconda-11.1.2.168/packages.py 2009-04-14 12:58:23.000000000 -0600 |
298 |
|
|
@@ -147,6 +147,7 @@ def turnOnFilesystems(anaconda): |
299 |
|
|
anaconda.id.diskset.savePartitions () |
300 |
|
|
anaconda.id.partitions.doEncryptionRetrofits() |
301 |
|
|
anaconda.id.fsset.checkBadblocks(anaconda.rootPath) |
302 |
|
|
+ anaconda.id.fsset.createBootRaid(anaconda.rootPath) |
303 |
|
|
if not anaconda.id.fsset.volumesCreated: |
304 |
|
|
try: |
305 |
|
|
anaconda.id.fsset.createLogicalVolumes(anaconda.rootPath) |
306 |
|
|
diff -up anaconda-11.1.2.168/partedUtils.py.smepatches anaconda-11.1.2.168/partedUtils.py |
307 |
|
|
--- anaconda-11.1.2.168/partedUtils.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
308 |
|
|
+++ anaconda-11.1.2.168/partedUtils.py 2009-04-14 12:59:39.000000000 -0600 |
309 |
|
|
@@ -513,8 +513,8 @@ def sniffFilesystemType(device): |
310 |
|
|
return None |
311 |
|
|
|
312 |
|
|
def getReleaseString(mountpoint): |
313 |
|
|
- if os.access(mountpoint + "/etc/redhat-release", os.R_OK): |
314 |
|
|
- f = open(mountpoint + "/etc/redhat-release", "r") |
315 |
|
|
+ if os.access(mountpoint + "/etc/e-smith-release", os.R_OK): |
316 |
|
|
+ f = open(mountpoint + "/etc/e-smith-release", "r") |
317 |
|
|
try: |
318 |
|
|
lines = f.readlines() |
319 |
|
|
except IOError: |
320 |
|
|
@@ -556,6 +556,7 @@ def productMatches(oldproduct, newproduc |
321 |
|
|
return 1 |
322 |
|
|
|
323 |
|
|
productUpgrades = { |
324 |
|
|
+ "SME Server": ("Mitel Networks", "SME Server", "e-smith server", ), |
325 |
|
|
"Red Hat Enterprise Linux Server": ("Red Hat Enterprise Linux Client release 5", |
326 |
|
|
"Red Hat Enterprise Linux Server release 5"), |
327 |
|
|
"Red Hat Enterprise Linux Client": ("Red Hat Enterprise Linux Client release 5", |
328 |
|
|
diff -up anaconda-11.1.2.168/raid.py.smepatches anaconda-11.1.2.168/raid.py |
329 |
|
|
--- anaconda-11.1.2.168/raid.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
330 |
|
|
+++ anaconda-11.1.2.168/raid.py 2009-04-14 13:05:17.000000000 -0600 |
331 |
|
|
@@ -123,7 +123,17 @@ def scanForRaid(drives): |
332 |
|
|
raidList = [] |
333 |
|
|
for key in raidSets.keys(): |
334 |
|
|
(level, totalDisks, mdMinor, devices) = raidSets[key] |
335 |
|
|
- if len(devices) < totalDisks: |
336 |
|
|
+ if len(devices) == totalDisks - 1 and level in (1, 5, 6): |
337 |
|
|
+ log.info("missing components of raid device md%d. The " |
338 |
|
|
+ "raid device needs %d drive(s) and only %d (was/were) found. " |
339 |
|
|
+ "This raid device will be started in degraded mode.", mdMinor, |
340 |
|
|
+ totalDisks, len(devices)) |
341 |
|
|
+ elif len(devices) == totalDisks - 2 and level == 6: |
342 |
|
|
+ log.info("missing components of raid device md%d. The " |
343 |
|
|
+ "raid device needs %d drive(s) and only %d (was/were) found. " |
344 |
|
|
+ "This raid device will be started in degraded mode.", mdMinor, |
345 |
|
|
+ totalDisks, len(devices)) |
346 |
|
|
+ elif len(devices) < totalDisks: |
347 |
|
|
log.warning("missing components of raid device md%d. The " |
348 |
|
|
"raid device needs %d drive(s) and only %d (was/were) " |
349 |
|
|
"found. This raid device will not be started.", mdMinor, |
350 |
|
|
@@ -177,11 +187,11 @@ def get_raid_min_members(raidlevel): |
351 |
|
|
if isRaid0(raidlevel): |
352 |
|
|
return 2 |
353 |
|
|
elif isRaid1(raidlevel): |
354 |
|
|
- return 2 |
355 |
|
|
+ return 1 |
356 |
|
|
elif isRaid5(raidlevel): |
357 |
|
|
- return 3 |
358 |
|
|
+ return 2 |
359 |
|
|
elif isRaid6(raidlevel): |
360 |
|
|
- return 4 |
361 |
|
|
+ return 2 |
362 |
|
|
else: |
363 |
|
|
raise ValueError, "invalid raidlevel in get_raid_min_members" |
364 |
|
|
|
365 |
|
|
diff -up anaconda-11.1.2.168/text.py.smepatches anaconda-11.1.2.168/text.py |
366 |
|
|
--- anaconda-11.1.2.168/text.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
367 |
|
|
+++ anaconda-11.1.2.168/text.py 2009-04-14 13:06:35.000000000 -0600 |
368 |
|
|
@@ -716,7 +716,8 @@ class InstallInterface: |
369 |
|
|
"from here. You will have to try " |
370 |
|
|
"again."), |
371 |
|
|
buttons=[_("OK")]) |
372 |
|
|
- anaconda.dispatch.gotoPrev() |
373 |
|
|
+ else: |
374 |
|
|
+ anaconda.dispatch.gotoPrev() |
375 |
|
|
else: |
376 |
|
|
anaconda.dispatch.gotoNext() |
377 |
|
|
|
378 |
|
|
diff -up anaconda-11.1.2.168/textw/confirm_text.py.smepatches anaconda-11.1.2.168/textw/confirm_text.py |
379 |
|
|
--- anaconda-11.1.2.168/textw/confirm_text.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
380 |
|
|
+++ anaconda-11.1.2.168/textw/confirm_text.py 2009-04-14 12:37:34.000000000 -0600 |
381 |
|
|
@@ -19,6 +19,13 @@ from image import presentRequiredMediaMe |
382 |
|
|
|
383 |
|
|
class BeginInstallWindow: |
384 |
|
|
def __call__ (self, screen, anaconda): |
385 |
|
|
+ rc = anaconda.intf.messageWindow(_("Warning"), |
386 |
|
|
+ _("All disks will be reformatted and any data will be lost. Proceed?"), |
387 |
|
|
+ type = "yesno", default = "no") |
388 |
|
|
+ |
389 |
|
|
+ if rc == 0: |
390 |
|
|
+ return INSTALL_BACK |
391 |
|
|
+ |
392 |
|
|
rc = ButtonChoiceWindow (screen, _("Installation to begin"), |
393 |
|
|
_("A complete log of your installation will be in " |
394 |
|
|
"%s after rebooting your system. You " |
395 |
|
|
diff -up anaconda-11.1.2.168/textw/progress_text.py.smepatches anaconda-11.1.2.168/textw/progress_text.py |
396 |
|
|
--- anaconda-11.1.2.168/textw/progress_text.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
397 |
|
|
+++ anaconda-11.1.2.168/textw/progress_text.py 2009-04-14 12:26:15.000000000 -0600 |
398 |
|
|
@@ -115,8 +115,8 @@ class InstallProgressWindow: |
399 |
|
|
|
400 |
|
|
currow = 0 |
401 |
|
|
|
402 |
|
|
- width = 47 + max (len (name), len (size), len (sum)) |
403 |
|
|
- self.name = Label(" " * 48) |
404 |
|
|
+ width = 60 + max (len (name), len (size), len (sum)) |
405 |
|
|
+ self.name = Label(" " * 59) |
406 |
|
|
self.size = Label(" ") |
407 |
|
|
detail = Grid(2, 2) |
408 |
|
|
detail.setField(Label(name), 0, 0, anchorLeft = 1) |
409 |
|
|
diff -up anaconda-11.1.2.168/textw/timezone_text.py.smepatches anaconda-11.1.2.168/textw/timezone_text.py |
410 |
|
|
--- anaconda-11.1.2.168/textw/timezone_text.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
411 |
|
|
+++ anaconda-11.1.2.168/textw/timezone_text.py 2009-04-14 12:28:01.000000000 -0600 |
412 |
|
|
@@ -37,8 +37,7 @@ class TimezoneWindow: |
413 |
|
|
|
414 |
|
|
def updateSysClock(self): |
415 |
|
|
args = ["--hctosys"] |
416 |
|
|
- if self.c.selected(): |
417 |
|
|
- args.append("--utc") |
418 |
|
|
+ args.append("--utc") |
419 |
|
|
|
420 |
|
|
iutil.execWithRedirect("hwclock", args, searchPath=1) |
421 |
|
|
self.g.setTimer(500) |
422 |
|
|
@@ -83,14 +82,14 @@ class TimezoneWindow: |
423 |
|
|
self.l.setCurrent(default) |
424 |
|
|
# self.l.setCallback(self.updateClock) |
425 |
|
|
|
426 |
|
|
- self.c = Checkbox(_("System clock uses UTC"), isOn = asUtc) |
427 |
|
|
+# self.c = Checkbox(_("System clock uses UTC"), isOn = asUtc) |
428 |
|
|
# self.c.setCallback(self.updateSysClock) |
429 |
|
|
|
430 |
|
|
self.g = GridFormHelp(screen, _("Time Zone Selection"), "timezone", |
431 |
|
|
1, 5) |
432 |
|
|
self.g.add(t, 0, 0) |
433 |
|
|
# self.g.add(self.label, 0, 1, padding = (0, 1, 0, 0), anchorLeft = 1) |
434 |
|
|
- self.g.add(self.c, 0, 2, padding = (0, 1, 0, 1), anchorLeft = 1) |
435 |
|
|
+# self.g.add(self.c, 0, 2, padding = (0, 1, 0, 1), anchorLeft = 1) |
436 |
|
|
self.g.add(self.l, 0, 3, padding = (0, 0, 0, 1)) |
437 |
|
|
self.g.add(bb, 0, 4, growx = 1) |
438 |
|
|
|
439 |
|
|
@@ -118,7 +117,7 @@ class TimezoneWindow: |
440 |
|
|
break |
441 |
|
|
|
442 |
|
|
screen.popWindow() |
443 |
|
|
- anaconda.id.timezone.setTimezoneInfo(self.l.current(), asUtc = self.c.selected()) |
444 |
|
|
+ anaconda.id.timezone.setTimezoneInfo(self.l.current(), asUtc = 1) |
445 |
|
|
|
446 |
|
|
return INSTALL_OK |
447 |
|
|
|
448 |
|
|
diff -up anaconda-11.1.2.168/textw/upgrade_bootloader_text.py.smepatches anaconda-11.1.2.168/textw/upgrade_bootloader_text.py |
449 |
|
|
--- anaconda-11.1.2.168/textw/upgrade_bootloader_text.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
450 |
|
|
+++ anaconda-11.1.2.168/textw/upgrade_bootloader_text.py 2009-04-14 12:31:24.000000000 -0600 |
451 |
|
|
@@ -44,75 +44,24 @@ class UpgradeBootloaderWindow: |
452 |
|
|
else: |
453 |
|
|
nobl = 1 |
454 |
|
|
|
455 |
|
|
- if self.type is not None and self.bootDev is not None: |
456 |
|
|
- t = TextboxReflowed(53, |
457 |
|
|
- _("The installer has detected the %s boot " |
458 |
|
|
- "loader currently installed on %s.") |
459 |
|
|
- % (self.type, self.bootDev)) |
460 |
|
|
- |
461 |
|
|
- self.update_radio = blradio.add(_("Update boot loader configuration"), |
462 |
|
|
- "update", update) |
463 |
|
|
+ if nobl == 1: |
464 |
|
|
+ self.dispatch.skipStep("bootloadersetup", skip = 1) |
465 |
|
|
+ self.dispatch.skipStep("bootloader", skip = 1) |
466 |
|
|
+ self.dispatch.skipStep("bootloaderadvanced", skip = 1) |
467 |
|
|
+ self.dispatch.skipStep("instbootloader", skip = 1) |
468 |
|
|
+ elif newbl == 1: |
469 |
|
|
+ self.dispatch.skipStep("bootloadersetup", skip = 0) |
470 |
|
|
+ self.dispatch.skipStep("bootloader", skip = 1) |
471 |
|
|
+ self.dispatch.skipStep("bootloaderadvanced", skip = 1) |
472 |
|
|
+ self.dispatch.skipStep("instbootloader", skip = 0) |
473 |
|
|
+ self.bl.doUpgradeOnly = 0 |
474 |
|
|
else: |
475 |
|
|
- t = TextboxReflowed(53, |
476 |
|
|
- _("The installer is unable to detect the boot loader " |
477 |
|
|
- "currently in use on your system.")) |
478 |
|
|
- |
479 |
|
|
- self.update_radio = blradio.add(_("Update boot loader configuration"), |
480 |
|
|
- "update", update) |
481 |
|
|
- self.update_radio.w.checkboxSetFlags(FLAG_DISABLED, FLAGS_SET) |
482 |
|
|
- |
483 |
|
|
- self.nobl_radio = blradio.add(_("Skip boot loader updating"), |
484 |
|
|
- "nobl", nobl) |
485 |
|
|
- self.newbl_radio = blradio.add(_("Create new boot loader " |
486 |
|
|
- "configuration"), |
487 |
|
|
- "newbl", newbl) |
488 |
|
|
- |
489 |
|
|
- buttons = ButtonBar(screen, [TEXT_OK_BUTTON, TEXT_BACK_BUTTON]) |
490 |
|
|
- |
491 |
|
|
- grid = GridFormHelp(screen, _("Upgrade Boot Loader Configuration"), |
492 |
|
|
- "bl-upgrade", 1, 5) |
493 |
|
|
- |
494 |
|
|
- grid.add(t, 0, 0, (0,0,0,1)) |
495 |
|
|
- grid.add(self.update_radio, 0, 1, (0,0,0,0)) |
496 |
|
|
- grid.add(self.nobl_radio, 0, 2, (0,0,0,0)) |
497 |
|
|
- grid.add(self.newbl_radio, 0, 3, (0,0,0,1)) |
498 |
|
|
- grid.add(buttons, 0, 4, growx = 1) |
499 |
|
|
- |
500 |
|
|
- |
501 |
|
|
- while 1: |
502 |
|
|
- result = grid.run() |
503 |
|
|
- |
504 |
|
|
- button = buttons.buttonPressed(result) |
505 |
|
|
- |
506 |
|
|
- if button == TEXT_BACK_CHECK: |
507 |
|
|
- screen.popWindow() |
508 |
|
|
- return INSTALL_BACK |
509 |
|
|
- |
510 |
|
|
- if blradio.getSelection() == "nobl": |
511 |
|
|
- self.dispatch.skipStep("bootloadersetup", skip = 1) |
512 |
|
|
- self.dispatch.skipStep("bootloader", skip = 1) |
513 |
|
|
- self.dispatch.skipStep("bootloaderadvanced", skip = 1) |
514 |
|
|
- self.dispatch.skipStep("instbootloader", skip = 1) |
515 |
|
|
- elif blradio.getSelection() == "newbl": |
516 |
|
|
- self.dispatch.skipStep("bootloadersetup", skip = 0) |
517 |
|
|
- self.dispatch.skipStep("bootloader", skip = 0) |
518 |
|
|
- self.dispatch.skipStep("bootloaderadvanced", skip = 0) |
519 |
|
|
- self.dispatch.skipStep("instbootloader", skip = 0) |
520 |
|
|
- self.bl.doUpgradeOnly = 0 |
521 |
|
|
- else: |
522 |
|
|
- self.dispatch.skipStep("bootloadersetup", skip = 0) |
523 |
|
|
- self.dispatch.skipStep("bootloader", skip = 1) |
524 |
|
|
- self.dispatch.skipStep("bootloaderadvanced", skip = 1) |
525 |
|
|
- self.dispatch.skipStep("instbootloader", skip = 0) |
526 |
|
|
- self.bl.doUpgradeOnly = 1 |
527 |
|
|
- |
528 |
|
|
- if self.type == "GRUB": |
529 |
|
|
- self.bl.useGrubVal = 1 |
530 |
|
|
- else: |
531 |
|
|
- self.bl.useGrubVal = 0 |
532 |
|
|
- self.bl.setDevice(self.bootDev) |
533 |
|
|
- |
534 |
|
|
- |
535 |
|
|
+ self.dispatch.skipStep("bootloadersetup", skip = 0) |
536 |
|
|
+ self.dispatch.skipStep("bootloader", skip = 1) |
537 |
|
|
+ self.dispatch.skipStep("bootloaderadvanced", skip = 1) |
538 |
|
|
+ self.dispatch.skipStep("instbootloader", skip = 0) |
539 |
|
|
+ self.bl.doUpgradeOnly = 1 |
540 |
|
|
+ self.bl.useGrubVal = 1 |
541 |
|
|
+ self.bl.setDevice(self.bootDev) |
542 |
|
|
|
543 |
|
|
- screen.popWindow() |
544 |
|
|
- return INSTALL_OK |
545 |
|
|
+ return INSTALL_OK |
546 |
|
|
diff -up anaconda-11.1.2.168/textw/upgrade_text.py.smepatches anaconda-11.1.2.168/textw/upgrade_text.py |
547 |
|
|
--- anaconda-11.1.2.168/textw/upgrade_text.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
548 |
|
|
+++ anaconda-11.1.2.168/textw/upgrade_text.py 2009-04-14 12:34:32.000000000 -0600 |
549 |
|
|
@@ -20,8 +20,8 @@ from snack import * |
550 |
|
|
from fsset import * |
551 |
|
|
from flags import flags |
552 |
|
|
from constants import * |
553 |
|
|
-import upgradeclass |
554 |
|
|
-UpgradeClass = upgradeclass.InstallClass |
555 |
|
|
+import smeupgradeclass |
556 |
|
|
+UpgradeClass = smeupgradeclass.InstallClass |
557 |
|
|
|
558 |
|
|
from rhpl.translate import _ |
559 |
|
|
import rhpl |
560 |
|
|
@@ -200,26 +200,19 @@ class UpgradeExamineWindow: |
561 |
|
|
else: |
562 |
|
|
scroll = 0 |
563 |
|
|
partList = [] |
564 |
|
|
- partList.append(_("Reinstall System")) |
565 |
|
|
+ partList.append(_("Erase ALL disks, and perform a fresh install")) |
566 |
|
|
|
567 |
|
|
for (drive, fs, desc, label) in parts: |
568 |
|
|
- if drive[:5] != "/dev/": |
569 |
|
|
- devname = "/dev/" + drive |
570 |
|
|
- else: |
571 |
|
|
- devname = drive |
572 |
|
|
- partList.append("%s (%s)" %(desc, drive)) |
573 |
|
|
+ partList.append(_("Upgrade existing \"%s\" system") %(desc)) |
574 |
|
|
|
575 |
|
|
(button, choice) = ListboxChoiceWindow(screen, _("System to Upgrade"), |
576 |
|
|
- _("One or more existing Linux installations " |
577 |
|
|
- "have been found " |
578 |
|
|
- "on your system.\n\nPlease choose one to upgrade, " |
579 |
|
|
- "or select 'Reinstall System' to freshly install " |
580 |
|
|
- "your system."), partList, |
581 |
|
|
+ _("Your system is upgradeable."), partList, |
582 |
|
|
[ TEXT_OK_BUTTON, |
583 |
|
|
TEXT_BACK_BUTTON ], |
584 |
|
|
width = 55, scroll = scroll, |
585 |
|
|
height = height, |
586 |
|
|
- help = "upgraderoot") |
587 |
|
|
+ help = "upgraderoot", |
588 |
|
|
+ default = 1) |
589 |
|
|
|
590 |
|
|
if button == TEXT_BACK_CHECK: |
591 |
|
|
return INSTALL_BACK |
592 |
|
|
diff -up anaconda-11.1.2.168/upgrade.py.smepatches anaconda-11.1.2.168/upgrade.py |
593 |
|
|
--- anaconda-11.1.2.168/upgrade.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
594 |
|
|
+++ anaconda-11.1.2.168/upgrade.py 2009-04-14 13:07:55.000000000 -0600 |
595 |
|
|
@@ -123,7 +123,7 @@ def findRootParts(anaconda): |
596 |
|
|
|
597 |
|
|
if anaconda.id.rootParts is not None and len(anaconda.id.rootParts) > 0: |
598 |
|
|
anaconda.dispatch.skipStep("findinstall", skip = 0) |
599 |
|
|
- if productName.find("Red Hat Enterprise Linux") == -1: |
600 |
|
|
+ if productName.find("SME Server") == -1: |
601 |
|
|
anaconda.dispatch.skipStep("installtype", skip = 1) |
602 |
|
|
else: |
603 |
|
|
anaconda.dispatch.skipStep("findinstall", skip = 1) |
604 |
|
|
diff -up anaconda-11.1.2.168/yuminstall.py.smepatches anaconda-11.1.2.168/yuminstall.py |
605 |
|
|
--- anaconda-11.1.2.168/yuminstall.py.smepatches 2008-12-18 03:21:19.000000000 -0700 |
606 |
|
|
+++ anaconda-11.1.2.168/yuminstall.py 2009-04-14 13:11:12.000000000 -0600 |
607 |
|
|
@@ -1071,7 +1071,8 @@ class YumBackend(AnacondaBackend): |
608 |
|
|
|
609 |
|
|
if foundModule == 1: |
610 |
|
|
for (n, arch, tag) in kernelVersions: |
611 |
|
|
- recreateInitrd(n, anaconda.rootPath) |
612 |
|
|
+ if os.access("/boot/System.map-%s" %(n,), os.X_OK): |
613 |
|
|
+ recreateInitrd(n, anaconda.rootPath) |
614 |
|
|
|
615 |
|
|
def selectBestKernel(self, anaconda): |
616 |
|
|
"""Find the best kernel package which is available and select it.""" |
617 |
|
|
@@ -1642,10 +1643,10 @@ class YumBackend(AnacondaBackend): |
618 |
|
|
# Figure out current version for upgrade nag and for determining weird |
619 |
|
|
# upgrade cases |
620 |
|
|
supportedUpgradeVersion = -1 |
621 |
|
|
- for pkgtup in self.ayum.rpmdb.whatProvides('redhat-release', None, None): |
622 |
|
|
+ for pkgtup in self.ayum.rpmdb.whatProvides('e-smith-release', None, None): |
623 |
|
|
n, a, e, v, r = pkgtup |
624 |
|
|
if supportedUpgradeVersion <= 0: |
625 |
|
|
- val = rpmUtils.miscutils.compareEVR((None, '3', '1'), |
626 |
|
|
+ val = rpmUtils.miscutils.compareEVR(('26', '7.0', '01'), |
627 |
|
|
(e, v,r)) |
628 |
|
|
if val > 0: |
629 |
|
|
supportedUpgradeVersion = 0 |
630 |
|
|
@@ -1653,9 +1654,6 @@ class YumBackend(AnacondaBackend): |
631 |
|
|
supportedUpgradeVersion = 1 |
632 |
|
|
break |
633 |
|
|
|
634 |
|
|
- if productName.find("Red Hat Enterprise Linux") == -1: |
635 |
|
|
- supportedUpgradeVersion = 1 |
636 |
|
|
- |
637 |
|
|
if supportedUpgradeVersion == 0: |
638 |
|
|
rc = anaconda.intf.messageWindow(_("Warning"), |
639 |
|
|
_("You appear to be upgrading from a system " |
640 |
|
|
@@ -1669,7 +1667,7 @@ class YumBackend(AnacondaBackend): |
641 |
|
|
try: |
642 |
|
|
os.unlink("%s/var/lib/rpm/%s" %(anaconda.rootPath, rpmfile)) |
643 |
|
|
except: |
644 |
|
|
- log.info("error %s removing file: /var/lib/rpm/%s" %(e,rpmfile)) |
645 |
|
|
+ #log.info("error %s removing file: /var/lib/rpm/%s" %(e,rpmfile)) |
646 |
|
|
pass |
647 |
|
|
sys.exit(0) |
648 |
|
|
|
649 |
|
|
@@ -1718,7 +1716,8 @@ class YumBackend(AnacondaBackend): |
650 |
|
|
# to the old method. |
651 |
|
|
if len(self._installedDriverModules) > 0 and len(self._installedDriverModules) == len(anaconda.id.extraModules): |
652 |
|
|
for (n, arch, tag) in self.kernelVersionList(): |
653 |
|
|
- recreateInitrd(n, anaconda.rootPath) |
654 |
|
|
+ if os.access("/boot/System.map-%s" %(n,), os.X_OK): |
655 |
|
|
+ recreateInitrd(n, anaconda.rootPath) |
656 |
|
|
else: |
657 |
|
|
modulesList = filter(lambda m: m not in self._installedDriverModules, anaconda.id.extraModules) |
658 |
|
|
self.copyExtraModules(anaconda, modulesList) |