diff options
-rw-r--r-- | dispatch.py | 3 | ||||
-rw-r--r-- | installclass.py | 1 | ||||
-rw-r--r-- | packages.py | 30 |
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 |