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

Annotation 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.4 - (hide annotations) (download)
Sat Mar 15 18:10:59 2008 UTC (16 years, 8 months ago) by slords
Branch: MAIN
Changes since 1.3: +1 -1 lines
Fix mkdir

1 slords 1.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 slords 1.3 @@ -764,6 +764,15 @@
376 slords 1.1 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 slords 1.4 + script = ( "#!/bin/sh\nmkdir -p /var/lib/dhcp; /sbin/syslogd ; sleep 2; /sbin/e-smith/signal-event post-install\n" )
383 slords 1.1 + s = Script(script, interp="/bin/sh", inChroot=1)
384     + log.info("%s", s)
385     + s.run(anaconda.rootPath, serial)
386     + win.pop()
387     +
388     postScripts = filter (lambda s: s.type == KS_SCRIPT_POST,
389     self.ksdata.scripts)
390    
391     --- anaconda-11.1.2.87/packages.py.smeserver 2007-12-20 13:41:11.000000000 -0700
392     +++ anaconda-11.1.2.87/packages.py 2007-12-20 13:40:41.000000000 -0700
393     @@ -146,6 +146,7 @@
394     if not anaconda.id.fsset.isActive():
395     anaconda.id.diskset.savePartitions ()
396     anaconda.id.fsset.checkBadblocks(anaconda.rootPath)
397     + anaconda.id.fsset.createBootRaid(anaconda.rootPath)
398     if not anaconda.id.fsset.volumesCreated:
399     anaconda.id.fsset.createLogicalVolumes(anaconda.rootPath)
400     anaconda.id.fsset.formatSwap(anaconda.rootPath)
401     --- anaconda-11.1.2.87/partedUtils.py.smeserver 2007-07-12 10:16:05.000000000 -0600
402     +++ anaconda-11.1.2.87/partedUtils.py 2007-12-20 13:43:33.000000000 -0700
403     @@ -550,6 +550,7 @@
404     return 1
405    
406     productUpgrades = {
407     + "SME Server": ("Mitel Networks", "SME Server", "CentOS 5"),
408     "Red Hat Enterprise Linux AS": ("Red Hat Linux Advanced Server", ),
409     "Red Hat Enterprise Linux WS": ("Red Hat Linux Advanced Workstation",),
410     # FIXME: this probably shouldn't be in a release...
411     --- anaconda-11.1.2.87/raid.py.smeserver 2006-10-02 09:01:18.000000000 -0600
412     +++ anaconda-11.1.2.87/raid.py 2007-12-20 13:47:36.000000000 -0700
413     @@ -114,7 +114,17 @@
414     raidList = []
415     for key in raidSets.keys():
416     (level, totalDisks, mdMinor, devices) = raidSets[key]
417     - if len(devices) < totalDisks:
418     + if len(devices) == totalDisks - 1 and level in (1, 5, 6):
419     + log.info("missing components of raid device md%d. The "
420     + "raid device needs %d drive(s) and only %d (was/were) found. "
421     + "This raid device will be started in degraded mode.", mdMinor,
422     + totalDisks, len(devices))
423     + elif len(devices) == totalDisks - 2 and level == 6:
424     + log.info("missing components of raid device md%d. The "
425     + "raid device needs %d drive(s) and only %d (was/were) found. "
426     + "This raid device will be started in degraded mode.", mdMinor,
427     + totalDisks, len(devices))
428     + elif len(devices) < totalDisks:
429     log.warning("missing components of raid device md%d. The "
430     "raid device needs %d drive(s) and only %d (was/were) "
431     "found. This raid device will not be started.", mdMinor,
432     @@ -168,11 +178,11 @@
433     if isRaid0(raidlevel):
434     return 2
435     elif isRaid1(raidlevel):
436     - return 2
437     + return 1
438     elif isRaid5(raidlevel):
439     - return 3
440     + return 2
441     elif isRaid6(raidlevel):
442     - return 4
443     + return 2
444     else:
445     raise ValueError, "invalid raidlevel in get_raid_min_members"
446    
447     --- anaconda-11.1.2.87/text.py.smeserver 2007-03-23 15:24:34.000000000 -0600
448     +++ anaconda-11.1.2.87/text.py 2007-12-20 13:50:39.000000000 -0700
449     @@ -583,7 +583,8 @@
450     "from here. You will have to try "
451     "again."),
452     buttons=[_("OK")])
453     - anaconda.dispatch.gotoPrev()
454     + else:
455     + anaconda.dispatch.gotoPrev()
456     else:
457     anaconda.dispatch.gotoNext()
458    
459     --- anaconda-11.1.2.87/lang-table.smeserver 2006-12-04 13:31:57.000000000 -0700
460     +++ anaconda-11.1.2.87/lang-table 2007-12-20 14:07:37.000000000 -0700
461 slords 1.2 @@ -1,54 +1,8 @@
462 slords 1.1 -Afrikaans af latarcyrheb-sun16 af_ZA.UTF-8 us Africa/Johannesburg
463     -Arabic ar latarcyrheb-sun16 ar_SA.UTF-8 us Asia/Riyadh
464     -Assamese as none as_IN.UTF-8 us Asia/Calcutta
465     -Bengali bn none bn_BD.UTF-8 us Asia/Dhaka
466     -Bengali(India) bn none bn_IN.UTF-8 us Asia/Calcutta
467     -Bulgarian bg latarcyrheb-sun16 bg_BG.UTF-8 bg Europe/Sofia
468 slords 1.2 Catalan ca latarcyrheb-sun16 ca_ES.UTF-8 es Europe/Madrid
469 slords 1.1 -Chinese(Simplified) zh_CN none zh_CN.UTF-8 us Asia/Shanghai
470     -Chinese(Traditional) zh_TW none zh_TW.UTF-8 us Asia/Taipei
471     -Croatian hr latarcyrheb-sun16 hr_HR.UTF-8 croat Europe/Zagreb
472     -Czech cs latarcyrheb-sun16 cs_CZ.UTF-8 cz-lat2 Europe/Prague
473     -Danish da latarcyrheb-sun16 da_DK.UTF-8 dk Europe/Copenhagen
474 slords 1.2 Dutch nl latarcyrheb-sun16 nl_NL.UTF-8 nl Europe/Amsterdam
475 slords 1.1 English en latarcyrheb-sun16 en_US.UTF-8 us America/New_York
476     -Estonian et latarcyrheb-sun16 et_EE.UTF-8 et Europe/Tallinn
477     -Finnish fi latarcyrheb-sun16 fi_FI.UTF-8 fi Europe/Helsinki
478 slords 1.2 French fr latarcyrheb-sun16 fr_FR.UTF-8 fr-latin1 Europe/Paris
479     German de latarcyrheb-sun16 de_DE.UTF-8 de-latin1-nodeadkeys Europe/Berlin
480 slords 1.1 -Greek el iso07u-16 el_GR.UTF-8 gr Europe/Athens
481     -Gujarati gu none gu_IN.UTF-8 us Asia/Calcutta
482     -Hindi hi none hi_IN.UTF-8 us Asia/Calcutta
483     -Hungarian hu latarcyrheb-sun16 hu_HU.UTF-8 hu Europe/Budapest
484     -Icelandic is latarcyrheb-sun16 is_IS.UTF-8 is-latin1 Atlantic/Reykjavik
485     -Indonesian id latarcryheb-sun16 id_ID.UTF-8 us Asia/Jakarta
486 slords 1.2 Italian it latarcyrheb-sun16 it_IT.UTF-8 it Europe/Rome
487 slords 1.1 -Japanese ja none ja_JP.UTF-8 jp106 Asia/Tokyo
488     -Kannada kn none kn_IN.UTF-8 us Asia/Calcutta
489     -Korean ko none ko_KR.UTF-8 us Asia/Seoul
490     -Macedonian mk latarcyrheb-sun16 mk_MK.UTF-8 mk Europe/Skopje
491     -Malay ms latarcyrheb-sun16 ms_MY.UTF-8 us Asia/Kuala_Lumpur
492     -Malayalam ml none ml_IN.UTF-8 us Asia/Calcutta
493     -Marathi mr none mr_IN.UTF-8 us Asia/Calcutta
494     -Norwegian nb latarcyrheb-sun16 nb_NO.UTF-8 no Europe/Oslo
495     -Northern Sotho nso latarcyrheb-sun16 nso_ZA.UTF-8 us Africa/Johannesburg
496     -Oriya or none or_IN.UTF-8 us Asia/Calcutta
497     -Polish pl latarcyrheb-sun16 pl_PL.UTF-8 pl2 Europe/Warsaw
498     -Portuguese pt latarcyrheb-sun16 pt_PT.UTF-8 pt-latin1 Europe/Lisbon
499     -Portuguese(Brazilian) pt_BR latarcyrheb-sun16 pt_BR.UTF-8 br-abnt2 America/Sao_Paulo
500     -Punjabi pa none pa_IN.UTF-8 us Asia/Calcutta
501     -Russian ru latarcyrheb-sun16 ru_RU.UTF-8 ru Europe/Moscow
502     -Serbian sr latarcyrheb-sun16 sr_CS.UTF-8 sr-cy Europe/Belgrade
503     -Serbian(Latin) sr@Latn latarcyrheb-sun16 sr_CS.UTF-8@Latn sr-cy Europe/Belgrade
504     -Sinhala si none si_LK.UTF-8 us Asia/Colombo
505     -Slovak sk latarcyrheb-sun16 sk_SK.UTF-8 sk-qwerty Europe/Bratislava
506     -Slovenian sl latarcyrheb-sun16 sl_SI.UTF-8 slovene Europe/Ljubljana
507 slords 1.2 Spanish es latarcyrheb-sun16 es_ES.UTF-8 es Europe/Madrid
508     Swedish sv latarcyrheb-sun16 sv_SE.UTF-8 sv-latin1 Europe/Stockholm
509 slords 1.1 -Tamil ta none ta_IN.UTF-8 us Asia/Calcutta
510     -Telugu te none te_IN.UTF-8 us Asia/Calcutta
511     -Turkish tr latarcyrheb-sun16 tr_TR.UTF-8 trq Europe/Istanbul
512     -Ukrainian uk latarcyrheb-sun16 uk_UA.UTF-8 ua-utf Europe/Kiev
513     -Vietnamese vi latarcyrheb-sun16 vi_VN.UTF-8 us Asia/Saigon
514     -Welsh cy latarcyrheb-sun16 cy_GB.UTF-8 uk Europe/London
515     -Zulu zu latarcyrheb-sun16 zu_ZA.UTF-8 us Africa/Johannesburg

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