mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-23 13:45:49 +02:00
Merge branch 'qt5-tzdir' into staging
Fixes a long-standing bug with Qt 5 and timezones on NixOS.
This commit is contained in:
commit
9168041813
|
@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
patches =
|
||||
[ ./glib-2.32.patch
|
||||
./qt-5.3-tzdir.patch
|
||||
(substituteAll {
|
||||
src = ./qt-5.3-dlopen-absolute-paths.patch;
|
||||
inherit cups icu libXfixes;
|
||||
|
|
40
pkgs/development/libraries/qt-5/qt-5.3-tzdir.patch
Normal file
40
pkgs/development/libraries/qt-5/qt-5.3-tzdir.patch
Normal file
|
@ -0,0 +1,40 @@
|
|||
diff --git a/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp b/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp
|
||||
index b4ea91e..a56a245 100644
|
||||
--- a/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp
|
||||
+++ b/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp
|
||||
@@ -68,7 +68,10 @@ typedef QHash<QByteArray, QTzTimeZone> QTzTimeZoneHash;
|
||||
// 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");
|
||||
|
||||
@@ -559,12 +562,18 @@ void QTzTimeZonePrivate::init(const QByteArray &ianaId)
|
||||
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;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in a new issue