-
Suggestion
-
Resolution: Done
-
P3: Somewhat important
-
5.12.2
-
None
-
4ebac33644d5db0b727680f1dacb18616daafe86 (qt/qtbase/5.12)
Many embedded devices use read-only rootfs, at this case usually use intermediate symlink to zoneinfo file.
Result schema is /etc/localtime -> /tmp/localtime -> /usr/share/zoneinfo/ZONE_FILE
My solution is
@@ -1051,7 +1051,12 @@ QByteArray QTzTimeZonePrivate::systemTimeZoneId() const
// On most distros /etc/localtime is a symlink to a real file so extract name from the path
if (ianaId.isEmpty()) {
- const QString path = QFile::symLinkTarget(QStringLiteral("/etc/localtime"));
+ QString path = QFile::symLinkTarget(QStringLiteral("/etc/localtime"));
+ if (!path.isEmpty()) {
+ const QString path2 = QFile::symLinkTarget(path);
+ if (!path2.isEmpty())
+ path = path2;
+ }
if (!path.isEmpty()) {
// /etc/localtime is a symlink to the current TZ file, so extract from path
int index = path.indexOf(QLatin1String("/zoneinfo/"));
| For Gerrit Dashboard: QTBUG-75527 | ||||||
|---|---|---|---|---|---|---|
| # | Subject | Branch | Project | Status | CR | V |
| 260337,4 | Resolve symlink completely in search for system time zone | 5.12 | qt/qtbase | Status: ABANDONED | 0 | 0 |
| 262372,12 | Detect system time zone from linked symlinks | 5.12 | qt/qtbase | Status: MERGED | +2 | 0 |