diff options
-rw-r--r-- | pyanaconda/install.py | 11 | ||||
-rw-r--r-- | pyanaconda/kickstart.py | 7 | ||||
-rw-r--r-- | pyanaconda/timezone.py | 19 |
3 files changed, 34 insertions, 3 deletions
diff --git a/pyanaconda/install.py b/pyanaconda/install.py index b716364b7..1b255b72e 100644 --- a/pyanaconda/install.py +++ b/pyanaconda/install.py @@ -26,7 +26,8 @@ from pyanaconda.bootloader import writeBootLoader from pyanaconda.progress import progress_report from pyanaconda.users import createLuserConf, getPassAlgo, Users from pyanaconda.network import writeNetworkConf -from pyanaconda.flags import flags +from pyanaconda import flags +from pyanaconda import timezone import gettext _ = lambda x: gettext.ldgettext("anaconda", x) @@ -88,6 +89,10 @@ def doInstall(storage, payload, ksdata, instClass): from pyanaconda import progress from pyanaconda.kickstart import runPostScripts + # First save system time to HW clock. + if flags.can_touch_runtime_system("save system time to HW clock"): + timezone.save_hw_clock(ksdata.timezone) + # We really only care about actions that affect filesystems, since # those are the ones that take the most time. steps = len(storage.devicetree.findActions(type="create", object="format")) + \ @@ -99,7 +104,7 @@ def doInstall(storage, payload, ksdata, instClass): # Do partitioning. payload.preStorage() turnOnFilesystems(storage) - if not flags.livecdInstall: + if not flags.flags.livecdInstall: storage.write() # Do packaging. @@ -111,7 +116,7 @@ def doInstall(storage, payload, ksdata, instClass): payload.preInstall(packages=packages, groups=payload.languageGroups(ksdata.lang.lang)) payload.install() - if flags.livecdInstall: + if flags.flags.livecdInstall: storage.write() with progress_report(_("Performing post-install setup tasks")): diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py index 1dd0aebeb..d4aa991ab 100644 --- a/pyanaconda/kickstart.py +++ b/pyanaconda/kickstart.py @@ -1262,6 +1262,13 @@ class Services(commands.services.FC6_Services): root=ROOT_PATH) class Timezone(commands.timezone.F18_Timezone): + def __init__(self, *args): + commands.timezone.F18_Timezone.__init__(self, *args) + + #TODO: Do we need to set it to False in case of dual-boot? + #default to UTC HW clock in Anaconda + self.isUtc = True + def execute(self, *args): # write out timezone configuration if not timezone.is_valid_timezone(self.timezone): diff --git a/pyanaconda/timezone.py b/pyanaconda/timezone.py index 0b7173d15..6d07317b4 100644 --- a/pyanaconda/timezone.py +++ b/pyanaconda/timezone.py @@ -29,6 +29,7 @@ import pytz from collections import OrderedDict from pyanaconda import localization +from pyanaconda import iutil import logging log = logging.getLogger("anaconda") @@ -87,6 +88,24 @@ def write_timezone_config(timezone, root): msg = "Error while writing /etc/adjtime file: %s" % ioerr.strerror raise TimezoneConfigError(msg) +def save_hw_clock(timezone): + """ + Save system time to HW clock. + + @param timezone: ksdata.timezone object + + """ + + cmd = "hwclock" + args = ["--systohc"] + if timezone.isUtc: + args.append("--utc") + else: + args.append("--local") + + iutil.execWithRedirect(cmd, args, stdout="/dev/tty5", stderr="/dev/tty5") + + def get_all_territory_timezones(territory): """ Return the list of timezones for a given territory. |