diff options
author | Alexandru DAMIAN <alexandru.damian@intel.com> | 2014-03-28 14:43:48 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-04-01 10:22:42 +0100 |
commit | 8f791ce59d5fb0b0bc502838c44bb597f80d3979 (patch) | |
tree | f7bf78fc79781c3d97727fcff5f33fc80bdda2ce /bitbake/lib/toaster/toastermain/settings.py | |
parent | e1bfb5dd61fb684cbde29692f6f957c8737aa41d (diff) | |
download | poky-8f791ce59d5fb0b0bc502838c44bb597f80d3979.tar.gz |
bitbake: toaster: fix timezone detection
This patch replaces faulty timezone detection with a version
that simply reads the TZ environment variable if it is set.
If the TZ is not set, we do a reverse match search among known
timezone definitions and take the first match.
[YOCTO #5499]
(Bitbake rev: 3a0a556a65368f02635606e4eb707ca08e25007a)
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster/toastermain/settings.py')
-rw-r--r-- | bitbake/lib/toaster/toastermain/settings.py | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/bitbake/lib/toaster/toastermain/settings.py b/bitbake/lib/toaster/toastermain/settings.py index 51fa3ccd03..e26ee3c9ee 100644 --- a/bitbake/lib/toaster/toastermain/settings.py +++ b/bitbake/lib/toaster/toastermain/settings.py | |||
@@ -50,9 +50,23 @@ ALLOWED_HOSTS = [] | |||
50 | # although not all choices may be available on all operating systems. | 50 | # although not all choices may be available on all operating systems. |
51 | # In a Windows environment this must be set to your system time zone. | 51 | # In a Windows environment this must be set to your system time zone. |
52 | 52 | ||
53 | # Always use local computer's time zone | 53 | # Always use local computer's time zone, find |
54 | import time | 54 | import os, hashlib |
55 | TIME_ZONE = time.tzname[0] | 55 | if 'TZ' in os.environ: |
56 | TIME_ZONE = os.environ['TZ'] | ||
57 | else: | ||
58 | # need to read the /etc/localtime file which is the libc standard | ||
59 | # and do a reverse-mapping to /usr/share/zoneinfo/; | ||
60 | # since the timezone may match any number of identical timezone definitions, | ||
61 | |||
62 | zonefilelist = {} | ||
63 | ZONEINFOPATH = '/usr/share/zoneinfo/' | ||
64 | for dirpath, dirnames, filenames in os.walk(ZONEINFOPATH): | ||
65 | for fn in filenames: | ||
66 | filepath = os.path.join(dirpath, fn) | ||
67 | zonefilelist[hashlib.md5(open(filepath).read()).hexdigest()] = filepath.lstrip(ZONEINFOPATH).strip() | ||
68 | |||
69 | TIME_ZONE = zonefilelist[hashlib.md5(open('/etc/localtime').read()).hexdigest()] | ||
56 | 70 | ||
57 | # Language code for this installation. All choices can be found here: | 71 | # Language code for this installation. All choices can be found here: |
58 | # http://www.i18nguy.com/unicode/language-identifiers.html | 72 | # http://www.i18nguy.com/unicode/language-identifiers.html |