summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dispatch.py3
-rw-r--r--installclass.py1
-rw-r--r--packages.py30
3 files changed, 34 insertions, 0 deletions
diff --git a/dispatch.py b/dispatch.py
index 2f3ffcd32..5956a6f9e 100644
--- a/dispatch.py
+++ b/dispatch.py
@@ -26,6 +26,7 @@ from autopart import doAutoPartition
from packages import firstbootConfiguration
from packages import betaNagScreen
from packages import selectLanguageSupportGroups
+from packages import setupTimezone
from partitioning import partitionMethodSetup, partitionObjectsInitialize
from partitioning import partitioningComplete
from floppy import makeBootdisk
@@ -117,6 +118,8 @@ installSteps = [
("migratefilesystems", doMigrateFilesystems, ("dir", "id.fsset",
"id.diskset", "id.upgrade",
"instPath")),
+ ("setuptime", setupTimezone, ("id.timezone", "id.upgrade", "instPath",
+ "dir")),
("preinstallconfig", doPreInstall, ("method", "id", "intf", "instPath",
"dir")),
("installpackages", doInstall, ("method", "id", "intf", "instPath")),
diff --git a/installclass.py b/installclass.py
index 38d764bac..00e8974ce 100644
--- a/installclass.py
+++ b/installclass.py
@@ -121,6 +121,7 @@ class BaseInstallClass:
"install",
"enablefilesystems",
"migratefilesystems",
+ "setuptime",
"preinstallconfig",
"installpackages",
"postinstallconfig",
diff --git a/packages.py b/packages.py
index 35519b6d8..fb2e19631 100644
--- a/packages.py
+++ b/packages.py
@@ -466,6 +466,36 @@ def turnOnFilesystems(dir, thefsset, diskset, partitions, upgrade, instPath):
thefsset.makeFilesystems (instPath)
thefsset.mountFilesystems (instPath)
+def setupTimezone(timezone, upgrade, instPath, dir):
+ # we don't need this on an upgrade or going backwards
+ if upgrade.get() or (dir == DISPATCH_BACK):
+ return
+
+ tzfile = "/usr/share/zoneinfo/" + timezone.tz
+ if not os.access(tzfile, os.R_OK):
+ log("unable to set timezone")
+ else:
+ try:
+ iutil.copyFile(tzfile, "/etc/localtime")
+ except OSError, (errno, msg):
+ log("Error copying timezone (from %s): %s" %(tzfile, msg))
+
+ args = [ "/usr/sbin/hwclock", "--hctosys" ]
+ if timezone.utc:
+ args.append("-u")
+ elif timezone.arc:
+ args.append("-a")
+ else:
+ flags = None
+
+ try:
+ iutil.execWithRedirect(args[0], args, stdin = None,
+ stdout = "/dev/tty5", stderr = "/dev/tty5")
+ except RuntimeError:
+ log("Failed to set clock")
+
+
+
def doPreInstall(method, id, intf, instPath, dir):
if flags.test:
return