diff options
Diffstat (limited to 'pkgs/development/libraries/qt-5/5.6/qtbase/tzdir.patch')
-rw-r--r-- | pkgs/development/libraries/qt-5/5.6/qtbase/tzdir.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/pkgs/development/libraries/qt-5/5.6/qtbase/tzdir.patch b/pkgs/development/libraries/qt-5/5.6/qtbase/tzdir.patch new file mode 100644 index 0000000000000..1c0541bdc2ad6 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.6/qtbase/tzdir.patch @@ -0,0 +1,40 @@ +Index: qt-everywhere-opensource-src-5.6.0/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp +=================================================================== +--- qt-everywhere-opensource-src-5.6.0.orig/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp ++++ qt-everywhere-opensource-src-5.6.0/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp +@@ -62,7 +62,10 @@ typedef QHash<QByteArray, QTzTimeZone> Q + // Parse zone.tab table, assume lists all installed zones, if not will need to read directories + static QTzTimeZoneHash loadTzTimeZones() + { +- QString path = QStringLiteral("/usr/share/zoneinfo/zone.tab"); ++ QString path = qgetenv("TZDIR"); ++ path += "/zone.tab"; ++ if (!QFile::exists(path)) ++ path = QStringLiteral("/usr/share/zoneinfo/zone.tab"); + if (!QFile::exists(path)) + path = QStringLiteral("/usr/lib/zoneinfo/zone.tab"); + +@@ -560,12 +563,18 @@ void QTzTimeZonePrivate::init(const QByt + if (!tzif.open(QIODevice::ReadOnly)) + return; + } else { +- // Open named tz, try modern path first, if fails try legacy path +- tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId)); ++ // Try TZDIR first ++ QString zoneinfoDir = qgetenv("TZDIR"); ++ zoneinfoDir += "/" + QString::fromLocal8Bit(ianaId); ++ tzif.setFileName(zoneinfoDir); + if (!tzif.open(QIODevice::ReadOnly)) { +- tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId)); +- if (!tzif.open(QIODevice::ReadOnly)) +- return; ++ // Open named tz, try modern path first, if fails try legacy path ++ tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId)); ++ if (!tzif.open(QIODevice::ReadOnly)) { ++ tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId)); ++ if (!tzif.open(QIODevice::ReadOnly)) ++ return; ++ } + } + } + |