/[smeserver]/rpms/anaconda/sme8/anaconda-11.1.2.87-smeserver.patch
ViewVC logotype

Contents of /rpms/anaconda/sme8/anaconda-11.1.2.87-smeserver.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Thu Dec 20 21:44:37 2007 UTC (16 years, 6 months ago) by slords
Branch: MAIN
apply sme patches

1 --- anaconda-11.1.2.87/textw/progress_text.py.smeserver 2006-05-04 13:58:53.000000000 -0600
2 +++ anaconda-11.1.2.87/textw/progress_text.py 2007-12-20 13:44:30.000000000 -0700
3 @@ -108,8 +108,8 @@
4
5 currow = 0
6
7 - width = 47 + max (len (name), len (size), len (sum))
8 - self.name = Label(" " * 48)
9 + width = 60 + max (len (name), len (size), len (sum))
10 + self.name = Label(" " * 59)
11 self.size = Label(" ")
12 detail = Grid(2, 2)
13 detail.setField(Label(name), 0, 0, anchorLeft = 1)
14 --- anaconda-11.1.2.87/textw/timezone_text.py.smeserver 2006-08-16 12:56:48.000000000 -0600
15 +++ anaconda-11.1.2.87/textw/timezone_text.py 2007-12-20 13:53:29.000000000 -0700
16 @@ -37,8 +37,7 @@
17
18 def updateSysClock(self):
19 args = ["--hctosys"]
20 - if self.c.selected():
21 - args.append("--utc")
22 + args.append("--utc")
23
24 iutil.execWithRedirect("hwclock", args, searchPath=1)
25 self.g.setTimer(500)
26 @@ -83,14 +82,12 @@
27 self.l.setCurrent(default)
28 # self.l.setCallback(self.updateClock)
29
30 - self.c = Checkbox(_("System clock uses UTC"), isOn = asUtc)
31 # self.c.setCallback(self.updateSysClock)
32
33 self.g = GridFormHelp(screen, _("Time Zone Selection"), "timezone",
34 1, 5)
35 self.g.add(t, 0, 0)
36 # self.g.add(self.label, 0, 1, padding = (0, 1, 0, 0), anchorLeft = 1)
37 - self.g.add(self.c, 0, 2, padding = (0, 1, 0, 1), anchorLeft = 1)
38 self.g.add(self.l, 0, 3, padding = (0, 0, 0, 1))
39 self.g.add(bb, 0, 4, growx = 1)
40
41 @@ -118,7 +115,7 @@
42 break
43
44 screen.popWindow()
45 - anaconda.id.timezone.setTimezoneInfo(self.l.current(), asUtc = self.c.selected())
46 + anaconda.id.timezone.setTimezoneInfo(self.l.current(), asUtc = 1)
47
48 return INSTALL_OK
49
50 --- anaconda-11.1.2.87/textw/upgrade_bootloader_text.py.smeserver 2006-05-04 13:58:53.000000000 -0600
51 +++ anaconda-11.1.2.87/textw/upgrade_bootloader_text.py 2007-12-20 14:23:49.000000000 -0700
52 @@ -31,88 +31,11 @@
53 (self.type, self.bootDev) = \
54 checkbootloader.getBootloaderTypeAndBoot(anaconda.rootPath)
55
56 - blradio = RadioGroup()
57 -
58 - (update, newbl, nobl) = (0, 0, 0)
59 - if not self.dispatch.stepInSkipList("bootloader"):
60 - newbl = 1
61 - elif self.dispatch.stepInSkipList("instbootloader"):
62 - nobl = 1
63 - else:
64 - if self.type is not None and self.bootDev is not None:
65 - update = 1
66 - else:
67 - nobl = 1
68 -
69 - if self.type is not None and self.bootDev is not None:
70 - t = TextboxReflowed(53,
71 - _("The installer has detected the %s boot "
72 - "loader currently installed on %s.")
73 - % (self.type, self.bootDev))
74 -
75 - self.update_radio = blradio.add(_("Update boot loader configuration"),
76 - "update", update)
77 - else:
78 - t = TextboxReflowed(53,
79 - _("The installer is unable to detect the boot loader "
80 - "currently in use on your system."))
81 -
82 - self.update_radio = blradio.add(_("Update boot loader configuration"),
83 - "update", update)
84 - self.update_radio.w.checkboxSetFlags(FLAG_DISABLED, FLAGS_SET)
85 -
86 - self.nobl_radio = blradio.add(_("Skip boot loader updating"),
87 - "nobl", nobl)
88 - self.newbl_radio = blradio.add(_("Create new boot loader "
89 - "configuration"),
90 - "newbl", newbl)
91 -
92 - buttons = ButtonBar(screen, [TEXT_OK_BUTTON, TEXT_BACK_BUTTON])
93 -
94 - grid = GridFormHelp(screen, _("Upgrade Boot Loader Configuration"),
95 - "bl-upgrade", 1, 5)
96 -
97 - grid.add(t, 0, 0, (0,0,0,1))
98 - grid.add(self.update_radio, 0, 1, (0,0,0,0))
99 - grid.add(self.nobl_radio, 0, 2, (0,0,0,0))
100 - grid.add(self.newbl_radio, 0, 3, (0,0,0,1))
101 - grid.add(buttons, 0, 4, growx = 1)
102 -
103 -
104 - while 1:
105 - result = grid.run()
106 -
107 - button = buttons.buttonPressed(result)
108 -
109 - if button == TEXT_BACK_CHECK:
110 - screen.popWindow()
111 - return INSTALL_BACK
112 -
113 - if blradio.getSelection() == "nobl":
114 - self.dispatch.skipStep("bootloadersetup", skip = 1)
115 - self.dispatch.skipStep("bootloader", skip = 1)
116 - self.dispatch.skipStep("bootloaderadvanced", skip = 1)
117 - self.dispatch.skipStep("instbootloader", skip = 1)
118 - elif blradio.getSelection() == "newbl":
119 - self.dispatch.skipStep("bootloadersetup", skip = 0)
120 - self.dispatch.skipStep("bootloader", skip = 0)
121 - self.dispatch.skipStep("bootloaderadvanced", skip = 0)
122 - self.dispatch.skipStep("instbootloader", skip = 0)
123 - self.bl.doUpgradeOnly = 0
124 - else:
125 - self.dispatch.skipStep("bootloadersetup", skip = 0)
126 - self.dispatch.skipStep("bootloader", skip = 1)
127 - self.dispatch.skipStep("bootloaderadvanced", skip = 1)
128 - self.dispatch.skipStep("instbootloader", skip = 0)
129 - self.bl.doUpgradeOnly = 1
130 -
131 - if self.type == "GRUB":
132 - self.bl.useGrubVal = 1
133 - else:
134 - self.bl.useGrubVal = 0
135 - self.bl.setDevice(self.bootDev)
136 -
137 -
138 -
139 - screen.popWindow()
140 - return INSTALL_OK
141 + self.dispatch.skipStep("bootloadersetup", skip = 0)
142 + self.dispatch.skipStep("bootloader", skip = 1)
143 + self.dispatch.skipStep("bootloaderadvanced", skip = 1)
144 + self.dispatch.skipStep("instbootloader", skip = 0)
145 + self.bl.doUpgradeOnly = 1
146 + self.bl.useGrubVal = 1
147 + self.bl.setDevice(self.bootDev)
148 + return INSTALL_OK
149 --- anaconda-11.1.2.87/textw/upgrade_text.py.smeserver 2007-01-22 16:14:06.000000000 -0700
150 +++ anaconda-11.1.2.87/textw/upgrade_text.py 2007-12-20 13:59:27.000000000 -0700
151 @@ -20,8 +20,8 @@
152 from fsset import *
153 from flags import flags
154 from constants import *
155 -import upgradeclass
156 -UpgradeClass = upgradeclass.InstallClass
157 +import smeupgradeclass
158 +UpgradeClass = smeupgradeclass.InstallClass
159
160 from rhpl.translate import _
161 import rhpl
162 @@ -200,26 +200,19 @@
163 else:
164 scroll = 0
165 partList = []
166 - partList.append(_("Reinstall System"))
167 + partList.append(_("Erase ALL disks, and perform a fresh install"))
168
169 for (drive, fs, desc, label) in parts:
170 - if drive[:5] != "/dev/":
171 - devname = "/dev/" + drive
172 - else:
173 - devname = drive
174 - partList.append("%s (%s)" %(desc, drive))
175 + partList.append("Upgrade existing \"%s\" system" %(desc))
176
177 (button, choice) = ListboxChoiceWindow(screen, _("System to Upgrade"),
178 - _("One or more existing Linux installations "
179 - "have been found "
180 - "on your system.\n\nPlease choose one to upgrade, "
181 - "or select 'Reinstall System' to freshly install "
182 - "your system."), partList,
183 + _("Your system is upgradeable."), partList,
184 [ TEXT_OK_BUTTON,
185 TEXT_BACK_BUTTON ],
186 width = 55, scroll = scroll,
187 height = height,
188 - help = "upgraderoot")
189 + help = "upgraderoot",
190 + default = 1)
191
192 if button == TEXT_BACK_CHECK:
193 return INSTALL_BACK
194 --- anaconda-11.1.2.87/anaconda.smeserver 2007-08-07 14:45:51.000000000 -0600
195 +++ anaconda-11.1.2.87/anaconda 2007-12-20 13:01:05.000000000 -0700
196 @@ -763,6 +763,9 @@
197 import instdata
198 import floppy
199
200 + # we don't want to waste time probing
201 + opts.isHeadless = 1
202 +
203 if not opts.isHeadless:
204 try:
205 import xsetup
206 --- anaconda-11.1.2.87/bootloader.py.smeserver 2006-11-17 13:34:11.000000000 -0700
207 +++ anaconda-11.1.2.87/bootloader.py 2007-12-20 13:03:25.000000000 -0700
208 @@ -193,11 +193,6 @@
209 except bootloaderInfo.BootyNoKernelWarning:
210 if not justConfigFile:
211 w.pop()
212 - if anaconda.intf:
213 - anaconda.intf.messageWindow(_("Warning"),
214 - _("No kernel packages were installed on your "
215 - "system. Your boot loader configuration "
216 - "will not be changed."))
217
218 dosync()
219
220 --- anaconda-11.1.2.87/findpackageset.py.smeserver 2005-02-08 07:37:30.000000000 -0700
221 +++ anaconda-11.1.2.87/findpackageset.py 2007-12-20 13:05:57.000000000 -0700
222 @@ -108,21 +108,15 @@
223 # loop through packages and find ones which are a newer
224 # version than what we have
225 for ( name, arch ) in instDict.keys():
226 - if ( name, arch ) in availDict.keys():
227 - # Exact arch upgrade
228 - h = instDict[(name, arch)]
229 - pkg = availDict[(name,arch)]
230 - comparePackageForUpgrade(updDict, h, pkg)
231 - else:
232 - # See if we have a better arch than that installed
233 - if name in availNames.keys():
234 - bestarch = findBestArch(availNames[name])
235 - if not bestarch:
236 - continue
237 - if availDict.has_key((name,bestarch)):
238 - h = instDict[(name,arch)]
239 - pkg = availDict[(name,bestarch)]
240 - comparePackageForUpgrade(updDict, h, pkg)
241 + # See if we have a better arch than that installed
242 + if name in availNames.keys():
243 + bestarch = findBestArch(availNames[name])
244 + if not bestarch:
245 + continue
246 + if availDict.has_key((name,bestarch)):
247 + h = instDict[(name,arch)]
248 + pkg = availDict[(name,bestarch)]
249 + comparePackageForUpgrade(updDict, h, pkg)
250
251 # handle obsoletes
252 for pkg in hdlist:
253 --- anaconda-11.1.2.87/fsset.py.smeserver 2007-08-23 13:33:10.000000000 -0600
254 +++ anaconda-11.1.2.87/fsset.py 2007-12-20 13:25:42.000000000 -0700
255 @@ -1323,7 +1323,6 @@
256 cf = """
257 # mdadm.conf written out by anaconda
258 DEVICE partitions
259 -MAILADDR root
260 """
261 for ent in self.entries:
262 if ent.device.getName() != "RAIDDevice":
263 @@ -1463,6 +1462,7 @@
264
265 if bootDev.getName() == "RAIDDevice":
266 ret['boot'] = (bootDev.device, N_("RAID Device"))
267 + ret['mbr'] = (bl.drivelist[0], N_("Master Boot Record (MBR)"))
268 return ret
269
270 if iutil.getPPCMacGen() == "NewWorld":
271 @@ -1752,6 +1752,10 @@
272 entry.device.setupDevice(chroot, vgdevice = vg)
273 self.volumesCreated = 1
274
275 + def createBootRaid (self, chroot='/'):
276 + bootDev = self.getBootDev()
277 + if bootDev.getDevice().startswith('md'):
278 + bootDev.setupDevice(chroot)
279
280 def makeFilesystems (self, chroot='/'):
281 formatted = []
282 @@ -2288,11 +2292,20 @@
283 self.minor)
284
285 def raidTab (self, devPrefix='/dev'):
286 + if self.level == 1:
287 + nDisks = max(2, self.numDisks)
288 + elif self.level == 5:
289 + nDisks = max(3, self.numDisks)
290 + elif self.level == 6:
291 + nDisks = max(4, self.numDisks)
292 + else:
293 + nDisks = self.numDisks
294 +
295 entry = ""
296 entry = entry + "raiddev %s/%s\n" % (devPrefix,
297 self.device,)
298 entry = entry + "raid-level %d\n" % (self.level,)
299 - entry = entry + "nr-raid-disks %d\n" % (self.numDisks,)
300 + entry = entry + "nr-raid-disks %d\n" % (nDisks,)
301 entry = entry + "chunk-size %s\n" %(self.chunksize,)
302 entry = entry + "persistent-superblock 1\n"
303 entry = entry + "nr-spare-disks %d\n" % (self.spares,)
304 @@ -2302,6 +2315,10 @@
305 device)
306 entry = entry + " raid-disk %d\n" % (i,)
307 i = i + 1
308 + while i < nDisks:
309 + entry = entry + " device dev/null\n"
310 + entry = entry + " failed-disk %d\n" % (i,)
311 + i = i + 1
312 i = 0
313 for device in self.members[self.numDisks:]:
314 entry = entry + " device %s/%s\n" % (devPrefix,
315 @@ -2313,6 +2330,15 @@
316 def setupDevice (self, chroot="/", devPrefix='/dev'):
317 def devify(x):
318 return "/dev/%s" %(x,)
319 +
320 + if self.level == 1:
321 + nDisks = max(2, self.numDisks)
322 + elif self.level == 5:
323 + nDisks = max(3, self.numDisks)
324 + elif self.level == 6:
325 + nDisks = max(4, self.numDisks)
326 + else:
327 + nDisks = self.numDisks
328
329 node = "%s/%s" % (devPrefix, self.device)
330 isys.makeDevInode(self.device, node)
331 @@ -2326,12 +2352,18 @@
332 args = ["--create", "/dev/%s" %(self.device,),
333 "--run", "--chunk=%s" %(self.chunksize,),
334 "--level=%s" %(self.level,),
335 - "--raid-devices=%s" %(self.numDisks,)]
336 + "--raid-devices=%s" %(nDisks,)]
337
338 if self.spares > 0:
339 args.append("--spare-devices=%s" %(self.spares,),)
340
341 args.extend(map(devify, self.members))
342 +
343 + i = 0
344 + while self.numDisks + i < nDisks:
345 + args.append("missing")
346 + i = i + 1
347 +
348 log.info("going to run: %s" %(["/usr/sbin/mdadm"] + args,))
349 iutil.execWithRedirect ("/usr/sbin/mdadm", args,
350 stderr="/dev/tty5", stdout="/dev/tty5")
351 --- anaconda-11.1.2.87/instdata.py.smeserver 2007-06-27 12:30:49.000000000 -0600
352 +++ anaconda-11.1.2.87/instdata.py 2007-12-20 13:28:15.000000000 -0700
353 @@ -139,8 +139,7 @@
354
355 self.instLanguage.write (anaconda.rootPath)
356
357 - if not self.isHeadless:
358 - self.keyboard.write (anaconda.rootPath)
359 + self.keyboard.write (anaconda.rootPath)
360
361 self.timezone.write (anaconda.rootPath)
362
363 @@ -258,8 +257,8 @@
364 f.write("key %s\n" %(self.instClass.installkey,))
365
366 self.instLanguage.writeKS(f)
367 + self.keyboard.writeKS(f)
368 if not self.isHeadless:
369 - self.keyboard.writeKS(f)
370 self.xsetup.writeKS(f, self.desktop, self.ksdata)
371 self.network.writeKS(f)
372 self.zfcp.writeKS(f)
373 --- anaconda-11.1.2.87/kickstart.py.smeserver 2007-06-18 08:30:03.000000000 -0600
374 +++ anaconda-11.1.2.87/kickstart.py 2007-12-20 13:38:55.000000000 -0700
375 @@ -764,6 +764,17 @@
376 w.pop()
377
378 def postAction(self, anaconda, serial):
379 + win = anaconda.intf.waitWindow(_("Post Install Script"),
380 + _("The post installation script is running..."))
381 +
382 + script = ( "/sbin/syslogd &\n"
383 + "sleep 2\n"
384 + "/sbin/e-smith/signal-event post-install\n" )
385 + s = Script(script, interp="/bin/sh", inChroot=1)
386 + log.info("%s", s)
387 + s.run(anaconda.rootPath, serial)
388 + win.pop()
389 +
390 postScripts = filter (lambda s: s.type == KS_SCRIPT_POST,
391 self.ksdata.scripts)
392
393 --- anaconda-11.1.2.87/packages.py.smeserver 2007-12-20 13:41:11.000000000 -0700
394 +++ anaconda-11.1.2.87/packages.py 2007-12-20 13:40:41.000000000 -0700
395 @@ -146,6 +146,7 @@
396 if not anaconda.id.fsset.isActive():
397 anaconda.id.diskset.savePartitions ()
398 anaconda.id.fsset.checkBadblocks(anaconda.rootPath)
399 + anaconda.id.fsset.createBootRaid(anaconda.rootPath)
400 if not anaconda.id.fsset.volumesCreated:
401 anaconda.id.fsset.createLogicalVolumes(anaconda.rootPath)
402 anaconda.id.fsset.formatSwap(anaconda.rootPath)
403 --- anaconda-11.1.2.87/partedUtils.py.smeserver 2007-07-12 10:16:05.000000000 -0600
404 +++ anaconda-11.1.2.87/partedUtils.py 2007-12-20 13:43:33.000000000 -0700
405 @@ -550,6 +550,7 @@
406 return 1
407
408 productUpgrades = {
409 + "SME Server": ("Mitel Networks", "SME Server", "CentOS 5"),
410 "Red Hat Enterprise Linux AS": ("Red Hat Linux Advanced Server", ),
411 "Red Hat Enterprise Linux WS": ("Red Hat Linux Advanced Workstation",),
412 # FIXME: this probably shouldn't be in a release...
413 --- anaconda-11.1.2.87/raid.py.smeserver 2006-10-02 09:01:18.000000000 -0600
414 +++ anaconda-11.1.2.87/raid.py 2007-12-20 13:47:36.000000000 -0700
415 @@ -114,7 +114,17 @@
416 raidList = []
417 for key in raidSets.keys():
418 (level, totalDisks, mdMinor, devices) = raidSets[key]
419 - if len(devices) < totalDisks:
420 + if len(devices) == totalDisks - 1 and level in (1, 5, 6):
421 + log.info("missing components of raid device md%d. The "
422 + "raid device needs %d drive(s) and only %d (was/were) found. "
423 + "This raid device will be started in degraded mode.", mdMinor,
424 + totalDisks, len(devices))
425 + elif len(devices) == totalDisks - 2 and level == 6:
426 + log.info("missing components of raid device md%d. The "
427 + "raid device needs %d drive(s) and only %d (was/were) found. "
428 + "This raid device will be started in degraded mode.", mdMinor,
429 + totalDisks, len(devices))
430 + elif len(devices) < totalDisks:
431 log.warning("missing components of raid device md%d. The "
432 "raid device needs %d drive(s) and only %d (was/were) "
433 "found. This raid device will not be started.", mdMinor,
434 @@ -168,11 +178,11 @@
435 if isRaid0(raidlevel):
436 return 2
437 elif isRaid1(raidlevel):
438 - return 2
439 + return 1
440 elif isRaid5(raidlevel):
441 - return 3
442 + return 2
443 elif isRaid6(raidlevel):
444 - return 4
445 + return 2
446 else:
447 raise ValueError, "invalid raidlevel in get_raid_min_members"
448
449 --- anaconda-11.1.2.87/text.py.smeserver 2007-03-23 15:24:34.000000000 -0600
450 +++ anaconda-11.1.2.87/text.py 2007-12-20 13:50:39.000000000 -0700
451 @@ -583,7 +583,8 @@
452 "from here. You will have to try "
453 "again."),
454 buttons=[_("OK")])
455 - anaconda.dispatch.gotoPrev()
456 + else:
457 + anaconda.dispatch.gotoPrev()
458 else:
459 anaconda.dispatch.gotoNext()
460
461 --- anaconda-11.1.2.87/lang-table.smeserver 2006-12-04 13:31:57.000000000 -0700
462 +++ anaconda-11.1.2.87/lang-table 2007-12-20 14:07:37.000000000 -0700
463 @@ -1,54 +1,5 @@
464 -Afrikaans af latarcyrheb-sun16 af_ZA.UTF-8 us Africa/Johannesburg
465 -Arabic ar latarcyrheb-sun16 ar_SA.UTF-8 us Asia/Riyadh
466 -Assamese as none as_IN.UTF-8 us Asia/Calcutta
467 -Bengali bn none bn_BD.UTF-8 us Asia/Dhaka
468 -Bengali(India) bn none bn_IN.UTF-8 us Asia/Calcutta
469 -Bulgarian bg latarcyrheb-sun16 bg_BG.UTF-8 bg Europe/Sofia
470 -Catalan ca latarcyrheb-sun16 ca_ES.UTF-8 es Europe/Madrid
471 -Chinese(Simplified) zh_CN none zh_CN.UTF-8 us Asia/Shanghai
472 -Chinese(Traditional) zh_TW none zh_TW.UTF-8 us Asia/Taipei
473 -Croatian hr latarcyrheb-sun16 hr_HR.UTF-8 croat Europe/Zagreb
474 -Czech cs latarcyrheb-sun16 cs_CZ.UTF-8 cz-lat2 Europe/Prague
475 -Danish da latarcyrheb-sun16 da_DK.UTF-8 dk Europe/Copenhagen
476 -Dutch nl latarcyrheb-sun16 nl_NL.UTF-8 nl Europe/Amsterdam
477 +Deutsch de latarcyrheb-sun16 de_DE.UTF-8 de-latin1-nodeadkeys Europe/Berlin
478 English en latarcyrheb-sun16 en_US.UTF-8 us America/New_York
479 -Estonian et latarcyrheb-sun16 et_EE.UTF-8 et Europe/Tallinn
480 -Finnish fi latarcyrheb-sun16 fi_FI.UTF-8 fi Europe/Helsinki
481 -French fr latarcyrheb-sun16 fr_FR.UTF-8 fr-latin1 Europe/Paris
482 -German de latarcyrheb-sun16 de_DE.UTF-8 de-latin1-nodeadkeys Europe/Berlin
483 -Greek el iso07u-16 el_GR.UTF-8 gr Europe/Athens
484 -Gujarati gu none gu_IN.UTF-8 us Asia/Calcutta
485 -Hindi hi none hi_IN.UTF-8 us Asia/Calcutta
486 -Hungarian hu latarcyrheb-sun16 hu_HU.UTF-8 hu Europe/Budapest
487 -Icelandic is latarcyrheb-sun16 is_IS.UTF-8 is-latin1 Atlantic/Reykjavik
488 -Indonesian id latarcryheb-sun16 id_ID.UTF-8 us Asia/Jakarta
489 -Italian it latarcyrheb-sun16 it_IT.UTF-8 it Europe/Rome
490 -Japanese ja none ja_JP.UTF-8 jp106 Asia/Tokyo
491 -Kannada kn none kn_IN.UTF-8 us Asia/Calcutta
492 -Korean ko none ko_KR.UTF-8 us Asia/Seoul
493 -Macedonian mk latarcyrheb-sun16 mk_MK.UTF-8 mk Europe/Skopje
494 -Malay ms latarcyrheb-sun16 ms_MY.UTF-8 us Asia/Kuala_Lumpur
495 -Malayalam ml none ml_IN.UTF-8 us Asia/Calcutta
496 -Marathi mr none mr_IN.UTF-8 us Asia/Calcutta
497 -Norwegian nb latarcyrheb-sun16 nb_NO.UTF-8 no Europe/Oslo
498 -Northern Sotho nso latarcyrheb-sun16 nso_ZA.UTF-8 us Africa/Johannesburg
499 -Oriya or none or_IN.UTF-8 us Asia/Calcutta
500 -Polish pl latarcyrheb-sun16 pl_PL.UTF-8 pl2 Europe/Warsaw
501 -Portuguese pt latarcyrheb-sun16 pt_PT.UTF-8 pt-latin1 Europe/Lisbon
502 -Portuguese(Brazilian) pt_BR latarcyrheb-sun16 pt_BR.UTF-8 br-abnt2 America/Sao_Paulo
503 -Punjabi pa none pa_IN.UTF-8 us Asia/Calcutta
504 -Russian ru latarcyrheb-sun16 ru_RU.UTF-8 ru Europe/Moscow
505 -Serbian sr latarcyrheb-sun16 sr_CS.UTF-8 sr-cy Europe/Belgrade
506 -Serbian(Latin) sr@Latn latarcyrheb-sun16 sr_CS.UTF-8@Latn sr-cy Europe/Belgrade
507 -Sinhala si none si_LK.UTF-8 us Asia/Colombo
508 -Slovak sk latarcyrheb-sun16 sk_SK.UTF-8 sk-qwerty Europe/Bratislava
509 -Slovenian sl latarcyrheb-sun16 sl_SI.UTF-8 slovene Europe/Ljubljana
510 -Spanish es latarcyrheb-sun16 es_ES.UTF-8 es Europe/Madrid
511 -Swedish sv latarcyrheb-sun16 sv_SE.UTF-8 sv-latin1 Europe/Stockholm
512 -Tamil ta none ta_IN.UTF-8 us Asia/Calcutta
513 -Telugu te none te_IN.UTF-8 us Asia/Calcutta
514 -Turkish tr latarcyrheb-sun16 tr_TR.UTF-8 trq Europe/Istanbul
515 -Ukrainian uk latarcyrheb-sun16 uk_UA.UTF-8 ua-utf Europe/Kiev
516 -Vietnamese vi latarcyrheb-sun16 vi_VN.UTF-8 us Asia/Saigon
517 -Welsh cy latarcyrheb-sun16 cy_GB.UTF-8 uk Europe/London
518 -Zulu zu latarcyrheb-sun16 zu_ZA.UTF-8 us Africa/Johannesburg
519 +Español es latarcyrheb-sun16 es_ES.UTF-8 es Europe/Madrid
520 +Français fr latarcyrheb-sun16 fr_FR.UTF-8 fr-latin1 Europe/Paris
521 +Italiano it latarcyrheb-sun16 it_IT.UTF-8 it Europe/Rome

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed